Revisiting Flexfarmer five months later – efficient Chia farming on Raspberry Pi and more

This is another piece on a part of the Chia and cryptocurrency landscapes. See previous posts at https://rsts11.com/crypto

Back in August 2021, I wrote here about Increasing Chia farmer efficiency with Flexpool’s new FlexFarmer. I was alpha testing on Windows, Linux, and a Rock64 Pi-like computer before that, and I found that it was quite efficient, handling my 90TB farm easily on any platform without breaking a sweat, and carving around 100 watts off the power I needed to keep a dedicated farmer going.

Five months and several versions later, I wanted to come back with my experience and observations since then. I’ll also answer a couple of frequently answered questions here, for those of you who have common questions.

Disclosure: I still work for Flexpool as of this writing, 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 asked to write this post.

Quick Flexfarmer recap

The basics are the same. With a tiny distributed binary and config file (under 10MB download) and the specifics of your PlotNFT in Chia (farmer secret key, launcher ID, payout address), at least one plot, you can start farming Chia without a fully synced node (which could save you over a week on a Pi-class machine, and at least a day or more on a more full-size PC).

Want to build a compact, inexpensive machine for farming? Read my three suggestions from a January 2022 post.

With Flexfarmer, you get reported space (not just calculated/estimated), easy worker naming, flexible control of reward payout address, no need to have wallet keys or a wallet at all on the farmers (so a cold wallet is practical again), and no real need for more than 100MB of RAM or so even into the hundreds of terabytes. You also get automatic region failover in case the pool server you’re connected to is unavailable or inaccessible.

You do still need a fully synced node to create a PlotNFT, join it to Flexpool, and extract your Farmer Secret Key to sign blocks and partials. That may change someday soon though. #spoilers

And you do still need to be farming to Flexpool. The Flexfarmer architecture requires connection to a blockchain bridge that is only available on Flexpool, so other pools will not be able to use it unless they write a compatible bridge themselves. You can’t farm OG (non-portable/non-plotting-protocol) plots to an official pool protocol pool, so it won’t replace Chia software for your pre-July plots.

But once you get going, you’re good for a while. Software updates come out when a bug is found or a new feature is introduced, like Discord integration, API changes, DNS-over-HTTPS (hi Chinese mainland farmers)

What’s new?

As of this writing (mid-January 2022), we’re on version 2.0.3, with support for pretty much any platform that has Golang libraries available. Most of you will be looking at Windows x86/x64, Linux x86/x64, and Linux arm64 (Raspberry Pi 4 et al), although Linux arm32 (Pi3 and Pi Zero), Mac OS, and over a dozen more esoteric builds (OpenBSD mips64, Solaris amd64, Linux s390x and risc64) are available, as well as a standard Docker container on Dockerhub that does very well on Synology NASes.

As hinted above, some of the newer features have improved plot change detection on certain filesystems, meaning the client picks up on added, moved, and removed plots better. It’s still not perfect, as some OSes and filesystems are better than others at filesystem notifies.

Also, with certain constraints being provided to Chinese miners, a recent version includes DNS-over-HTTPS support so that it’s harder for government-controlled ISPs to block or poison resolution of farming pools.

You also get Discord webhooks, concurrency limitation, an easter egg I pushed for (that you’ll see if you farm a block for the pool), and large plot support (k33 and above).

And after months of confusion, the Chia Network team has accepted that the use of the farmer secret key doesn’t change who farms the block, or put the farmer’s wallet in peril. This isn’t a code feature, but after months of people claiming that the signing key for blocks could be used to steal funds from the wallet, it was nice to see this clarification last month on Reddit.

So how do I get started?

First, start syncing your full node, probably on a bigger computer like your desktop or plotter, if you haven’t already. This requires installing the Chia software and running it until the blockchain database is up to date, as well as the wallet database. if you need to do any of the prep steps, do them when practical: create a PlotNFT, join it to Flexpool, create your plots, and put them somewhere your farming machine can get to them.

Raspberry Pi server hanging by the Ethernet cable

Actual full Chia node and flexfarmer system, currently running on one of my networks. This mounting method is not recommended though.

While that’s happening, pick your farming machine. This can be anything from a Raspberry Pi Zero to a huge server, but you’ll probably want the lower end of that wide spectrum. Get an OS on it (I recommend Ubuntu Server), put it somewhere it won’t fall on the floor or get attacked by pets or children.

