go-ethereum/core
Miroslav Kovář 73944e3299
core: record SetParentBeaconRoot beacon-root accesses in BAL (#34897)
`SetParentBeaconRoot`, which is used by hivechain block customization
(`modifyBlock` passed to `GenerateChain` as `gen`), runs
`ProcessBeaconBlockRoot`, but those accesses are not being recorded in
BALs. Later, `GenerateChain` processes beacon root again with BAL
tracking, so BAL could miss earlier mutations.

This patch keeps current flow but records reads/writes from
`SetParentBeaconRoot` into the BAL when enabled. That fixes accounting
mismatch without changing execution order.

I tried to find a better solution which would avoid double beacon root
processing but kept running into PMT root mismatches. This is the
minimal working solution, and a temporary workaround to enable correct
Amsterdam block generation anyway. Long-term we should move to a single
canonical beacon-root processing path (or explicit idempotent handling)
so execution and BAL accounting happen exactly once.

Used by https://github.com/ethereum/hive/pull/1468 to enable Amsterdam
block generation in hivechain.

Signed-off-by: Miroslav Kovář <miroslavkovar@protonmail.com>
2026-05-07 18:32:49 -04:00
..
filtermaps core/filtermaps: remove dead condition check (#34695) 2026-04-10 17:41:59 +02:00
forkid params: set osaka and BPO1 & BPO2 mainnet dates (#33063) 2025-11-03 17:41:22 +01:00
history cmd/geth: add Prague pruning points for hoodi (#34714) 2026-04-14 14:58:27 +02:00
overlay cmd, core, trie, triedb: split CachingDB into merkle + binary dbs. (#34700) 2026-04-17 08:55:54 +08:00
rawdb all: implement BAL single-threaded execution and validation 2026-04-28 13:54:44 +02:00
state miner: fix miner bug again 2026-05-01 00:51:48 +02:00
stateless core/stateless: fix parsing an empty witness (#34683) 2026-04-09 09:19:54 +08:00
tracing core/vm, eth, tests: introduce gas budget (#34712) 2026-04-20 15:33:29 +08:00
txpool core/txpool: remove intrinsic gas bump 2026-04-28 13:54:44 +02:00
types core/types/bal: make txIndex uint32 2026-04-28 13:54:44 +02:00
vm core: new tests, behavior on exceptional halt 2026-04-30 18:43:30 +02:00
.gitignore Renamed chain => core 2014-12-04 10:28:02 +01:00
bench_test.go core: implement EIP-8037: state creation gas cost increase 2026-04-26 11:39:41 +02:00
bintrie_witness_test.go core: implement EIP-8037: state creation gas cost increase 2026-04-26 11:39:41 +02:00
block_validator.go all: implement BAL single-threaded execution and validation 2026-04-28 13:54:44 +02:00
block_validator_test.go eth/catalyst: add initial OpenTelemetry tracing for newPayload (#33521) 2026-02-17 17:08:57 +01:00
blockchain.go core: add better debug logging 2026-05-01 01:42:54 +02:00
blockchain_insert.go core: remove unused peek function in insertIterator (#33155) 2025-11-12 15:30:16 +08:00
blockchain_reader.go cmd, core, trie, triedb: split CachingDB into merkle + binary dbs. (#34700) 2026-04-17 08:55:54 +08:00
blockchain_repair_test.go core: consolidate BlockChain constructor options (#31925) 2025-06-19 12:21:15 +02:00
blockchain_sethead_test.go core, miner, tests: introduce codedb and simplify cachingDB (#33816) 2026-03-10 08:29:21 +01:00
blockchain_snapshot_test.go triedb/pathdb, eth: use double-buffer mechanism in pathdb (#30464) 2025-06-22 20:40:54 +08:00
blockchain_stats.go core, miner, tests: introduce codedb and simplify cachingDB (#33816) 2026-03-10 08:29:21 +01:00
blockchain_test.go core: implement EIP-8037: state creation gas cost increase 2026-04-26 11:39:41 +02:00
chain_makers.go core: record SetParentBeaconRoot beacon-root accesses in BAL (#34897) 2026-05-07 18:32:49 -04:00
chain_makers_test.go core: record SetParentBeaconRoot beacon-root accesses in BAL (#34897) 2026-05-07 18:32:49 -04:00
dao_test.go core: consolidate BlockChain constructor options (#31925) 2025-06-19 12:21:15 +02:00
error.go core, internal/ethapi: fix incorrect max-initcode RPC error mapping (#34067) 2026-03-23 22:10:32 +08:00
eth_transfer_logs_test.go core, core/vm: implement EIP-7708 (#33645) 2026-03-23 22:29:53 +08:00
events.go ethstats: report newPayload processing time to stats server (#33395) 2026-01-05 17:49:30 +01:00
evm.go core: fixed costPerStateByte 2026-04-28 13:54:44 +02:00
gaspool.go core: implement EIP-8037: state creation gas cost increase 2026-04-26 11:39:41 +02:00
gen_genesis.go core: fix genesis BAL hash 2026-04-28 13:54:44 +02:00
genesis.go core: fix genesis BAL hash 2026-04-28 13:54:44 +02:00
genesis_alloc.go params: add hoodi testnet definition (#31406) 2025-03-18 12:07:49 +01:00
genesis_test.go cmd, core, trie, triedb: split CachingDB into merkle + binary dbs. (#34700) 2026-04-17 08:55:54 +08:00
headerchain.go core/rawdb: reduce allocations in rawdb.ReadHeaderNumber (#31913) 2025-07-15 15:48:36 +02:00
headerchain_test.go core/state, core/tracing: new state update hook (#33490) 2026-01-08 11:07:19 +08:00
mkalloc.go accounts, cmd/geth, core: close opened files (#29598) 2024-04-30 15:47:21 +02:00
rlp_test.go crypto/keccak: vendor in golang.org/x/crypto/sha3 (#33323) 2026-02-03 14:55:27 -07:00
sender_cacher.go core: use sync.Once for SenderCacher initialization (#31029) 2025-01-16 14:36:45 +01:00
state_prefetcher.go core: implement eip-7778: block gas accounting without refunds (#33593) 2026-03-04 18:18:18 +08:00
state_processor.go core: apply fixes for BAL (claude) 2026-04-28 13:54:44 +02:00
state_processor_test.go core: implement eip-7981: Increase Access List Cost 2026-04-28 13:54:44 +02:00
state_transition.go core: fix selfdestructs 2026-04-30 13:16:17 +02:00
stateless.go core: fix code database initialization in stateless mode (#34011) 2026-03-16 09:45:26 +01:00
txindexer.go core/rawdb: reduce allocations in rawdb.ReadHeaderNumber (#31913) 2025-07-15 15:48:36 +02:00
txindexer_test.go core/rawdb: integrate eradb backend for RPC (#31604) 2025-06-03 10:47:38 +02:00
types.go all: implement BAL single-threaded execution and validation 2026-04-28 13:54:44 +02:00