Module types

Module types 

Source
Expand description

Types used in crate::simplex.

Structs§

AttributableMap
A map of Attributable items keyed by their signer index.
ConflictingFinalize
ConflictingFinalize represents evidence of a Byzantine validator sending conflicting finalizes. Similar to ConflictingNotarize, but for finalizes.
ConflictingNotarize
ConflictingNotarize represents evidence of a Byzantine validator sending conflicting notarizes. This is used to prove that a validator has equivocated (voted for different proposals in the same view).
Context
Context is a collection of metadata from consensus about a given payload. It provides information about the current epoch/view and the parent payload that new proposals are built on.
Finalization
Aggregated finalization certificate recovered from finalize votes. When a proposal is finalized, it becomes the canonical block for its view.
Finalize
Validator vote to finalize a proposal. This happens after a proposal has been notarized, confirming it as the canonical block for this round.
Notarization
Aggregated notarization certificate recovered from notarize votes. When a proposal is notarized, it means at least 2f+1 validators have voted for it.
Notarize
Validator vote that endorses a proposal for notarization.
Nullification
Aggregated nullification certificate recovered from nullify votes. When a view is nullified, the consensus moves to the next view without finalizing a block.
Nullify
Validator vote for nullifying the current round, i.e. skip the current round. This is typically used when the leader is unresponsive or fails to propose a valid block.
NullifyFinalize
NullifyFinalize represents evidence of a Byzantine validator sending both a nullify and finalize for the same view, which is contradictory behavior (a validator should either try to skip a view OR finalize a proposal, not both).
Proposal
Proposal represents a proposed block in the protocol. It includes the view number, the parent view, and the actual payload (typically a digest of block data).
Request
Request is a message to request missing notarizations and nullifications. This is used by validators who need to catch up with the consensus state.
Response
Response is a message containing the requested notarizations and nullifications. This is sent in response to a Request message.
VoteTracker
Tracks notarize/nullify/finalize votes for a view.

Enums§

Activity
Activity represents all possible activities that can occur in the consensus protocol. This includes both regular consensus messages and fault evidence.
Artifact
Artifact represents all consensus artifacts (votes and certificates) for storage.
Backfiller
Backfiller is a message type for requesting and receiving missing consensus artifacts. This is used to synchronize validators that have fallen behind or just joined the network.
Certificate
Certificate represents aggregated votes (Notarization, Nullification, Finalization).
Subject
Identifies the subject of a vote or certificate.
Vote
Vote represents individual votes (Notarize, Nullify, Finalize).

Traits§

Attributable
Attributable is a trait that provides access to the signer index. This is used to identify which participant signed a given message.