Increasing Chia farmer efficiency with Flexpool’s new ‘FlexFarmer’

You’ve probably seen my previous Chia posts, including how to build an efficient but sufficiently beefy plotter/farmer. As a long-time datacenter guy, I like building affordable, powerful servers.

Chia-specific cryptocurrency posts

However, as many farmers have found, if you plot and farm on the same machine, I/O can impact your farming performance, whether it’s disk I/O within the box, or writing off to a network share somewhere.

On top of that, you have to maintain a full Chia node, and optimally set up distributed harvesting with a somewhat complicated process. The full node currently requires about 13GB of local storage and frequent writes, so a Raspberry Pi or the like with an SD card is suboptimal. This also requires up to two days (for most computers) to sync the node initially, during which time you’re not at your best as a farmer.

Imagine if you could farm with the plots you have, using a tiny computer with very little CPU / RAM / storage requirements, without running and maintaining a full node, and saving 100W or more in the process.

Flexpool has just released their ‘FlexFarmer’ program which does just that.

Disclosure: I do work for Flexpool, but this post is based on my experience, not a press release or the pool admin’s expectations. Some of the testing I did was “on the clock” alongside support tasks, but I was not paid or required to write this post.

What does FlexFarmer do?

At a high level, FlexFarmer communicates with a node proxy on the pool server to communicate work and space, instead of requiring a local full node to operate. This means that anything that would require a full Chia node is handled on a powerful, resilient node at the Flexpool end.

You do still need to install the full Chia software to create your wallet. There will probably be ways around this in the future. You will also want a more formidable system for plotting, as the Raspberry Pi isn’t good for more than 1-2 plots a day.

FlexFarmer configuration file, redacted as appropriate

You download and install a binary called ‘FlexFarmer’ on your system, use a python script to get your farmer private key (used for validating partials and signing new blocks), and configure the farmer with a YAML file (above) with details like your farmer private key, your payout address, a system name (much better than the hexadecimal defaults), and where FlexFarmer should look for its plots.

Note that FlexFarmer only farms to flexpool. This has two considerations.

First, if you don’t pool with Flexpool, you can’t use FlexFarmer. This is easy to fix… just go to Flexpool’s Get Started page and join the pool.

Second, if your plot directories have plots from different PlotNFTs, you will get a lot of errors about the ones that aren’t compatible with Flexpool. You can ignore these errors, but I would recommend identifying the plots by pool contract and segregating them into different directories or folders (see the end of the post for more details).

For example, if you have two NFTs called Purple People-eater and Orange YougladIdidntsaybanana, you might have directories called /plots/purple and /plots/orange. In my case, the flexpool plots are in /<mountpoint>/flexpool, and solo plots in a “chia-final” directory at the same mountpoint.

Continue reading