Farming on many machines
- Beginners Guide
- Install instructions
- Quick Start Guide
- FAQ - Frequently Asked Questions
- Pooling FAQ
- Pooling User Guide
- Chia Project FAQ
- Plotting Basics
- Alternate Plotters
- Plot Sizes (k-sizes)
- CLI Commands Reference
- Windows Tips & Tricks
- How to Check if Everything is Working (or Not)
- SSD Endurance - Info on SSD's and plotting
- Reference Plotting Hardware
- Reference Farming Hardware
- Farming on Many Machines
- Good Security Practices on Many Machines
- Chialisp Documentation (Official)
- How to Connect to Testnet
- Timelords and Cluster Timelords
- Release Notes
- RPC Interfaces
- Resolve Sync Issues - Port 8444
Clone this wiki locally
Another title for this:
This guide allows you to run a harvester on each machine, without having to run a full node, wallet, and farmer on each one. This keeps your system simpler, uses less bandwidth, space, CPU, and also keeps your keys safer. It also makes your overall farm quicker and more efficient when replying to challenges.
The architecture is composed of one main machine which runs the farmer, full node, and wallet, and other machines which run only the harvester. Only your main machine will connect to the Chia network.
To secure communication between your harvester and main machine, TLS is used where your main machine will be the private Certification Authority (CA) that signs all certificates. Each harvester must have its own signed certificate to properly communicate with your main machine.
_____ Harvester 1 (certificate A) / other network peers -------- Main machine (CA) ------ Harvester 2 (certificate B) \_____ Harvester 3 (certificate C)
- First, make sure Chia is installed on all machines and initialized by running the CLI
- When creating plots on the other harvesters, use
chia plots create -f farmer_key -p pool_key, inserting the farmer and pool keys from your main machine. Alternatively, you could copy your private keys over by using
chia keys add, but this is less secure. After creating a plot, run
chia plots checkto ensure everything is working correctly.
- Make a copy of your main machine CA directory located in
~/.chia/mainnet/config/ssl/cato be accessible by your harvester machines; you can share the
ssl/cadirectory on a network drive, USB key, or do a network copy to each harvester. Be aware that major updates might need you to copy the new
cacontents. Verify that the harvester does not report SSL errors on connections attempts.
Then for each harvester, follow these steps:
NOTE: For step 4, you are using a copy of your
/ca directory from your main machine temporarily. DO NOT replace the
/ca folder on your harvester. Put the
/ca directory into a temp folder on your harvester. You're going to show your harvester these files temporarily and then you can delete the
/ca directory in your temp folder.
- Make sure your main machines IP address on port 8447 is accessible by your harvester machines
- Shut down all chia daemon processes with
chia stop all -d
- Make a backup of any settings in your harvester
chia init -c [directory]on your harvester, where
[directory]is the copy of your main machine
/cadirectory that you put in a temp folder. This command creates a new certificate signed by your main machine's CA.
- Open the
~/.chia/mainnet/config/config.yamlfile in each harvester, and enter your main machine's IP address in the remote
harvester's farmer_peer section (NOT
harvester: chia_ssl_ca: crt: config/ssl/ca/chia_ca.crt key: config/ssl/ca/chia_ca.key farmer_peer: host: Main.Machine.IP port: 8447
For example, this section would look like:
harvester: chia_ssl_ca: crt: config/ssl/ca/chia_ca.crt key: config/ssl/ca/chia_ca.key farmer_peer: host: 192.168.1.23 port: 8447
- Launch the harvester by running CLI
chia start harvester -rand you should see a new connection on your main machine in your INFO level logs.
- To stop the harvester, you run CLI
chia stop harvester
You cannot copy the entire
config/ssl directory from one machine to another. Each harvester must have a different set of TLS certificates for your main machine to recognize it as different harvesters. Unintended bugs can occur, including harvesters failing to work properly when the same certificates are shared among different machines.
Since beta27, the CA files are copied to each harvester, as the daemon currently needs it to startup correctly. This is not ideal, and a new way to distribute certificates will be implemented in a subsequent release post mainnet launch. Please be careful when running your harvester that is accessible from the open internet.
The GUI show harvester plots after running some minutes. The easiest way to see if it's working is to go the "Farm" tab, and check the "Last Attempted Proofs" pane. Here you should see the different harvesters reporting scans like 0/26 1/412 3/864, on an average of every 10~ second.
chia farm summary will list remote harvesters after some minutes.
If you need to debug, you can set the logging level to DEBUG, with
chia configure --log-level DEBUG, or by setting your logging level to
DEBUG in your
config.yaml on your main machine and restart Chia farmer
chia start -r farmer. Now you can check the log
~/.chia/mainnet/log/debug.log and see if you get messages like the following:
[time stamp] farmer farmer_server : DEBUG -> new_signage_point_harvester to peer [harvester IP address] [peer id - 64 char hexadecimal] [time stamp] farmer farmer_server : DEBUG <- farming_info from peer [peer id - 64 char hexadecimal] [harvester IP address] [time stamp] farmer farmer_server : DEBUG <- new_proof_of_space from peer [peer id - 64 char hexadecimal] [harvester IP address]
new_signage_point_harvester message states the farmer sent a challenge to your harvester and the incoming
farming_info message indicates a response. The
new_proof_of_space message states the harvester found a proof for the challenge. You will get more
farming_info messages than
Here's how to find your logs: Where to Find Things