Skip to content

Commit ac7bb03

Browse files
yperbasisSahil-4555
authored andcommitted
node: fix setDefaultMinerGasLimit (#19112)
Fix for Issue #18424
1 parent 0584124 commit ac7bb03

File tree

3 files changed

+40
-8
lines changed

3 files changed

+40
-8
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// Copyright 2026 The Erigon Authors
2+
// This file is part of Erigon.
3+
//
4+
// Erigon is free software: you can redistribute it and/or modify
5+
// it under the terms of the GNU Lesser General Public License as published by
6+
// the Free Software Foundation, either version 3 of the License, or
7+
// (at your option) any later version.
8+
//
9+
// Erigon is distributed in the hope that it will be useful,
10+
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11+
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12+
// GNU Lesser General Public License for more details.
13+
//
14+
// You should have received a copy of the GNU Lesser General Public License
15+
// along with Erigon. If not, see <http://www.gnu.org/licenses/>.
16+
17+
package misc
18+
19+
import (
20+
"testing"
21+
22+
"github.com/stretchr/testify/assert"
23+
)
24+
25+
// A test for https://github.com/erigontech/erigon/issues/18424
26+
func TestCalcGasLimit(t *testing.T) {
27+
// https://gnosisscan.io//block/43788389
28+
parentGasLimit := uint64(16_999_984)
29+
desiredLimit := uint64(17_000_000)
30+
gasLimit := CalcGasLimit(parentGasLimit, desiredLimit)
31+
assert.Equal(t, desiredLimit, gasLimit)
32+
}

node/eth/backend.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -394,8 +394,8 @@ func New(ctx context.Context, stack *node.Node, config *ethconfig.Config, logger
394394
backend.genesisBlock = genesis
395395
backend.genesisHash = genesis.Hash()
396396

397-
setDefaultMinerGasLimit(chainConfig, config, logger)
398-
setBorDefaultTxPoolPriceLimit(chainConfig, &config.TxPool, logger)
397+
setDefaultMinerGasLimit(config, chainConfig)
398+
setBorDefaultTxPoolPriceLimit(&config.TxPool, chainConfig, logger)
399399

400400
logger.Info("Initialised chain configuration", "config", chainConfig, "genesis", genesis.Hash())
401401
if dbg.OnlyCreateDB {
@@ -1745,15 +1745,15 @@ func (s *Ethereum) DataDir() string {
17451745
return s.config.Dirs.DataDir
17461746
}
17471747

1748-
func setDefaultMinerGasLimit(chainConfig *chain.Config, config *ethconfig.Config, logger log.Logger) {
1748+
func setDefaultMinerGasLimit(config *ethconfig.Config, chainConfig *chain.Config) {
17491749
if config.Miner.GasLimit == nil {
1750-
gasLimit := ethconfig.DefaultBlockGasLimitByChain(config)
1750+
gasLimit := ethconfig.DefaultBlockGasLimitByChain(chainConfig)
17511751
config.Miner.GasLimit = &gasLimit
17521752
}
17531753
}
17541754

17551755
// setBorDefaultTxPoolPriceLimit enforces MinFeeCap to be equal to BorDefaultTxPoolPriceLimit (25gwei by default)
1756-
func setBorDefaultTxPoolPriceLimit(chainConfig *chain.Config, config *txpoolcfg.Config, logger log.Logger) {
1756+
func setBorDefaultTxPoolPriceLimit(config *txpoolcfg.Config, chainConfig *chain.Config, logger log.Logger) {
17571757
if chainConfig.Bor != nil && config.MinFeeCap != txpoolcfg.BorDefaultTxPoolPriceLimit {
17581758
logger.Warn("Sanitizing invalid bor min fee cap", "provided", config.MinFeeCap, "updated", txpoolcfg.BorDefaultTxPoolPriceLimit)
17591759
config.MinFeeCap = txpoolcfg.BorDefaultTxPoolPriceLimit

node/ethconfig/config.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,11 @@ var BorDefaultMinerGasPrice = big.NewInt(25 * common.GWei)
5353
// Fail-back block gas limit. Better specify one in the chain config.
5454
const DefaultBlockGasLimit uint64 = 60_000_000
5555

56-
func DefaultBlockGasLimitByChain(config *Config) uint64 {
57-
if config.Genesis == nil || config.Genesis.Config == nil || config.Genesis.Config.DefaultBlockGasLimit == nil {
56+
func DefaultBlockGasLimitByChain(chainConfig *chain.Config) uint64 {
57+
if chainConfig.DefaultBlockGasLimit == nil {
5858
return DefaultBlockGasLimit
5959
}
60-
return *config.Genesis.Config.DefaultBlockGasLimit
60+
return *chainConfig.DefaultBlockGasLimit
6161
}
6262

6363
// FullNodeGPO contains default gasprice oracle settings for full node.

0 commit comments

Comments
 (0)