Document versioning mechanics for dynamic protocol state #6887
Labels
Documentation
Improvements or additions to documentation
Preserve
Stale Bot repellent
Protocol
Team: Issues assigned to the Protocol Pillar.
Overarching Product Goal
The overall goal is to evolve Versioning of Execution Stack to use the Dynamic Protocol State, and subsequently employ this versioning information for
This issue is part of 1.
Description and Details for this issue
We want to describe the conceptual information flow and processing of the new versioning information for the Execution Stack
We have the potentially state-full components
Version Beacon Smart Contract
andDynamic Protocol State
. TheGovernance Transaction
andEN Version Beacon Service Event
can be viewed as messages carrying information that is ingested by these components and may induce an update of their states.Definition of Done
Notion doc describing
EN Version Beacon Smart Contract
should locally maintainGovernance Transaction
cariesGovernance Transaction
arriving at theEN Version Beacon Smart Contract
:The sanity checks that that the
Version Beacon Smart Contract
should apply to theGovernance Transaction
to decide whether to accept or reject theGovernance Transaction
.Caution: it is important to consider the possibilities of mistakes, inconsistencies, outdated or repeated governance transactions, as those are prepared and submitted by humans.
for a
Governance Transaction
that is accepted: how does the transaction update the internal state of theVersion Beacon Smart Contract
?the conditions under which an
EN Version Beacon Service Event
is emitted by the smart contractDescription of how the
EN Version Beacon Smart Contract
computes the data to be emitted in theEN Version Beacon Service Event
.EN Version Beacon Service Event
(content specified in 3.iv) arriving at theDynamic Protocol State
:The sanity checks that that the
Dynamic Protocol State
should apply to theEN Version Beacon Service Event
to decide whether to accept or reject the service event.Caution: it is important to consider the possibilities of outdated service events, bugs in the smart contract or accidental inconsistent upgrades of the
EN Version Beacon Smart Contract
. Our sanity checks here don't have to be entirely failsafe, but checking for plausible error cases (especially outdated service events) should be done where possible with reasonable effort.for an
EN Version Beacon Service Event
that is accepted: how does the service event update the internal state of theDynamic Protocol State
?Dynamic Protocol State
to be queried by theStopControl
logic in the Execution NodeImportant:
In a nutshell, we (as humans) are providing a directive to the protocol to change Execution Behaviour at some point in the future. These transition points from the "old" to the "new behaviour" must be specified as a view threshold. The behaviour change takes place when the view threshold is reached or exceeded. For more details, please see Flip 298.
Proposal
The focus of this work should be on utilizing the Dynamic Protocol State for versioning the Execution Stack. The specific format on how we express the version is secondary, and probably somewhat easy to change in the future.
Therefore, I would propose to use
major.minor
for versioning the execution stack, becauseVersionBeacon
implementation)patch
field (see Flip 298 for further details)The text was updated successfully, but these errors were encountered: