pub trait SignedProposal { }Expand description
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:
original_proposal == None: a fresh proposal, carrying no outcome;OriginalProposal::Fast: a fast retry, re-proposing a block first proposed inRound::Fast, carrying the super owner’s original signature and no outcome;OriginalProposal::Regular: a regular retry, re-proposing a block that already carries aValidatedBlockCertificate, carrying that certificate and the outcome it certifies.
BlockProposal::check_invariants enforces that exactly these three shapes are well-formed,
that a retry’s round is strictly greater than the round it retries, and that a regular
retry’s certificate certifies exactly the block and outcome being re-proposed. The
specification uses all three facts.