github.com/baptiste-b-pegasys/quorum/v22@v22.4.2/core/privatecache/private_cache_provider.go (about) 1 package privatecache 2 3 import ( 4 "github.com/ethereum/go-ethereum/common" 5 "github.com/ethereum/go-ethereum/core/state" 6 "github.com/ethereum/go-ethereum/ethdb" 7 "github.com/ethereum/go-ethereum/log" 8 "github.com/ethereum/go-ethereum/trie" 9 ) 10 11 type Provider interface { 12 GetCache() state.Database 13 GetCacheWithConfig() state.Database 14 Commit(db state.Database, hash common.Hash) error 15 Reference(child, parent common.Hash) 16 } 17 18 func NewPrivateCacheProvider(db ethdb.Database, config *trie.Config, cache state.Database, privateCacheEnabled bool) Provider { 19 if privateCacheEnabled { 20 log.Info("Using UnifiedCacheProvider.") 21 return &unifiedCacheProvider{ 22 cache: cache, 23 } 24 } 25 log.Info("Using SegregatedCacheProvider.") 26 return &segregatedCacheProvider{db: db, config: config} 27 }