From 0a376604c9ce0c588de0d943184380acd7e25db4 Mon Sep 17 00:00:00 2001 From: Maciej Kulawik Date: Fri, 23 Aug 2024 16:17:38 +0200 Subject: [PATCH] don't store wasm targets in cachingDB --- core/state/database.go | 20 ++++++++++---------- ethdb/database.go | 7 +++++-- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/core/state/database.go b/core/state/database.go index 168d33f51..34a4c355a 100644 --- a/core/state/database.go +++ b/core/state/database.go @@ -164,9 +164,9 @@ func NewDatabaseWithConfig(db ethdb.Database, config *triedb.Config) Database { wasmdb, wasmTag := db.WasmDataBase() cdb := &cachingDB{ // Arbitrum only - activatedAsmCache: lru.NewSizeConstrainedCache[activatedAsmCacheKey, []byte](activatedWasmCacheSize), - wasmTag: wasmTag, - wasmTargets: db.WasmTargets(), + activatedAsmCache: lru.NewSizeConstrainedCache[activatedAsmCacheKey, []byte](activatedWasmCacheSize), + wasmTag: wasmTag, + wasmTargetsRetriever: db, disk: db, wasmdb: wasmdb, @@ -182,9 +182,9 @@ func NewDatabaseWithNodeDB(db ethdb.Database, triedb *triedb.Database) Database wasmdb, wasmTag := db.WasmDataBase() cdb := &cachingDB{ // Arbitrum only - activatedAsmCache: lru.NewSizeConstrainedCache[activatedAsmCacheKey, []byte](activatedWasmCacheSize), - wasmTag: wasmTag, - wasmTargets: db.WasmTargets(), + activatedAsmCache: lru.NewSizeConstrainedCache[activatedAsmCacheKey, []byte](activatedWasmCacheSize), + wasmTag: wasmTag, + wasmTargetsRetriever: db, disk: db, wasmdb: wasmdb, @@ -202,9 +202,9 @@ type activatedAsmCacheKey struct { type cachingDB struct { // Arbitrum - activatedAsmCache *lru.SizeConstrainedCache[activatedAsmCacheKey, []byte] - wasmTag uint32 - wasmTargets []ethdb.WasmTarget + activatedAsmCache *lru.SizeConstrainedCache[activatedAsmCacheKey, []byte] + wasmTag uint32 + wasmTargetsRetriever ethdb.WasmTargetsRetriever disk ethdb.KeyValueStore wasmdb ethdb.KeyValueStore @@ -222,7 +222,7 @@ func (db *cachingDB) WasmCacheTag() uint32 { } func (db *cachingDB) WasmTargets() []ethdb.WasmTarget { - return db.wasmTargets + return db.wasmTargetsRetriever.WasmTargets() } // OpenTrie opens the main account trie at a specific root hash. diff --git a/ethdb/database.go b/ethdb/database.go index 08765390e..14b60cc67 100644 --- a/ethdb/database.go +++ b/ethdb/database.go @@ -178,10 +178,12 @@ type AncientStore interface { io.Closer } -type WasmTarget string - type WasmDataBaseRetriever interface { WasmDataBase() (KeyValueStore, uint32) +} + +type WasmTarget string +type WasmTargetsRetriever interface { WasmTargets() []WasmTarget } @@ -197,4 +199,5 @@ type Database interface { Snapshotter io.Closer WasmDataBaseRetriever + WasmTargetsRetriever }