Local Mining
⚠️️ Note: The instructions on this page are for CPU mining only.
The Iron Fish mainnet will have many miners and mining pools operating more powerful GPU miners. CPU mining may be useful for testing, development, and learning, but it is not recommended on mainnet.
Quick start
Start your node by running the following command:
ironfish start
Open a new terminal window and run:
ironfish miners:start
Changing the default account
If you want to use a different account to store the miners fee, you can create a new account by running the following command:
ironfish wallet:create newAccount
And then set it up as default:
ironfish wallet:use newAccount
Set block graffiti (optional)
Iron Fish blocks contain a 32-byte publicly-visible field called graffiti
that can be set by the block's miner. To set this value to a UTF-8 encoded string on the blocks you mine, update the blockGraffiti
config option:
ironfish config:set blockGraffiti "<your graffiti here>"
Join a mining pool
You can join a mining pool in order to increase your chances of mining a block. Block rewards are typically split among miners based on their respective contributions. We also run a basic mining pool on testnet that anyone can join. To get started, retrieve the public key of the account you want to use:
ironfish wallet:address
And use that public key to join the mining pool:
ironfish miners:start --pool testnet.pool.ironfish.network:9034 --address <PUBLIC KEY>
Join our Discord if you're interested in creating a different pool for Iron Fish.
Troubleshooting
My miner has been running for a long time - but I haven't mined a block yet
- Difficulty (and therefore time to mine a block) can change depending on how fast blocks are mined on the Iron Fish network.
- Make sure you are correctly connected to the Iron Fish network (you should see
Connected to the Iron Fish network
in your node logs).
Not connected to a node - waiting 5s before retrying
Make sure that your node is currently running. If you are using a different datadir
argument to start your node, make sure to use it as well when starting the miner. For example:
ironfish miners:start --datadir=~/.ironfish2/
The trees aren't the same size as the chain
- Make sure your node is synced with the network before starting the miner. Run
ironfish status
to check if your node is still syncing.