go-ethereum/core
Felix Lange e332431cb2
core: assign default difficulty to zero for chain without ethash (#31067)
I hit this case while trying something with the simulated backend. The
EVM only enables instruction set forks after the merge when 'Random' is
set. In the simulated backend, the random value will be set via the
engine API for all blocks after genesis. But for the genesis block
itself, the random value will not be assigned in the vm.BlockContext
because the genesis has a non-zero difficulty. For my case, this meant
that estimateGas did not work for the first transaction sent on the
simulated chain, since the contract contained a PUSH0 instruction.

This could also be fixed by explicitly configuring a zero difficulty in
the simulated backend. However, I think that zero difficulty is a better
default these days.

---------

Co-authored-by: lightclient <lightclient@protonmail.com>
2025-02-04 17:16:26 +01:00
..
asm core/vm, cmd/evm: implement eof validation (#30418) 2024-10-02 15:05:50 +02:00
bloombits all: fix typos in comments (#29873) 2024-05-29 12:24:10 +02:00
forkid all: remove TerminalTotalDifficultyPassed (#30609) 2024-10-23 08:26:18 +02:00
rawdb params,core: add max and target value to chain config (#31002) 2025-02-04 15:43:18 +01:00
state core/{.,state,vm},miner,eth/tracers,tests: implement 7709 with a syscall flag (#31036) 2025-01-29 14:31:25 +01:00
stateless beacon, core, eth, miner: integrate witnesses into production Geth (#30069) 2024-09-20 16:43:42 +03:00
tracing core: implement eip-7623 floor data gas (#30946) 2025-01-30 09:07:45 -07:00
txpool params,core: add max and target value to chain config (#31002) 2025-02-04 15:43:18 +01:00
types core/types: initialize ChainID in SetCodeTx copy method (#31054) 2025-01-20 17:06:39 +01:00
vm params,core: add max and target value to chain config (#31002) 2025-02-04 15:43:18 +01:00
.gitignore Renamed `chain` => `core` 2014-12-04 10:28:02 +01:00
bench_test.go all: nuke total difficulty (#30744) 2025-01-28 18:55:41 +01:00
block_validator.go core: switch EVM tx context in ApplyMessage (#30809) 2024-11-29 15:39:42 +01:00
block_validator_test.go all: remove TerminalTotalDifficultyPassed (#30609) 2024-10-23 08:26:18 +02:00
blockchain.go params,core: add max and target value to chain config (#31002) 2025-02-04 15:43:18 +01:00
blockchain_insert.go all: remove forkchoicer and reorgNeeded (#29179) 2024-09-04 15:03:06 +02:00
blockchain_reader.go all: nuke total difficulty (#30744) 2025-01-28 18:55:41 +01:00
blockchain_repair_test.go core, eth, node: break rawdb -> {leveldb, pebble} dependency (#30689) 2024-10-29 10:31:04 +02:00
blockchain_sethead_test.go core, eth, node: break rawdb -> {leveldb, pebble} dependency (#30689) 2024-10-29 10:31:04 +02:00
blockchain_snapshot_test.go core, eth, node: break rawdb -> {leveldb, pebble} dependency (#30689) 2024-10-29 10:31:04 +02:00
blockchain_test.go all: nuke total difficulty (#30744) 2025-01-28 18:55:41 +01:00
bloom_indexer.go core: preallocate batch size in bloomIndexer (#25289) 2022-08-03 17:02:09 +02:00
chain_indexer.go core, eth, ethstats: simplify chain head events (#30601) 2024-10-16 10:32:58 +03:00
chain_indexer_test.go all: improve some error strings (#29842) 2024-05-28 13:44:40 +02:00
chain_makers.go params,core: add max and target value to chain config (#31002) 2025-02-04 15:43:18 +01:00
chain_makers_test.go params,core: add max and target value to chain config (#31002) 2025-02-04 15:43:18 +01:00
dao_test.go all: remove forkchoicer and reorgNeeded (#29179) 2024-09-04 15:03:06 +02:00
error.go core: implement eip-7623 floor data gas (#30946) 2025-01-30 09:07:45 -07:00
events.go core, eth, ethstats: simplify chain head events (#30601) 2024-10-16 10:32:58 +03:00
evm.go params,core: add max and target value to chain config (#31002) 2025-02-04 15:43:18 +01:00
gaspool.go core, miner: revert block gas counter in case of invalid transaction (#26799) 2023-03-07 05:23:52 -05:00
gen_genesis.go core: go fmt (#29544) 2024-04-16 15:42:16 +03:00
genesis.go core: assign default difficulty to zero for chain without ethash (#31067) 2025-02-04 17:16:26 +01:00
genesis_alloc.go all: clean up goerli flag and config (#30289) 2024-08-20 15:59:48 +02:00
genesis_test.go core: assign default difficulty to zero for chain without ethash (#31067) 2025-02-04 17:16:26 +01:00
headerchain.go all: nuke total difficulty (#30744) 2025-01-28 18:55:41 +01:00
headerchain_test.go all: nuke total difficulty (#30744) 2025-01-28 18:55:41 +01:00
mkalloc.go accounts, cmd/geth, core: close opened files (#29598) 2024-04-30 15:47:21 +02:00
rlp_test.go core: move genesis alloc types to core/types (#29003) 2024-02-16 19:05:33 +01:00
sender_cacher.go core: use sync.Once for SenderCacher initialization (#31029) 2025-01-16 14:36:45 +01:00
state_prefetcher.go core: switch EVM tx context in ApplyMessage (#30809) 2024-11-29 15:39:42 +01:00
state_processor.go core/{.,state,vm},miner,eth/tracers,tests: implement 7709 with a syscall flag (#31036) 2025-01-29 14:31:25 +01:00
state_processor_test.go params,core: add max and target value to chain config (#31002) 2025-02-04 15:43:18 +01:00
state_transition.go core: implement eip-7623 floor data gas (#30946) 2025-01-30 09:07:45 -07:00
stateless.go cmd/evm: improve block/state test runner (#30633) 2024-12-02 15:18:02 +01:00
txindexer.go core, eth, ethstats: simplify chain head events (#30601) 2024-10-16 10:32:58 +03:00
txindexer_test.go all: nuke total difficulty (#30744) 2025-01-28 18:55:41 +01:00
types.go all: implement flat deposit requests encoding (#30425) 2024-10-09 12:24:58 +02:00
verkle_witness_test.go params,core: add max and target value to chain config (#31002) 2025-02-04 15:43:18 +01:00