You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When there are Byzantine faulty nodes, the consensus process may hang under certain situation.
Specifically, when the non-faulty nodes are divided into Quorum and QuorumPossible states, respectively, and the next proposer node is one that in QuorumPossible state, the consensus process will hang. Please refer to the attached file for an example scenario with four nodes.
HydrachainProblem.pptx
We suspect that this is due to the kind-of optimization for normal cases that Hydrachain consensus introduced to BFT consensus. That is, nodes with Quorum state may commit the block directly. We propose to resolve this issue as follows. When the nodes with QuorumPossible state receive VoteNil from nodes of Quorum state (H+1), they should not ignore them, but, instead, request block-sync from those Quorum nodes so that they will reach height H+1, too.
The text was updated successfully, but these errors were encountered:
When there are Byzantine faulty nodes, the consensus process may hang under certain situation.
Specifically, when the non-faulty nodes are divided into Quorum and QuorumPossible states, respectively, and the next proposer node is one that in QuorumPossible state, the consensus process will hang. Please refer to the attached file for an example scenario with four nodes.
HydrachainProblem.pptx
We suspect that this is due to the kind-of optimization for normal cases that Hydrachain consensus introduced to BFT consensus. That is, nodes with Quorum state may commit the block directly. We propose to resolve this issue as follows. When the nodes with QuorumPossible state receive VoteNil from nodes of Quorum state (H+1), they should not ignore them, but, instead, request block-sync from those Quorum nodes so that they will reach height H+1, too.
The text was updated successfully, but these errors were encountered: