| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -360,7 +360,17 @@ var (
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					BootnodesFlag = cli.StringFlag{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						Name:  "bootnodes",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						Usage: "Comma separated enode URLs for P2P discovery bootstrap",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						Usage: "Comma separated enode URLs for P2P discovery bootstrap (set v4+v5 instead for light servers)",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						Value: "",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					BootnodesV4Flag = cli.StringFlag{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						Name:  "bootnodesv4",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						Usage: "Comma separated enode URLs for P2P v4 discovery bootstrap (light server, full nodes)",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						Value: "",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					BootnodesV5Flag = cli.StringFlag{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						Name:  "bootnodesv5",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						Usage: "Comma separated enode URLs for P2P v5 discovery bootstrap (light server, light nodes)",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						Value: "",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					NodeKeyFileFlag = cli.StringFlag{
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -469,8 +479,12 @@ func setNodeUserIdent(ctx *cli.Context, cfg *node.Config) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				func setBootstrapNodes(ctx *cli.Context, cfg *p2p.Config) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					urls := params.MainnetBootnodes
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					switch {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					case ctx.GlobalIsSet(BootnodesFlag.Name):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					case ctx.GlobalIsSet(BootnodesFlag.Name) || ctx.GlobalIsSet(BootnodesV4Flag.Name):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if ctx.GlobalIsSet(BootnodesV4Flag.Name) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							urls = strings.Split(ctx.GlobalString(BootnodesV4Flag.Name), ",")
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						} else {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							urls = strings.Split(ctx.GlobalString(BootnodesFlag.Name), ",")
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					case ctx.GlobalBool(TestnetFlag.Name):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						urls = params.TestnetBootnodes
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					case ctx.GlobalBool(RinkebyFlag.Name):
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -493,8 +507,12 @@ func setBootstrapNodes(ctx *cli.Context, cfg *p2p.Config) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				func setBootstrapNodesV5(ctx *cli.Context, cfg *p2p.Config) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					urls := params.DiscoveryV5Bootnodes
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					switch {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					case ctx.GlobalIsSet(BootnodesFlag.Name):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					case ctx.GlobalIsSet(BootnodesFlag.Name) || ctx.GlobalIsSet(BootnodesV5Flag.Name):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if ctx.GlobalIsSet(BootnodesV5Flag.Name) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							urls = strings.Split(ctx.GlobalString(BootnodesV5Flag.Name), ",")
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						} else {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							urls = strings.Split(ctx.GlobalString(BootnodesFlag.Name), ",")
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					case ctx.GlobalBool(RinkebyFlag.Name):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						urls = params.RinkebyV5Bootnodes
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					case cfg.BootstrapNodesV5 != nil:
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -717,6 +735,7 @@ func SetP2PConfig(ctx *cli.Context, cfg *p2p.Config) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						// --dev mode can't use p2p networking.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						cfg.MaxPeers = 0
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						cfg.ListenAddr = ":0"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						cfg.DiscoveryV5Addr = ":0"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						cfg.NoDiscovery = true
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						cfg.DiscoveryV5 = false
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					}
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				 
 |