From 442fcf44adaa928a6dd49cf45af2d8be321e42c3 Mon Sep 17 00:00:00 2001 From: Martin Holst Swende Date: Mon, 29 Jan 2024 12:55:25 +0100 Subject: [PATCH] core/state: do not journal preimages We do not strictly need to journal preimages: preimages are stored and served for the benefit of remote RPC users, e.g. for debugging solidity storage. There is no 'consensus requirement' for these keys to be reverted in case of reverted scopes. --- core/state/journal.go | 21 --------------------- core/state/statedb.go | 1 - 2 files changed, 22 deletions(-) diff --git a/core/state/journal.go b/core/state/journal.go index 0995e7bdb2de..ac37c220401b 100644 --- a/core/state/journal.go +++ b/core/state/journal.go @@ -160,10 +160,6 @@ func (j *journal) JournalLog(txHash common.Hash) { j.append(addLogChange{txhash: txHash}) } -func (j *journal) JournalAddPreimage(hash common.Hash) { - j.append(addPreimageChange{hash: hash}) -} - func (j *journal) JournalCreate(addr common.Address) { j.append(createObjectChange{account: &addr}) } @@ -263,9 +259,6 @@ type ( addLogChange struct { txhash common.Hash } - addPreimageChange struct { - hash common.Hash - } touchChange struct { account *common.Address } @@ -454,20 +447,6 @@ func (ch addLogChange) copy() journalEntry { } } -func (ch addPreimageChange) revert(s *StateDB) { - delete(s.preimages, ch.hash) -} - -func (ch addPreimageChange) dirtied() *common.Address { - return nil -} - -func (ch addPreimageChange) copy() journalEntry { - return addPreimageChange{ - hash: ch.hash, - } -} - func (ch accessListAddAccountChange) revert(s *StateDB) { /* One important invariant here, is that whenever a (addr, slot) is added, if the diff --git a/core/state/statedb.go b/core/state/statedb.go index 419c8bf00fab..75bcefea77d8 100644 --- a/core/state/statedb.go +++ b/core/state/statedb.go @@ -265,7 +265,6 @@ func (s *StateDB) Logs() []*types.Log { // AddPreimage records a SHA3 preimage seen by the VM. func (s *StateDB) AddPreimage(hash common.Hash, preimage []byte) { if _, ok := s.preimages[hash]; !ok { - s.journal.JournalAddPreimage(hash) s.preimages[hash] = slices.Clone(preimage) } }