This document details the plan and necessary order of operations for deploying Spork-less Epoch Fallback Recovery Design II: Epoch Extensions, using a Protocol HCU. (As this will be the first Protocol HCU, deployment of parts of the Protocol HCU system itself are also covered by this plan.)
FlowEpochFlowClusterQCFlowDKGNodeVersionBeaconEpochCommit.dkgIdMapping field - new field addedEpochCommit.dkgGroupKey field - new field addedEpochCommit.dkgPubKeys field - existing field, semantics changed to omit group keyProtocolStateVersionUpgrade service eventEpochCommit.DKGIndexMap field - field currently exists but is empty since beginning of current spork, post-upgrade will be populated and meaningfulEpochRecover service event, recovery logicChunkBody.ServiceEventCount field - new field addedBelow we describe upgrade processes for General Service Event Validation and EFM Recovery separately. In practice, we can and plan to combine them (see Combined Upgrade Process).
This feature being deployed is necessary to validate extra-system-chunk service events. The Protocol HCU trigger is implemented by an extra-system-chunk service event. Because of this, we will make use of sealing configurations to seal the first ProtocolStateVersionUpgrade without requiring verification.
ServiceEventCount https://github.com/onflow/flow-go/issues/6777; PR https://github.com/onflow/flow-go/pull/6796