In order to farm Chia you first need to create one or more “plots” which are files that take up space on your hard drive. The space that a plot uses is represented by the letter k.
Creating plots takes some time and CPU power. The bigger the k value the bigger the plot and the longer it takes to create. Once you have created a plot there is no difference between one k and another other than the file size.
You can move plots from one machine to another without any restrictions. Some people build dedicated plotting machines that are optimised to perform the plotting process quickly, and then move the plots to a less powerful machine to perform the harvesting.
Once you have one or more plots you are ready to start harvesting them.
Harvesting can be thought of like playing bingo. The plots are the bingo cards and the process of harvesting involves waiting for the number to be called out and checking the card to see if you have won. This is a trivial operation and uses a very small amount of electricity. You can very comfortably harvest from a Raspberry Pi.
Most of the time a harvester will not find the required value in a plot, but when it does it gets something called a “proof of space” which proves that an amount of space was allocated to a plot.
The proof of space is used to create an “unfinished” block which is propagated on the Chia network™. The block will remain unfinished until it obtains a proof of time – this is where timelords come into play.
For security reasons Chia is designed to maintain a minimum amount of time between blocks which is achieved by timelords.
Timelords are notified when unfinished blocks are submitted to the network and are able to then start working on a “proof of time”.
This proof is achieved using something called a VDF (verifiable delay function) which is a way of proving that an amount of time has been spent performing some work.
Most people will not run a timelord and do not need to understand it fully. The important thing to know is that VDF are performed sequentially which means it uses a small amount of electricity compared to other approaches.
When timelords are notified about unfinished blocks they get to decide which one to work on based on the number of VDF “iterations” required – the more iterations required the longer it will take. It is possible that a timelord receives notification of a new unfinished block after they have already started the proof of time for a different one – when this happens it will have to look at how many iterations it has already performed to decide whether to continue with the current unfinished block or to drop it and start working on the new one (because it would be quicker).
Once a timelord finishes a proof of time it gets propagated to the network and the block becomes valid. It is at this point that the lucky farmer will be rewarded with Chia.
Difficulty and weight
The number of VDF iterations that timelords must perform is influenced by a number known as “difficulty”. The purpose of this parameter is to maintain a consistent time between blocks.
Difficulty is adjusted based on the speed at which blocks are completed. If a lot of space comes onto the network this will increase the rate of new blocks and the difficulty will increase to compensate. Likewise, if a lot of space suddenly leaves the network it will cause the rate of blocks to slow down and the difficulty will be reduced to bring the network back to the expected speed.
The weight of a block is the sum of the difficulty of all blocks below it, including itself.