From c802f78985162ebec0b3dd8669b0068ec0c2fb4f 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 0995e7bdb2de0..ac37c220401b0 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 419c8bf00fab3..75bcefea77d8c 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) } }