1 unstable release
0.10.0 | Sep 29, 2023 |
---|---|
0.1.0 |
|
0.0.0-reserved |
|
#603 in Encoding
90 downloads per month
Used in 3 crates
(2 directly)
345KB
6.5K
SLoC
Provides Byzantine fault-tolerant consensus while reducing the amount of consenting nodes (replicas) required as much as possible.
Based on the paper "Efficient Byzantine Fault-Tolerance" by Veronese et al., the crate provides an implementation of a partially asynchronous Byzantine fault-tolerant atomic broadcast (BFT) algorithm. The algorithm requires n = 2t + 1 replicas in total, where t is the number of faulty replicas.
The intended way to use the library would be to create an instance of the struct [MinBft] for each replica, i.e. n instances.
Instances of the struct [MinBft] may receive and handle messages from clients, messages from peers (other replicas/instances), or timeouts using the respective function. Timeouts must be handled explicitly by calling the respective function. See the dedicated function below for further explanation.
Dependencies
~4–5.5MB
~109K SLoC