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.go trie, core/state: Nyota EIP-6800 & EIP-4762 spec updates (#30357) 2024-08-30 14:13:02 +02: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_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.go all: fix various typos (#29600) 2024-04-23 13:09:42 +03:00
iterator_test.go all: activate pbss as experimental feature (#26274) 2023-08-10 22:21:36 +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.go core/state: pull the verkle trie from prefetcher for empty storage root (#30369) 2024-09-02 10:41:44 +02:00
state_object_test.go build: use golangci-lint (#20295) 2019-11-18 10:49:17 +02:00
state_test.go core/state: remove account reset operation v2 (#29520) 2024-04-24 12:59:06 +03:00
statedb.go trie, core/state: Nyota EIP-6800 & EIP-4762 spec updates (#30357) 2024-08-30 14:13:02 +02: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
stateupdate.go core/state: introduce stateupdate structure (#29530) 2024-06-03 14:17:12 +03:00
sync.go core,eth,internal: fix typo (#29024) 2024-02-20 19:42:48 +08:00
sync_test.go eth/tracers: live chain tracing with hooks (#29189) 2024-03-22 18:53:53 +01: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 trie prefetcher for verkle (#30354) 2024-08-26 22:18:47 +08:00
trie_prefetcher_test.go core/state: fix trie prefetcher for verkle (#30354) 2024-08-26 22:18:47 +08:00