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  }