Skip to content

[r3.5] execution/state, execution/stagedsync: retain AuRa SystemAddress in all EIP-161 empty-removal paths#21938

Merged
mh0lt merged 1 commit into
release/3.5from
cherry-pick-21937-to-release-3.5
Jun 22, 2026
Merged

[r3.5] execution/state, execution/stagedsync: retain AuRa SystemAddress in all EIP-161 empty-removal paths#21938
mh0lt merged 1 commit into
release/3.5from
cherry-pick-21937-to-release-3.5

Conversation

@mh0lt

@mh0lt mh0lt commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Cherry-pick of #21937 to release/3.5.

Completes the AuRa EIP-161 family on r3.5: #21931 (already merged) shipped the block-0 ZeroAddress-at-genesis carve-out (chiado #21712); this PR adds the SystemAddress carve-out for AuRa across all empty-account-removal sites.

r3.5-specific adaptations

Verification

Fixes the gnosis tip-tracking failure observed on release/3.5 QA runs (e.g. https://github.com/erigontech/erigon/actions/runs/27832904647).

…ll EIP-161 empty-removal paths

The AuRa hack — never EIP-161-remove the empty SystemAddress (0xff…fe), to
match the reference implementation — lived only in the serial executor's
updateAccount. Extract it into a shared EIP161EmptyRemoval helper and apply it
at every empty-account-removal decision site:

- updateAccount (serial executor) — refactored onto the helper
- printAccount (debug mirror)
- StateV3.applyVersionedWrites balance-increase apply (rw_v3.go)
- calcFees coinbase and burnt fee accounts (parallel executor)
- normalizeWriteSet, per touched account (parallel executor)

The parallel-executor sites (calcFees, normalizeWriteSet, applyVersionedWrites)
are EIP-7928/BAL paths that AuRa does not exercise today, so the change is
correctness-by-construction / consistency there; the serial path is the
consensus-relevant one for AuRa chains.

Adds a table test for the helper and a normalizeWriteSet test pinning that an
empty SystemAddress is retained under AuRa and removed otherwise.
@mh0lt mh0lt merged commit 7914f81 into release/3.5 Jun 22, 2026
90 checks passed
@mh0lt mh0lt deleted the cherry-pick-21937-to-release-3.5 branch June 22, 2026 09:48
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

Successfully merging this pull request may close these issues.

2 participants