Creating plots on multiple machines (Linux/Windows/MacOS)

Creating plots is possible to be done on different machines from where your main full node/farmer is located. This opens opportunities to use more powerful machines, do them in the cloud, have others do them for you etc.

Once the remote machine creates a plot file - you will migrate it to the final plots directory(ies) where the farmer is monitoring and will add it in the plots count.

This move can be done automatically if the remote machine has access to the final destination or by manually copying the file(s).

Confirmed working on versions:

  • 1.0.5, 1.1.0, 1.1.1, 1.1.2

Prerequisites:

  1. Install the basic Chia for your system (no GUI needed) and after you run the activate command (. ./activate) stop with the installation and proceed below.
  2. Find the farmer key and pool public key from your main chia farmer/full node (this is where you run the full node with all the plots)

chia keys show

output would be as follows:

 (venv) ubuntu@ubuntu:~/chia-blockchain$ chia keys show
  Showing all private keys:
    Fingerprint: 1795034214
    Master public key (m): 83f3aa440decb486xxfaf33d6bf48c9ea2d4b2b77bb97999926gegsg977a6de32acfe479c9fa82cf6031cc8e0c
    Master private key (m): xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    Farmer public key (m/12381/8444/0/0): a50bd3zxzdzad8e880c550a7dd9717dd238729afsafasfc674964a6bfafsafsa6c8af5afasfa4187e8
    Pool public key (m/12381/8444/1/0): 95361241b27d15abad1f30e675b1572b4124144d7ab1031afaaec0ae124safafaa95ceecf23
    First wallet key (m/12381/8444/2/0): 98fawfawb43ff5026f5a7d9d7q34345rfq696e22683655b4590qwr35f362141ar63brwqrcc0c97083
    First wallet address: xcqwrqa34yyxykz66412vasf3ch123safavczv8c5ewyq9k142faeensl123446

Linux

To run the job to create plots on a remote machine, enter the following command:

chia plots create -t /temp/dir -d /final/dir -f farmer_key -p public_pool_key

This will run 1 plot with default values (~4600 MB RAM, k32 etc.), you can add -n X where X is how many plots you want to be queued up.

For full list of flags and parameters you could use with the plots create command - please see the official chia wiki.

These commands can be executed as many times as you want or your machine(s) can handle, all the created plots can then be moved to the main farmer.

Windows

This is very basic - please other Windows users modify and expand this

To run the job in Windows - in Powershell run the following command:

start-process ./chia.exe -argumentlist "plots create -t D:\td1st -d G:\plots -f farmer_key -p pool_public_key"

This will run 1 plot with default values (~4600 MB RAM, k32 etc.), you can add -n X where X is how many plots you want to be queued up.

For full list of flags and parameters you could use with the plots create command - please see the official chia wiki.

These commands can be executed as many times as you want or your machine(s) can handle, all the created plots can then be moved to the main farmer.

MacOS

TBD

5 Likes

Awesome! I made this post into our first wiki post!

1 Like

So harvesting means “creating plots”? I get confused here because I think of harvesting as something the farmer does to test for wins?

2021-04-24T16:05:33.568 harvester chia.harvester.harvester: INFO     13 plots were eligible for farming 1c75d8d21c... Found 0 proofs. Time: 3.82808 s. Total 3922 plots
2021-04-24T16:05:35.600 harvester chia.harvester.harvester: INFO     5 plots were eligible for farming 1c75d8d21c... Found 0 proofs. Time: 2.82815 s. Total 3922 plots

These are log messages from the harvester, etc.

Same here, I find it all to be very confusing. Here’s what the Network Architecture doc says

Harvesters

Harvesters control the actual plot files by retrieving qualities or proofs from disk. Each plot file corresponds to one plot, and for each random 32 byte challenge, there is an expected value of one proof of space (although sometimes there are zero or more than one). […] For most challenges, qualities will be very low, so fetching the entire proof is not necessary. There is an upper limit of number of plots for each drive, since fetching the qualities takes time. However, since there is a constant factor in the iterations formula (each block must have a proof of time of at least around 30 seconds), disk IO times should not be a problem.

Finally, harvesters also maintain a private key for each plot. This private key is what actually signs the block, allowing farmers/harvesters (as opposed to pools) to actually control the contents of a block.

Here’s what the Chia Concensus says

Farmers

Farmers are nodes which participate in the consensus algorithm by storing plots and checking them for proofs of space. They communicate with a Full Node (usually on the same machine.) Farmers also communicate with one or more Harvesters which is a service that resides on the machine where plots are stored and looks up proofs of space on behalf of the Farmer process.

1 Like

No - you are right - I had these terms mixed at the time of writing, but in the other thread somebody explained of the harvester network and I looked more into it, I just didn’t get a chance to update this in time.

Thanks for raising the issue and the same to @zogstrip for the additional information and help.

2 Likes

I felt like I had these definitions sorted too, but reading farming on multiple machines, it refers to creating plots on other harvesters. Also, the title is ‘farming on multiple’, then opens with the line ‘this guide allows you to run a harvester on each machine…’.

Should I be confused again, or ignore it?