go-ethereum/core
rjl493456442 6485d5e3ff
core, triedb: remove destruct flag in state snapshot (#30752)
This pull request removes the destruct flag from the state snapshot to
simplify the code.

Previously, this flag indicated that an account was removed during a
state transition, making all associated storage slots inaccessible.
Because storage deletion can involve a large number of slots, the actual
deletion is deferred until the end of the process, where it is handled
in batches.

With the deprecation of self-destruct in the Cancun fork, storage
deletions are no longer expected. Historically, the largest storage
deletion event in Ethereum was around 15 megabytes—manageable in memory.

In this pull request, the single destruct flag is replaced by a set of
deletion markers for individual storage slots. Each deleted storage slot
will now appear in the Storage set with a nil value.

This change will simplify a lot logics, such as storage accessing,
storage flushing, storage iteration and so on.
2024-11-22 16:55:43 +08: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 all: fix issues with benchmarks (#30667) 2024-11-04 15:10:12 +01:00
state core, triedb: remove destruct flag in state snapshot (#30752) 2024-11-22 16:55:43 +08:00
stateless beacon, core, eth, miner: integrate witnesses into production Geth (#30069) 2024-09-20 16:43:42 +03:00
tracing eth/tracers: various fixes (#30540) 2024-10-17 06:51:47 +02:00
txpool core/txpool, eth/catalyst: clear transaction pool in Rollback (#30534) 2024-11-19 13:35:52 +01:00
types common: drop BigMin and BigMax, they pollute our dep graph (#30645) 2024-10-21 12:45:33 +03:00
vm all: typos in comments (#30779) 2024-11-22 09:02:45 +01:00
.gitignore Renamed `chain` => `core` 2014-12-04 10:28:02 +01:00
bench_test.go all: fix issues with benchmarks (#30667) 2024-11-04 15:10:12 +01:00
block_validator.go build: update to golangci-lint 1.61.0 (#30587) 2024-10-14 19:25:22 +02:00
block_validator_test.go all: remove TerminalTotalDifficultyPassed (#30609) 2024-10-23 08:26:18 +02:00
blockchain.go core/state: move state log mechanism to a separate layer (#30569) 2024-10-23 08:03:36 +02:00
blockchain_insert.go all: remove forkchoicer and reorgNeeded (#29179) 2024-09-04 15:03:06 +02:00
blockchain_reader.go core, eth, ethstats: simplify chain head events (#30601) 2024-10-16 10:32:58 +03: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 core, eth, node: break rawdb -> {leveldb, pebble} dependency (#30689) 2024-10-29 10:31:04 +02: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 core, eth, internal, miner: remove unnecessary parameters (#30776) 2024-11-22 08:17:32 +01:00
chain_makers_test.go all: remove TerminalTotalDifficultyPassed (#30609) 2024-10-23 08:26:18 +02:00
dao_test.go all: remove forkchoicer and reorgNeeded (#29179) 2024-09-04 15:03:06 +02:00
error.go cmd, core, params, trie: add verkle access witness gas charging (#29338) 2024-05-10 20:13:11 +02:00
events.go core, eth, ethstats: simplify chain head events (#30601) 2024-10-16 10:32:58 +03:00
evm.go all: use big.Sign to compare with zero (#29490) 2024-04-09 12:14:30 +02: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 all: implement EIP-7002 & EIP-7251 (#30571) 2024-10-11 21:36:13 +02:00
genesis_alloc.go all: clean up goerli flag and config (#30289) 2024-08-20 15:59:48 +02:00
genesis_test.go all: remove TerminalTotalDifficultyPassed (#30609) 2024-10-23 08:26:18 +02:00
headerchain.go all: remove forkchoicer and reorgNeeded (#29179) 2024-09-04 15:03:06 +02:00
headerchain_test.go all: remove forkchoicer and reorgNeeded (#29179) 2024-09-04 15:03:06 +02: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 all: refactor txpool into it's own package in prep for 4844 2022-10-24 16:35:53 +03:00
state_prefetcher.go core, eth, internal, cmd: rework EVM constructor (#30745) 2024-11-20 12:35:52 +01:00
state_processor.go core, eth, internal, miner: remove unnecessary parameters (#30776) 2024-11-22 08:17:32 +01:00
state_processor_test.go core, trie: verkle state processor tests (#30672) 2024-11-04 14:19:50 +01:00
state_transition.go common: drop BigMin and BigMax, they pollute our dep graph (#30645) 2024-10-21 12:45:33 +03:00
stateless.go beacon, core, eth, miner: integrate witnesses into production Geth (#30069) 2024-09-20 16:43:42 +03:00
txindexer.go core, eth, ethstats: simplify chain head events (#30601) 2024-10-16 10:32:58 +03:00
txindexer_test.go core: use in-memory freezer for tests (#29720) 2024-05-08 09:43:33 +03:00
types.go all: implement flat deposit requests encoding (#30425) 2024-10-09 12:24:58 +02:00
verkle_witness_test.go all: typos in comments (#30779) 2024-11-22 09:02:45 +01:00