diff --git a/internal/cli/server/config.go b/internal/cli/server/config.go index 2e0a8f21f5..6bbe3d781a 100644 --- a/internal/cli/server/config.go +++ b/internal/cli/server/config.go @@ -53,6 +53,9 @@ type Config struct { // DataDir is the directory to store the state in DataDir string `hcl:"datadir,optional" toml:"datadir,optional"` + // Ancient is the directory to store the state in + Ancient string `hcl:"ancient,optional" toml:"ancient,optional"` + // KeyStoreDir is the directory to store keystores KeyStoreDir string `hcl:"keystore,optional" toml:"keystore,optional"` @@ -398,6 +401,7 @@ func DefaultConfig() *Config { RequiredBlocks: map[string]string{}, LogLevel: "INFO", DataDir: DefaultDataDir(), + Ancient: "", P2P: &P2PConfig{ MaxPeers: 50, MaxPendPeers: 50, @@ -879,6 +883,10 @@ func (c *Config) buildEth(stack *node.Node, accountManager *accounts.Manager) (* n.BorLogs = c.BorLogs n.DatabaseHandles = dbHandles + if c.Ancient != "" { + n.DatabaseFreezer = c.Ancient + } + return &n, nil } diff --git a/internal/cli/server/flags.go b/internal/cli/server/flags.go index 550d76942b..a53e1c3e46 100644 --- a/internal/cli/server/flags.go +++ b/internal/cli/server/flags.go @@ -33,6 +33,12 @@ func (c *Command) Flags() *flagset.Flagset { Value: &c.cliConfig.DataDir, Default: c.cliConfig.DataDir, }) + f.StringFlag(&flagset.StringFlag{ + Name: "datadir.ancient", + Usage: "Data directory for ancient chain segments (default = inside chaindata)", + Value: &c.cliConfig.Ancient, + Default: c.cliConfig.Ancient, + }) f.StringFlag(&flagset.StringFlag{ Name: "keystore", Usage: "Path of the directory where keystores are located",