[][src]Module hbbft::sender_queue

Sender queue

A sender queue allows a ConsensusProtocol that outputs Epoched messages to buffer those outgoing messages based on their epochs. A message is sent to its recipient only when the recipient's epoch matches the epoch of the message. Thus no queueing is required for incoming messages since any incoming messages with non-matching epochs can be safely discarded.

Structs

SenderQueue

An instance of ConsensusProtocol wrapped with a queue of outgoing messages, that is, a sender queue. This wrapping ensures that the messages sent to remote instances lead to progress of the entire consensus network. In particular, messages to lagging remote nodes are queued and sent only when those nodes' epochs match the queued messages' epochs. Thus all nodes can handle incoming messages without queueing them and can ignore messages whose epochs are not currently acccepted.

SenderQueueBuilder

A builder of a Honey Badger with a sender queue. It configures the parameters and creates a new instance of SenderQueue.

Enums

Error

Sender queue error variants.

Message

A SenderQueue message.

Traits

SenderQueueableConsensusProtocol

A ConsensusProtocol that can be wrapped by a sender queue.

SenderQueueableMessage

A message type that is suitable for use with a sender queue.

SenderQueueableOutput

An output type compatible with the sender queue.

Type Definitions

OutgoingQueue

A map with outgoing messages, per epoch and per target node.

Step

A SenderQueue step. The output corresponds to the wrapped algorithm.