aleph-bft 0.45.4

AlephBFT is an asynchronous and Byzantine fault tolerant consensus protocol aimed at ordering arbitrary messages (transactions). It has been designed to continuously operate even in the harshest conditions: with no bounds on message-delivery delays and in the presence of malicious actors. This makes it an excellent fit for blockchain-related applications.
Documentation
//! Implements the Aleph BFT Consensus protocol as a "finality gadget". The [run_session] function
//! requires access to a network layer, a cryptographic primitive, and a data provider that
//! gives appropriate access to the set of available data that we need to make consensus on.

mod alerts;
mod collection;
mod config;
mod consensus;
mod creation;
mod dag;
mod dissemination;
mod extension;
mod interface;
mod network;
mod terminator;
mod units;

mod backup;
mod task_queue;
#[cfg(test)]
mod testing;

pub use aleph_bft_types::{
    Data, DataProvider, FinalizationHandler, Hasher, IncompleteMultisignatureError, Index, Indexed,
    Keychain, MultiKeychain, Multisigned, Network, NodeCount, NodeIndex, NodeMap, NodeSubset,
    OrderedUnit, PartialMultisignature, PartiallyMultisigned, Recipient, Round, SessionId,
    Signable, Signature, SignatureError, SignatureSet, Signed, SpawnHandle, TaskHandle,
    UncheckedSigned, UnitFinalizationHandler,
};
pub use config::{
    create_config, default_config, default_delay_config, exponential_slowdown, Config, DelayConfig,
};
pub use consensus::run_session;
pub use interface::LocalIO;
pub use network::NetworkData;
pub use terminator::{handle_task_termination, Terminator};

type Receiver<T> = futures::channel::mpsc::UnboundedReceiver<T>;
type Sender<T> = futures::channel::mpsc::UnboundedSender<T>;