erigontech / erigontech/erigon

Parallel exec: calcFees coinbase==burnt exclusivity should match serial on burnt-contract chains

Open
#22,224 1 comment 0 reactions 2 assignees Assigned to @yperbasis View on GitHub
QA
Dominant language
Go
Stars
3.6k
Forks
1.5k
Avg merge
1d 16h
Merged PRs (30d)
455

Description

Follow-up from PR #21536 review (yperbasis, exec3_parallel.go `calcFees`).

## Context

In the parallel executor's `calcFees` (`execution/stagedsync/exec3_parallel.go`), the handling of the case where the block **coinbase is also the burnt-contract address** (`coinbase == burntContractAddress`) is not a verbatim match of serial semantics.

The base/serial behavior in this corner was itself arguably broken — it drops the tip in the coinbase==burnt case — and the current parallel head is arguably *closer* to correct serial semantics than a verbatim restore would be. Rather than a verbatim restore in #21536 (which is a mechanical type refactor and shouldn't change this behavior), the decision (with the reviewer) was to track the reconciliation here.

## Task

Decide and implement the intended behavior for `coinbase == burntContractAddress` chains so parallel and serial agree:

- Confirm what serial actually does today (does it drop the tip when coinbase is the burnt contract?).
- Decide the correct semantics (likely: parallel should match serial exactly, whatever that is, or both should be fixed if serial is wrong).
- Add a regression test on a burnt-contract chain (coinbase == burnt address, non-zero tip) asserting parallel == serial gas/root.

## Notes

This is an EIP-4844/EIP-7708 burn interaction on an unusual chain configuration (burnt-contract chains), not mainnet-reachable in the common case. Low priority but should not be left as a silent divergence.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.