# 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.