10 stable releases
1.0.10 | Jun 14, 2021 |
---|---|
1.0.9 | May 31, 2021 |
1.0.8 | Mar 3, 2021 |
1.0.6 | Feb 25, 2021 |
1.0.2 | Jan 21, 2021 |
#5 in #byzantine
Used in 3 crates
565KB
735 lines
BRB: Byzantine Reliable Broadcast
MaidSafe website | Safe Network Forum |
---|
About
BRB is a Byzantine Fault Tolerant (BFT) system for achieving network agreement over eventually consistent data-type algorithms such as CRDTs.
For an overview how BRB works, please see these slides. (pdf | odp).
This crate and its related crates (brb_*
) implement a loosely-coupled Byzantine Fault Tolerant (BFT) system for achieving network agreement over eventually consistent data-type algorithms such as CRDTs.
BRB Crates
As of this writing, the crates are:
crate | description |
---|---|
brb | this crate. provides BRB implementation and BRBDataType trait that brb_dt_* crates implement |
brb_membership | BRB dynamic membership: support for peers joining and leaving a BRB group |
brb_dt_at2 | An implementation of the AT2 algorithm in a BRB DataType wrapper |
brb_dt_orswot | A BRB DataType wrapper for the Orswot CRDT algorithm in rust-crdt |
brb_dt_tree | A BRB DataType wrapper for the Tree CRDT algorithm in crdt_tree |
brb_node_qp2p | Interactive P2P node (CLI) for using BRB over Quic protocol via qp2p |
Each brb_dt_*
crate provides a particular data-type with its own operations that are wrapped in such a way that it can be transferred via BRB. At present AT2 and CRDT data types are well suited for this. We intend to wrap many such data types, with each wrapper in its own crate.
Traits
trait | description |
---|---|
BRBDataType | Data types to be secured should implement this |
Prior Work
This crate and its sibling have been broken out of the original bft-crdts crate. Additional documentation and source code can be found there.
License
This Safe Network software is dual-licensed under the Modified BSD ( https://opensource.org/licenses/BSD-3-Clause) or the MIT license ( https://opensource.org/licenses/MIT) at your option.
Contributing
Want to contribute? Great 🎉
There are many ways to give back to the project, whether it be writing new code, fixing bugs, or just reporting errors. All forms of contributions are encouraged!
For instructions on how to contribute, see our Guide to contributing.
Dependencies
~9MB
~252K SLoC