IntersectMBO / IntersectMBO/ouroboros-consensus
HFC: require that every era contains at least one safe zone worth of slots
- Dominant language
- Haskell
- Stars
- 67
- Forks
- 43
- Avg merge
- 5d 13h
- Merged PRs (30d)
- 43
Description
*Disclaimer:* This ticket is *not* about the functionality that allows to directly skip to a later era at Genesis, as used for various testing/benchmarking purposes. We ultimately need to support that use case while also adding this requirement for any era that is not skipped.
The HFC supports eras that end immediately after they started (for Cardano, this could eg happen when specifying `TriggerHardForkAtEpoch X` for two subsequent eras; also see the IMMEDIATE trajectories [here](https://input-output-hk.github.io/ouroboros-consensus/docs/for-developers/HardWonWisdom#the-safe-zone-semantics)). This is a confusing edge case complicating certain reasoning, would result in extremely strange behavior with the current implementation, and we don't see any use case for it.
Hence, we should remove support for it in the HFC, and instead require that they contain at least one safe zone worth of slots (usually, with an epoch being larger than a safe zone, that is equivalent to requiring at least one epoch in every era).
Care should be taken to ensure configurations not fulfilling this new principle will fail early, and to document how this can be tested and recognized.
Contributor guide
Assessment
This issue has not been assessed yet.