-
Notifications
You must be signed in to change notification settings - Fork 101
Open
Description
Also related to issue #780,
there is something strange in the logic for avoiding nodes to accept payloads.
As I remember, this logic was also created for avoiding a node to change view if more than F
nodes are committed or lost.
This needs a double check.
neo-modules/src/DBFTPlugin/Consensus/ConsensusContext.cs
Lines 96 to 102 in c187c26
public bool NotAcceptingPayloadsDueToViewChanging => ViewChanging && !MoreThanFNodesCommittedOrLost; | |
// A possible attack can happen if the last node to commit is malicious and either sends change view after his | |
// commit to stall nodes in a higher view, or if he refuses to send recovery messages. In addition, if a node | |
// asking change views loses network or crashes and comes back when nodes are committed in more than one higher | |
// numbered view, it is possible for the node accepting recovery to commit in any of the higher views, thus | |
// potentially splitting nodes among views and stalling the network. | |
public bool MoreThanFNodesCommittedOrLost => (CountCommitted + CountFailed) > F; |
Metadata
Metadata
Assignees
Labels
No labels