|
|
@@ -141,6 +141,10 @@ var (
|
|
|
Name: "rinkeby",
|
|
|
Usage: "Rinkeby network: pre-configured proof-of-authority test network",
|
|
|
}
|
|
|
+ GoerliFlag = cli.BoolFlag{
|
|
|
+ Name: "goerli",
|
|
|
+ Usage: "Görli network: pre-configured proof-of-authority test network",
|
|
|
+ }
|
|
|
ConstantinopleOverrideFlag = cli.Uint64Flag{
|
|
|
Name: "override.constantinople",
|
|
|
Usage: "Manually specify constantinople fork-block, overriding the bundled setting",
|
|
|
@@ -692,6 +696,9 @@ func MakeDataDir(ctx *cli.Context) string {
|
|
|
if ctx.GlobalBool(RinkebyFlag.Name) {
|
|
|
return filepath.Join(path, "rinkeby")
|
|
|
}
|
|
|
+ if ctx.GlobalBool(GoerliFlag.Name) {
|
|
|
+ return filepath.Join(path, "goerli")
|
|
|
+ }
|
|
|
return path
|
|
|
}
|
|
|
Fatalf("Cannot determine default data directory, please set manually (--datadir)")
|
|
|
@@ -746,6 +753,8 @@ func setBootstrapNodes(ctx *cli.Context, cfg *p2p.Config) {
|
|
|
urls = params.TestnetBootnodes
|
|
|
case ctx.GlobalBool(RinkebyFlag.Name):
|
|
|
urls = params.RinkebyBootnodes
|
|
|
+ case ctx.GlobalBool(GoerliFlag.Name):
|
|
|
+ urls = params.GoerliBootnodes
|
|
|
case cfg.BootstrapNodes != nil:
|
|
|
return // already set, don't apply defaults.
|
|
|
}
|
|
|
@@ -775,6 +784,8 @@ func setBootstrapNodesV5(ctx *cli.Context, cfg *p2p.Config) {
|
|
|
}
|
|
|
case ctx.GlobalBool(RinkebyFlag.Name):
|
|
|
urls = params.RinkebyBootnodes
|
|
|
+ case ctx.GlobalBool(GoerliFlag.Name):
|
|
|
+ urls = params.GoerliBootnodes
|
|
|
case cfg.BootstrapNodesV5 != nil:
|
|
|
return // already set, don't apply defaults.
|
|
|
}
|
|
|
@@ -1080,7 +1091,6 @@ func SetNodeConfig(ctx *cli.Context, cfg *node.Config) {
|
|
|
setGraphQL(ctx, cfg)
|
|
|
setWS(ctx, cfg)
|
|
|
setNodeUserIdent(ctx, cfg)
|
|
|
-
|
|
|
setDataDir(ctx, cfg)
|
|
|
|
|
|
if ctx.GlobalIsSet(KeyStoreDirFlag.Name) {
|
|
|
@@ -1104,6 +1114,8 @@ func setDataDir(ctx *cli.Context, cfg *node.Config) {
|
|
|
cfg.DataDir = filepath.Join(node.DefaultDataDir(), "testnet")
|
|
|
case ctx.GlobalBool(RinkebyFlag.Name):
|
|
|
cfg.DataDir = filepath.Join(node.DefaultDataDir(), "rinkeby")
|
|
|
+ case ctx.GlobalBool(GoerliFlag.Name):
|
|
|
+ cfg.DataDir = filepath.Join(node.DefaultDataDir(), "goerli")
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1260,7 +1272,7 @@ func SetShhConfig(ctx *cli.Context, stack *node.Node, cfg *whisper.Config) {
|
|
|
// SetEthConfig applies eth-related command line flags to the config.
|
|
|
func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *eth.Config) {
|
|
|
// Avoid conflicting network flags
|
|
|
- checkExclusive(ctx, DeveloperFlag, TestnetFlag, RinkebyFlag)
|
|
|
+ checkExclusive(ctx, DeveloperFlag, TestnetFlag, RinkebyFlag, GoerliFlag)
|
|
|
checkExclusive(ctx, LightServFlag, SyncModeFlag, "light")
|
|
|
|
|
|
ks := stack.AccountManager().Backends(keystore.KeyStoreType)[0].(*keystore.KeyStore)
|
|
|
@@ -1359,6 +1371,11 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *eth.Config) {
|
|
|
cfg.NetworkId = 4
|
|
|
}
|
|
|
cfg.Genesis = core.DefaultRinkebyGenesisBlock()
|
|
|
+ case ctx.GlobalBool(GoerliFlag.Name):
|
|
|
+ if !ctx.GlobalIsSet(NetworkIdFlag.Name) {
|
|
|
+ cfg.NetworkId = 5
|
|
|
+ }
|
|
|
+ cfg.Genesis = core.DefaultGoerliGenesisBlock()
|
|
|
case ctx.GlobalBool(DeveloperFlag.Name):
|
|
|
if !ctx.GlobalIsSet(NetworkIdFlag.Name) {
|
|
|
cfg.NetworkId = 1337
|
|
|
@@ -1516,6 +1533,8 @@ func MakeGenesis(ctx *cli.Context) *core.Genesis {
|
|
|
genesis = core.DefaultTestnetGenesisBlock()
|
|
|
case ctx.GlobalBool(RinkebyFlag.Name):
|
|
|
genesis = core.DefaultRinkebyGenesisBlock()
|
|
|
+ case ctx.GlobalBool(GoerliFlag.Name):
|
|
|
+ genesis = core.DefaultGoerliGenesisBlock()
|
|
|
case ctx.GlobalBool(DeveloperFlag.Name):
|
|
|
Fatalf("Developer chains are ephemeral")
|
|
|
}
|