pbft-consensus
pbft-consensus copied to clipboard
Practical Byzantium Fault Tolerant (PBFT) algorithm
Validate commit messages in concurrently (in a separate go routine), before injecting those to the validate state queue. Only valid commit messages are pushed to the validate state queue. Points...
This PR is solution proposal for liveness issue by introducing a re-locking concept. Re-locking enables that node which has locked some proposal in some of the previous rounds, locks a...
Always send prepare message if the state is locked.
Implementation of a simplified test that proves that there is no consensus among the nodes. It creates a cluster of 5 nodes where one node is faulty (A_4). In round...
Persistence issue test where nodes can insert different proposal for the same sequence. Cluster of 5 nodes: `A_0`, `A_1`, `A_2`, `A_3`, `A_4` Flow map defined for the round 0: `A_0...
Replay messages feature now saves actions that occurred in fuzz run to a separate .flow file so that they can be simulated on replay as well. For now, only Drop...
Implementation of flow map for the communication between nodes in the cluster. Flow map is represented as a map of sender and list of receivers e.g {A_0 : [A_1, A_2,...
# Description This PR aims to add support for the Persistence Analysis issue proof from the `IBFT Analysis` [paper](https://arxiv.org/pdf/1901.07160.pdf): **Section 5 Persistence Analysis, Lemma 9 Proof** Essentially, it aims to...