private_cache_provider.go 779 B

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