User Tools

Site Tools


poolinfo:community_node

Farming using the Spacefarmers 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 its mempool (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 stay connected to a full node without noticeable disruption. You can check out community node stats on this dedicated page.

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 of our backend nodes go down at the same time, there is enough capacity left on the other nodes to serve all connected farmers.

How to connect

In order to use our community node, you need to pool with SpaceFarmers.io and submit valid partials once in a while. You might lose your connection with the community node otherwise!

Chia 1.3.0 and up is required! Find the latest version of Chia here.

  1. Stop Chia by closing the GUI or running chia stop all -d in the CLI.
  2. Find the Chia config.yaml. For Linux it's located in:
    $HOME/.chia/mainnet/config/

    Using Windows it's located in:

    C:\Users\<yourusername\.chia\mainnet\config
  3. Search for the following entry:
    farmer:
      full_node_peers:
        - host: localhost
          port: 8444
  4. Update the host and port fields according to your Chia client version:
    Chia Official Host Port
    Chia >= 2.2.0 community-node.spacefarmers.io 8444
    Chia >= 2.1.0 < 2.2.x (legacy) community-node.spacefarmers.io 18444
    GigaHorse Farmer Host Port
    Gigahorse 3.0 >= 2.2.1.giga33 community-node.spacefarmers.io 8445
    Gigahorse 2.0 >= 2.1.1.giga22 < 2.2.x (legacy) community-node.spacefarmers.io 18445

    For instance, if you are using Chia 2.2.1, the entry should resemble this:

    farmer:
      full_node_peers:
        - host: community-node.spacefarmers.io
          port: 8444
  5. For those using IPv6, it's advised to set prefer_ipv6 to true as follows:
    prefer_ipv6: true
  6. You can now start just the farmer (without local full node). CLI:
    chia start farmer-only harvester
  7. (Optional) If you want to use a wallet as well, make sure your config.yaml allows the wallet to connect to other (“unknown”) peers/nodes (as you won't have a “known” and trusted local peer/node running):
    wallet:
      connect_to_unknown_peers: true

    After that, you can start the wallet. CLI: chia start wallet

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/community_node.txt · Last modified: 2024/04/07 13:21 by earl

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki