diff options
Diffstat (limited to 'cmd/utils/flags.go')
-rw-r--r-- | cmd/utils/flags.go | 67 |
1 files changed, 22 insertions, 45 deletions
diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go index 9a92e21fe..e381f9bbb 100644 --- a/cmd/utils/flags.go +++ b/cmd/utils/flags.go @@ -19,7 +19,6 @@ package utils import ( "crypto/ecdsa" - "encoding/json" "errors" "fmt" "io/ioutil" @@ -100,7 +99,6 @@ func NewApp(gitCommit, gitDate, usage string) *cli.App { app := cli.NewApp() app.Name = filepath.Base(os.Args[0]) app.Author = "" - //app.Authors = nil app.Email = "" app.Version = params.VersionWithCommit(gitCommit, gitDate) app.Usage = usage @@ -176,21 +174,19 @@ var ( Name: "exitwhensynced", Usage: "Exits after block synchronisation completes", } - ULCModeConfigFlag = cli.StringFlag{ - Name: "ulc.config", - Usage: "Config file to use for ultra light client mode", + UltraLightServersFlag = cli.StringFlag{ + Name: "ulc.servers", + Usage: "List of trusted ultra-light servers", + Value: strings.Join(eth.DefaultConfig.UltraLightServers, ","), } - OnlyAnnounceModeFlag = cli.BoolFlag{ - Name: "ulc.onlyannounce", - Usage: "ULC server sends announcements only", - } - ULCMinTrustedFractionFlag = cli.IntFlag{ + UltraLightFractionFlag = cli.IntFlag{ Name: "ulc.fraction", - Usage: "Minimum % of trusted ULC servers required to announce a new head", + Usage: "Minimum % of trusted ultra-light servers required to announce a new head", + Value: eth.DefaultConfig.UltraLightFraction, } - ULCTrustedNodesFlag = cli.StringFlag{ - Name: "ulc.trusted", - Usage: "List of trusted ULC servers", + UltraLightOnlyAnnounceFlag = cli.BoolFlag{ + Name: "ulc.onlyannounce", + Usage: "Ultra light server sends announcements only", } IterativeOutputFlag = cli.BoolFlag{ Name: "iterative", @@ -953,37 +949,20 @@ func setIPC(ctx *cli.Context, cfg *node.Config) { } } -// SetULC setup ULC config from file if given. -func SetULC(ctx *cli.Context, cfg *eth.Config) { - // ULC config isn't loaded from global config and ULC config and ULC trusted nodes are not defined. - if cfg.ULC == nil && !(ctx.GlobalIsSet(ULCModeConfigFlag.Name) || ctx.GlobalIsSet(ULCTrustedNodesFlag.Name)) { - return - } - cfg.ULC = ð.ULCConfig{} - - path := ctx.GlobalString(ULCModeConfigFlag.Name) - if path != "" { - cfgData, err := ioutil.ReadFile(path) - if err != nil { - Fatalf("Failed to unmarshal ULC configuration: %v", err) - } - - err = json.Unmarshal(cfgData, &cfg.ULC) - if err != nil { - Fatalf("Failed to unmarshal ULC configuration: %s", err.Error()) - } +// setUltraLight configures the ultra light client settings from the command line flags. +func setUltraLight(ctx *cli.Context, cfg *eth.Config) { + if ctx.GlobalIsSet(UltraLightServersFlag.Name) { + cfg.UltraLightServers = strings.Split(ctx.GlobalString(UltraLightServersFlag.Name), ",") } - - if trustedNodes := ctx.GlobalString(ULCTrustedNodesFlag.Name); trustedNodes != "" { - cfg.ULC.TrustedServers = strings.Split(trustedNodes, ",") + if ctx.GlobalIsSet(UltraLightFractionFlag.Name) { + cfg.UltraLightFraction = ctx.GlobalInt(UltraLightFractionFlag.Name) } - - if trustedFraction := ctx.GlobalInt(ULCMinTrustedFractionFlag.Name); trustedFraction > 0 { - cfg.ULC.MinTrustedFraction = trustedFraction + if cfg.UltraLightFraction <= 0 && cfg.UltraLightFraction > 100 { + log.Error("Ultra light fraction is invalid", "had", cfg.UltraLightFraction, "updated", eth.DefaultConfig.UltraLightFraction) + cfg.UltraLightFraction = eth.DefaultConfig.UltraLightFraction } - if cfg.ULC.MinTrustedFraction <= 0 && cfg.ULC.MinTrustedFraction > 100 { - log.Error("MinTrustedFraction is invalid", "MinTrustedFraction", cfg.ULC.MinTrustedFraction, "Changed to default", eth.DefaultULCMinTrustedFraction) - cfg.ULC.MinTrustedFraction = eth.DefaultULCMinTrustedFraction + if ctx.GlobalIsSet(UltraLightOnlyAnnounceFlag.Name) { + cfg.UltraLightOnlyAnnounce = ctx.GlobalBool(UltraLightOnlyAnnounceFlag.Name) } } @@ -1400,6 +1379,7 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *eth.Config) { setEthash(ctx, cfg) setMiner(ctx, &cfg.Miner) setWhitelist(ctx, cfg) + setUltraLight(ctx, cfg) if ctx.GlobalIsSet(SyncModeFlag.Name) { cfg.SyncMode = *GlobalTextMarshaler(ctx, SyncModeFlag.Name).(*downloader.SyncMode) @@ -1412,9 +1392,6 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *eth.Config) { if ctx.GlobalIsSet(LightPeersFlag.Name) { cfg.LightPeers = ctx.GlobalInt(LightPeersFlag.Name) } - if ctx.GlobalIsSet(OnlyAnnounceModeFlag.Name) { - cfg.OnlyAnnounce = ctx.GlobalBool(OnlyAnnounceModeFlag.Name) - } if ctx.GlobalIsSet(NetworkIdFlag.Name) { cfg.NetworkId = ctx.GlobalUint64(NetworkIdFlag.Name) } |