Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposals for second iteration of the HFC #420

Open
1 of 10 tasks
Tracked by #415
amesgen opened this issue Oct 11, 2023 · 1 comment
Open
1 of 10 tasks
Tracked by #415

Proposals for second iteration of the HFC #420

amesgen opened this issue Oct 11, 2023 · 1 comment
Milestone

Comments

@amesgen
Copy link
Member

amesgen commented Oct 11, 2023

The most intricate parts of the HFC related to how time/era transitions are performed have been largely unmodified since they were first introduced1. Recently, investigating IntersectMBO/cardano-ledger#3491 lead us to scrutinize these aspects, resulting in improving our understanding of the status quo and giving rise to potential improvements.

As the aforementioned issue has been resolved in #366 (albeit in a relatively ad-hoc fashion), there is no immediate need to make any large HFC changes. Instead, the purpose of this issue is to give an overview over the HFC-related changes that came out of this effort.

Documentation

HFC behavior

HFC implementation/testing

Footnotes

  1. This is largely due to the fact that they did their job well, with one notable exception: https://github.com/input-output-hk/ouroboros-network/pull/3754

@nfrisby
Copy link
Contributor

nfrisby commented Dec 18, 2024

Alexey and I just had a nice chat, which included the potential of upstreaming the HFC's block counting into the Ledger's governance (only regarding HardFork initiation). He agreed it seems plausible and relatively straight-forward to implement --- and preferable to the HFC ever overriding the Ledger's governance.

In Conway, as it happens, it wouldn't even require any extra data: the difference between the BlocksMade maps' sizes is the count of blocks since the previous epoch boundary, which is the appropriate voting deadline. Moreover, the decision is made a stability window before the enacting epoch boundary, so we get the block count one stability window before enactment for free.

It also finally explicitly occurred to me that today's HFC prevents a hard fork from being the mechanism by which the community chooses to escape a low participation disaster. Which seems fine: I highly doubt a "proper" hard fork is how the community would prefer to end some disaster --- it's more likely to be a hotfix, with or without an intra-era hard fork.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: No status
Development

No branches or pull requests

3 participants