This is the playbook for bootstrapping IoTeX mainnet. It is the most comprehensive collection of knowledge regarding IoTeX mainnet launch.
To being with, one should register as a delegate at the member portal, which are:
- MainNet: https://member.iotex.io/profile/name-registration
- MainNet Rehearsal: https://member-reherasal.iotex.io/profile/name-registration
- TestNet: https://member-testnet.iotex.io/profile/name-registration
Once registered, your delegate node will be displayed on https://member.iotex.io, https://member-reherasal.iotex.io or https://member-testnet.iotex.io respectively, and can be voted by voters. Make sure you have operator address (for consensus node to operate) and reward address (for getting rewards) included. They are both addresses started with io
and can be generated by ioctl. It is recommended they are different for better security.
To be concrete, there are four types of roles involved, where the latter covers the former:
- Active Consensus Delegates: the 24 nodes that are responsible for producing blocks for a certain epoch (which is one hour), selected randomly from consensus delegates
- Consensus Delegates: the top 36 delegates who get voted most
- Delegates: the candidates who received more than 2,000,000 votes and have at least 1,200,000 IOTX self-staked (i.e., staked and voted for itself).
- Candidates: all registered node.
For launching the mainnet, top 18 candidates should be participated; top 12 candidates work together with 24 robots as consensus delegates to produce blocks. Once the launching succeeded and the mainnet is stabilized, all top 36 ranked candidates will be enrolled in.
Recommended Hardware:
Server: primary server and backup server
• Memory: 16 GB of RAM
• Local Storage: 200 GB SSD with 1000+ IOPS
• Processor: 4 cores (2.4 GHz each)
• Network: 100 Mb/sec
You could run this script to get the basic hardware information. Note that slow network and slow local storage have prominent negative impact on the productivity of a node.
Please follow this guide for the basic setup of an operating node.
Once the node if fully synced, please fill in its domain name/static IP together with your contact information at here. This is for us to monitoring consensus delegates and notify you if something is wrong. DO NOT SHARE this information with anybody else!
Once the node is up and running and ranked in the top 12, it will participates the consensus. ioctl is the best tool to make sure if your node is enrolled in. If so, it starts to produce blocks starting from a certain epoch. Note that one epoch contains 360 blocks, and is roughly one hour. Each block is produced every 10 seconds and the block producer gets 16 IOTX for producing a valid block. After each epoch is done, an epoch reward of 12,500 IOTX is splitted by all delegates, proportional to their respective percentage of total votes. In addition, a foundation bonus of 2,880 IOTX is splitted by at most top 36 consensus delegates for first 8760 epochs (roughly a year).
If a node is participating consensus (as an active consensus delegate) and missed more than 2 blocks in this epoch, all its epoch reward will be slashed, although block reward (if it actually produced blocks) and foundation bonus are granted. More information can be found here.
Therefore, it is always a great practice to have multiple operating nodes up and running. One elected master participants the consensus while other slaves passively syncing. If the master fails (e.g., software crash, hardware error), one of the slaves will be automatically promoted to master and keep participating in the consensus. Please refer to this for master election and failover.
Please use ioctl tool to check and claim reward, and use iotex-tube serivce (TBD) to swap native IOTX to ERC20 IOTX for staking and trading.
Please refer to this guide to setup an infrastructure (rather than a solo node) to have high block productivity.
Please refer to this guide to setup a dashboard for monitoring your nodes.
Please refer to this guide to make sure your node is operating in a secure way.