Skip to main content

Module objects

Module objects 

Source
Expand description

Protocol objects: the definitions the rest of the specification is phrased in.

These are definitions, not claims, so they carry no proof and no dependency edges. Each one pins a piece of specification vocabulary to the Rust item that realizes it, so that later statements can talk about “a validation vote in round r” while still being checkable against the implementation.

Traits§

Certificate
Definition (Certificate). A certificate is a GenericCertificate<T> together with the JustificationChain its wrapper carries. The three instantiations are ValidatedBlockCertificate, ConfirmedBlockCertificate and TimeoutCertificate.
JustificationCommitment
Definition (Justification commitment). The justification commitment of a vote is the hash of the CommittedQuorum it cites, which — because that struct embeds the commitment of the quorum below it — transitively commits to the entire chain of validated quorums underneath. It is one of the six components of the SignedVotePayload, so votes citing different chains are votes on different payloads and never aggregate into one certificate.
SignedProposal
Definition (Proposal). A proposal is a BlockProposal: an owner’s signature over a ProposalContent — a ProposedBlock, a Round and an optional BlockExecutionOutcome — plus an optional OriginalProposal recording which earlier attempt it retries. The three retry shapes are:
SignedVotePayload
Definition (Signed vote payload). A validator never signs a bare value; it signs a VoteValue, the six-tuple
UnlockingRound
Definition (Unlocking round). The unlocking round of a validation vote, Vote::unlocking_round, is the round a validator signs to assert: “I have not cast a confirmation vote for a block other than this one in any round at or above this one.” None denotes the strongest form of that claim, covering every round.
ValidatorVote
Definition (Vote). A vote by validator v is a Vote<T>, or equivalently its projection LiteVote, which keeps every signed field and drops only the value body. Its round is Vote::round and its kind is T::KIND. We say: