mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-20 02:42:27 +00:00
beacon/blsync: fixed blsync command line params
This commit is contained in:
parent
ae47004487
commit
03ad1c3e86
1 changed files with 32 additions and 13 deletions
|
|
@ -72,39 +72,58 @@ var (
|
||||||
)
|
)
|
||||||
|
|
||||||
func makeChainConfig(ctx *cli.Context) lightClientConfig {
|
func makeChainConfig(ctx *cli.Context) lightClientConfig {
|
||||||
|
var (
|
||||||
|
config lightClientConfig
|
||||||
|
predefConfig bool
|
||||||
|
)
|
||||||
|
customConfig := ctx.IsSet(utils.BeaconConfigFlag.Name)
|
||||||
utils.CheckExclusive(ctx, utils.MainnetFlag, utils.GoerliFlag, utils.SepoliaFlag)
|
utils.CheckExclusive(ctx, utils.MainnetFlag, utils.GoerliFlag, utils.SepoliaFlag)
|
||||||
customConfig := ctx.IsSet(utils.BeaconConfigFlag.Name) || ctx.IsSet(utils.BeaconGenesisRootFlag.Name) || ctx.IsSet(utils.BeaconGenesisTimeFlag.Name)
|
|
||||||
var config lightClientConfig
|
|
||||||
switch {
|
switch {
|
||||||
case ctx.Bool(utils.MainnetFlag.Name):
|
case ctx.Bool(utils.MainnetFlag.Name):
|
||||||
config = MainnetConfig
|
config, predefConfig = MainnetConfig, true
|
||||||
case ctx.Bool(utils.SepoliaFlag.Name):
|
case ctx.Bool(utils.SepoliaFlag.Name):
|
||||||
config = SepoliaConfig
|
config, predefConfig = SepoliaConfig, true
|
||||||
case ctx.Bool(utils.GoerliFlag.Name):
|
case ctx.Bool(utils.GoerliFlag.Name):
|
||||||
config = GoerliConfig
|
config, predefConfig = GoerliConfig, true
|
||||||
default:
|
default:
|
||||||
if !customConfig {
|
if !customConfig {
|
||||||
config = MainnetConfig
|
config, predefConfig = MainnetConfig, true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if customConfig && config.Forks != nil {
|
if customConfig && predefConfig {
|
||||||
utils.Fatalf("Cannot use custom beacon chain config flags in combination with pre-defined network config")
|
utils.Fatalf("Cannot use custom beacon chain config flags in combination with pre-defined network config")
|
||||||
}
|
}
|
||||||
if ctx.IsSet(utils.BeaconGenesisRootFlag.Name) {
|
// Genesis root and time should always be specified together with custom chain config
|
||||||
|
if customConfig {
|
||||||
|
if !ctx.IsSet(utils.BeaconGenesisRootFlag.Name) {
|
||||||
|
utils.Fatalf("Custom beacon chain config is specified but genesis root is missing")
|
||||||
|
}
|
||||||
|
if !ctx.IsSet(utils.BeaconGenesisTimeFlag.Name) {
|
||||||
|
utils.Fatalf("Custom beacon chain config is specified but genesis time is missing")
|
||||||
|
}
|
||||||
|
if !ctx.IsSet(utils.BeaconCheckpointFlag.Name) {
|
||||||
|
utils.Fatalf("Custom beacon chain config is specified but checkpoint is missing")
|
||||||
|
}
|
||||||
|
config.ChainConfig = &types.ChainConfig{
|
||||||
|
GenesisTime: ctx.Uint64(utils.BeaconGenesisTimeFlag.Name),
|
||||||
|
}
|
||||||
if c, err := hexutil.Decode(ctx.String(utils.BeaconGenesisRootFlag.Name)); err == nil && len(c) <= 32 {
|
if c, err := hexutil.Decode(ctx.String(utils.BeaconGenesisRootFlag.Name)); err == nil && len(c) <= 32 {
|
||||||
copy(config.GenesisValidatorsRoot[:len(c)], c)
|
copy(config.GenesisValidatorsRoot[:len(c)], c)
|
||||||
} else {
|
} else {
|
||||||
utils.Fatalf("Invalid hex string", "beacon.genesis.gvroot", ctx.String(utils.BeaconGenesisRootFlag.Name), "error", err)
|
utils.Fatalf("Invalid hex string", "beacon.genesis.gvroot", ctx.String(utils.BeaconGenesisRootFlag.Name), "error", err)
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if ctx.IsSet(utils.BeaconGenesisTimeFlag.Name) {
|
|
||||||
config.GenesisTime = ctx.Uint64(utils.BeaconGenesisTimeFlag.Name)
|
|
||||||
}
|
|
||||||
if ctx.IsSet(utils.BeaconConfigFlag.Name) {
|
|
||||||
if err := config.ChainConfig.LoadForks(ctx.String(utils.BeaconConfigFlag.Name)); err != nil {
|
if err := config.ChainConfig.LoadForks(ctx.String(utils.BeaconConfigFlag.Name)); err != nil {
|
||||||
utils.Fatalf("Could not load beacon chain config file", "file name", ctx.String(utils.BeaconConfigFlag.Name), "error", err)
|
utils.Fatalf("Could not load beacon chain config file", "file name", ctx.String(utils.BeaconConfigFlag.Name), "error", err)
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
if ctx.IsSet(utils.BeaconGenesisRootFlag.Name) {
|
||||||
|
utils.Fatalf("Genesis root is specified but custom beacon chain config is missing")
|
||||||
}
|
}
|
||||||
|
if ctx.IsSet(utils.BeaconGenesisTimeFlag.Name) {
|
||||||
|
utils.Fatalf("Genesis time is specified but custom beacon chain config is missing")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Checkpoint is required with custom chain config and is optional with pre-defined config
|
||||||
if ctx.IsSet(utils.BeaconCheckpointFlag.Name) {
|
if ctx.IsSet(utils.BeaconCheckpointFlag.Name) {
|
||||||
if c, err := hexutil.Decode(ctx.String(utils.BeaconCheckpointFlag.Name)); err == nil && len(c) <= 32 {
|
if c, err := hexutil.Decode(ctx.String(utils.BeaconCheckpointFlag.Name)); err == nil && len(c) <= 32 {
|
||||||
copy(config.Checkpoint[:len(c)], c)
|
copy(config.Checkpoint[:len(c)], c)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue