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

rmc

Reliable MultiCast - a primitive for Reliable Broadcast protocol.

Structs

Config

Main configuration of the consensus.

DelayConfig

Configuration of several parameters related to delaying various tasks.

Indexed

A pair consistsing of signable data and a NodeIndex.

Member

A representation of a committee member responsible for establishing the consensus.

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.

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

The source of data items that consensus should order.

Hasher

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

Index

Indicates that an implementor has been assigned some index.

KeyBox

Abstraction of the signing data and verifying signatures.

MultiKeychain

Extends KeyBox with multisigning functionalities.

Network

Network represents an interface for sending and receiving NetworkData.

PartialMultisignature

A type to which signatures can be aggregated.

Signable

Data which can be signed.

Signature

The type used as a signature.

SpawnHandle

An abstraction for an execution engine for Rust’s asynchronous tasks.

Functions

default_config

A default configuration of what the creators of this package see as optimal parameters.

Type Definitions

OrderedBatch

Type for sending a new ordered batch of data items.

Round

An asynchronous round of the protocol.

SessionId

The number of a session for which the consensus is run.