https://github.com/paritytech/rhododendron
Asynchronously safe BFT consensus, implementation in Rust
https://github.com/paritytech/rhododendron
Last synced: 5 months ago
JSON representation
Asynchronously safe BFT consensus, implementation in Rust
- Host: GitHub
- URL: https://github.com/paritytech/rhododendron
- Owner: paritytech
- License: gpl-3.0
- Archived: true
- Created: 2018-07-06T09:09:44.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-07-30T10:59:08.000Z (over 6 years ago)
- Last Synced: 2025-07-09T00:20:17.056Z (6 months ago)
- Language: Rust
- Size: 56.6 KB
- Stars: 35
- Watchers: 9
- Forks: 13
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Rhododendron
Futures-based BFT in Rust. Mostly works, but not ready for production.
Most of the work is done with the `agree` function:
```rust
pub fn agree(context: C, nodes: usize, max_faulty: usize, input: I, output: O)
-> Agreement
{
// ...
}
```
There are three parts to invoking `agree`:
- A `Context`, encapsulating value type to be agreed upon, as well as generation, evaluation, and signatures on values.
- An input stream of messages from other nodes.
- An output sink of messages which will reach all other honest nodes.
This yields an `Agreement` which can be run on an event loop to completion.