go-ethereum/core
Guillaume Ballet 58518ea2b3
core, miner: bootstrap the binary transition registry on the first UBT block
Add `core/transition_registry.go` with two helpers:

  - `InitializeBinaryTransitionRegistry` deploys the system contract at
    `params.BinaryTransitionRegistryAddress`. The contract's bytecode
    returns the storage slot indexed by the call's CALLDATA, exposing
    the transition state to off-chain readers.
  - `WriteBinaryTransitionBaseRoot` writes the frozen MPT base root into
    slot 5. The slot constant is kept private so callers go through this
    helper.

Wire both calls into the three places that build state for a new block:

  - `core/state_processor.go`: in `Process`, after the EIP-2935 system
    call, when the current block is on UBT and the parent is not.
  - `miner/worker.go`: at the end of `prepareWork`, with the same
    fork-boundary check, so locally-built payloads also seed the
    registry.
  - `core/chain_makers.go`: in `GenerateChain`, between the EIP-2935
    handling and the user-supplied `gen` callback, so generated test
    chains see the registry deployed identically to a live chain.
2026-04-29 16:46:48 +02: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 core/overlay: load transition state from system contract 2026-04-29 16:21:59 +02:00
rawdb core/overlay: load transition state from system contract 2026-04-29 16:21:59 +02:00
state core/overlay: load transition state from system contract 2026-04-29 16:21:59 +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: implement eip-7976: Increase Calldata Floor Cost (#34748) 2026-04-21 16:20:02 +08:00
types core: track the state access footprint (#34776) 2026-04-22 13:42:49 +08:00
vm core: track the state access footprint (#34776) 2026-04-22 13:42:49 +08:00
.gitignore Renamed chain => core 2014-12-04 10:28:02 +01:00
bench_test.go core/vm, eth, tests: introduce gas budget (#34712) 2026-04-20 15:33:29 +08:00
bintrie_witness_test.go core/vm, eth, tests: introduce gas budget (#34712) 2026-04-20 15:33:29 +08:00
block_validator.go core,miner: implement EIP-7934 - RLP Execution Block Size Limit (#31990) 2025-07-09 11:24: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 cmd, core, trie, triedb: split CachingDB into merkle + binary dbs. (#34700) 2026-04-17 08:55:54 +08: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 cmd, core, trie, triedb: split CachingDB into merkle + binary dbs. (#34700) 2026-04-17 08:55:54 +08:00
chain_makers.go core, miner: bootstrap the binary transition registry on the first UBT block 2026-04-29 16:46:48 +02:00
chain_makers_test.go core: consolidate BlockChain constructor options (#31925) 2025-06-19 12:21:15 +02: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, core/vm: implement EIP-7708 (#33645) 2026-03-23 22:29:53 +08:00
gaspool.go core: implement eip-7778: block gas accounting without refunds (#33593) 2026-03-04 18:18:18 +08:00
gen_genesis.go core/vm: implement eip-7843: SLOTNUM (#33589) 2026-02-26 13:53:46 +01:00
genesis.go params, core: add binary transition registry + UBT transition-tree end time 2026-04-29 16:16:54 +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, miner: bootstrap the binary transition registry on the first UBT block 2026-04-29 16:46:48 +02:00
state_processor_test.go core/vm: implement eip-7843: SLOTNUM (#33589) 2026-02-26 13:53:46 +01:00
state_transition.go core: implement eip-7976: Increase Calldata Floor Cost (#34748) 2026-04-21 16:20:02 +08:00
stateless.go core: fix code database initialization in stateless mode (#34011) 2026-03-16 09:45:26 +01:00
transition_registry.go core, miner: bootstrap the binary transition registry on the first UBT block 2026-04-29 16:46:48 +02: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 eth/catalyst: add initial OpenTelemetry tracing for newPayload (#33521) 2026-02-17 17:08:57 +01:00