go-ethereum/core
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
..
asm all: fix mismatched names in comments (#29348) 2024-03-26 21:01:28 +01:00
bloombits all: fix typos in comments (#29873) 2024-05-29 12:24:10 +02:00
forkid all: clean up goerli flag and config (#30289) 2024-08-20 15:59:48 +02:00
rawdb core/rawdb: drop MigrateTable (#30331) 2024-08-20 14:06:00 +02:00
state core/state: pull the verkle trie from prefetcher for empty storage root (#30369) 2024-09-02 10:41:44 +02:00
stateless all: stateless witness builder and (self-)cross validator (#29719) 2024-06-25 14:48:08 +03:00
tracing core/tracing: update latest release version (#30211) 2024-07-23 14:05:46 +02:00
txpool core/txpool/blobpool: fix error message (#30247) 2024-08-13 19:49:31 +08:00
types consensus/beacon, core/types: add verkle witness builder (#30129) 2024-08-29 14:50:27 +02:00
vm trie, core/state: Nyota EIP-6800 & EIP-4762 spec updates (#30357) 2024-08-30 14:13:02 +02:00
.gitignore Renamed `chain` => `core` 2014-12-04 10:28:02 +01:00
bench_test.go core: move genesis alloc types to core/types (#29003) 2024-02-16 19:05:33 +01:00
block_validator.go all: stateless witness builder and (self-)cross validator (#29719) 2024-06-25 14:48:08 +03:00
block_validator_test.go core: use in-memory freezer for tests (#29720) 2024-05-08 09:43:33 +03:00
blockchain.go core: add metrics for state access (#30353) 2024-08-26 20:02:10 +08:00
blockchain_insert.go all: fix various typos (#29600) 2024-04-23 13:09:42 +03:00
blockchain_reader.go core: add txlookup lock (#29343) 2024-04-09 08:37:18 +02:00
blockchain_repair_test.go cmd: use package filepath over path for file system operations (#29227) 2024-03-12 10:00:34 +01:00
blockchain_sethead_test.go all: replace path.Join with filepath.Join (#29479) 2024-04-08 12:29:49 +03:00
blockchain_snapshot_test.go cmd: use package filepath over path for file system operations (#29227) 2024-03-12 10:00:34 +01:00
blockchain_test.go all: stateless witness builder and (self-)cross validator (#29719) 2024-06-25 14:48:08 +03:00
bloom_indexer.go core: preallocate batch size in bloomIndexer (#25289) 2022-08-03 17:02:09 +02:00
chain_indexer.go core,console: replace noarg fmt.Errorf with errors.New (#27332) 2023-05-25 08:24:09 -04:00
chain_indexer_test.go all: improve some error strings (#29842) 2024-05-28 13:44:40 +02:00
chain_makers.go consensus/beacon, core/types: add verkle witness builder (#30129) 2024-08-29 14:50:27 +02:00
chain_makers_test.go core: deploy EIP-4788 contract in dev mode genesis (#29655) 2024-05-14 15:04:32 +02:00
dao_test.go all: activate pbss as experimental feature (#26274) 2023-08-10 22:21:36 +03:00
error.go cmd, core, params, trie: add verkle access witness gas charging (#29338) 2024-05-10 20:13:11 +02:00
events.go eth/filters: remove use of event.TypeMux for pending logs (#20312) 2019-12-10 12:39:14 +01:00
evm.go all: use big.Sign to compare with zero (#29490) 2024-04-09 12:14:30 +02:00
forkchoice.go core: clarify code in forkchoice (#26257) 2022-11-28 11:07:25 +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: implement EIP-2935 (#29465) 2024-08-26 10:39:35 +02:00
genesis_alloc.go all: clean up goerli flag and config (#30289) 2024-08-20 15:59:48 +02:00
genesis_test.go trie, core/state: Nyota EIP-6800 & EIP-4762 spec updates (#30357) 2024-08-30 14:13:02 +02:00
headerchain.go core: remove bad block checks (#29609) 2024-04-22 20:00:42 +03:00
headerchain_test.go all: remove the dependency from trie to triedb (#28824) 2024-02-13 14:49:53 +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 all: refactor txpool into it's own package in prep for 4844 2022-10-24 16:35:53 +03:00
state_prefetcher.go all: stateless witness builder and (self-)cross validator (#29719) 2024-06-25 14:48:08 +03:00
state_processor.go consensus/beacon, core/types: add verkle witness builder (#30129) 2024-08-29 14:50:27 +02:00
state_processor_test.go trie, core/state: Nyota EIP-6800 & EIP-4762 spec updates (#30357) 2024-08-30 14:13:02 +02:00
state_transition.go trie, core/state: Nyota EIP-6800 & EIP-4762 spec updates (#30357) 2024-08-30 14:13:02 +02:00
stateless.go all: stateless witness builder and (self-)cross validator (#29719) 2024-06-25 14:48:08 +03:00
txindexer.go core: cache transaction indexing tail in memory (#28908) 2024-02-06 10:44:42 +08:00
txindexer_test.go core: use in-memory freezer for tests (#29720) 2024-05-08 09:43:33 +03:00
types.go all: stateless witness builder and (self-)cross validator (#29719) 2024-06-25 14:48:08 +03:00