Merge remote-tracking branch 'origin/bugfix/trie-plugin-cleanup-dev' into merge/geth-v1.13.11
This commit is contained in:
+1
-2
@@ -356,8 +356,7 @@ func geth(ctx *cli.Context) error {
|
||||
}
|
||||
|
||||
stack, backend := makeFullNode(ctx)
|
||||
trieCfg := plugethCaptureTrieConfig(ctx, stack, backend)
|
||||
wrapperBackend := backendwrapper.NewBackend(backend, trieCfg)
|
||||
wrapperBackend := backendwrapper.NewBackend(backend)
|
||||
|
||||
pluginsInitializeNode(stack, wrapperBackend)
|
||||
if ok, err := plugins.RunSubcommand(ctx); ok {
|
||||
|
||||
@@ -1,25 +1,15 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/ethereum/go-ethereum/cmd/utils"
|
||||
gcore "github.com/ethereum/go-ethereum/core"
|
||||
"github.com/ethereum/go-ethereum/core/rawdb"
|
||||
"github.com/ethereum/go-ethereum/eth/ethconfig"
|
||||
"github.com/ethereum/go-ethereum/internal/ethapi"
|
||||
"github.com/ethereum/go-ethereum/log"
|
||||
"github.com/ethereum/go-ethereum/node"
|
||||
"github.com/ethereum/go-ethereum/rpc"
|
||||
"github.com/ethereum/go-ethereum/trie"
|
||||
"github.com/ethereum/go-ethereum/trie/triedb/hashdb"
|
||||
"github.com/ethereum/go-ethereum/trie/triedb/pathdb"
|
||||
|
||||
"github.com/ethereum/go-ethereum/plugins"
|
||||
"github.com/ethereum/go-ethereum/plugins/wrappers"
|
||||
|
||||
"github.com/openrelayxyz/plugeth-utils/core"
|
||||
"github.com/openrelayxyz/plugeth-utils/restricted"
|
||||
|
||||
"github.com/urfave/cli/v2"
|
||||
)
|
||||
|
||||
func apiTranslate(apis []core.API) []rpc.API {
|
||||
@@ -132,69 +122,3 @@ func pluginBlockChain() {
|
||||
}
|
||||
BlockChain(plugins.DefaultPluginLoader)
|
||||
}
|
||||
|
||||
func plugethCaptureTrieConfig(ctx *cli.Context, stack *node.Node, backend ethapi.Backend) *trie.Config {
|
||||
|
||||
ethCfg := new(ethconfig.Config)
|
||||
|
||||
if ctx.IsSet(utils.CacheFlag.Name) || ctx.IsSet(utils.CacheTrieFlag.Name) {
|
||||
ethCfg.TrieCleanCache = ctx.Int(utils.CacheFlag.Name) * ctx.Int(utils.CacheTrieFlag.Name) / 100
|
||||
}
|
||||
if ctx.IsSet(utils.CacheNoPrefetchFlag.Name) {
|
||||
ethCfg.NoPrefetch = ctx.Bool(utils.CacheNoPrefetchFlag.Name)
|
||||
}
|
||||
if ctx.IsSet(utils.CacheFlag.Name) || ctx.IsSet(utils.CacheGCFlag.Name) {
|
||||
ethCfg.TrieDirtyCache = ctx.Int(utils.CacheFlag.Name) * ctx.Int(utils.CacheGCFlag.Name) / 100
|
||||
}
|
||||
if ctx.IsSet(utils.GCModeFlag.Name) {
|
||||
ethCfg.NoPruning = ctx.String(utils.GCModeFlag.Name) == "archive"
|
||||
}
|
||||
if ctx.IsSet(utils.CacheFlag.Name) || ctx.IsSet(utils.CacheSnapshotFlag.Name) {
|
||||
ethCfg.SnapshotCache = ctx.Int(utils.CacheFlag.Name) * ctx.Int(utils.CacheSnapshotFlag.Name) / 100
|
||||
}
|
||||
ethCfg.Preimages = ctx.Bool(utils.CachePreimagesFlag.Name)
|
||||
if ethCfg.NoPruning && !ethCfg.Preimages {
|
||||
ethCfg.Preimages = true
|
||||
log.Info("Enabling recording of key preimages since archive mode is used")
|
||||
}
|
||||
if ctx.IsSet(utils.StateHistoryFlag.Name) {
|
||||
ethCfg.StateHistory = ctx.Uint64(utils.StateHistoryFlag.Name)
|
||||
}
|
||||
|
||||
chaindb := backend.ChainDb()
|
||||
|
||||
scheme, err := rawdb.ParseStateScheme(ctx.String(utils.StateSchemeFlag.Name), chaindb)
|
||||
if err != nil {
|
||||
utils.Fatalf("%v", err)
|
||||
}
|
||||
|
||||
ethCfg.StateScheme = scheme
|
||||
|
||||
cacheCfg := &gcore.CacheConfig{
|
||||
TrieCleanLimit: ethCfg.TrieCleanCache,
|
||||
TrieCleanNoPrefetch: ethCfg.NoPrefetch,
|
||||
TrieDirtyLimit: ethCfg.TrieDirtyCache,
|
||||
TrieDirtyDisabled: ethCfg.NoPruning,
|
||||
TrieTimeLimit: ethconfig.Defaults.TrieTimeout,
|
||||
SnapshotLimit: ethCfg.SnapshotCache,
|
||||
Preimages: ethCfg.Preimages,
|
||||
StateHistory: ethCfg.StateHistory,
|
||||
StateScheme: ethCfg.StateScheme,
|
||||
}
|
||||
|
||||
config := &trie.Config{Preimages: cacheCfg.Preimages}
|
||||
if cacheCfg.StateScheme == rawdb.HashScheme {
|
||||
config.HashDB = &hashdb.Config{
|
||||
CleanCacheSize: cacheCfg.TrieCleanLimit * 1024 * 1024,
|
||||
}
|
||||
}
|
||||
if cacheCfg.StateScheme == rawdb.PathScheme {
|
||||
config.PathDB = &pathdb.Config{
|
||||
StateHistory: cacheCfg.StateHistory,
|
||||
CleanCacheSize: cacheCfg.TrieCleanLimit * 1024 * 1024,
|
||||
DirtyCacheSize: cacheCfg.TrieDirtyLimit * 1024 * 1024,
|
||||
}
|
||||
}
|
||||
|
||||
return config
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user