core/state: fix prefetcher for verkle (#29760)
This commit is contained in:
parent
bcaf3747f8
commit
cf0378499f
@ -907,9 +907,12 @@ func (s *StateDB) IntermediateRoot(deleteEmptyObjects bool) common.Hash {
|
|||||||
// Now we're about to start to write changes to the trie. The trie is so far
|
// Now we're about to start to write changes to the trie. The trie is so far
|
||||||
// _untouched_. We can check with the prefetcher, if it can give us a trie
|
// _untouched_. We can check with the prefetcher, if it can give us a trie
|
||||||
// which has the same root, but also has some content loaded into it.
|
// which has the same root, but also has some content loaded into it.
|
||||||
|
//
|
||||||
|
// Don't check prefetcher if verkle trie has been used. In the context of verkle,
|
||||||
|
// only a single trie is used for state hashing. Replacing a non-nil verkle tree
|
||||||
|
// here could result in losing uncommitted changes from storage.
|
||||||
start = time.Now()
|
start = time.Now()
|
||||||
|
if s.prefetcher != nil && (s.trie == nil || !s.trie.IsVerkle()) {
|
||||||
if s.prefetcher != nil {
|
|
||||||
if trie := s.prefetcher.trie(common.Hash{}, s.originalRoot); trie == nil {
|
if trie := s.prefetcher.trie(common.Hash{}, s.originalRoot); trie == nil {
|
||||||
log.Error("Failed to retrieve account pre-fetcher trie")
|
log.Error("Failed to retrieve account pre-fetcher trie")
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user