Pooling - guydavis/machinaris GitHub Wiki

Table of Contents

Official Pools

Pre-requisites:

In order to join a Chia pool, you need at least 1 mojo (0.000000000001 XCH) Copy your wallet address from the “Wallet” page. Request some mojos from a faucet. If pooling for Chives, you also need to get some mojos from their faucet.

Setup and Config

View the 'Settings | Pools' page to change your blockchain's pool selection. For a fresh installation, not a migration from another Chia product, you'll need to create a PlotNFT (needed for plotting portable plots), you MUST either choose 'Self-Pool' or 'Connect to Pool' and click the Save button at once.

Settings

To join a pool, select your preferred pool. When ready, enter your selected pool's URL into the form shown above, and select the 'Connect to pool' option. Then click Save and confirm the transaction.

Depending on how quickly the transaction to join the pool propagates on the blockchain, you may need to refresh the page every few minutes, until you see a successful PlotNFT created, joined to your selected pool.

When ready, switch to the Settings | Plotting page, and note that the following public keys should have been auto-populated into the plotman.yaml. Auto-population works if you have only created one PlotNFT. You only need one PlotNFT.

Settings

When plotting new portable plots, both farmer_pk and pool_contract_address must be set and uncommented.

If you created more than one PlotNFT (not required), then Machinaris cannot automatically populate the unique values into the Settings | Plotting page. To manually select your plotting settings, copy the Farmer public key value from Keys page. This is the farmer_pk value in your plotting settings.

On the Settings | Pools page, select the PlotNFT you want to use, then copy its Pool contract address from the Settings | Pools page and paste it into the pool_contract_address key in your Plotting settings. You must then review and Save this replacement to your Plotting settings!

Ensure pool_pk is commented out with a # symbol in your Plotting settings. pool_pk is an old approach to plotting dating back to original Chia mainnet launch. Only use pool_pk if you want to generate solo plots which can NEVER be pooled.

To learn more, read:

Multiple PlotNFTS

Machinaris recommends you only create a single PlotNFT per blockchain on a single mnemonic/key. However, multiple PlotNFTS will be displayed in Machinaris. The onus is ON YOU however to ensure you configure your preferred pool_contract_address value on the "Settings | Plotting" page. When you have only one PlotNFT, this is plotting configuration happens automatically.

FAQ

How can import my pool settings into Machinaris?

Hi! According to the Chia Pooling - User Guide, assuming that your NFT is tied to the same private key (mnemonic) you are using on both systems (including Machinaris), then just wait for the wallet to sync and check the Settings | Pools page. Can also check chia plotnft show directory on CLI too.

If your NFT is tied to a different private key (mnenomic) than the one being used by Machinaris, I think you'll either need to import it or create a new NFT for the distinct private key on Machinaris. Hope this helps!

Can I just solo-plot instead like the original launch Chia, not create portable plots?

Yes, no need to pool if you don't want. Just don't Save changes in the new Settings | Pools area... you can ignore it. In your plotman.yaml (Settings | Plotting), just be sure you have farmer_pk and pool_pk set. Leave pool_contract_address commented out and you'll continue plotting solo plots.

However, by continuing to create original solo-plots, you can't change to a pool for them in the future. So you may want to "self-pool" instead, which is to create an NFT, then chose 'Self-pool'. Those NFT plots can be farmed to a pool later if you change your mind.

I want to leave my pool!

You are welcome to self-pool, where you will keep the more infrequent rewards of your portable plots all to yourself. To change in Machinaris, visit the Settings | Pools page and choose 'Self-Pool', then click the Save button. This will issue a plotnft leave command. Click the 'View Log' button to see the command history and response.

Chia pooling commands are notoriusly flaky however so you may need to:

  1. Execute the chia plotnft leave ... command again within the Machinaris container's shell. See the log for details.
  2. Manually remove the stale pooling section from your Chia config.yaml on the Settings | Farming page. Even better is to reset your blockchain config if you are shown errors on the Pools page.

My Harvester keeps changing name on my Pool's Dashboard

As per the Chia pooling protocol, the harvester simply reports it's node_id to your particular pool (such as Flexpool, Spacepool,etc). Once you have Machinaris containers running once to either import or generate a key, you can switch over to the persistent keys to avoid the node_id changing on each restart. NOTE: It is still up to your Pooling provider to allow a friendly name on their dashboard for a worker's given node_id.

"Unconfirmed transaction" error when joining a pool

Such errors are not uncommon for the Chia pooling protocol and seem to be best ignored, after waiting a few hours. Apologies to Machinaris users are exposed to these common problems inherent in the Chia pooling protocol itself.

If after a few hours, the problem hasn't resolved itself as shown on the Settings | Pools page, click the "Delete Unconfirmed Transactions" link (right-side) and try the process again.

What about unofficial pools?

Honestly, I've never used unofficial pools such as Hpool or Foxy. However, my understanding from user reports is that any plots created by Machinaris can be used by such unofficial pools to farm. You may just need to change owner and permissions on the final plots for their farming software to farm the plots.