Hello IoTeX community! 2018 has been an eventful year for IoTeX — we built an amazing global community, developed the IoTeX root chain from scratch, listed the IOTX token on top-tier exchanges, aligned with innovative strategic partners, and much more. As we reflect on these milestones, we are also meticulously planning for the journey ahead. IoTeX’s next frontier will be the official kickoff of our Block Producers Program and launch of Mainnet Alpha in Q1 2019. In this post, we introduce our guiding principles for designing IoTeX’s governance and crypto-economics, the role of IoTeX block producers, and the initial requirements to become a block producer.
Guiding Principles for IoTeX
The IoTeX Mainnet utilizes the Roll-DPoS consensus mechanism, a more democratic version of delegated proof of stake (DPoS) with high throughput, instant finality and high resilience to network attacks. Within the IoTeX network, a committee of “block producers” are elected by token holders using a randomization algorithm to maintain the network. We strongly believe that IoTeX block producers must be deeply rooted in our community and should be passionate and experienced enough to make our decentralized ecosystem a fair and prosperous place. To this end, we use “PEGS” as our guiding principle for the design of our block producer election process and overall network governance:
- Participation and inclusivity: mechanisms will be built-in to the voting / staking process to ensure power is not centralized to a few “big player” block producers; in other words, our process will aim to prevent collusion and the formation of “cartels”.
- Evolution driven by all stakeholders: IoTeX block producers will be responsible for producing / validating new blocks and will be rewarded appropriately. In addition, block producers, together with all token holders and network contributors, will participate in network governance to make sure that IoTeX evolves with fairness and decentralization.
- Growth as a form of stake: block producers should not only consist of stakeholders with large token holdings but also those that contribute to the growth of IoTeX in other meaningful ways (e.g., community engagement, project awareness, network traffic, referrals, development of useful features and tools), especially during the initial bootstrapping phase.
- Sustainability in all circumstances: Instead of relying on inflation of native tokens, IoTeX employs a rewards scheme that is fair to block producers regardless of the market environment. Block producers will always be able to cover their hardware and maintenance costs.
Fundamentally different from proof of work (PoW) and proof of stake (PoS) schemes, Roll-DPoS allows for massive scalability while maintaining high decentralization. In Roll-DPoS, token holders take into account computational resources, tokens staked, and several other factors (e.g., contributions, reputation, network activity) when voting for the block producers of their choice. Potential block producers are rank-ordered by the amount of votes they receive, and a pool of top vote-getters (“candidates”) are deemed eligible to join the committee of block producers for the current epoch — this is what we call the “ranking scheme”.
From this pool of candidates, multiple sub-committees of block producers are randomly selected by the randomization algorithm to become block producers for the IoTeX root chain and various sub-chains. After every epoch, new sub-committees of candidates are randomly selected for block production. After being selected to a sub-committee, the primary role of an IoTeX block producer is to produce and verify blocks in exchange for rewards paid in IoTeX tokens — this is what we call the “rewarding scheme”. For more details, please see the Roll-DPoS yellow paper and this high-level video overview.
With our high quality implementation, Roll-DPoS provides the following benefits:
- A new block is produced every ~7 sec for great scalability (~3,000 TPS for each root chain and sub-chain on Testnet); block sync is fast and reliable.
- Committees responsible for “mining” the root chain and each sub-chain are randomly selected; within each committee, the order for block production is also randomized, providing high resilience to oligopolies / cartels, attacks, and network blips.
- Distinct committees are responsible for different/heterogeneous blockchains (note: this is one form of sharding). This minimizes network/computation/storage overhead for block producers. In other words, a block producer can choose to produce blocks for the blockchain that provides the highest ROI (currently the root chain) without needing to store data / maintain another blockchain it doesn’t care about.
We will share comprehensive details on the ranking scheme and the rewarding scheme in two separate blog posts soon.
Block Producer Requirements
As block production and verification in the IoTeX network is managed exclusively by a pool of block producers, it is crucial that all candidates meet specific hardware, software, and operational requirements. These minimum requirements are set based on the fact that “the network is only as strong as the weakest block producer”, and are necessary to maintain full security and high performance of the IoTeX blockchain:
- Server and backup server running IoTeX software (both with firewall)
- Memory: 16GB of RAM
- Local storage: 4TB
- CPU: 64-bit
- Processor: 8 cores, 2.4 GHz each
- Network: 100Mbps
- Linux: Debian Stretch (9)
- Go-lang: 1.10.x
- Monitoring & alerting tools (feel free to DIY)
- Node monitoring and on-call support
- 99.9% uptime, with failover across geolocations
- Data backup across geolocations
- Preventative measures to guarantee security
- Handle frequent software upgrades during the bootstrapping phase
In addition, a minimum stake of 1,200,000 IOTX tokens is required to become an IoTeX block producer. The actual amount and duration of tokens staked will ultimately impact a potential Block Producer’s ranking, as well as their associated block rewards. Please note that these are initial minimum requirements, and may be subject to change as we bootstrap the IoTeX Network.
Estimated Expenses for the first year
Server: c5.2xlarge. ~$3,000/year
Memory: st1. ~$1100/year
Band width: ~$600/year
Total (with AWS Service): <$5,000 for the first year
Interested in becoming a Block Producer?
For those interested in becoming part of the initial set of Testnet block producers, please complete this form. Later this month, we will release a more comprehensive application for Mainnet block producers. Please stay tuned to our official channels to stay in the loop!