Forktools - guydavis/machinaris GitHub Wiki

Machinaris includes an enhanced version the excellent Forktools command-line tools inside each fork container. This toolset will automatically optimize certain blockchain settings, log which plots win a block, and improve memory usage of older blockchains.

To tune your blockchain, update the configuration per worker on the "Settings | Tools" page and click 'Save'. The Forktools settings will be automatically applied and the blockchain restarted in the container. Please allow 15 minutes for everything to get going again after a configuration change.

Target Peer Count

For example, don't change target_peer_count directly in the blockchain's config.yaml file. Instead change SETFNTARGETPEERCOUNT on the "Settings | Tools" page.

Why would I want to change my Target Peer Count?

  • Sometimes syncing your blockchain and wallet can take a long time. If you increase this number to 160 and add as many peer connections as you can find at AllTheBlocks, XCHForks, etc... then you may be able to increase your sync speed.
  • Whenever Chia has a Dust Storm, then your fullnode may fall out of Farming status, back into Syncing against a number of weak peers. In that case, you may want to decrease your target peer count to 20 or less, then disconnect straggling peers from the Connections page.

Reserved Cores

The Chia blockchain (and forks) default to assuming they each have full rights to all resources on the system. For example, when running many (20+) blockchain fullnodes on a machine with 24 cores and 48 GB memory, each blockchain will launch numerous full_node_worker processes, wasting memory. In that case, be sure to set the Forktools setting SETFNRESERVEDCORES.

The Chia default of zero means unlimited core usage by this blockchain, which consumes a lot of memory. To save memory when running many blockchain fullnodes on the same machine, set SETFNRESERVEDCORES to one less than your host machine's cores (including hyperthreading) which forces the blockchain to launch many fewer 'full_node_worker' processes. This change in Forktools will result in an updated reserved_cores (aka the "don't touch these cores" setting) on the Settings | Farming page.

Skip Forktools

Forktools is applied when the container launches, which means a restart of farming services occurs shortly after the container is started. If you DO NOT want to use Forktools, then you can set env var: forktools_skip_build with value true.