go-ethereum/core/state
rjl493456442 922eb033d3
core/state: pull the verkle trie from prefetcher for empty storage root (#30369)
This pull request fixes a flaw in prefetcher.

In verkle tree world, both accounts and storage slots are committed into
a single tree instance for state hashing. If the prefetcher is activated, we will
try to pull the trie for the prefetcher for performance speedup. 

However, we had a special logic to skip pulling storage trie if the
storage root is empty. While it's true for merkle as we have nothing to
do with an empty storage trie, it's totally wrong for verkle. The consequences
for skipping pulling is the storage changes are committed into trie A, while the
account changes are committed into trie B (pulled from the prefetcher), boom.
2024-09-02 10:41:44 +02:00
..
pruner all: clean up goerli flag and config (#30289) 2024-08-20 15:59:48 +02:00
snapshot Revert "core/state/snapshot: tiny fixes" (#30039) 2024-06-21 10:42:43 +03:00
access_events_test.go trie, core/state: Nyota EIP-6800 & EIP-4762 spec updates (#30357) 2024-08-30 14:13:02 +02:00
access_events.go trie, core/state: Nyota EIP-6800 & EIP-4762 spec updates (#30357) 2024-08-30 14:13:02 +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 trie, core/state: Nyota EIP-6800 & EIP-4762 spec updates (#30357) 2024-08-30 14:13:02 +02:00
dump.go eth/tracers: live chain tracing with hooks (#29189) 2024-03-22 18:53:53 +01:00
iterator_test.go all: activate pbss as experimental feature (#26274) 2023-08-10 22:21:36 +03:00
iterator.go all: fix various typos (#29600) 2024-04-23 13:09:42 +03:00
journal.go core/state: semantic journalling (part 1) (#28880) 2024-08-28 08:18:23 +02:00
metrics.go core: add metrics for state access (#30353) 2024-08-26 20:02:10 +08:00
state_object_test.go build: use golangci-lint (#20295) 2019-11-18 10:49:17 +02:00
state_object.go core/state: pull the verkle trie from prefetcher for empty storage root (#30369) 2024-09-02 10:41:44 +02:00
state_test.go core/state: remove account reset operation v2 (#29520) 2024-04-24 12:59:06 +03:00
statedb_fuzz_test.go core/state: semantic journalling (part 1) (#28880) 2024-08-28 08:18:23 +02:00
statedb_test.go core/state: semantic journalling (part 1) (#28880) 2024-08-28 08:18:23 +02:00
statedb.go trie, core/state: Nyota EIP-6800 & EIP-4762 spec updates (#30357) 2024-08-30 14:13:02 +02:00
stateupdate.go core/state: introduce stateupdate structure (#29530) 2024-06-03 14:17:12 +03:00
sync_test.go eth/tracers: live chain tracing with hooks (#29189) 2024-03-22 18:53:53 +01:00
sync.go core,eth,internal: fix typo (#29024) 2024-02-20 19:42:48 +08:00
transient_storage.go core/state: better randomized testing (postcheck) on journalling (#29627) 2024-04-25 09:56:25 +02:00
trie_prefetcher_test.go core/state: fix trie prefetcher for verkle (#30354) 2024-08-26 22:18:47 +08:00
trie_prefetcher.go core/state: fix trie prefetcher for verkle (#30354) 2024-08-26 22:18:47 +08:00