@@ -658,6 +658,10 @@ var (
658
658
Name : "netrestrict" ,
659
659
Usage : "Restricts network communication to the given IP networks (CIDR masks)" ,
660
660
}
661
+ DNSDiscoveryFlag = cli.StringFlag {
662
+ Name : "discovery.dns" ,
663
+ Usage : "Sets DNS discovery entry points (use \" \" to disable DNS)" ,
664
+ }
661
665
662
666
// ATM the url is left to the user and deployment to
663
667
JSpathFlag = cli.StringFlag {
@@ -811,9 +815,9 @@ func setBootstrapNodes(ctx *cli.Context, cfg *p2p.Config) {
811
815
switch {
812
816
case ctx .GlobalIsSet (BootnodesFlag .Name ) || ctx .GlobalIsSet (BootnodesV4Flag .Name ):
813
817
if ctx .GlobalIsSet (BootnodesV4Flag .Name ) {
814
- urls = strings . Split (ctx .GlobalString (BootnodesV4Flag .Name ), "," )
818
+ urls = splitAndTrim (ctx .GlobalString (BootnodesV4Flag .Name ))
815
819
} else {
816
- urls = strings . Split (ctx .GlobalString (BootnodesFlag .Name ), "," )
820
+ urls = splitAndTrim (ctx .GlobalString (BootnodesFlag .Name ))
817
821
}
818
822
case ctx .GlobalBool (TestnetFlag .Name ):
819
823
urls = params .TestnetBootnodes
@@ -845,9 +849,9 @@ func setBootstrapNodesV5(ctx *cli.Context, cfg *p2p.Config) {
845
849
switch {
846
850
case ctx .GlobalIsSet (BootnodesFlag .Name ) || ctx .GlobalIsSet (BootnodesV5Flag .Name ):
847
851
if ctx .GlobalIsSet (BootnodesV5Flag .Name ) {
848
- urls = strings . Split (ctx .GlobalString (BootnodesV5Flag .Name ), "," )
852
+ urls = splitAndTrim (ctx .GlobalString (BootnodesV5Flag .Name ))
849
853
} else {
850
- urls = strings . Split (ctx .GlobalString (BootnodesFlag .Name ), "," )
854
+ urls = splitAndTrim (ctx .GlobalString (BootnodesFlag .Name ))
851
855
}
852
856
case ctx .GlobalBool (RinkebyFlag .Name ):
853
857
urls = params .RinkebyBootnodes
@@ -1477,6 +1481,14 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *eth.Config) {
1477
1481
if ctx .GlobalIsSet (RPCGlobalGasCap .Name ) {
1478
1482
cfg .RPCGasCap = new (big.Int ).SetUint64 (ctx .GlobalUint64 (RPCGlobalGasCap .Name ))
1479
1483
}
1484
+ if ctx .GlobalIsSet (DNSDiscoveryFlag .Name ) {
1485
+ urls := ctx .GlobalString (DNSDiscoveryFlag .Name )
1486
+ if urls == "" {
1487
+ cfg .DiscoveryURLs = []string {}
1488
+ } else {
1489
+ cfg .DiscoveryURLs = splitAndTrim (urls )
1490
+ }
1491
+ }
1480
1492
1481
1493
// Override any default configs for hard coded networks.
1482
1494
switch {
@@ -1485,16 +1497,19 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *eth.Config) {
1485
1497
cfg .NetworkId = 3
1486
1498
}
1487
1499
cfg .Genesis = core .DefaultTestnetGenesisBlock ()
1500
+ setDNSDiscoveryDefaults (cfg , params .KnownDNSNetworks [params .TestnetGenesisHash ])
1488
1501
case ctx .GlobalBool (RinkebyFlag .Name ):
1489
1502
if ! ctx .GlobalIsSet (NetworkIdFlag .Name ) {
1490
1503
cfg .NetworkId = 4
1491
1504
}
1492
1505
cfg .Genesis = core .DefaultRinkebyGenesisBlock ()
1506
+ setDNSDiscoveryDefaults (cfg , params .KnownDNSNetworks [params .RinkebyGenesisHash ])
1493
1507
case ctx .GlobalBool (GoerliFlag .Name ):
1494
1508
if ! ctx .GlobalIsSet (NetworkIdFlag .Name ) {
1495
1509
cfg .NetworkId = 5
1496
1510
}
1497
1511
cfg .Genesis = core .DefaultGoerliGenesisBlock ()
1512
+ setDNSDiscoveryDefaults (cfg , params .KnownDNSNetworks [params .GoerliGenesisHash ])
1498
1513
case ctx .GlobalBool (DeveloperFlag .Name ):
1499
1514
if ! ctx .GlobalIsSet (NetworkIdFlag .Name ) {
1500
1515
cfg .NetworkId = 1337
@@ -1521,7 +1536,20 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *eth.Config) {
1521
1536
if ! ctx .GlobalIsSet (MinerGasPriceFlag .Name ) && ! ctx .GlobalIsSet (MinerLegacyGasPriceFlag .Name ) {
1522
1537
cfg .Miner .GasPrice = big .NewInt (1 )
1523
1538
}
1539
+ default :
1540
+ if cfg .NetworkId == 1 {
1541
+ setDNSDiscoveryDefaults (cfg , params .KnownDNSNetworks [params .MainnetGenesisHash ])
1542
+ }
1543
+ }
1544
+ }
1545
+
1546
+ // setDNSDiscoveryDefaults configures DNS discovery with the given URL if
1547
+ // no URLs are set.
1548
+ func setDNSDiscoveryDefaults (cfg * eth.Config , url string ) {
1549
+ if cfg .DiscoveryURLs != nil {
1550
+ return
1524
1551
}
1552
+ cfg .DiscoveryURLs = []string {url }
1525
1553
}
1526
1554
1527
1555
// RegisterEthService adds an Ethereum client to the stack.
0 commit comments