Crate aleph_bft[−][src]
Expand description
Implements the Aleph BFT Consensus protocol as a “finality gadget”. The [Member] struct 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.
Modules
Reliable MultiCast - a primitive for Reliable Broadcast protocol.
Structs
Main configuration of the consensus. We refer to the documentation https://cardinal-cryptography.github.io/AlephBFT/aleph_bft_api.html Section 3.4 for a discussion of some of these parameters and their significance.
Keybox wrapper which implements MultiKeychain such that a partial multisignature is a list of signatures and a partial multisignature is considered complete if it contains more than 2N/3 signatures.
Configuration of several parameters related to delaying various tasks.
Signable data together with a complete multisignature.
NetworkData is the opaque format for all data that a committee member needs to send to other nodes.
Node count. Right now it doubles as node weight in many places in the code, in the future we might need a new type for that.
The index of a node
Error type returned when a verification of a signature fails.
A correctly signed object of type T
.
A pair consisting of an instance of the Signable
trait and an (arbitrary) signature.
Enums
Signable data together with a valid partial multisignature.
A recipient of a message, either a specific node or everyone.
Traits
Data type that we want to order.
The source of data items that consensus should order.
A hasher, used for creating identifiers for blocks or units.
Indicates that an implementor has been assigned some index.
Abstraction of the signing data and verifying signatures.
Extends KeyBox with multisigning functionalities.
Network represents an interface for sending and receiving NetworkData.
A type to which signatures can be aggregated.
Data which can be signed.
The type used as a signature.
An abstraction for an execution engine for Rust’s asynchronous tasks.
Functions
A default configuration of what the creators of this package see as optimal parameters.
Starts the consensus algorithm as an async task. It stops establishing consensus for new data items after
reaching the threshold specified in Config::max_round
or upon receiving a stop signal from exit
.
For a detailed description of the consensus implemented by run_session
see
docs for devs
or the original paper.
Type Definitions
Type for sending a new ordered batch of data items.
An asynchronous round of the protocol.
The number of a session for which the consensus is run.
A set of signatures of a subset of nodes serving as a (partial) multisignature
A handle for waiting the task’s completion.