How mitum Works¶
TL;DR¶
As described in the section, “Introduction”, the mitum network consists of the multiple consensus nodes.
See also
- Standalone mode
- For development or research purpose, you can compose the network with only one node. In standalone mode, every operation will be same, even with the consensus process.
As mitum is blockchain, basically mitum network tries to store the incoming data by trusted way. This is simple process for new data.
- New message is received by one of nodes in the network.
- New message contains the user data.
- Message and it’s data are validated by the nodes.
- Each node tries to get the agreement for the new message and it’s data.
- If nodes get agreement to store new data, the new data will be established in the next block.
The important things in the process are,
- The agreement will be done by the consensus protocol, ISAAC+, and the agreement is made by voting with consensus nodes
- All the incoming message is validated by consensus nodes.
- Only agreed data is established(stored) in the block.
This is the normal process of PBFT based blockchain. Mitum follows the classic scenario of PBFT.
Uncompressed Version¶
For detailed explanation, we can assume the simple situation,
- 10 nodes:
m0
,m1
,m2
,m3
,m4
,m5
,m6
,m7
,m8
,m9
- suffrage group members: all node
- number of acting suffrage group members: 4 nodes
- Each node can reach others.
- Each node does not share the storage and network with others.
- Nodes,
m0
, … ,m8
are already working andm9
is just booted.
This example situation will be applied throughout this document.
See also
4 nodes is the minimum number of consensus nodes. The detailed mitum network will be described in the section, “Designing Network”.
See also
The detailed information about the bootstrapping mitum, will be described in the section, “”
See also
About the consensus process, the section, “Consensus Protocol, ISAAC+”.
m9
is booted¶
- After
m9
are booted, each node will check it’s current block state and environment to join the network. At this time, node also tries to check the global network consensus state, which block height and round are proceeded currently. - When everything is OK for joining consensus,
m9
joins consensus. - The next consensus voting is for the next block, which has the height,
H33
and it’s round isR0
.
New data message received¶
m9
got the new data message,B1
. It has the data,D1
.m9
tries to broadcastB1
to the other consensus nodes.- The network selects
m1
as the new proposer for the next block(H33
andR0
) m1
will propose the new proposal,P1
withB1
.- All the consensus nodes tries to establish
P1
for the next block. - To establish
m1
’sP1
, the majority should be reached for 2 steps. - When each node receives the new proposal,
P1
from the legitimated proposer, it estimatesP1
and vote onP1
. - After
P1
is passed thru SIGN and ACCEPT voting stage,P1
will be established in the next block(H33
,R0
)