11 unstable releases (5 breaking)
0.7.0 | Jul 30, 2019 |
---|---|
0.6.0 | Jun 25, 2019 |
0.5.0 | Jan 29, 2019 |
0.4.0 | Oct 11, 2018 |
0.2.0 | Jul 6, 2018 |
#23 in #proposal
89 downloads per month
73KB
2K
SLoC
Rhododendron
Futures-based BFT in Rust. Mostly works, but not ready for production.
Most of the work is done with the agree
function:
pub fn agree<C: Context, I, O>(context: C, nodes: usize, max_faulty: usize, input: I, output: O)
-> Agreement<C, I, O>
{
// ...
}
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.
Dependencies
~2.5–9MB
~75K SLoC