Skip to content

Add EIP: Persist Warm Access Sets Across Reverts - #12128

Open
rakita wants to merge 6 commits into
ethereum:masterfrom
rakita:rm-revert-warm
Open

Add EIP: Persist Warm Access Sets Across Reverts#12128
rakita wants to merge 6 commits into
ethereum:masterfrom
rakita:rm-revert-warm

Conversation

@rakita

@rakita rakita commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Adds a new Core EIP that removes the rollback of accessed_addresses and accessed_storage_keys on call-frame revert or exceptional halt (amending EIP-2929 behavior): once warmed, addresses and storage keys stay warm for the rest of the transaction.

  • Aligns gas pricing with actual client cost: a revert does not evict data already loaded into client caches.
  • Simplifies implementations: access sets become append-only and leave the journal/checkpoint machinery.
  • No transaction becomes more expensive; warmth-after-revert is already achievable today via EIP-2930 access lists.

discussions-to is TBD pending an ethereum-magicians thread; will rename the file to the assigned EIP number.

@rakita
rakita requested a review from eth-bot as a code owner August 7, 2026 07:54
@github-actions github-actions Bot added c-new Creates a brand new proposal s-draft This EIP is a Draft t-core labels Aug 7, 2026
@eth-bot

eth-bot commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

File EIPS/eip-8374.md

Requires 1 more review from Editors: @g11tech, @jochem-brouwer, @lightclient, @samwilsn

@eth-bot eth-bot added e-consensus Waiting on editor consensus e-review Waiting on editor to review labels Aug 7, 2026
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown

The commit 25bc0e5 (as a parent of 51845b4) contains errors.
Please inspect the Run Summary for details.

@github-actions github-actions Bot added the w-ci Waiting on CI to pass label Aug 7, 2026
@github-actions github-actions Bot removed the w-ci Waiting on CI to pass label Aug 7, 2026
Comment thread EIPS/eip-8373.md Outdated
Comment thread EIPS/eip-8373.md Outdated
rakita and others added 2 commits August 7, 2026 12:11
Co-authored-by: Andrew B Coathup <28278242+abcoathup@users.noreply.github.com>
Co-authored-by: Andrew B Coathup <28278242+abcoathup@users.noreply.github.com>
@rakita rakita changed the title Add EIP: Persist Warm Access Sets Across Reverts EIP-8374: Persist Warm Access Sets Across Reverts Aug 7, 2026
@eth-bot eth-bot changed the title EIP-8374: Persist Warm Access Sets Across Reverts Add EIP: Persist Warm Access Sets Across Reverts Aug 7, 2026
@rakita rakita changed the title Add EIP: Persist Warm Access Sets Across Reverts Add EIP-8374: Persist Warm Access Sets Across Reverts Aug 10, 2026

@jochem-brouwer jochem-brouwer 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.

Two minor clarifications requested 😄 👍

Comment thread EIPS/eip-8374.md

## Test Cases

* Frame A calls frame B; B does a cold `SLOAD` of slot `s` and reverts. A then loads `s`: charged `WARM_STORAGE_READ_COST` (previously `COLD_SLOAD_COST`).

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.

CONTRIBUTING.md asks to avoid sections consisting only of bulleted lists: please add a short introductory sentence. That sentence is also a good place to anchor where WARM_STORAGE_READ_COST / COLD_SLOAD_COST / COLD_ACCOUNT_ACCESS_COST are defined, e.g. "The following cases use the gas constants of EIP-2929." Right now these constants appear here without a pointer, so readers have to search outside the document or have to know that these implied constants are in EIP-2929.

Comment thread EIPS/eip-8374.md

As of the fork block:

* When a call frame ends in any outcome other than successful completion, `accessed_addresses` and `accessed_storage_keys` MUST NOT be rolled back. All entries added during the frame's execution, including those added by its subcalls, MUST remain in the sets.

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.

I believe this could use a clarification, because this depends on when an address/storage slot becomes warm (depends on the order of the checks). If I do not have enough gas to make the slot/address warm, does it become warm or not? If I can pay for the gas to make it warm, but not for other costs (e.g. changing the slot) it thus stays warm. This is important to define to make clients agree on the warm/cold set 😄 👍

@eth-bot eth-bot changed the title Add EIP-8374: Persist Warm Access Sets Across Reverts Add EIP: Persist Warm Access Sets Across Reverts Aug 11, 2026
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.

4 participants