flow-go icon indicating copy to clipboard operation
flow-go copied to clipboard

[EFM] Dynamic Protocol State maintains EFM by injecting EpochExtensions

Open kc1116 opened this issue 10 months ago • 3 comments

Context

After an initial EpochExtension is added Subsequent EpochExtensions are added to the Protocol State according to the following algorithm:

Suppose we are in EFM and are processing block B.

  • Let $\hat{V}$ be the final view of the current epoch, taking into account prior EpochExtensions.

We will add a new EpochExtension to the protocol state in block B iff both are true: Screenshot 2024-04-18 at 2.10.13 PM.png

If we add a new EpochExtension, it will have the following form:

Screenshot 2024-04-18 at 2.10.35 PM.png

This issue is for adding EpochExtensions on an ongoing basis (maintaining EFM). https://github.com/onflow/flow-go/issues/5724 is for injecting the first EpochExtension (entering EFM).

Definition of Done

Update Dynamic Protocol State Mutator to maintain EFM by periodically adding new EpochExtensions.

Further Reading

Design

kc1116 avatar Apr 18 '24 18:04 kc1116

see https://github.com/onflow/flow-go/issues/5631 for more details

related issues:

  • https://github.com/onflow/flow-go/issues/5724 is for injecting the first EpochExtension (entering EFM).
  • https://github.com/onflow/flow-go/issues/5726 is for adding EpochExtensions on an ongoing basis (maintaining EFM).
  • https://github.com/onflow/flow-go/issues/5731 is for the detailed logic to avoid changing already committed leader selections.

AlexHentschel avatar Apr 23 '24 18:04 AlexHentschel

Partially implemented in https://github.com/onflow/flow-go/pull/5773

durkmurder avatar May 10 '24 14:05 durkmurder

Remaining logic implemented in https://github.com/onflow/flow-go/pull/5898

durkmurder avatar May 13 '24 13:05 durkmurder