cmd/utils/flags.go — Version Comparison¶
| v1.16.8 | v1.17.3 | |
|---|---|---|
| Branch | etc/v1.16.8-full-node |
etc/v1.17.3-full-node |
| Delta | +39 -3 | +41 -7 |
ETC delta on v1.16.8 (+39 -3)
diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go
index 5a7e40767..e37d0ff82 100644
--- a/cmd/utils/flags.go
+++ b/cmd/utils/flags.go
@@ -1021,9 +1021,10 @@ var (
SepoliaFlag,
HoleskyFlag,
HoodiFlag,
+ MordorFlag,
}
// NetworkFlags is the flag group of all built-in supported networks.
- NetworkFlags = append([]cli.Flag{MainnetFlag}, TestnetFlags...)
+ NetworkFlags = append(append([]cli.Flag{MainnetFlag}, TestnetFlags...), ClassicFlag)
// DatabaseFlags is the flag group of all database flags.
DatabaseFlags = []cli.Flag{
@@ -1057,6 +1058,12 @@ func MakeDataDir(ctx *cli.Context) string {
if ctx.Bool(HoodiFlag.Name) {
return filepath.Join(path, "hoodi")
}
+ if ctx.Bool(ClassicFlag.Name) {
+ return filepath.Join(path, "classic")
+ }
+ if ctx.Bool(MordorFlag.Name) {
+ return filepath.Join(path, "mordor")
+ }
return path
}
Fatalf("Cannot determine default data directory, please set manually (--datadir)")
@@ -1604,7 +1611,7 @@ func setRequiredBlocks(ctx *cli.Context, cfg *ethconfig.Config) {
// SetEthConfig applies eth-related command line flags to the config.
func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *ethconfig.Config) {
// Avoid conflicting network flags, don't allow network id override on preset networks
- flags.CheckExclusive(ctx, MainnetFlag, DeveloperFlag, SepoliaFlag, HoleskyFlag, HoodiFlag, NetworkIdFlag, OverrideGenesisFlag)
+ flags.CheckExclusive(ctx, MainnetFlag, DeveloperFlag, SepoliaFlag, HoleskyFlag, HoodiFlag, ClassicFlag, MordorFlag, NetworkIdFlag, OverrideGenesisFlag)
flags.CheckExclusive(ctx, DeveloperFlag, ExternalSignerFlag) // Can't use both ephemeral unlocked and external signer
// Set configurations from CLI flags
@@ -1612,7 +1619,9 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *ethconfig.Config) {
setGPO(ctx, &cfg.GPO)
setTxPool(ctx, &cfg.TxPool)
setBlobPool(ctx, &cfg.BlobPool)
+ setEthash(ctx, cfg)
setMiner(ctx, &cfg.Miner)
+ setMinerETC(ctx, &cfg.Miner)
setRequiredBlocks(ctx, cfg)
// Cap the cache allowance and tune the garbage collector
@@ -1790,6 +1799,12 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *ethconfig.Config) {
if ctx.Bool(StateSizeTrackingFlag.Name) {
cfg.EnableStateSizeTracking = true
}
+ if ctx.IsSet(MESSForceEnableFlag.Name) {
+ cfg.MESSForceEnable = ctx.Bool(MESSForceEnableFlag.Name)
+ }
+ if ctx.IsSet(MESSForceDisableFlag.Name) {
+ cfg.MESSForceDisable = ctx.Bool(MESSForceDisableFlag.Name)
+ }
// Override any default configs for hard coded networks.
switch {
case ctx.Bool(MainnetFlag.Name):
@@ -1808,6 +1823,22 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *ethconfig.Config) {
cfg.NetworkId = 560048
cfg.Genesis = core.DefaultHoodiGenesisBlock()
SetDNSDiscoveryDefaults(cfg, params.HoodiGenesisHash)
+ case ctx.Bool(ClassicFlag.Name):
+ cfg.NetworkId = 1 // ETC uses NetworkID=1 (same as ETH), ChainID=61 is for tx signing
+ cfg.Genesis = core.DefaultClassicGenesisBlock()
+ // ETC shares genesis hash with ETH mainnet, so we set DNS directly
+ if cfg.EthDiscoveryURLs == nil {
+ cfg.EthDiscoveryURLs = []string{"enrtree://AJE62Q4DUX4QMMXEHCSSCSC65TDHZYSMONSD64P3WULVLSF6MRQ3K@all.classic.blockd.info"}
+ cfg.SnapDiscoveryURLs = cfg.EthDiscoveryURLs
+ }
+ case ctx.Bool(MordorFlag.Name):
+ cfg.NetworkId = 7 // Mordor uses NetworkID=7, ChainID=63
+ cfg.Genesis = core.DefaultMordorGenesisBlock()
+ // Mordor DNS discovery
+ if cfg.EthDiscoveryURLs == nil {
+ cfg.EthDiscoveryURLs = []string{"enrtree://AJE62Q4DUX4QMMXEHCSSCSC65TDHZYSMONSD64P3WULVLSF6MRQ3K@all.mordor.blockd.info"}
+ cfg.SnapDiscoveryURLs = cfg.EthDiscoveryURLs
+ }
case ctx.Bool(DeveloperFlag.Name):
cfg.NetworkId = 1337
cfg.SyncMode = ethconfig.FullSync
@@ -1903,7 +1934,8 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *ethconfig.Config) {
}
cfg.Genesis = genesis
default:
- if cfg.NetworkId == 1 {
+ // Only set mainnet DNS defaults if NetworkId==1 AND not using ETC (which also uses NetworkId=1)
+ if cfg.NetworkId == 1 && !ctx.Bool(ClassicFlag.Name) {
SetDNSDiscoveryDefaults(cfg, params.MainnetGenesisHash)
}
}
@@ -2244,6 +2276,10 @@ func MakeGenesis(ctx *cli.Context) *core.Genesis {
genesis = core.DefaultSepoliaGenesisBlock()
case ctx.Bool(HoodiFlag.Name):
genesis = core.DefaultHoodiGenesisBlock()
+ case ctx.Bool(ClassicFlag.Name):
+ genesis = core.DefaultClassicGenesisBlock()
+ case ctx.Bool(MordorFlag.Name):
+ genesis = core.DefaultMordorGenesisBlock()
case ctx.Bool(DeveloperFlag.Name):
Fatalf("Developer chains are ephemeral")
}
ETC delta on v1.17.3 (+41 -7)
diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go
index ea0f6f5ee..29385a2b2 100644
--- a/cmd/utils/flags.go
+++ b/cmd/utils/flags.go
@@ -1120,9 +1120,10 @@ var (
SepoliaFlag,
HoleskyFlag,
HoodiFlag,
+ MordorFlag,
}
// NetworkFlags is the flag group of all built-in supported networks.
- NetworkFlags = append([]cli.Flag{MainnetFlag}, TestnetFlags...)
+ NetworkFlags = append(append([]cli.Flag{MainnetFlag}, TestnetFlags...), ClassicFlag)
// DatabaseFlags is the flag group of all database flags.
DatabaseFlags = []cli.Flag{
@@ -1156,6 +1157,12 @@ func MakeDataDir(ctx *cli.Context) string {
if ctx.Bool(HoodiFlag.Name) {
return filepath.Join(path, "hoodi")
}
+ if ctx.Bool(ClassicFlag.Name) {
+ return filepath.Join(path, "classic")
+ }
+ if ctx.Bool(MordorFlag.Name) {
+ return filepath.Join(path, "mordor")
+ }
return path
}
Fatalf("Cannot determine default data directory, please set manually (--datadir)")
@@ -1685,9 +1692,6 @@ func setBlobPool(ctx *cli.Context, cfg *blobpool.Config) {
}
func setMiner(ctx *cli.Context, cfg *miner.Config) {
- if ctx.Bool(MiningEnabledFlag.Name) {
- log.Warn("The flag --mine is deprecated and will be removed")
- }
if ctx.IsSet(MinerExtraDataFlag.Name) {
cfg.ExtraData = []byte(ctx.String(MinerExtraDataFlag.Name))
}
@@ -1739,8 +1743,8 @@ func setRequiredBlocks(ctx *cli.Context, cfg *ethconfig.Config) {
// SetEthConfig applies eth-related command line flags to the config.
func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *ethconfig.Config) {
- // Avoid conflicting network flags
- flags.CheckExclusive(ctx, MainnetFlag, DeveloperFlag, SepoliaFlag, HoleskyFlag, HoodiFlag, OverrideGenesisFlag)
+ // Avoid conflicting network flags, don't allow network id override on preset networks
+ flags.CheckExclusive(ctx, MainnetFlag, DeveloperFlag, SepoliaFlag, HoleskyFlag, HoodiFlag, ClassicFlag, MordorFlag, OverrideGenesisFlag)
flags.CheckExclusive(ctx, DeveloperFlag, ExternalSignerFlag) // Can't use both ephemeral unlocked and external signer
// Set configurations from CLI flags
@@ -1748,7 +1752,9 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *ethconfig.Config) {
setGPO(ctx, &cfg.GPO)
setTxPool(ctx, &cfg.TxPool)
setBlobPool(ctx, &cfg.BlobPool)
+ setEthash(ctx, cfg)
setMiner(ctx, &cfg.Miner)
+ setMinerETC(ctx, &cfg.Miner)
setRequiredBlocks(ctx, cfg)
// Cap the cache allowance and tune the garbage collector
@@ -1939,6 +1945,12 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *ethconfig.Config) {
if ctx.Bool(StateSizeTrackingFlag.Name) {
cfg.EnableStateSizeTracking = true
}
+ if ctx.IsSet(MESSForceEnableFlag.Name) {
+ cfg.MESSForceEnable = ctx.Bool(MESSForceEnableFlag.Name)
+ }
+ if ctx.IsSet(MESSForceDisableFlag.Name) {
+ cfg.MESSForceDisable = ctx.Bool(MESSForceDisableFlag.Name)
+ }
// Override any default configs for hard coded networks.
switch {
case ctx.Bool(MainnetFlag.Name):
@@ -1957,6 +1969,23 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *ethconfig.Config) {
cfg.NetworkId = 560048
cfg.Genesis = core.DefaultHoodiGenesisBlock()
SetDNSDiscoveryDefaults(cfg, params.HoodiGenesisHash)
+ case ctx.Bool(ClassicFlag.Name):
+ cfg.NetworkId = 1 // ETC uses NetworkID=1 (same as ETH), ChainID=61 is for tx signing
+ cfg.Genesis = core.DefaultClassicGenesisBlock()
+ // ETC shares genesis hash with ETH mainnet; KnownDNSNetwork can't
+ // disambiguate by hash, so use the ETC-specific helper keyed off
+ // the ETC chain ID instead.
+ if cfg.EthDiscoveryURLs == nil {
+ cfg.EthDiscoveryURLs = []string{params.ETCDNSNetwork(61, "all")}
+ cfg.SnapDiscoveryURLs = cfg.EthDiscoveryURLs
+ }
+ case ctx.Bool(MordorFlag.Name):
+ cfg.NetworkId = 7 // Mordor uses NetworkID=7, ChainID=63
+ cfg.Genesis = core.DefaultMordorGenesisBlock()
+ if cfg.EthDiscoveryURLs == nil {
+ cfg.EthDiscoveryURLs = []string{params.ETCDNSNetwork(63, "all")}
+ cfg.SnapDiscoveryURLs = cfg.EthDiscoveryURLs
+ }
case ctx.Bool(DeveloperFlag.Name):
cfg.NetworkId = 1337
cfg.SyncMode = ethconfig.FullSync
@@ -2052,7 +2081,8 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *ethconfig.Config) {
}
cfg.Genesis = genesis
default:
- if ctx.Uint64(NetworkIdFlag.Name) == 1 {
+ // Only set mainnet DNS defaults if NetworkId==1 AND not using ETC (which also uses NetworkId=1)
+ if cfg.NetworkId == 1 && !ctx.Bool(ClassicFlag.Name) {
SetDNSDiscoveryDefaults(cfg, params.MainnetGenesisHash)
}
}
@@ -2403,6 +2433,10 @@ func MakeGenesis(ctx *cli.Context) *core.Genesis {
genesis = core.DefaultSepoliaGenesisBlock()
case ctx.Bool(HoodiFlag.Name):
genesis = core.DefaultHoodiGenesisBlock()
+ case ctx.Bool(ClassicFlag.Name):
+ genesis = core.DefaultClassicGenesisBlock()
+ case ctx.Bool(MordorFlag.Name):
+ genesis = core.DefaultMordorGenesisBlock()
case ctx.Bool(DeveloperFlag.Name):
Fatalf("Developer chains are ephemeral")
}