Expand description
Types used in crate::simplex.
Structs§
- Attributable
Map - A map of Attributable items keyed by their signer index.
- Conflicting
Finalize - ConflictingFinalize represents evidence of a Byzantine validator sending conflicting finalizes. Similar to ConflictingNotarize, but for finalizes.
- Conflicting
Notarize - 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.
- Nullify
Finalize - 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.
- Vote
Tracker - 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.