Download the Flexfarmer software from the flexpool.io get started page. Extract it on your farming machine. Use the instructions on the get started page to extract your farmer secret key from your keychain on the full node

You’ll also want to get your payout address and launcher id via “chia plotnft show” or the GUI on the client from Chia Network. You will probably have to wait for your node to fully sync before you can do this.

With this info in hand, we’re ready to create/modify the config.yml file.

plot_directories:
- /mnt/usb1/
- /mnt/usb2/
farmer_secret_key: "SECRET_KEY_HERE" # Used to sign partials & blocks
launcher_id: "LAUNCHER_ID_HERE"
worker_name: WORKERNAME
region: us-west
payout_address: YOUR_WALLET_ADDRESS_HERE
log_file_path: /home/ubuntu/flexfarmer/flexfarmer.log
license: true

Above is an example from my running Pi farmer, and a slightly easier to copy and paste version in case you want to start from this. You can also just enter the relevant info in the sample file. You can change the region name if you want, but any of the four regions (us-east, us-west, de, sg) should be fine from anywhere with a reasonable Internet connection.

When this is all ready to go, the command to start farming is pretty easy. On Linux and other UNIX type operating systems (Mac OS, Solaris, OpenBSD, FreeBSD, etc):

./flexfarmer -c ./config.yml

Or on Windows:

.\flexfarmer.exe -c .\config.yml

You should see something like this:

And once you see a line that says “Partial accepted” you know you’re submitting work to the pool.

So what about those frequently asked questions?

First, yes, you need to have a fully synced node to get the config parameters required for Flexfarmer. You don’t need it running for farming, for earning, or for payouts.

Second, yes, you can shut off the node after you get that info, or you can keep it running to help strengthen the network. I wrote recently about some low power full node options that you might consider. You can even run flexfarmer on a full node (even the Pi 4b 4GB versions), just don’t farm the same plots on Chia Network software and Flexfarmer at the same time or you’ll get a lot of duplicates or stale partials.

There are some common errors that will come up. If you get a few of these here and there, it’s normal and not a big issue. For example,

Duplicate partial, ensure that only ONE farmer instance is running with these plots

Partial rejected ... error=pool error: 1 Requested signage point was reverted

The Chia Network is unstable - Challenge Chain reorganization detected. Duplicate partials may occur.

Out of the last 614,059 signage points, I’ve seen 291 duplicate partials, 231 signage point reverted, and 1058 Challenge Chain messages. If you’re under 1%, it’s probably just normal chain operation.

Difficulty by default is 1, and for most farmers this is not a problem (it improves the granularity of your statistics, and doesn’t use a lot more energy on a properly configured farm). If you have larger plots, you’ll see higher difficulty (any k33 plots will push you to difficulty 2, k34 to 3, and so forth).

Flexpool recently added a feature to the Chia dashboard to set your difficulty. If you really want it higher and know what you’re doing, you can give that a try. You probably don’t need to.

Since there’s no practical way for the pool staff to verify ownership of a wallet, you can’t merge or transfer balances between Chia payout addresses on the pool. Since there are no fees at this time for payouts, you can pay out as low as 0.01 XCH at any time and change addresses if desired.

Where do we go from here?

I’m working on planning to stop procrastinating moving my farm in from the garage to a shelf near my “stage” desk (the sit/stand desk near the coffeemaker and beer fridge, that I use for any video meetings). I found an older NUC under the television downstairs that will probably become my farming machine for the big cluster, and maybe I’ll get Chia moved off of my Synology NASes someday so they can be used for normal stuff again.

Three ways to build low profile Chia (and forks) nodes

This is another piece on a part of the Chia and cryptocurrency landscapes. See previous posts at https://rsts11.com/crypto

Need to set up a lightweight VPN to get into your low profile node remotely? Check out Stephen Foskett’s writeup on Zerotier. I’m using it on my Pi nodes to reduce NAT layers.

Many if not most Chia farmers run a full node on their farming / plotting machine. Some larger farms will use the remote harvester model, with a single full node and several machines farming plots on local storage. 

If you’re using Flexfarmer from Flexpool, or just want a supplemental node (maybe to speed up your own resyncing, or to supplement decentralization on the Chia network), you might want a dedicated node that doesn’t farm or plot. And for that use case, you don’t really need dual EPYC or AMD Threadripper machines. 

