Preliminary
- New stake: node submits staking transaction and it is committed.
- Sync pool: validator sync blocks of assigned shard.
- Pend pool: validator sync completely and ready for verifying new blocks.
- Committee: validator votes or proposes new blocks.
Life cycle
1. New Stake phase: When a staking transaction is committed, the submitted node will be in New Stake state. This new validator will be randomly assigned to a shard. In order to balance validators among shards, the shard with a smaller number of validators would have a higher probability of receiving new staking nodes.
2. Sync phase: right after the new validator gets the assigned shard, it starts to download the shard’s blocks. It sends the notification to the chain when finishing downloading the shard’s blocks. Then it’s moved to the Pending pool. The Pending pool is a first come first serve queue, the new validator will be appended to the end of the queue.
3. Pending phase: the validator keeps sync data and waits for the committee role.
4. Committee: each validator will be selected as proposer in round robin fashion, the proposer takes responsibility to propose a new block, other committee members will vote for it. At the end of the epoch, if the validator finishes the committee role, it will be appended to the end of the Pending pool queue. Or if the validator may be slashed, it’s forced to unstake, the staking PRV will be returned to the node, however, the node won’t get any reward in the last epoch.
5. Unstake: the validator could submit an unstake transaction at any time, however if the validator is assigned to a shard already, it has to wait until it finishes its committee role.
Analysis
-
Validators don’t have to sync data from all shards, this would save a lot of disk storage.
-
Can an attacker direct all of its nodes to a single share? It’s not that easy, because the random assign algorithm is to balance all shards’ validators.
-
If the attacker has ⅓ validators in a shard, it could suspend the shard by not voting in an epoch. However it’s not able to create double spending or airdrop transactions.
-
Currently, the foundation keeps the fixed proposer list in each shard, the validators are open to the community. The consensus of each block is the agreement of the foundation and community. A single side would not be successful to create any single block.
FAQ
Q: As a node operator what will I need to do to prepare for Staking v3?
A: Check that your nodes are fully synced on the node monitor (monitor.incognito.org). If an issue is found (stalling) please follow our troubleshooting guides to fix it.
Q: As a node operator what will I need to do after Staking v3 is released?
A: To get your nodes assigned to a shard; nothing. However, in order to delete unneeded shard data, it will require manual steps. A guide will be published to assist both pNode & vNode operators.
Q: Is anything changing with the way nodes unstake?
A: No, nodes with a request to unstake must still enter into committee and will be unstaked after swapping out of a shard committee.
Community questions will be added and answered here in this main post. Feel free to post questions below.
Check out our Staking Flow v3 Guide to reduce node data storage:
https://we.incognito.org/t/13811