go-ethereum/core/state
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
..
pruner all: clean up goerli flag and config (#30289) 2024-08-20 15:59:48 +02:00
snapshot core, triedb: remove destruct flag in state snapshot (#30752) 2024-11-22 16:55:43 +08:00
access_events.go core, trie: verkle state processor tests (#30672) 2024-11-04 14:19:50 +01:00
access_events_test.go core/state, core/vm: Nyota contract create init simplification (#30409) 2024-09-13 15:37:30 +02:00
access_list.go core/state: rename all the AccessList receivers to 'al' (#29921) 2024-06-11 11:24:44 +03:00
database.go core/state, triedb/database: refactor state reader (#30712) 2024-11-09 08:08:06 +08:00
dump.go eth/tracers: live chain tracing with hooks (#29189) 2024-03-22 18:53:53 +01:00
iterator.go all: fix various typos (#29600) 2024-04-23 13:09:42 +03:00
iterator_test.go core/state: state reader abstraction (#29761) 2024-09-05 13:10:47 +03:00
journal.go core/state: get rid of field pointer in journal (#30361) 2024-09-06 15:42:59 +08:00
metrics.go core: add metrics for state access (#30353) 2024-08-26 20:02:10 +08:00
reader.go core/state, triedb/database: refactor state reader (#30712) 2024-11-09 08:08:06 +08:00
state_object.go core/state: move state log mechanism to a separate layer (#30569) 2024-10-23 08:03:36 +02:00
state_object_test.go build: use golangci-lint (#20295) 2019-11-18 10:49:17 +02:00
state_test.go core/state: move state log mechanism to a separate layer (#30569) 2024-10-23 08:03:36 +02:00
statedb.go core, triedb: remove destruct flag in state snapshot (#30752) 2024-11-22 16:55:43 +08:00
statedb_fuzz_test.go core, triedb: remove destruct flag in state snapshot (#30752) 2024-11-22 16:55:43 +08:00
statedb_hooked.go core/state: invoke OnCodeChange-hook on selfdestruct (#30686) 2024-11-08 15:25:30 +01:00
statedb_hooked_test.go core: fix typos (#30767) 2024-11-19 14:26:39 +08:00
statedb_test.go core, triedb: remove destruct flag in state snapshot (#30752) 2024-11-22 16:55:43 +08:00
stateupdate.go core, triedb: remove destruct flag in state snapshot (#30752) 2024-11-22 16:55:43 +08:00
sync.go core,eth,internal: fix typo (#29024) 2024-02-20 19:42:48 +08:00
sync_test.go core/state: move state log mechanism to a separate layer (#30569) 2024-10-23 08:03:36 +02:00
transient_storage.go core/state: better randomized testing (postcheck) on journalling (#29627) 2024-04-25 09:56:25 +02:00
trie_prefetcher.go core/state: fix runaway alloc caused by prefetcher heap escape (#30629) 2024-10-20 13:25:15 +03:00
trie_prefetcher_test.go core/state: fix runaway alloc caused by prefetcher heap escape (#30629) 2024-10-20 13:25:15 +03:00