Expand description
The upgrade sub-protocol: proposing and voting on protocol version upgrades. Owns the wall clock and the window configuration so the pure consensus state machine never needs them.
Structs§
Constants§
- DECIDE_
BY_ OFFSET - Views after the upgrade proposal by which a carrying leaf must decide. The certificate forms within a view of the proposal and each following leader re-attaches it, so this is the number of leader turns allowed.
- FINISH_
OFFSET - Views after the upgrade proposal at which the new version takes effect.
The gap past
DECIDE_BY_OFFSETis margin for nodes to decide the carrier before their ownUpgradeLockflips the wire and header format.
Functions§
- expected_
upgrade_ 🔒data - The
UpgradeProposalData2every honest node expects for an upgrade proposed atviewinepoch. Voters require full equality, so a leader cannot pick rogue offsets (e.g. anew_version_first_viewso close that the wire format would flip before the decided certificate propagates) or an epoch other than the voter’s own. - in_
window 🔒 - unix_
time 🔒