Skip to content

Commit 8411043

Browse files
zsfelfoldijorgemmsilva
authored andcommitted
beacon/blsync: fixed blsync command line params (ethereum#29335)
1 parent a0f202c commit 8411043

File tree

1 file changed

+24
-11
lines changed

1 file changed

+24
-11
lines changed

beacon/blsync/config.go

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,9 @@ var (
7272
)
7373

7474
func makeChainConfig(ctx *cli.Context) lightClientConfig {
75-
utils.CheckExclusive(ctx, utils.MainnetFlag, utils.GoerliFlag, utils.SepoliaFlag)
76-
customConfig := ctx.IsSet(utils.BeaconConfigFlag.Name) || ctx.IsSet(utils.BeaconGenesisRootFlag.Name) || ctx.IsSet(utils.BeaconGenesisTimeFlag.Name)
7775
var config lightClientConfig
76+
customConfig := ctx.IsSet(utils.BeaconConfigFlag.Name)
77+
utils.CheckExclusive(ctx, utils.MainnetFlag, utils.GoerliFlag, utils.SepoliaFlag, utils.BeaconConfigFlag)
7878
switch {
7979
case ctx.Bool(utils.MainnetFlag.Name):
8080
config = MainnetConfig
@@ -87,24 +87,37 @@ func makeChainConfig(ctx *cli.Context) lightClientConfig {
8787
config = MainnetConfig
8888
}
8989
}
90-
if customConfig && config.Forks != nil {
91-
utils.Fatalf("Cannot use custom beacon chain config flags in combination with pre-defined network config")
92-
}
93-
if ctx.IsSet(utils.BeaconGenesisRootFlag.Name) {
90+
// Genesis root and time should always be specified together with custom chain config
91+
if customConfig {
92+
if !ctx.IsSet(utils.BeaconGenesisRootFlag.Name) {
93+
utils.Fatalf("Custom beacon chain config is specified but genesis root is missing")
94+
}
95+
if !ctx.IsSet(utils.BeaconGenesisTimeFlag.Name) {
96+
utils.Fatalf("Custom beacon chain config is specified but genesis time is missing")
97+
}
98+
if !ctx.IsSet(utils.BeaconCheckpointFlag.Name) {
99+
utils.Fatalf("Custom beacon chain config is specified but checkpoint is missing")
100+
}
101+
config.ChainConfig = &types.ChainConfig{
102+
GenesisTime: ctx.Uint64(utils.BeaconGenesisTimeFlag.Name),
103+
}
94104
if c, err := hexutil.Decode(ctx.String(utils.BeaconGenesisRootFlag.Name)); err == nil && len(c) <= 32 {
95105
copy(config.GenesisValidatorsRoot[:len(c)], c)
96106
} else {
97107
utils.Fatalf("Invalid hex string", "beacon.genesis.gvroot", ctx.String(utils.BeaconGenesisRootFlag.Name), "error", err)
98108
}
99-
}
100-
if ctx.IsSet(utils.BeaconGenesisTimeFlag.Name) {
101-
config.GenesisTime = ctx.Uint64(utils.BeaconGenesisTimeFlag.Name)
102-
}
103-
if ctx.IsSet(utils.BeaconConfigFlag.Name) {
104109
if err := config.ChainConfig.LoadForks(ctx.String(utils.BeaconConfigFlag.Name)); err != nil {
105110
utils.Fatalf("Could not load beacon chain config file", "file name", ctx.String(utils.BeaconConfigFlag.Name), "error", err)
106111
}
112+
} else {
113+
if ctx.IsSet(utils.BeaconGenesisRootFlag.Name) {
114+
utils.Fatalf("Genesis root is specified but custom beacon chain config is missing")
115+
}
116+
if ctx.IsSet(utils.BeaconGenesisTimeFlag.Name) {
117+
utils.Fatalf("Genesis time is specified but custom beacon chain config is missing")
118+
}
107119
}
120+
// Checkpoint is required with custom chain config and is optional with pre-defined config
108121
if ctx.IsSet(utils.BeaconCheckpointFlag.Name) {
109122
if c, err := hexutil.Decode(ctx.String(utils.BeaconCheckpointFlag.Name)); err == nil && len(c) <= 32 {
110123
copy(config.Checkpoint[:len(c)], c)

0 commit comments

Comments
 (0)