go-ethereum/eth
Daniel Liu 296d612167
fix(eth): align traceBlockParallel with Prague parent-hash pre-exec (#2067)
traceBlockParallel replays transactions from the parent state to build per-tx prestate for tracers. In the previous flow, Prague's parent-hash system contract processing was not applied before replay, so the prepared state could diverge from canonical block execution semantics.

This commit keeps the parallel tracing path consistent with block processing rules by applying ProcessParentBlockHash before tx replay when Prague is active.

The regression test TestTraceBlockParallelPragueParentHashSystemCall is strengthened to assert the actual EIP-2935 history slot value (ring-buffer key for block-1) equals block.ParentHash(), instead of relying on an indirect EXTCODESIZE side effect. This makes the test deterministic and directly tied to the bug.

Validation: go test ./eth/tracers -run TestTraceBlockParallelPragueParentHashSystemCall
2026-02-17 15:00:55 +05:30
..
bft all: fix goimports (#1560) 2025-09-24 07:51:10 +08:00
downloader refactor(all): cleanup the APIs for initializing genesis #25473 #26747 (#2017) 2026-02-07 00:18:39 +05:30
ethconfig rpc: add a rpc.rangelimit flag #33163 (#1957) 2026-01-29 11:50:58 +05:30
fetcher refactor(all): cleanup the APIs for initializing genesis #25473 #26747 (#2017) 2026-02-07 00:18:39 +05:30
filters refactor(all): move genesis initialization to blockchain #25523 (#2018) 2026-02-10 16:56:34 +05:30
gasestimator refactor(all): rework EVM constructor #30745 (#2065) 2026-02-17 14:35:18 +05:30
gasprice refactor(all): move genesis initialization to blockchain #25523 (#2018) 2026-02-10 16:56:34 +05:30
hooks all: use 0x-prefix string for type Address in log message (#1874) 2025-12-19 08:55:21 +04:00
tracers fix(eth): align traceBlockParallel with Prague parent-hash pre-exec (#2067) 2026-02-17 15:00:55 +05:30
util all: replace Div/Mul with Rsh/Lsh if possible #29911 (#1966) 2026-01-29 11:31:58 +05:30
api.go cmd/utils, eth: rename ApiBackend to APIBackend (#1955) 2026-01-16 17:27:48 +05:30
api_admin.go eth: split api.go into namespace based files #27263 (#1601) 2025-10-30 21:27:14 +05:30
api_backend.go refactor(all): rework EVM constructor #30745 (#2065) 2026-02-17 14:35:18 +05:30
api_debug.go perf: improve state reader with error handling and committed flag #27428 (#1166) 2026-02-03 20:55:53 +05:30
api_debug_test.go perf: improve state reader with error handling and committed flag #27428 (#1166) 2026-02-03 20:55:53 +05:30
api_miner.go core/txpool: make tx validation reusable across packages/pools #27429 (#1873) 2025-12-23 16:28:30 +05:30
backend.go refactor(all): move genesis initialization to blockchain #25523 (#2018) 2026-02-10 16:56:34 +05:30
backend_test.go Move consensus hooks to its own package 2021-10-10 16:04:32 +11:00
bloombits.go core, eth, params: make indexer configurable (#17188) 2025-03-10 15:41:53 +08:00
handler.go perf(all): use big.Int.Sign() to compare with 0 (#1969) 2026-02-05 11:45:44 +05:30
handler_test.go refactor(all): move genesis initialization to blockchain #25523 (#2018) 2026-02-10 16:56:34 +05:30
helper_test.go refactor(all): move genesis initialization to blockchain #25523 (#2018) 2026-02-10 16:56:34 +05:30
metrics.go metrics, cmd/XDC: change init-process of metrics (#30814) 2024-12-13 14:00:14 +08:00
peer.go all: use github.com/deckarep/golang-set/v2 (generic set) (#26159) 2025-01-24 16:54:11 +08:00
protocol.go core, eth, miner: 4844 blob transaction pool #26940 (#1911) 2026-01-19 11:24:01 +05:30
protocol_test.go all: move main transaction pool into a subpool #27463 (#1890) 2026-01-05 15:43:50 +05:30
state_accessor.go refactor(all): rework EVM constructor #30745 (#2065) 2026-02-17 14:35:18 +05:30
sync.go perf(all): use big.Int.Sign() to compare with 0 (#1969) 2026-02-05 11:45:44 +05:30
sync_test.go all: change chain head markers from block to header #26777 (#1846) 2025-12-16 07:36:51 +04:00