From 35fb4614e664eb3f47c86988ba0550c5b4380d22 Mon Sep 17 00:00:00 2001 From: 0xoasis Date: Fri, 17 Jul 2026 12:02:01 +0800 Subject: [PATCH] cmd/geth, eth/ethconfig: preserve zero engine reorg depth --- cmd/geth/config_test.go | 40 +++++++++++++++++++++++++++++++++++++ eth/ethconfig/config.go | 2 +- eth/ethconfig/gen_config.go | 4 ++-- 3 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 cmd/geth/config_test.go diff --git a/cmd/geth/config_test.go b/cmd/geth/config_test.go new file mode 100644 index 0000000000..4583efb825 --- /dev/null +++ b/cmd/geth/config_test.go @@ -0,0 +1,40 @@ +// Copyright 2026 The go-ethereum Authors +// This file is part of go-ethereum. +// +// go-ethereum is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// go-ethereum is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with go-ethereum. If not, see . + +package main + +import ( + "testing" + + "github.com/ethereum/go-ethereum/eth/ethconfig" +) + +func TestEngineMaxReorgDepthConfigRoundTrip(t *testing.T) { + original := ethconfig.Defaults + original.EngineMaxReorgDepth = 0 + + encoded, err := tomlSettings.Marshal(&original) + if err != nil { + t.Fatalf("failed to encode config: %v", err) + } + decoded := ethconfig.Defaults + if err := tomlSettings.Unmarshal(encoded, &decoded); err != nil { + t.Fatalf("failed to decode config: %v", err) + } + if decoded.EngineMaxReorgDepth != original.EngineMaxReorgDepth { + t.Fatalf("reorg depth changed across config round-trip: have %d, want %d", decoded.EngineMaxReorgDepth, original.EngineMaxReorgDepth) + } +} diff --git a/eth/ethconfig/config.go b/eth/ethconfig/config.go index c6f2fadde9..8e27a66419 100644 --- a/eth/ethconfig/config.go +++ b/eth/ethconfig/config.go @@ -207,7 +207,7 @@ type Config struct { // EngineMaxReorgDepth is the maximum depth the chain head can be rewound // to an already-canonical ancestor by engine API forkchoiceUpdated calls // (0 = no limit). - EngineMaxReorgDepth uint64 `toml:",omitempty"` + EngineMaxReorgDepth uint64 // OverrideOsaka (TODO: remove after the fork) OverrideOsaka *uint64 `toml:",omitempty"` diff --git a/eth/ethconfig/gen_config.go b/eth/ethconfig/gen_config.go index 167c93e685..4e61b1cccb 100644 --- a/eth/ethconfig/gen_config.go +++ b/eth/ethconfig/gen_config.go @@ -63,7 +63,7 @@ func (c Config) MarshalTOML() (interface{}, error) { RPCGasCap uint64 RPCEVMTimeout time.Duration RPCTxFeeCap float64 - EngineMaxReorgDepth uint64 `toml:",omitempty"` + EngineMaxReorgDepth uint64 OverrideOsaka *uint64 `toml:",omitempty"` OverrideAmsterdam *uint64 `toml:",omitempty"` OverrideBPO1 *uint64 `toml:",omitempty"` @@ -181,7 +181,7 @@ func (c *Config) UnmarshalTOML(unmarshal func(interface{}) error) error { RPCGasCap *uint64 RPCEVMTimeout *time.Duration RPCTxFeeCap *float64 - EngineMaxReorgDepth *uint64 `toml:",omitempty"` + EngineMaxReorgDepth *uint64 OverrideOsaka *uint64 `toml:",omitempty"` OverrideAmsterdam *uint64 `toml:",omitempty"` OverrideBPO1 *uint64 `toml:",omitempty"`