/
Sumeragi Error Handling
Sumeragi Error Handling
For error handling, you also need to add:
- CreateLeaderSuspect/SignLeaderSuspect
- CreateCommitTimout/SignCommitTimeout
- CreateVotingTimeout/SignVotingTimeout
Here is some info about each:
LeaderSuspect
- f+1 signatures are needed to elect a new leader
- used when someone sends a tx to the leader but a new block is not created within some expected time (like the block time)
CommitTimout
- f+1 signatures are needed and if f+1 are received on this message, the f+1 signatures and the block hash are written into the successfully created block; this is done to prevent forking of stake via a committed block withholding attack
- every time a peer votes for a block, they expect a commit message within a certain amount of time and this timeout occurs if they don't get a commit message when expected; the solution is therefore to invalidate their vote and the old block and elect a new leader and proxy tail (probably randomly recording everyone so that a new leader and new proxy tail are elected is good. obviously any random reordering needs to be deterministic as every peer will need to compute the new order independently)
VotingTimeout
- this message can only be created by the proxy tail
- the proxy tail starts a timer when they receive first vote or block proposal and if the 2f+1 votes for a block are not all received before the timer goes off, the proxy tail creates this voting timeout and sends it to all the peers
- we MAY be able to get rid of this as a separate type as the commit timeout should handle this as well; let's explore this simplification
, multiple selections available,
Related content
Consensus API
Consensus API
More like this
2020-04-23 Iroha 2 status meeting notes
2020-04-23 Iroha 2 status meeting notes
More like this
Blocks sign off
Blocks sign off
More like this
P2P network
P2P network
More like this
Pending and MST transactions sharing between peers
Pending and MST transactions sharing between peers
More like this
2020-06-18 Meeting notes
2020-06-18 Meeting notes
More like this