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

CIP-9 Updatable params require a hard-fork event? Should be soft-fork. #369

Closed
ccgarant opened this issue Nov 5, 2022 · 5 comments
Closed

Comments

@ccgarant
Copy link
Contributor

ccgarant commented Nov 5, 2022

In CIP-9, Updatable Protocol Parameters, it states:

"A change to the major protocol parameter version triggers a "hard fork" event. This will require stake pool operators to upgrade to a new software version that complies with the new chain production protocol as well as being able to verify the construction of the chain."

Upon investigation, a hard-fork is 5 of 7 genesis signing keys, required for major changes like Non-Updatable Parameters.

However, the Updatable Params only require 4 of 7 signing keys, and is a "soft-fork" (backwards compatible with old nodes), and much easier. Requesting permission to make updates to reflect this. This came up in a stake rewards equation minPoolCost discussion.

Ref Duncan Coutts clarification here

@KtorZ
Copy link
Member

KtorZ commented Nov 5, 2022

Hey, that's not quite how it works. In the discussion thread, I believe Duncan really meant '5' and not '4', as the current quorum parameter is set to 5.

What Duncan explains in this comment is that a hard-fork ships with a code change, so a super majority of nodes must have adopted the code change before the genesis delegates pull the trigger and submit/vote a proposal. This is effectively done by submitting an protocol parameter update that increase the protocol major version.

In a comparison, a soft fork is merely updating an existing parameter, within the existing semantic known to all nodes. So there's no particular need for synchronization. Every node will keep working the same after the parameter update, there's no need to ship a code update.

@ccgarant
Copy link
Contributor Author

ccgarant commented Nov 6, 2022

Thanks for reviewing @KtorZ.

I guess from reading the CIP, it's not abundantly clear what exactly are the benefits of the updatable vs non-updatable parameters. I feel like there should be more explicit ultra-clear delineation between the two. Currently they seem to be exactly the same from the text.

Also, there seems to be misinformation around the updatable param updates requiring 4 signatures. I am among them 😅.

A clarification update and public info sharing would probably go a long way for us Normies.

@ch1bo
Copy link
Contributor

ch1bo commented Nov 8, 2022

I just realized that CIP-9 is a bit out-of-date as well. At least it does not include updates of Alonzo and Babbage?

@KtorZ
Copy link
Member

KtorZ commented Nov 8, 2022

They are in different CIPs @ch1bo:

With the CIP-0001's rework, we are also planning some better categorization of the CIPs which should help to find those. We could also have them reference one another to ease navigation.

@rphair
Copy link
Collaborator

rphair commented Nov 11, 2022

@ccgarant with the answers to the questions above, and the merged #370 linking the proposals together as in #369 (comment), would you be satisfied if we close this one?

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

No branches or pull requests

4 participants