fedimint_aleph_bft/
lib.rs

1//! Implements the Aleph BFT Consensus protocol as a "finality gadget". The [Member] struct
2//! requires access to a network layer, a cryptographic primitive, and a data provider that
3//! gives appropriate access to the set of available data that we need to make consensus on.
4
5mod alerts;
6mod config;
7mod consensus;
8mod creation;
9mod extension;
10mod member;
11mod network;
12mod reconstruction;
13mod runway;
14mod terminator;
15mod units;
16
17mod backup;
18mod task_queue;
19#[cfg(test)]
20mod testing;
21
22pub use aleph_bft_types::{
23    Data, DataProvider, FinalizationHandler, Hasher, IncompleteMultisignatureError, Index, Indexed,
24    Keychain, MultiKeychain, Multisigned, Network, NodeCount, NodeIndex, NodeMap, NodeSubset,
25    PartialMultisignature, PartiallyMultisigned, Recipient, Round, SessionId, Signable, Signature,
26    SignatureError, SignatureSet, Signed, SpawnHandle, TaskHandle, UncheckedSigned,
27};
28pub use backup::{BackupReader, BackupWriter};
29pub use config::{
30    create_config, default_config, default_delay_config, exponential_slowdown, Config, DelayConfig,
31};
32pub use member::{run_session, LocalIO};
33pub use network::NetworkData;
34pub use terminator::{handle_task_termination, Terminator};
35
36type Receiver<T> = futures::channel::mpsc::UnboundedReceiver<T>;
37type Sender<T> = futures::channel::mpsc::UnboundedSender<T>;