|
|
@@ -179,7 +179,7 @@ var (
|
|
|
LightPeersFlag = cli.IntFlag{
|
|
|
Name: "lightpeers",
|
|
|
Usage: "Maximum number of LES client peers",
|
|
|
- Value: 20,
|
|
|
+ Value: eth.DefaultConfig.LightPeers,
|
|
|
}
|
|
|
LightKDFFlag = cli.BoolFlag{
|
|
|
Name: "lightkdf",
|
|
|
@@ -791,20 +791,40 @@ func SetP2PConfig(ctx *cli.Context, cfg *p2p.Config) {
|
|
|
setBootstrapNodes(ctx, cfg)
|
|
|
setBootstrapNodesV5(ctx, cfg)
|
|
|
|
|
|
+ lightClient := ctx.GlobalBool(LightModeFlag.Name) || ctx.GlobalString(SyncModeFlag.Name) == "light"
|
|
|
+ lightServer := ctx.GlobalInt(LightServFlag.Name) != 0
|
|
|
+ lightPeers := ctx.GlobalInt(LightPeersFlag.Name)
|
|
|
+
|
|
|
if ctx.GlobalIsSet(MaxPeersFlag.Name) {
|
|
|
cfg.MaxPeers = ctx.GlobalInt(MaxPeersFlag.Name)
|
|
|
+ } else {
|
|
|
+ if lightServer {
|
|
|
+ cfg.MaxPeers += lightPeers
|
|
|
+ }
|
|
|
+ if lightClient && ctx.GlobalIsSet(LightPeersFlag.Name) && cfg.MaxPeers < lightPeers {
|
|
|
+ cfg.MaxPeers = lightPeers
|
|
|
+ }
|
|
|
}
|
|
|
+ if !(lightClient || lightServer) {
|
|
|
+ lightPeers = 0
|
|
|
+ }
|
|
|
+ ethPeers := cfg.MaxPeers - lightPeers
|
|
|
+ if lightClient {
|
|
|
+ ethPeers = 0
|
|
|
+ }
|
|
|
+ log.Info("Maximum peer count", "ETH", ethPeers, "LES", lightPeers, "total", cfg.MaxPeers)
|
|
|
+
|
|
|
if ctx.GlobalIsSet(MaxPendingPeersFlag.Name) {
|
|
|
cfg.MaxPendingPeers = ctx.GlobalInt(MaxPendingPeersFlag.Name)
|
|
|
}
|
|
|
- if ctx.GlobalIsSet(NoDiscoverFlag.Name) || ctx.GlobalBool(LightModeFlag.Name) {
|
|
|
+ if ctx.GlobalIsSet(NoDiscoverFlag.Name) || lightClient {
|
|
|
cfg.NoDiscovery = true
|
|
|
}
|
|
|
|
|
|
// if we're running a light client or server, force enable the v5 peer discovery
|
|
|
// unless it is explicitly disabled with --nodiscover note that explicitly specifying
|
|
|
// --v5disc overrides --nodiscover, in which case the later only disables v4 discovery
|
|
|
- forceV5Discovery := (ctx.GlobalBool(LightModeFlag.Name) || ctx.GlobalInt(LightServFlag.Name) > 0) && !ctx.GlobalBool(NoDiscoverFlag.Name)
|
|
|
+ forceV5Discovery := (lightClient || lightServer) && !ctx.GlobalBool(NoDiscoverFlag.Name)
|
|
|
if ctx.GlobalIsSet(DiscoveryV5Flag.Name) {
|
|
|
cfg.DiscoveryV5 = ctx.GlobalBool(DiscoveryV5Flag.Name)
|
|
|
} else if forceV5Discovery {
|