Proposal
Fixtype of proposals.
This is a product type introduced by fty::defprod.
Fields
- author — address
- round — posp
- transactions — transaction-list
- previous — address-set
We model a proposal as consisting of:
- The address of the validator who authored the proposal.
- The round number of the proposal.
- The transactions that are being proposed
for inclusion in the blockchain.
- The addresses that, together with the previous round number,
identify the certificates from the previous round
that this proposal is based on.
(More on this below.)
A validator generates at most one proposal per round.
Thus, the combination of author and round number identifies
(at most) a unique proposal, and a unique certificate in a DAG.
This uniqueness is a critical and non-trivial property,
which we prove as an invariant elsewhere.
A certificate is a vertex of the DAG.
The previous component of this fixtype models
the edges of the DAG (once the proposal becomes a certificate),
from this proposal/certificate to
the certificates in the previous round
with the authors specified by the set of addresses.
Because of the invariant mentioned above,
those certificates are uniquely determined.
We do not model cryptographic signatures explicitly.
The presence of the author address in a proposal
models the fact that
the validator with that address has signed the proposal.
Subtopics
- Proposal-fix
- Fixing function for proposal structures.
- Proposalp
- Recognizer for proposal structures.
- Proposal-equiv
- Basic equivalence relation for proposal structures.
- Make-proposal
- Basic constructor macro for proposal structures.
- Proposal->transactions
- Get the transactions field from a proposal.
- Change-proposal
- Modifying constructor for proposal structures.
- Proposal->previous
- Get the previous field from a proposal.
- Proposal->round
- Get the round field from a proposal.
- Proposal->author
- Get the author field from a proposal.