Open kc1116 opened 2 months ago
ideally, the Consensus Committee would behave consistently:
In my opinion, the Epoch State Machine in the Protocol state should emit events accordingly, such that the consensus committee only need to follow the view ranges from the Epoch State Machine.
suggestion: I think we should re-frame this issue toRestructure Notifications emitted by the Epoch State Machine (Protocol state) to unambiguously specify committed view ranges for leader selection (Consensus Committee)
List of places in the code that need updating
committee.Consensus
on l block finalization:
https://github.com/onflow/flow-go/blob/58304e9c4c546ea26f7137dde5889778feae180b/consensus/hotstuff/committees/consensus_committee.go#L182-L189Caution: This list is likely not exhaustive! Be on the lookout for additional spots in the codebase.
Context
The Consensus Committee maintains a cache for epochs by counter. Currently, the Consensus Committee performs explicit handling of EFM by inserting a special fallback epoch (see code).
Changes:
EpochFallbackTriggered
event handlerEpochExtended
event handler⚠️ Required overall Behavior:
Do not enter EFM while in phase
EpochCommitted
. Insteadsee https://github.com/onflow/flow-go/issues/5631 for more details
Further Reading
Design