IntersectMBO / IntersectMBO/ouroboros-consensus

Think about making `f` updateable

Open
#666 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Haskell
Stars
67
Forks
43
Avg merge
5d 13h
Merged PRs (30d)
43

Description

The active slot coefficient `f` used to be an updateable protocol parameter. In the initial design for the hard fork combinator, this is not supported: `f` changes the window size, which is currently one of the "era parameters" (along with slot length and epoch size), and only allowed to change at hard fork transition points.

Initially I thought it would be easier if we knew when these parameters changed, but the fact that they can change at all turned out to require extensive refactoring, and have consequences for nearly all parts of the codebase. Now that this is done, I don't think we actually get much benefit anymore from restricting changing these parameters to hard fork transition points. We're not changing the design now due to some constraints, since it would (albeit local) refactoring of the hard fork history, but we could change this later, time permititing.

*NOTE*: The one requirement that we _will_ need to impose is that the complete history (i.e., the values of these 3 parameters over time) is always known; unlike other parts of the ledger state, we can't trim this history. For now this is no problem at all, since these parameters are anyway few and change only infrequently.

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.