IntersectMBO / IntersectMBO/ouroboros-consensus

HFC: require that every era contains at least one safe zone worth of slots

Open
#417 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.