diff --git a/builder/files/config.toml b/builder/files/config.toml index 15c357cb6c..d7894528d5 100644 --- a/builder/files/config.toml +++ b/builder/files/config.toml @@ -8,6 +8,7 @@ chain = "mainnet" # vmdebug = false datadir = "/var/lib/bor/data" # ancient = "" +db.engine = "leveldb" # keystore = "/var/lib/bor/keystore" # "rpc.batchlimit" = 100 # "rpc.returndatalimit" = 100000 diff --git a/docs/cli/example_config.toml b/docs/cli/example_config.toml index ef15d6bfdd..2dd03caccd 100644 --- a/docs/cli/example_config.toml +++ b/docs/cli/example_config.toml @@ -8,6 +8,7 @@ verbosity = 3 # Logging verbosity for the server (5=trace|4=de vmdebug = false # Record information useful for VM and contract debugging datadir = "var/lib/bor" # Path of the data directory to store information ancient = "" # Data directory for ancient chain segments (default = inside chaindata) +db.engine = "leveldb" # Used to select leveldb or pebble as database (default = leveldb) keystore = "" # Path of the directory where keystores are located "rpc.batchlimit" = 100 # Maximum number of messages in a batch (default=100, use 0 for no limits) "rpc.returndatalimit" = 100000 # Maximum size (in bytes) a result of an rpc request could have (default=100000, use 0 for no limits) diff --git a/docs/cli/server.md b/docs/cli/server.md index 13e8cda447..213d491fff 100644 --- a/docs/cli/server.md +++ b/docs/cli/server.md @@ -18,6 +18,8 @@ The ```bor server``` command runs the Bor client. - ```datadir.ancient```: Data directory for ancient chain segments (default = inside chaindata) +- ```db.engine```: Backing database implementation to use ('leveldb' or 'pebble') (default: leveldb) + - ```keystore```: Path of the directory where keystores are located - ```rpc.batchlimit```: Maximum number of messages in a batch (default=100, use 0 for no limits) (default: 100) diff --git a/internal/cli/server/config.go b/internal/cli/server/config.go index dcee1e26f5..9ee5f55676 100644 --- a/internal/cli/server/config.go +++ b/internal/cli/server/config.go @@ -67,6 +67,9 @@ type Config struct { // Ancient is the directory to store the state in Ancient string `hcl:"ancient,optional" toml:"ancient,optional"` + // DBEngine is used to select leveldb or pebble as database + DBEngine string `hcl:"dbengine,optional" toml:"dbengine,optional"` + // KeyStoreDir is the directory to store keystores KeyStoreDir string `hcl:"keystore,optional" toml:"keystore,optional"` @@ -592,6 +595,7 @@ func DefaultConfig() *Config { EnablePreimageRecording: false, DataDir: DefaultDataDir(), Ancient: "", + DBEngine: "leveldb", Logging: &LoggingConfig{ Vmodule: "", Json: false, @@ -1278,6 +1282,7 @@ func (c *Config) buildNode() (*node.Config, error) { cfg := &node.Config{ Name: clientIdentifier, DataDir: c.DataDir, + DBEngine: c.DBEngine, KeyStoreDir: c.KeyStoreDir, UseLightweightKDF: c.Accounts.UseLightweightKDF, InsecureUnlockAllowed: c.Accounts.AllowInsecureUnlock, diff --git a/internal/cli/server/flags.go b/internal/cli/server/flags.go index d0a53aa4b8..34d3ace94f 100644 --- a/internal/cli/server/flags.go +++ b/internal/cli/server/flags.go @@ -53,6 +53,12 @@ func (c *Command) Flags() *flagset.Flagset { Value: &c.cliConfig.Ancient, Default: c.cliConfig.Ancient, }) + f.StringFlag(&flagset.StringFlag{ + Name: "db.engine", + Usage: "Backing database implementation to use ('leveldb' or 'pebble')", + Value: &c.cliConfig.DBEngine, + Default: c.cliConfig.DBEngine, + }) f.StringFlag(&flagset.StringFlag{ Name: "keystore", Usage: "Path of the directory where keystores are located", diff --git a/packaging/templates/mainnet-v1/archive/config.toml b/packaging/templates/mainnet-v1/archive/config.toml index 3c0f3f40f7..8522ca0304 100644 --- a/packaging/templates/mainnet-v1/archive/config.toml +++ b/packaging/templates/mainnet-v1/archive/config.toml @@ -4,6 +4,7 @@ chain = "mainnet" # vmdebug = false datadir = "/var/lib/bor/data" # ancient = "" +# db.engine = "leveldb" # keystore = "" # "rpc.batchlimit" = 100 # "rpc.returndatalimit" = 100000 diff --git a/packaging/templates/mainnet-v1/sentry/sentry/bor/config.toml b/packaging/templates/mainnet-v1/sentry/sentry/bor/config.toml index 38631041c9..411c16f529 100644 --- a/packaging/templates/mainnet-v1/sentry/sentry/bor/config.toml +++ b/packaging/templates/mainnet-v1/sentry/sentry/bor/config.toml @@ -4,6 +4,7 @@ chain = "mainnet" # vmdebug = false datadir = "/var/lib/bor/data" # ancient = "" +# db.engine = "leveldb" # keystore = "" # "rpc.batchlimit" = 100 # "rpc.returndatalimit" = 100000 diff --git a/packaging/templates/mainnet-v1/sentry/validator/bor/config.toml b/packaging/templates/mainnet-v1/sentry/validator/bor/config.toml index 19d0776193..7798cccd1a 100644 --- a/packaging/templates/mainnet-v1/sentry/validator/bor/config.toml +++ b/packaging/templates/mainnet-v1/sentry/validator/bor/config.toml @@ -6,6 +6,7 @@ chain = "mainnet" # vmdebug = false datadir = "/var/lib/bor/data" # ancient = "" +# db.engine = "leveldb" # keystore = "$BOR_DIR/keystore" # "rpc.batchlimit" = 100 # "rpc.returndatalimit" = 100000 diff --git a/packaging/templates/mainnet-v1/without-sentry/bor/config.toml b/packaging/templates/mainnet-v1/without-sentry/bor/config.toml index 15ca789262..52975db775 100644 --- a/packaging/templates/mainnet-v1/without-sentry/bor/config.toml +++ b/packaging/templates/mainnet-v1/without-sentry/bor/config.toml @@ -6,6 +6,7 @@ chain = "mainnet" # vmdebug = false datadir = "/var/lib/bor/data" # ancient = "" +# db.engine = "leveldb" # keystore = "$BOR_DIR/keystore" # "rpc.batchlimit" = 100 # "rpc.returndatalimit" = 100000 diff --git a/packaging/templates/testnet-v4/archive/config.toml b/packaging/templates/testnet-v4/archive/config.toml index bc6a2d68f1..e6ad0ea920 100644 --- a/packaging/templates/testnet-v4/archive/config.toml +++ b/packaging/templates/testnet-v4/archive/config.toml @@ -4,6 +4,7 @@ chain = "mumbai" # vmdebug = false datadir = "/var/lib/bor/data" # ancient = "" +# db.engine = "leveldb" # keystore = "" # "rpc.batchlimit" = 100 # "rpc.returndatalimit" = 100000 diff --git a/packaging/templates/testnet-v4/sentry/sentry/bor/config.toml b/packaging/templates/testnet-v4/sentry/sentry/bor/config.toml index 27fbd6593a..7ec7dc639a 100644 --- a/packaging/templates/testnet-v4/sentry/sentry/bor/config.toml +++ b/packaging/templates/testnet-v4/sentry/sentry/bor/config.toml @@ -4,6 +4,7 @@ chain = "mumbai" # vmdebug = false datadir = "/var/lib/bor/data" # ancient = "" +# db.engine = "leveldb" # keystore = "" # "rpc.batchlimit" = 100 # "rpc.returndatalimit" = 100000 diff --git a/packaging/templates/testnet-v4/sentry/validator/bor/config.toml b/packaging/templates/testnet-v4/sentry/validator/bor/config.toml index c1b455dddf..ffc6ef8633 100644 --- a/packaging/templates/testnet-v4/sentry/validator/bor/config.toml +++ b/packaging/templates/testnet-v4/sentry/validator/bor/config.toml @@ -6,6 +6,7 @@ chain = "mumbai" # vmdebug = false datadir = "/var/lib/bor/data" # ancient = "" +# db.engine = "leveldb" # keystore = "$BOR_DIR/keystore" # "rpc.batchlimit" = 100 # "rpc.returndatalimit" = 100000 diff --git a/packaging/templates/testnet-v4/without-sentry/bor/config.toml b/packaging/templates/testnet-v4/without-sentry/bor/config.toml index f78f6f8525..00d26c52cc 100644 --- a/packaging/templates/testnet-v4/without-sentry/bor/config.toml +++ b/packaging/templates/testnet-v4/without-sentry/bor/config.toml @@ -6,6 +6,7 @@ chain = "mumbai" # vmdebug = false datadir = "/var/lib/bor/data" # ancient = "" +# db.engine = "leveldb" # keystore = "$BOR_DIR/keystore" # "rpc.batchlimit" = 100 # "rpc.returndatalimit" = 100000