Node in mitum network has 5 different state.
The basic life cycle of node state is:
Booting -> Syncing -> Joining -> Consensus -> Stopped
Node decides it’s condition and transit it’s state. For example:
- Node finds it’s block state is different from majority:
Consensus -> Syncing ... -> Joining -> Consensus
- Node is not in suffrage group:
Booting -> Syncing ...
- During Joining state, node finds it’s block state is different from majority:
Joining -> Syncing ... -> Joining -> Consensus
- Node is just deployed and prepare its resources to join the network.
- The newly started node tries to sync its block state to the latest of network.
- If node can not participate consensus, that means, it is not in suffrage group, it will stay the Syncing state for syncing the latest block state.
- After node finishes Syncing, node tries to join consensus process.
- Node checks the current acting block height and round.
- If acting block height and round is acceptable to node, move to Consensus state.
- At this state, node can participate consensus process.
- By any reason when node is stopping or stopped.