From 35fb4614e664eb3f47c86988ba0550c5b4380d22 Mon Sep 17 00:00:00 2001 From: 0xoasis Date: Fri, 17 Jul 2026 12:02:01 +0800 Subject: [PATCH 1/2] 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"` From 175aa7398c45a9b37096f6a0199631398d5861cb Mon Sep 17 00:00:00 2001 From: rjl493456442 Date: Fri, 17 Jul 2026 20:48:26 +0800 Subject: [PATCH 2/2] Delete cmd/geth/config_test.go --- cmd/geth/config_test.go | 40 ---------------------------------------- 1 file changed, 40 deletions(-) delete mode 100644 cmd/geth/config_test.go diff --git a/cmd/geth/config_test.go b/cmd/geth/config_test.go deleted file mode 100644 index 4583efb825..0000000000 --- a/cmd/geth/config_test.go +++ /dev/null @@ -1,40 +0,0 @@ -// 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) - } -}