forks - guydavis/machinaris GitHub Wiki

2023-05-04: Chia v1.8.0 included critical security patches, which implies the security holes are likely in every single Chia blockchain fork that hasn't yet synced to the latest source from CNI. As such, I recommend extreme caution if running any out-of-date blockchain fork below.

The Chia blockchain is the largest by netspace-size, but there are many other blockchains which can be farmed using Machinaris. While farming Chia is required, you are free to pick and choose which other blockchains to run... all, some, or none... up to you.

Most support farming the same plot files as the main Chia blockchain, in which case the same mnemonic key is required by each blockchain's fullnode container to farm those plots. A smaller group of blockchains use their own plot files and are independent of the Chia blockchain entirely.

Which should you farm? That's up to you of course. Check out current prices and run some calculations. Also be mindful, some blockchains are lagging months behind Chia now, so are less efficient, requiring a lot more CPU and/or memory. Examples of such old forks include: Cryptodoge, Ecostake, Flora, Gold, HDDCoin, Mint, N-Chain, Profit, Petroleum, Staicoin, Stor, and Silicoin.

Farm Chia Plots

These forks all can farm the same uncompressed plots (k32, k33, k34, etc) that you are farming on the main Chia blockchain. As such, by default they are configured to same plot directories as the main Machinaris container (with Chia).

Even Chia portable plots (aka NFT) can be farmed on these blockchains. Keep in mind that the 7/8 pool reward in that case does eventually get to you, but takes a week. Machinaris automatically performs a reward recovery using the fd-cli script for each blockchain twice daily. See log at ~/.machinaris-FORK/machinaris/logs/fd-cli.log. However, you are welcome to execute it yourself as well, through the All the Blocks - NFT Recovery site.

The Chia network port is tcp/8444, but each fork has its own:

  • Apple - port-forward: tcp/26666
  • Ballcoin - port-forward: tcp/38888 - dead fork?
  • BPX - port-forward: tcp/27911 - dead fork?
  • BTCGreen - port-forward: tcp/9282 - dead fork?
  • Cactus - port-forward: tcp/11444
  • Chinilla - port-forward: tcp/43444 - dead fork?
  • Coffee - port-forward: tcp/33844 - dead fork?
  • Cryptodoge - port-forward: tcp/15994 - dead fork?
  • Ecostake - port-forward: tcp/38444 - dead fork?
  • Flax - port-forward: tcp/6888
  • GreenBTC - port-forward: tcp/23333
  • Gold - port-forward: tcp/14444 - dead fork?
  • Flora - port-forward: tcp/18644 - dead fork?
  • HDDCoin - port-forward: tcp/28444
  • Littlelambocoin - port-forward: tcp/18981 - dead fork?
  • Maize - port-forward: tcp/8644 - dead fork?
  • Mint - port-forward: tcp/29222 - dead fork?
  • Moon - port-forward: tcp/26888
  • NChain - port-forward: tcp/58445 - dead fork?
  • One - port-forward: tcp/11111
  • Petroleum - port-forward: tcp/33344 - dead fork?
  • Profit - port-forward: tcp/48444 - dead fork?
  • SHIBGreen - port-forward: tcp/7442 - dead fork?
  • Silicoin - port-forward: tcp/22222 - dead fork?
  • Staicoin - port-forward: tcp/1999
  • Stor - port-forward: tcp/8668 - dead fork?
  • Tad - port-forward: tcp/4044 - dead fork?
  • Wheat - port-forward: tcp/21333

Farm Own Plots

These blockchains are different from the Chia blockchain, in that they use their own plots. These full-nodes cannot farm regular Chia plots on their blockchains. By default, Machinaris recommends placing these plots in a child-folder of your main Chia plot locations on each drive/volume. This helps to keep them separate. One interesting use-case is to fill up the remaining disk space on a drive with smaller plots, when a single Chia plot more will not fit.

Also, the default Settings | Plotting page for these forks use different configuration settings which emphasize the use of the madmax plotter at smaller k sizes such as k29, k30, and k31.

  • Chives - port-forward: tcp/9699
  • Gigahorse - port-forward: tcp/8444
  • MMX - port-forward: tcp/12339

FAQ

How do I test port-forwards?

You can use the Machinaris WebUI - Connections page, select the fork's tab, then click 'Check Port Forward' button.

How do I add connections?

To speed up your initial sync of a fork, you can use the Machinaris WebUI - Connections page, select the fork's tab and click 'Add Node Peers' button at the bottom. This will automatically connect your fullnode with about 10 peers, pulled from AllTheBlocks.

How much memory is required?

Each Machinaris fullnode container for a given blockchain fork will need between 3-4 GB of memory to participate in that blockchain's network. Please see this discussion. Forks still running the older v1 Chia database format seem to require more memory as they are at least 6 months behind improvements in recent versions of Chia. Run old code forks such as Flora, HDDCoin, NChain, Silicoin, and Stor with their above average memory requirements in mind.

Based on your available compute resources, you should pick only the forks (above) you want to run.

Please note that one can deploy the Machinaris fullnode for forks such as Flax, Flora, Cactus, etc. on machines other than the main Machinaris controller (aka Chia fullnode). It's not necessary for the fullnode containers to all run on the same machine. Just set the controller_host env var of the fullnode fork container to point to the main Machinaris controller.

Database Upgrade

Some, but not all, Chia forks also offer the newer blockchain database format named v2, which replaces the older v1 format. The newer format takes less space on disk, so is recommended.

For a particular blockchain, visit the Warnings pane of the individual fullnode, by clicking into the worker from the table on main Workers page. If a v1 database is present and a v2 database is probably supported, a warning will be shown there.

To upgrade, first ensure you have at least double the current drive space available as is being used by the ~/.machinaris/ folder. Then open a shell into the Machinaris container with docker exec -it machinaris-FORK bash or equivalent. Then:

FORK db upgrade
FORK start farmer -r

The upgrade command will run for an hour or more. When it successfully completes, restart the farming services on your fullnode with the second command. Once you verify that everything is running fine with a chia farm summary, you can delete the old v1 database files found in ~/.machinaris/FORK/mainnet/db/ folder. (Replace 'FORK' with the blockchain name such as 'flax')

Running a Timelord

Some of the blockchain forks fail to attract enough interest to have multiple reliable timelords running across the network. If you would to contribute CPU power to a particular blockchain network, you can run a timelord by simply setting the mode environment variable of your Machinaris FORK fullnode to fullnode,timelord from the default value of just fullnode. This optional change will build timelord binaries and launch on container start, alongside the other fullnode services (farming, harvesting, wallet). NOTE: Running a timelord is very CPU-intensive!

Removing a Fork

To remove a blockchain fork you no longer wish to run:

  1. Stop the Machinaris fork container on the machine running it. For example, machinaris-btcgreen
  2. Remove the local appdata with with rm -rf ~/.machinaris/machinaris-btcgreen (or rm -rf /mnt/user/appdata/machinaris-btcgreen on Unraid)
  3. In the Machinaris WebUI, visit the Workers page (left-side menu). Find the worker row for the machine/blockchain you just stopped. Select the row-by clicking the checkbox on the left of the row. Then click the 'Remove Selected' button at the bottom of the table to expunge all records about this worker.
⚠️ **GitHub.com Fallback** ⚠️