Skip to content

Byzantine faulty nodes  #83

@chenkung

Description

@chenkung

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions