Skip to content

Update EIP-7910: Add Fork Id to response, spec BPOs, add "last"#9989

Merged
eth-bot merged 4 commits into
ethereum:masterfrom
marioevz:add-fork-id-to-eip-7910
Jul 9, 2025
Merged

Update EIP-7910: Add Fork Id to response, spec BPOs, add "last"#9989
eth-bot merged 4 commits into
ethereum:masterfrom
marioevz:add-fork-id-to-eip-7910

Conversation

@marioevz

@marioevz marioevz commented Jul 7, 2025

Copy link
Copy Markdown
Member

Fork ID

Adds Fork Id as members currentForkId and nextForkId to the eth_config response, as specified in EIP-6122.

Note that EIP-6122 only mentions FORK_HASH as the current configured fork's Id, and the block/timestamp number as the sole piece of information for the next fork, but, in this PR, FORK_HASH is also calculated for the next fork in order to catch fork ID issues early.

Blob Parameter Only Forks

BPO forks are now specified in the EIP.

last member

Adds last, lastHash and lastForkId members to represent the last configured fork know by the client.

@marioevz marioevz requested a review from eth-bot as a code owner July 7, 2025 19:10
@github-actions github-actions Bot added c-update Modifies an existing proposal s-draft This EIP is a Draft t-interface labels Jul 7, 2025
@eth-bot

eth-bot commented Jul 7, 2025

Copy link
Copy Markdown
Collaborator

✅ All reviewers have approved.

@eth-bot eth-bot added the a-review Waiting on author to review label Jul 7, 2025
@eth-bot eth-bot changed the title Update 7910: Add Fork Id to response Update EIP-7910: Add Fork Id to response Jul 7, 2025
lightclient
lightclient previously approved these changes Jul 7, 2025

@lightclient lightclient left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Generally LGTM - but I think this should be in execution-apis not an EIP

@marioevz marioevz changed the title Update EIP-7910: Add Fork Id to response Update EIP-7910: Add Fork Id to response, spec BPOs, fix system-contract format Jul 8, 2025
@github-actions github-actions Bot added the w-ci Waiting on CI to pass label Jul 8, 2025
@marioevz marioevz force-pushed the add-fork-id-to-eip-7910 branch from c6dc822 to 1854d73 Compare July 8, 2025 17:06
@github-actions

github-actions Bot commented Jul 8, 2025

Copy link
Copy Markdown

The commit 1854d73 (as a parent of 887dd78) contains errors.
Please inspect the Run Summary for details.

Comment thread EIPS/eip-7910.md Outdated
"DEPOSIT_CONTRACT_ADDRESS": "0x00000000219ab540356cbb839cbe05303d7705fa",
"HISTORY_STORAGE_ADDRESS": "0x0000f90827f1c53a10cb7a02335b175320002935",
"WITHDRAWAL_REQUEST_PREDEPLOY_ADDRESS": "0x00000961ef480eb55e80d19ad83579a64c007002"
"0x00000000219ab540356cbb839cbe05303d7705fa": "DEPOSIT_CONTRACT_ADDRESS",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

sort by name feels more natural for "random" addresses. Think we should leave this by name, and leave precompile by address.

Comment thread EIPS/eip-7910.md Outdated

The "currentHash" and "nextHash" members contain the hash of the current configuration and the next configuration, respectively, or null if the next configuration is also null.

The "currentForkId" and "nextForkId" members contain the `FORK_HASH` value as specified in [EIP-6122](./eip-6122.md) of the current configuration and the next configuration, respectively, or null if the next configuration is also null.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This would cause a fork to have two IDs, one where there is no next fork, and one where there is. The whole response was intended to be hashed.

So I'm not in favor of this as it stands.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Re-reading this... that is outside the hashed json, so this is perfectly fine.

Comment thread EIPS/eip-7910.md Outdated
#### `systemContracts`

A JSON object representing system-level contracts relevant to the fork, as introduced in their defining EIPs. Keys are the contract names (e.g., `BEACON_ROOTS_ADDRESS`) from the first EIP where they appeared, sorted alphabetically. Values are 20-byte addresses in `0x`-prefixed hexadecimal form, with leading zeros preserved. Omitted for forks before Cancun.
A JSON object representing system-level contracts relevant to the fork, as introduced in their defining EIPs. Keys are 20-byte addresses in `0x`-prefixed hexadecimal form, with leading zeros preserved, sorted alphabetically. Omitted for forks before Cancun. Values are the contract names (e.g., `BEACON_ROOTS_ADDRESS`) from the first EIP where they appeared.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I'm also against this too. What is more important is what the contract is (the name), so that should be the key.

Comment thread EIPS/eip-7910.md Outdated
"0x00000961ef480eb55e80d19ad83579a64c007002": "WITHDRAWAL_REQUEST_PREDEPLOY_ADDRESS",
"0x0000bbddc7ce488642fb579f8b00f3a590007251": "CONSOLIDATION_REQUEST_PREDEPLOY_ADDRESS",
"0x0000f90827f1c53a10cb7a02335b175320002935": "HISTORY_STORAGE_ADDRESS",
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": "BEACON_ROOTS_ADDRESS"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

putting the name as the value and not the key means we have to read in random order. The contract address is the configuration and thus should be the value.

@shemnon

shemnon commented Jul 9, 2025

Copy link
Copy Markdown
Contributor

@lightclient it can also live in execution specs, but there are semantics (such as how we hash a fork_config hash) that there really isn't room to spec in API definitions. Such semantics are more than just APIs.

@marioevz marioevz changed the title Update EIP-7910: Add Fork Id to response, spec BPOs, fix system-contract format Update EIP-7910: Add Fork Id to response, spec BPOs, add "last" Jul 9, 2025
@github-actions github-actions Bot removed the w-ci Waiting on CI to pass label Jul 9, 2025
@eth-bot eth-bot enabled auto-merge (squash) July 9, 2025 17:40

@eth-bot eth-bot left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

All Reviewers Have Approved; Performing Automatic Merge...

@eth-bot eth-bot merged commit 59c5b17 into ethereum:master Jul 9, 2025
20 of 22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

a-review Waiting on author to review c-update Modifies an existing proposal s-draft This EIP is a Draft t-interface

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants