diff --git a/builder/files/config.toml b/builder/files/config.toml index 4700575d11..5d97e8bfd2 100644 --- a/builder/files/config.toml +++ b/builder/files/config.toml @@ -58,6 +58,7 @@ syncmode = "full" # mine = true # etherbase = "VALIDATOR ADDRESS" # extradata = "" + # recommit = "2m5s" # [jsonrpc] diff --git a/docs/cli/example_config.toml b/docs/cli/example_config.toml index fc16f163d8..42a61de42c 100644 --- a/docs/cli/example_config.toml +++ b/docs/cli/example_config.toml @@ -59,6 +59,7 @@ devfakeauthor = false # Run miner without validator set authorization [de extradata = "" # Block extra data set by the miner (default = client version) gaslimit = 30000000 # Target gas ceiling for mined blocks gasprice = "1000000000" # Minimum gas price for mining a transaction (recommended for mainnet = 30000000000, default suitable for mumbai/devnet) + recommit = "2m5s" # The time interval for miner to re-create mining work [jsonrpc] ipcdisable = false # Disable the IPC-RPC server diff --git a/docs/cli/server.md b/docs/cli/server.md index 35a33f7cdc..02fb60cccd 100644 --- a/docs/cli/server.md +++ b/docs/cli/server.md @@ -168,6 +168,8 @@ The ```bor server``` command runs the Bor client. - ```miner.gasprice```: Minimum gas price for mining a transaction (default: 1000000000) +- ```miner.recommit```: The time interval for miner to re-create mining work (default: 2m5s) + ### Telemetry Options - ```metrics```: Enable metrics collection and reporting (default: false) diff --git a/internal/cli/dumpconfig.go b/internal/cli/dumpconfig.go index a748af3357..ae69865daf 100644 --- a/internal/cli/dumpconfig.go +++ b/internal/cli/dumpconfig.go @@ -58,6 +58,7 @@ func (c *DumpconfigCommand) Run(args []string) int { userConfig.TxPool.RejournalRaw = userConfig.TxPool.Rejournal.String() userConfig.TxPool.LifeTimeRaw = userConfig.TxPool.LifeTime.String() userConfig.Sealer.GasPriceRaw = userConfig.Sealer.GasPrice.String() + userConfig.Sealer.RecommitRaw = userConfig.Sealer.Recommit.String() userConfig.Gpo.MaxPriceRaw = userConfig.Gpo.MaxPrice.String() userConfig.Gpo.IgnorePriceRaw = userConfig.Gpo.IgnorePrice.String() userConfig.Cache.RejournalRaw = userConfig.Cache.Rejournal.String() diff --git a/internal/cli/server/config.go b/internal/cli/server/config.go index ea16188ec2..58322fd28c 100644 --- a/internal/cli/server/config.go +++ b/internal/cli/server/config.go @@ -235,6 +235,10 @@ type SealerConfig struct { // GasPrice is the minimum gas price for mining a transaction GasPrice *big.Int `hcl:"-,optional" toml:"-"` GasPriceRaw string `hcl:"gasprice,optional" toml:"gasprice,optional"` + + // The time interval for miner to re-create mining work. + Recommit time.Duration `hcl:"-,optional" toml:"-"` + RecommitRaw string `hcl:"recommit,optional" toml:"recommit,optional"` } type JsonRPCConfig struct { @@ -505,6 +509,7 @@ func DefaultConfig() *Config { GasCeil: 30_000_000, // geth's default GasPrice: big.NewInt(1 * params.GWei), // geth's default ExtraData: "", + Recommit: 125 * time.Second, }, Gpo: &GpoConfig{ Blocks: 20, @@ -638,6 +643,7 @@ func (c *Config) fillTimeDurations() error { td *time.Duration str *string }{ + {"miner.recommit", &c.Sealer.Recommit, &c.Sealer.RecommitRaw}, {"jsonrpc.timeouts.read", &c.JsonRPC.HttpTimeout.ReadTimeout, &c.JsonRPC.HttpTimeout.ReadTimeoutRaw}, {"jsonrpc.timeouts.write", &c.JsonRPC.HttpTimeout.WriteTimeout, &c.JsonRPC.HttpTimeout.WriteTimeoutRaw}, {"jsonrpc.timeouts.idle", &c.JsonRPC.HttpTimeout.IdleTimeout, &c.JsonRPC.HttpTimeout.IdleTimeoutRaw}, @@ -758,6 +764,7 @@ func (c *Config) buildEth(stack *node.Node, accountManager *accounts.Manager) (* // miner options { + n.Miner.Recommit = c.Sealer.Recommit n.Miner.GasPrice = c.Sealer.GasPrice n.Miner.GasCeil = c.Sealer.GasCeil n.Miner.ExtraData = []byte(c.Sealer.ExtraData) diff --git a/internal/cli/server/flags.go b/internal/cli/server/flags.go index 803a06acc4..c217ae9335 100644 --- a/internal/cli/server/flags.go +++ b/internal/cli/server/flags.go @@ -247,6 +247,13 @@ func (c *Command) Flags() *flagset.Flagset { Group: "Sealer", Default: c.cliConfig.Sealer.GasPrice, }) + f.DurationFlag(&flagset.DurationFlag{ + Name: "miner.recommit", + Usage: "The time interval for miner to re-create mining work", + Value: &c.cliConfig.Sealer.Recommit, + Default: c.cliConfig.Sealer.Recommit, + Group: "Sealer", + }) // ethstats f.StringFlag(&flagset.StringFlag{ diff --git a/packaging/templates/mainnet-v1/archive/config.toml b/packaging/templates/mainnet-v1/archive/config.toml index 537be0b1eb..0670fd9f74 100644 --- a/packaging/templates/mainnet-v1/archive/config.toml +++ b/packaging/templates/mainnet-v1/archive/config.toml @@ -52,6 +52,7 @@ gcmode = "archive" # mine = false # etherbase = "" # extradata = "" + # recommit = "2m5s" [jsonrpc] ipcpath = "/var/lib/bor/bor.ipc" diff --git a/packaging/templates/mainnet-v1/sentry/sentry/bor/config.toml b/packaging/templates/mainnet-v1/sentry/sentry/bor/config.toml index d0faf61cd1..c424ee42d1 100644 --- a/packaging/templates/mainnet-v1/sentry/sentry/bor/config.toml +++ b/packaging/templates/mainnet-v1/sentry/sentry/bor/config.toml @@ -52,6 +52,7 @@ syncmode = "full" # mine = false # etherbase = "" # extradata = "" + # recommit = "2m5s" [jsonrpc] ipcpath = "/var/lib/bor/bor.ipc" diff --git a/packaging/templates/mainnet-v1/sentry/validator/bor/config.toml b/packaging/templates/mainnet-v1/sentry/validator/bor/config.toml index 078c032e66..bc4814ffbb 100644 --- a/packaging/templates/mainnet-v1/sentry/validator/bor/config.toml +++ b/packaging/templates/mainnet-v1/sentry/validator/bor/config.toml @@ -54,6 +54,7 @@ syncmode = "full" gasprice = "30000000000" # etherbase = "" # extradata = "" + # recommit = "2m5s" [jsonrpc] ipcpath = "/var/lib/bor/bor.ipc" diff --git a/packaging/templates/mainnet-v1/without-sentry/bor/config.toml b/packaging/templates/mainnet-v1/without-sentry/bor/config.toml index fe26912e5c..dcbf371263 100644 --- a/packaging/templates/mainnet-v1/without-sentry/bor/config.toml +++ b/packaging/templates/mainnet-v1/without-sentry/bor/config.toml @@ -54,6 +54,7 @@ syncmode = "full" gasprice = "30000000000" # etherbase = "" # extradata = "" + # recommit = "2m5s" [jsonrpc] ipcpath = "/var/lib/bor/bor.ipc" diff --git a/packaging/templates/testnet-v4/archive/config.toml b/packaging/templates/testnet-v4/archive/config.toml index fed0f47ec8..2ae6e241a2 100644 --- a/packaging/templates/testnet-v4/archive/config.toml +++ b/packaging/templates/testnet-v4/archive/config.toml @@ -52,6 +52,7 @@ gcmode = "archive" # mine = false # etherbase = "" # extradata = "" + # recommit = "2m5s" [jsonrpc] ipcpath = "/var/lib/bor/bor.ipc" diff --git a/packaging/templates/testnet-v4/sentry/sentry/bor/config.toml b/packaging/templates/testnet-v4/sentry/sentry/bor/config.toml index 11aa09a9b7..cc6b081bbd 100644 --- a/packaging/templates/testnet-v4/sentry/sentry/bor/config.toml +++ b/packaging/templates/testnet-v4/sentry/sentry/bor/config.toml @@ -52,6 +52,7 @@ syncmode = "full" # mine = false # etherbase = "" # extradata = "" + # recommit = "2m5s" [jsonrpc] ipcpath = "/var/lib/bor/bor.ipc" diff --git a/packaging/templates/testnet-v4/sentry/validator/bor/config.toml b/packaging/templates/testnet-v4/sentry/validator/bor/config.toml index 7781e321eb..e0a5acd08f 100644 --- a/packaging/templates/testnet-v4/sentry/validator/bor/config.toml +++ b/packaging/templates/testnet-v4/sentry/validator/bor/config.toml @@ -54,6 +54,7 @@ syncmode = "full" # gasprice = "1000000000" # etherbase = "" # extradata = "" + # recommit = "2m5s" [jsonrpc] ipcpath = "/var/lib/bor/bor.ipc" diff --git a/packaging/templates/testnet-v4/without-sentry/bor/config.toml b/packaging/templates/testnet-v4/without-sentry/bor/config.toml index 3d9f9e7bd3..2fd3f83913 100644 --- a/packaging/templates/testnet-v4/without-sentry/bor/config.toml +++ b/packaging/templates/testnet-v4/without-sentry/bor/config.toml @@ -54,6 +54,7 @@ syncmode = "full" # gasprice = "1000000000" # etherbase = "" # extradata = "" + # recommit = "2m5s" [jsonrpc] ipcpath = "/var/lib/bor/bor.ipc"