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

Add EIP: On-chain upgrade signaling #9174

Open
wants to merge 14 commits into
base: master
Choose a base branch
from

Conversation

fulldecent
Copy link
Contributor

Ready for draft, please

@fulldecent fulldecent requested a review from eth-bot as a code owner December 22, 2024 08:36
@github-actions github-actions bot added c-new Creates a brand new proposal s-draft This EIP is a Draft t-core labels Dec 22, 2024
@eth-bot
Copy link
Collaborator

eth-bot commented Dec 22, 2024

File EIPS/eip-7848.md

Requires 1 more reviewers from @g11tech, @lightclient, @SamWilsn

@eth-bot eth-bot added e-consensus Waiting on editor consensus e-review Waiting on editor to review labels Dec 22, 2024
@eth-bot eth-bot changed the title Create eip-xxxx.md Add EIP: On-chain upgrade signaling Dec 22, 2024
@github-actions github-actions bot added the w-ci Waiting on CI to pass label Dec 22, 2024
@github-actions github-actions bot removed the w-ci Waiting on CI to pass label Dec 23, 2024
@g11tech
Copy link
Contributor

g11tech commented Dec 23, 2024

not sure if this proposal is relevant to eth cc @SamWilsn as we may never go down this path

@fulldecent
Copy link
Contributor Author

Relevance should be based on whether this is an implementable proposal and if I can be heard.

Hopefully it is and this can be merged as DRAFT.

And then LATER, a stricter test is whether to implement this.

EIPS/eip-9174.md Outdated
@@ -0,0 +1,144 @@
---
eip: 9174
title: On-chain upgrade signaling
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
title: On-chain upgrade signaling
title: Onchain upgrade signaling

I am not an editor. My personal preference is onchain.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well noted.

At this point, on-chain is the preferred usage across other publications in this repo.

I'm happy to adopt the less common usage if we can point to it as a best practice.

And either way that should be after merging this as draft.

fulldecent and others added 2 commits December 23, 2024 19:52
Co-authored-by: Andrew B Coathup <28278242+abcoathup@users.noreply.github.com>
@fulldecent
Copy link
Contributor Author

@g11tech requesting a merge for PR please so this can be discussed as draft

@fulldecent
Copy link
Contributor Author

Hi @g11tech, will you be blocking discussion on this draft, or may it please proceed to draft status?

@g11tech
Copy link
Contributor

g11tech commented Jan 5, 2025

Hi @g11tech, will you be blocking discussion on this draft, or may it please proceed to draft status?

not really blocking discussion since discussion should ideally happen via eth-magicians. if this has enough indication from client devs, could merge it.

otherwise need inputs of @SamWilsn and @lightclient on it. I will bring this PR to their notice in the discord channel of ethcarherders. you are free to join and present your case there as well.

@fulldecent
Copy link
Contributor Author

fulldecent commented Jan 5, 2025

@g11tech So you are saying that a condition of making a draft for the EIP repo is that client devs must have in interest in building it. Did I read that correctly?

@fulldecent
Copy link
Contributor Author

Got it, thank you.

What you are saying conflicts with EIP-1 which states:

In EIP is merged [to draft status] by an EIP Editor into the EIP repository when properly formatted.


If what you are saying is in fact the correct stance then EIP-1 should be updated to reflect this reality.

I have worked on EIP-1 for years and it can be helpful if the process and criteria are properly documented and then documented process and criteria are faithfully implemented.


Personal note: I have no hard feelings to you and this process, and I'll be happy whichever is the direction, and I'll make PRs as needed to make it easier for the next people.

And I appreciate that you are passing this along.

@g11tech
Copy link
Contributor

g11tech commented Jan 6, 2025

@timbeiko since this proposed EIP touches on upgrade process and also mentions EF, I would like to see your opinions on it

@fulldecent
Copy link
Contributor Author

I have updated this branch to remove language "it will be necessary for Ethereum Foundation to...". That may be out of scope of an EIP. And this specific EIP need not depend on that sentence.

Does that address the issue and make this palatable as a draft?

@github-actions github-actions bot added the w-ci Waiting on CI to pass label Jan 7, 2025
@github-actions github-actions bot removed the w-ci Waiting on CI to pass label Jan 7, 2025
@g11tech
Copy link
Contributor

g11tech commented Jan 8, 2025

I have updated this branch to remove language "it will be necessary for Ethereum Foundation to...". That may be out of scope of an EIP. And this specific EIP need not depend on that sentence.

Does that address the issue and make this palatable as a draft?

@poojaranjan has added to next EIPIP meeting for discussion, you can join us if you want.

ethcatherders/EIPIP#375

@timbeiko
Copy link
Contributor

timbeiko commented Jan 8, 2025

@g11tech I don't think we should block merging the EIP on my opinion, as it'd be better to have the discussion about the merits in a less ephemeral place than this PR.

For the record, I disagree pretty strongly with the framing in line 66, even though I'm sympathetic towards improving the language used in the blog posts.

@fulldecent
Copy link
Contributor Author

Hi @timbeiko I have spread out the lines in 744b6e5. This means you can link to specific lines to focus where you strongly disagree with the framing. But like you said, this could all be much better discussed as a concrete draft, in draft status.


@g11tech does this address your remaining concern with draft status? Can you please merge now?

Copy link

The commit 744b6e5 (as a parent of 667dcd0) contains errors.
Please inspect the Run Summary for details.

@github-actions github-actions bot added the w-ci Waiting on CI to pass label Jan 12, 2025
@g11tech
Copy link
Contributor

g11tech commented Jan 12, 2025

imo there already is a less ephemeral place, the eth magician link https://ethereum-magicians.org/t/eip-xxxx-on-chain-upgrade-signaling/22306, which is not contingent on accepting the EIP draft.

the process is also not fully spec-ed in terms of what is the exact mechanism proposed, i.e what clients need to implement, voting logic, hardfork accepted/rejected logic...

we anyway have a meeting on 15th, lets discuss it there

@g11tech
Copy link
Contributor

g11tech commented Jan 15, 2025

the process is also not fully spec-ed in terms of what is the exact mechanism proposed, i.e what clients need to implement, voting logic, hardfork accepted/rejected logic...

@fulldecent so we concluded that if this PR is properly formatted and spec-ed in terms of idea, we will merge it. Could you address the above points that I raised so we can merge this.

@fulldecent
Copy link
Contributor Author

Thank you @g11tech, this is updated and ready for merge now


Ethereum consensus clients shall identify with a reference implementation having its equivalent behaviors.

Ethereum consensus clients shall include a `referenceImplementationHash` (specified below) field immediately following the `extraData` field in the block header.
Copy link
Contributor

@g11tech g11tech Feb 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in EL block header? i.e. execution payload in beacon block's body?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. This is a draft. So in draft we can discuss further and get ideas on this.


Upgrade proposals (often referred to as hard fork EIPs) must specify an upgrade window and threshold. These parameters are implemented in the consensus client:

- `VOTING_WINDOW_BEGIN`: the first block (inclusive) to count votes.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this slot based? is this a fixed slot start value that a proposal will add?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is intentionally unspecified in this EIP.

Yes, people using this EIP for upgrades are responsible to choose the start and end blocks however they like.

- `REFERENCE_IMPLEMENTATION_HASH`: this is defined above.
- `REQUIRED_APPROVALS`: the minimum number of approvals necessary for the upgrade.

The difference (`VOTING_WINDOW_END` - `VOTING_WINDOW_BEGIN`) must be strictly greater than 14400 (about two days) and should be chosen to provide sufficient time to advertise the upgrade to network participants.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could you add details on how many fraction of validators will actually get to vote which is the fraction of validators having the block proposal in that particular window.

also add the justification for that particular fraction in the rational section.

Copy link
Contributor Author

@fulldecent fulldecent Feb 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This proposal intentionally does not specify the fraction of validators.

Somebody using this EIP is responsible to chose the voting window. Their reasons may include a fraction of validators, or other reasons.


The note about two days is a strict lower bound. This is included only for a human persective because humans can sleep for up to one day at a time. And two is more than one.

It is actually expected that upgrades using this EIP will be MUCH more than two days, for safety. But again, this is a choice of the specific implementations. And EF has previously done software changes in under two days before (which is now disallowed under this EIP).

@github-actions github-actions bot removed the w-ci Waiting on CI to pass label Feb 25, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c-new Creates a brand new proposal e-consensus Waiting on editor consensus e-review Waiting on editor to review s-draft This EIP is a Draft t-core
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants