User Tools

Site Tools


poolinfo:join:communitynode

This is an old revision of the document!


Farming using the Spacefarmer Community Node

If you have the capabilities to run a full node by yourself, we absolutely urge you to run your own full node! A large number of properly operating full nodes is the optimum for network decentralisation. The Spacefarmers Community Node is only intended as a fall-back for those who are not able to properly run a full node by themselves.

Farming can be quite a struggle when trying to keep a full node running on a system with low specs. Chia allows many architectures, which makes it possible to (trustlessly) connect your farmer to a remote node. In this guide we will tell you why and how you would set this up.

Network Topology

The network structure looks like this:

other network peers --- Wallet
    |
    |
    |
Spacefarmers
Community Node
    |
    |             _____ Harvester 1
    |            /
Farmer (CA) ----------- Harvester 2
                 \_____
                        Harvester 3

The communication between the Community Node and your local Farmer is bi-directional; The Community Node feeds the farmer with it's mempool logic (we use the default mempool logic), and the Farmer asks the Community Node to propagate blocks to the rest of the network. As we allow only Spacefarmers to connect to the community node currently, incentives are aligned to also actually propagate the blocks to the network: it is in the interest of the community node to propagate blocks to maintain pool profitability.

Decentralisation

The Spacefarmers Community Node does NOT sign your blocks, YOU do. As can be read in this criticism by Chia's Gene Hoffmann, any other way would not be to your advantage.

As for the overall effects on the network: obviously, 10 farmers sharing our community node instead of running 10 full nodes on their own reduces the total number of full nodes and thus has a negative impact on decentralisation.

On the flip side, there is positive impact from farmers who are unable to run a stable full node on their own and are thus would not able to farm at all. Their additional netspace from farming via the community node increases decentralisation. Similarly, farmers only able to farm intermittently (like a hypothetical farmer for whom it only makes sense to farm on PV-generated electricity) can resume farming more quickly after a downtime because of not having to sync up their own full node.

In any case, we absolutely urge anyone who is able to run a full node for themselves to keep doing this, as ultimately this is best for maximum decentralisation of the network!

Node Uptime

To ensure the highest possible uptime for the Community Node, we use a multi-node set-up behind a load balancer. This way, when we upgrade one of the nodes, you can rest assured that you will maintain a connection with a full node without disruption.

By default, the Chia farmer process reconnects immediately after losing connection to the full node; so even if you are currently load-balanced to a node that restarts or goes down for maintenance, your farmer will reconnect to the load balancer immediately and then be assigned another full node.

We currently operate with at least N-2 redundancy: that means that even if two backend nodes go down at the same time, there is enough capacity left on the other nodes to server all connected farmers.

How to connect

  • Chia 1.3.0 and up is required! Find the latest version of Chia here.
  • Make sure you stop all Chia processes by closing the GUI or chia stop all in the CLI.
  • In the config.yaml, which is located in C:\Users\<yourusername\.chia\mainnet\config (or $HOME/.chia/mainnet/config/), you will have to change
    farmer:
      full_node_peer:
        host: localhost
        port: 8444

    to

    farmer:
      full_node_peer:
        host: community-node.spacefarmers.io
        port: 8444
  • Make sure you have connect_to_unknown_peers: false. If you don't have this entry in your config.yaml, you can add the line anywhere under full_node:
  • If you use this node as a fail-safe node to your main node, make sure to copy + paste the pool info: from the config.yaml, as well as add your keys and plots.
  • In CLI chia start farmer-only
  • chia start harvester

Are my keys safe?

Yes! We don't ever see your secret keys. All necessary signing is still done by your farmer process.

Let us repeat this, because it's important: your keys are used to sign the blocks locally on your farmer. The Community Node is just used to send signage points to your farmer and eventually propagate your blocks to the network. Also note that all of this is using a completely unmodified node from Chia Network's codebase only using facilities already present in the code.

Regarding your wallet: as per Chia 1.3+, you can run your wallet without a full node. This way, your wallet doesn't rely on your own full node to sync, but instead uses the whole network. Your wallet won't use and won't trust our community node. Instead, wallets will switch to 'trustless mode' and do a P2P sync from the network for the wallet data.

If you have any suggestions or critiques, please reach out to us in our discord, so that we can continue to improve this.

poolinfo/join/communitynode.1655581746.txt.gz · Last modified: 2022/06/18 19:49 by earl

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki