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

core: implement EIP-2935 #29465

Merged
merged 20 commits into from
Aug 26, 2024
Merged

core: implement EIP-2935 #29465

merged 20 commits into from
Aug 26, 2024

Conversation

s1na
Copy link
Contributor

@s1na s1na commented Apr 5, 2024

core/vm/eips.go Outdated Show resolved Hide resolved
core/vm/eips.go Outdated Show resolved Hide resolved
miner/worker.go Show resolved Hide resolved
cmd/evm/internal/t8ntool/execution.go Show resolved Hide resolved
@gballet gballet mentioned this pull request Apr 15, 2024
2 tasks
@jsign
Copy link
Contributor

jsign commented Apr 15, 2024

@s1na, pinging you to be aware of some extra changes that happened on Kaustinen after you pulled the work from the other branch, see: gballet#411, which some days after where also updated in the EIP ethereum/EIPs@2b73ecb

core/state_processor.go Outdated Show resolved Hide resolved
core/state_processor.go Outdated Show resolved Hide resolved
@lightclient lightclient force-pushed the eip-2935 branch 3 times, most recently from 62cf853 to 246b158 Compare May 13, 2024 09:22
Co-authored-by: Guillaume Ballet <gballet@gmail.com>
Co-authored-by: Ignacio Hagopian <jsign.uy@gmail.com>
@s1na
Copy link
Contributor Author

s1na commented May 29, 2024

Updated to the devnet-1 spec changes.

Copy link
Contributor

@jwasinger jwasinger left a comment

Choose a reason for hiding this comment

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

tests submodule change was accidentally pushed to this branch.

@rjl493456442
Copy link
Member

We should also deploy it for dev mode

@s1na
Copy link
Contributor Author

s1na commented Jun 18, 2024

We should also deploy it for dev mode

@rjl493456442 I believe it does
https://github.com/ethereum/go-ethereum/pull/29465/files#diff-1272116434e5549f278a940767af52ed2d1abc91c44fa04ec48d8835a3774036R599

core/state_processor.go Outdated Show resolved Hide resolved
core/genesis.go Outdated Show resolved Hide resolved
@s1na s1na removed the status:triage label Jul 2, 2024
Copy link
Member

@gballet gballet left a comment

Choose a reason for hiding this comment

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

Lgtm, left a nitpick but no show stopper

core/state_processor_test.go Show resolved Hide resolved
miner/worker.go Outdated Show resolved Hide resolved
core/state_processor.go Outdated Show resolved Hide resolved
@holiman
Copy link
Contributor

holiman commented Aug 1, 2024

EIP still says

At the start of processing any block where block.timestamp >= FORK_TIMESTAMP (ie. before processing any transactions), update the state directly in the following way:

@holiman
Copy link
Contributor

holiman commented Aug 19, 2024

The EIP is under-specified. It says to update directly (as in, do not invoke contract). And then

Alternatively clients can also choose to do a system update via a system call to the contract set mechanism defined in the following sections.

But those are not two equivalent alternatives. In case the code does not exist, those two scenarios will differ wildly.

  1. Direct-Update: If no code exists, the direct update will be reverted (so a no-op). Unless there happens to be some eth on the address, in which case the slots will be persisted (a actual-op).
  2. Call-update: if no code exists, it will be a no-op.

I don't see how EIP-2935 can be scheduled for inclusion with the EIP so ambiguous. cc @gballet

@s1na
Copy link
Contributor Author

s1na commented Aug 20, 2024

Here's my proposed changes to the EIP: ethereum/EIPs#8816

Copy link
Contributor

@holiman holiman left a comment

Choose a reason for hiding this comment

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

LGTM but with some minor suggestions

core/state_processor.go Outdated Show resolved Hide resolved
core/state_processor.go Outdated Show resolved Hide resolved
core/state_processor_test.go Outdated Show resolved Hide resolved
core/state_processor_test.go Outdated Show resolved Hide resolved
eth/state_accessor.go Outdated Show resolved Hide resolved
@holiman holiman added this to the 1.14.9 milestone Aug 22, 2024
s1na and others added 2 commits August 22, 2024 20:53
@s1na s1na merged commit a223efc into ethereum:master Aug 26, 2024
3 checks passed
mask-pp pushed a commit to mask-pp/go-ethereum that referenced this pull request Aug 30, 2024
https://eips.ethereum.org/EIPS/eip-2935

---------

Co-authored-by: Guillaume Ballet <gballet@gmail.com>
Co-authored-by: Ignacio Hagopian <jsign.uy@gmail.com>
Co-authored-by: Martin HS <martin@swende.se>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants