mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-06-19 21:31:37 +00:00
cmd, core: add flag mainet and devnet
This commit is contained in:
parent
1d653e57ab
commit
54b4be1aa2
5 changed files with 69 additions and 7 deletions
|
|
@ -45,7 +45,9 @@ var (
|
|||
utils.DataDirFlag,
|
||||
utils.XDCXDataDirFlag,
|
||||
utils.LightModeFlag,
|
||||
utils.MainnetFlag,
|
||||
utils.TestnetFlag,
|
||||
utils.DevnetFlag,
|
||||
},
|
||||
Description: `
|
||||
The init command initializes a new genesis block and definition for the network.
|
||||
|
|
@ -154,19 +156,31 @@ Use "ethereum dump 0" to dump the genesis block.`,
|
|||
// initGenesis will initialise the given JSON format genesis file and writes it as
|
||||
// the zero'd block (i.e. genesis) or will fail hard if it can't succeed.
|
||||
func initGenesis(ctx *cli.Context) error {
|
||||
utils.CheckExclusive(ctx, utils.MainnetFlag, utils.TestnetFlag, utils.DevnetFlag)
|
||||
|
||||
var err error
|
||||
genesis := new(core.Genesis)
|
||||
if ctx.Bool(utils.TestnetFlag.Name) {
|
||||
if ctx.Bool(utils.MainnetFlag.Name) {
|
||||
if ctx.Args().Len() > 0 {
|
||||
utils.Fatalf("The mainnet flag and genesis file can't be used at the same time")
|
||||
}
|
||||
err = json.Unmarshal(xdc_genesis.TestnetGenesis, &genesis)
|
||||
} else if ctx.Bool(utils.TestnetFlag.Name) {
|
||||
if ctx.Args().Len() > 0 {
|
||||
utils.Fatalf("The testnet flag and genesis file can't be used at the same time")
|
||||
}
|
||||
err = json.Unmarshal(xdc_genesis.TestnetGenesis, &genesis)
|
||||
} else if ctx.Bool(utils.DevnetFlag.Name) {
|
||||
if ctx.Args().Len() > 0 {
|
||||
utils.Fatalf("The devnet flag and genesis file can't be used at the same time")
|
||||
}
|
||||
err = json.Unmarshal(xdc_genesis.TestnetGenesis, &genesis)
|
||||
} else {
|
||||
if ctx.Args().Len() != 1 {
|
||||
utils.Fatalf("need the genesis.json file or the network name [ mainnet | testnet | devnet ] as the only argument")
|
||||
}
|
||||
genesisPath := ctx.Args().First()
|
||||
if genesisPath == "mainnet" {
|
||||
if genesisPath == "mainnet" || genesisPath == "xinfin" {
|
||||
err = json.Unmarshal(xdc_genesis.MainnetGenesis, &genesis)
|
||||
} else if genesisPath == "testnet" || genesisPath == "apothem" {
|
||||
err = json.Unmarshal(xdc_genesis.TestnetGenesis, &genesis)
|
||||
|
|
|
|||
|
|
@ -125,6 +125,8 @@ func remoteConsole(ctx *cli.Context) error {
|
|||
if path != "" {
|
||||
if ctx.Bool(utils.TestnetFlag.Name) {
|
||||
path = filepath.Join(path, "testnet")
|
||||
} else if ctx.Bool(utils.DevnetFlag.Name) {
|
||||
path = filepath.Join(path, "devnet")
|
||||
} else if ctx.Bool(utils.RinkebyFlag.Name) {
|
||||
path = filepath.Join(path, "rinkeby")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -117,7 +117,9 @@ var (
|
|||
utils.NodeKeyHexFlag,
|
||||
//utils.DeveloperFlag,
|
||||
//utils.DeveloperPeriodFlag,
|
||||
utils.MainnetFlag,
|
||||
utils.TestnetFlag,
|
||||
utils.DevnetFlag,
|
||||
//utils.RinkebyFlag,
|
||||
//utils.VMEnableDebugFlag,
|
||||
utils.Enable0xPrefixFlag,
|
||||
|
|
|
|||
|
|
@ -104,12 +104,23 @@ var (
|
|||
Value: ethconfig.Defaults.NetworkId,
|
||||
Category: flags.EthCategory,
|
||||
}
|
||||
MainnetFlag = &cli.BoolFlag{
|
||||
Name: "mainnet",
|
||||
Aliases: []string{"xinfin"},
|
||||
Usage: "XDC xinfin network",
|
||||
Category: flags.EthCategory,
|
||||
}
|
||||
TestnetFlag = &cli.BoolFlag{
|
||||
Name: "testnet",
|
||||
Aliases: []string{"apothem"},
|
||||
Usage: "XDC apothem network",
|
||||
Category: flags.EthCategory,
|
||||
}
|
||||
DevnetFlag = &cli.BoolFlag{
|
||||
Name: "devnet",
|
||||
Usage: "XDC develop network",
|
||||
Category: flags.EthCategory,
|
||||
}
|
||||
RinkebyFlag = &cli.BoolFlag{
|
||||
Name: "rinkeby",
|
||||
Usage: "Rinkeby network: pre-configured proof-of-authority test network",
|
||||
|
|
@ -819,6 +830,9 @@ func MakeDataDir(ctx *cli.Context) string {
|
|||
if ctx.Bool(TestnetFlag.Name) {
|
||||
return filepath.Join(path, "testnet")
|
||||
}
|
||||
if ctx.Bool(DevnetFlag.Name) {
|
||||
return filepath.Join(path, "devnet")
|
||||
}
|
||||
if ctx.Bool(RinkebyFlag.Name) {
|
||||
return filepath.Join(path, "rinkeby")
|
||||
}
|
||||
|
|
@ -883,7 +897,7 @@ func setBootstrapNodes(ctx *cli.Context, cfg *p2p.Config) {
|
|||
switch {
|
||||
case ctx.Bool(TestnetFlag.Name) || networkID == 51:
|
||||
urls = params.TestnetBootnodes
|
||||
case networkID == 551:
|
||||
case ctx.Bool(DevnetFlag.Name) || networkID == 551:
|
||||
urls = params.DevnetBootnodes
|
||||
}
|
||||
}
|
||||
|
|
@ -916,6 +930,8 @@ func setBootstrapNodesV5(ctx *cli.Context, cfg *p2p.Config) {
|
|||
urls = SplitAndTrim(ctx.String(BootnodesV5Flag.Name))
|
||||
case ctx.Bool(TestnetFlag.Name):
|
||||
urls = params.TestnetBootnodes
|
||||
case ctx.Bool(DevnetFlag.Name):
|
||||
urls = params.DevnetBootnodes
|
||||
case cfg.BootstrapNodesV5 != nil:
|
||||
return // already set, don't apply defaults.
|
||||
}
|
||||
|
|
@ -1193,6 +1209,8 @@ func SetNodeConfig(ctx *cli.Context, cfg *node.Config) {
|
|||
cfg.DataDir = "" // unless explicitly requested, use memory databases
|
||||
case ctx.Bool(TestnetFlag.Name):
|
||||
cfg.DataDir = filepath.Join(node.DefaultDataDir(), "testnet")
|
||||
case ctx.Bool(DevnetFlag.Name):
|
||||
cfg.DataDir = filepath.Join(node.DefaultDataDir(), "devnet")
|
||||
case ctx.Bool(RinkebyFlag.Name):
|
||||
cfg.DataDir = filepath.Join(node.DefaultDataDir(), "rinkeby")
|
||||
}
|
||||
|
|
@ -1386,7 +1404,7 @@ func SetXDCXConfig(ctx *cli.Context, cfg *XDCx.Config, XDCDataDir string) {
|
|||
// SetEthConfig applies eth-related command line flags to the config.
|
||||
func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *ethconfig.Config) {
|
||||
// Avoid conflicting network flags
|
||||
CheckExclusive(ctx, DeveloperFlag, TestnetFlag, RinkebyFlag)
|
||||
CheckExclusive(ctx, MainnetFlag, TestnetFlag, DevnetFlag, DeveloperFlag, RinkebyFlag)
|
||||
CheckExclusive(ctx, FastSyncFlag, LightModeFlag, SyncModeFlag)
|
||||
CheckExclusive(ctx, LightServFlag, LightModeFlag)
|
||||
CheckExclusive(ctx, LightServFlag, SyncModeFlag, "light")
|
||||
|
|
@ -1489,11 +1507,21 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *ethconfig.Config) {
|
|||
}
|
||||
// Override any default configs for hard coded networks.
|
||||
switch {
|
||||
case ctx.Bool(MainnetFlag.Name):
|
||||
if !ctx.IsSet(NetworkIdFlag.Name) {
|
||||
cfg.NetworkId = 50
|
||||
}
|
||||
cfg.Genesis = core.DefaultGenesisBlock()
|
||||
case ctx.Bool(TestnetFlag.Name):
|
||||
if !ctx.IsSet(NetworkIdFlag.Name) {
|
||||
cfg.NetworkId = 51
|
||||
}
|
||||
cfg.Genesis = core.DefaultTestnetGenesisBlock()
|
||||
case ctx.Bool(DevnetFlag.Name):
|
||||
if !ctx.IsSet(NetworkIdFlag.Name) {
|
||||
cfg.NetworkId = 551
|
||||
}
|
||||
cfg.Genesis = core.DefaultDevnetGenesisBlock()
|
||||
case ctx.Bool(RinkebyFlag.Name):
|
||||
if !ctx.IsSet(NetworkIdFlag.Name) {
|
||||
cfg.NetworkId = 4
|
||||
|
|
@ -1618,8 +1646,12 @@ func MakeChainDatabase(ctx *cli.Context, stack *node.Node, readonly bool) ethdb.
|
|||
func MakeGenesis(ctx *cli.Context) *core.Genesis {
|
||||
var genesis *core.Genesis
|
||||
switch {
|
||||
case ctx.Bool(MainnetFlag.Name):
|
||||
genesis = core.DefaultGenesisBlock()
|
||||
case ctx.Bool(TestnetFlag.Name):
|
||||
genesis = core.DefaultTestnetGenesisBlock()
|
||||
case ctx.Bool(DevnetFlag.Name):
|
||||
genesis = core.DefaultDevnetGenesisBlock()
|
||||
case ctx.Bool(RinkebyFlag.Name):
|
||||
genesis = core.DefaultRinkebyGenesisBlock()
|
||||
case ctx.Bool(DeveloperFlag.Name):
|
||||
|
|
|
|||
|
|
@ -267,11 +267,10 @@ func GenesisBlockForTesting(db ethdb.Database, addr common.Address, balance *big
|
|||
return g.MustCommit(db)
|
||||
}
|
||||
|
||||
// DefaultGenesisBlock returns the Ethereum main net genesis block.
|
||||
// DefaultGenesisBlock returns the XDC mainnet genesis block.
|
||||
func DefaultGenesisBlock() *Genesis {
|
||||
config := params.XDCMainnetChainConfig
|
||||
return &Genesis{
|
||||
Config: config,
|
||||
Config: params.XDCMainnetChainConfig,
|
||||
Nonce: 0,
|
||||
ExtraData: hexutil.MustDecode("0x000000000000000000000000000000000000000000000000000000000000000025c65b4b379ac37cf78357c4915f73677022eaffc7d49d0a2cf198deebd6ce581af465944ec8b2bbcfccdea1006a5cfa7d9484b5b293b46964c265c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"),
|
||||
GasLimit: 4700000,
|
||||
|
|
@ -294,6 +293,19 @@ func DefaultTestnetGenesisBlock() *Genesis {
|
|||
}
|
||||
}
|
||||
|
||||
// DefaultDevnetGenesisBlock returns the XDC devnet genesis block.
|
||||
func DefaultDevnetGenesisBlock() *Genesis {
|
||||
return &Genesis{
|
||||
Config: params.DevnetChainConfig,
|
||||
Nonce: 0,
|
||||
ExtraData: hexutil.MustDecode("0x0000000000000000000000000000000000000000000000000000000000000000311bdf9066246e68559816e7f636435867f824ef442a44a6fc20f5b8dfa8b304d7137581f7e6bef347318441696e9ae962633c16e04d53935272639d537fc89618edae86950e12687a612e15c4786b8473898cc3c5beca5841306b26fdb4e30411392a6a74826141342a4dc33a1045cefa4182b6212ec0317bc30fbeb7208192d1474b5f87ffbc056de43c11888c073313b36cf03cf1f739f39443551ff12bbe8d993351c0e2db739f9bcbfdeda94d73b50b16d3a242960b7ca1937e826bda6c397df74d9f9ab01aa89af636787499e81362e815e36f28763eac120babebf5a6cbe6113780cbe489e3eb0db882381aebaf81190100d82f41ad2c95898195c7a47dc59115bb5ec85408683795da2f604a5c0464868eabfcb6da489a1b4304f49aafaec938c7adc48539470624e1f9c75ce33e568d8fa3ace90497ee0c60dc921eefea93e384a6ccaaf28e33790a2d1b2625bf964dfc087e2622b02b0bb78713e872c02796ef64c8f10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"),
|
||||
GasLimit: 4700000,
|
||||
Difficulty: big.NewInt(1),
|
||||
Alloc: DecodeAllocJson(DevnetAllocData),
|
||||
Timestamp: 1735513074,
|
||||
}
|
||||
}
|
||||
|
||||
// DefaultRinkebyGenesisBlock returns the Rinkeby network genesis block.
|
||||
func DefaultRinkebyGenesisBlock() *Genesis {
|
||||
return &Genesis{
|
||||
|
|
|
|||
Loading…
Reference in a new issue