|
|
|
@ -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") |
|
|
|
|
} |
|
|
|
|