In fact, a well-planned Raspberry Pi 4B 4GB or 8GB system, with an external USB drive, will do quite well for this use. If you want to do a few forks as well, or another blockchain full node, a moderately-recent Intel NUC would do quite well for not much more. 

So here we’ll look at three builds to get you going. Note that any of these can run a full node plus Flexfarmer if you want, or just a full node. 

If you don’t already have Chia software and a full node installed, go ahead and install and sync the node on a full scale PC. it may save you five days of waiting. My original build for this use case was to test the blockchain syncing time from scratch.

Syncing from a semi-optimal Pi 4B from scratch took about 8 days, for what it’s worth. One member of the Chia public Keybase forum reported about 28 hours to sync on an Intel Core i5 12600k. 

Caveat: Raspberry Pi boards are a bit more challenging to find and even harder to find anywhere near the frequently-touted $35 price point, or even under $150. And for Chia nodes, you want a minimum of the 4GB Pi 4B (8GB wouldn’t hurt). So while it’s possible to run on older hardware, it’s not recommended.

 

You might also be able to run on a Pi400 (the Raspberry Pi 4B in a keyboard case, which is much easier to find for $100 or so, complete). I plan to test this soon.

 

Raspberry Pi with external USB SSD. 

This was my initial build, and today it’s running at the Andromedary Instinct providing an accessible full node for about 10-15 watts maximum. 

Continue reading

My 2021 Amazon order highlights

As usual, I’ve reused and recycled way too many Amazon Prime packages this year. I’m going to #thread my top 10 purchases in 2021.

These are items I have actually purchased with my own money during 2021. Photos are of the actual items in my possession (I may go back and add obvious stock photos later for the items I didn’t catch in action). .

No seller or manufacturer has asked for a review, provided any incentives, or otherwise interfered with these orders or this post. If you buy through my links here, I may receive a commission.

In no particular order….

Continue reading

Turnkey Chia farming with Evergreen Miner, and making your own compact farmer

Disclosures at the end, as usual

A few years ago, a turnkey desktop container/VM platform from Antsle came along, and I thought “this is cool, but I bet I could make one myself.” You can read about that here on rsts11.

Earlier this month I saw a low power Pi-based project similar to the Antsle Nano (which I did build on my own) come out for Chia farming. The project, Evergreen Miner (evergreenminer.com), is the brainchild of a young geek named Dylan Rose who’s worked with Amazon and other companies and has begun an interesting forward-looking Chia project to really bring Chia farming to the masses.

I’ve written about building your own Chia system, and lots of people (tens of thousands at least) have done so. But some people aren’t up for the space, expense, time, tuning, software building, and so forth to make a node and farm.

However, a lot of people could benefit from the technology and platform and even more into the future as the ecosystem matures. So the idea of a turnkey platform that’s relatively easy to build and maintain and expand, even without plotting on your own, sounds pretty good.

Think all of the functionality and potential of Chia, with the ease of setup and management of a typical mobile app, and of course the power draw of an LED light bulb or two. No hardware or Linux or filesystem or SAS knowledge required.

Continue reading

Titanic, Hindenberg, and My Management Mindset

As some of my readers know, I’ve taken the last year off from the corporate world. I’ve done some things on my own, sold some things on eBay, and worked as a contractor for a mining pool. Now that I’m back into interviews, one thing I get asked more than ever before is about my management style.

I prefer to think of it as a management mindset, as the style would adjust to each minion’s needs and “work language” for lack of a better term. And despite relatively little formal management training, I’ve come to a coherent and occasionally appreciated position.

You can only be as good a manager as your manager is to you.

A large part of team management is proxying in both directions between the people who report to you, and the person or people you report to. Your reach and control is probably limited — you can’t usually spend more than the budget allows on salary, or eliminate 7am calls for your west coast team because a manager three levels up wants 10am meetings from his east coast office.

But on a more granular level, if your own manager isn’t supportive of what you need for your employees, there’s only so much you can do to make that happen. This is often because your manager’s manager is limited, and on up many levels.

This can be an uncomfortable maxim to present to a prospective or current manager, as some will take it as a personal affront. But good managers (leaders) will understand that it’s reality, and they can’t do more for you than their manager permits (generally speaking). They probably know it even if they haven’t specifically thought about it.

Continue reading