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 provided that gives appropriate access to the set of available data that we need to make consensus on.

Modules

rmc

Reliable multicast functionality.

Structs

Config
DelayConfig
Indexed

A pair consistsing of signable data and a NodeIndex.

Member
Multisigned

Signable data together with a complete multisignature.

NetworkData

NetworkData is the opaque format for all data that a committee member needs to send to other nodes to perform the protocol.

NodeIndex

The index of a node

SignatureError

Error type returned when a verification of a signature fails.

Signed

A pair consisting of an object and a matching signature

UncheckedSigned

A pair consisting of an instance of the Signable trait and an (arbitrary) signature.

Enums

PartiallyMultisigned

Signable data together with a valid partial multisignature.

Traits

Data

Data type that we want to order.

DataIO
Hasher

A hasher, used for creating identifiers for blocks or units.

Index
KeyBox

Abstraction of the signing data and verifying signatures. Typically, consists of a private key of the node and the public keys of all nodes.

MultiKeychain

Extends KeyBox with multisigning functionalities. Allows to verify whether a partial multisignature is complete (and valid).

Network

Network represents an interface for sending and receiving NetworkData. We only assume that every send has a nonzero probability of succeeding, and a nonerror result might still correspond to an unsuccessful transfer.

PartialMultisignature

A type to which signatures can be aggregated.

Signable

Data which can be signed.

Signature

The type used as a signature. The Signature typically does not contain the index of the node who signed the data.

SpawnHandle

Functions

default_config

Type Definitions

OrderedBatch

Type for sending a new ordered batch of units

Round

A round.

SessionId