mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-18 01:43:47 +00:00
Init Ethereum Classic flags and chain config
This commit is contained in:
parent
7416d388f4
commit
9c89633205
7 changed files with 54 additions and 1 deletions
|
|
@ -136,6 +136,7 @@ The export-preimages command export hash preimages to an RLP encoded stream`,
|
||||||
utils.FakePoWFlag,
|
utils.FakePoWFlag,
|
||||||
utils.TestnetFlag,
|
utils.TestnetFlag,
|
||||||
utils.EllaismFlag,
|
utils.EllaismFlag,
|
||||||
|
utils.ClassicFlag,
|
||||||
utils.RinkebyFlag,
|
utils.RinkebyFlag,
|
||||||
},
|
},
|
||||||
Category: "BLOCKCHAIN COMMANDS",
|
Category: "BLOCKCHAIN COMMANDS",
|
||||||
|
|
|
||||||
|
|
@ -128,6 +128,8 @@ func remoteConsole(ctx *cli.Context) error {
|
||||||
path = filepath.Join(path, "rinkeby")
|
path = filepath.Join(path, "rinkeby")
|
||||||
} else if ctx.GlobalBool(utils.EllaismFlag.Name) {
|
} else if ctx.GlobalBool(utils.EllaismFlag.Name) {
|
||||||
path = filepath.Join(path, "ellaism")
|
path = filepath.Join(path, "ellaism")
|
||||||
|
} else if ctx.GlobalBool(utils.ClassicFlag.Name) {
|
||||||
|
path = filepath.Join(path, "classic")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
endpoint = fmt.Sprintf("%s/geth.ipc", path)
|
endpoint = fmt.Sprintf("%s/geth.ipc", path)
|
||||||
|
|
|
||||||
|
|
@ -110,6 +110,7 @@ var (
|
||||||
utils.DeveloperPeriodFlag,
|
utils.DeveloperPeriodFlag,
|
||||||
utils.TestnetFlag,
|
utils.TestnetFlag,
|
||||||
utils.EllaismFlag,
|
utils.EllaismFlag,
|
||||||
|
utils.ClassicFlag,
|
||||||
utils.RinkebyFlag,
|
utils.RinkebyFlag,
|
||||||
utils.VMEnableDebugFlag,
|
utils.VMEnableDebugFlag,
|
||||||
utils.NetworkIdFlag,
|
utils.NetworkIdFlag,
|
||||||
|
|
|
||||||
|
|
@ -74,6 +74,7 @@ var AppHelpFlagGroups = []flagGroup{
|
||||||
utils.NetworkIdFlag,
|
utils.NetworkIdFlag,
|
||||||
utils.TestnetFlag,
|
utils.TestnetFlag,
|
||||||
utils.EllaismFlag,
|
utils.EllaismFlag,
|
||||||
|
utils.ClassicFlag,
|
||||||
utils.RinkebyFlag,
|
utils.RinkebyFlag,
|
||||||
utils.SyncModeFlag,
|
utils.SyncModeFlag,
|
||||||
utils.GCModeFlag,
|
utils.GCModeFlag,
|
||||||
|
|
|
||||||
|
|
@ -139,6 +139,10 @@ var (
|
||||||
Name: "ellaism",
|
Name: "ellaism",
|
||||||
Usage: "Ellaism network: pre-configured Ellaism mainnet",
|
Usage: "Ellaism network: pre-configured Ellaism mainnet",
|
||||||
}
|
}
|
||||||
|
ClassicFlag = cli.BoolFlag{
|
||||||
|
Name: "classic",
|
||||||
|
Usage: "Ethereum Classic network: pre-configured Ethereum Classic mainnet",
|
||||||
|
}
|
||||||
RinkebyFlag = cli.BoolFlag{
|
RinkebyFlag = cli.BoolFlag{
|
||||||
Name: "rinkeby",
|
Name: "rinkeby",
|
||||||
Usage: "Rinkeby network: pre-configured proof-of-authority test network",
|
Usage: "Rinkeby network: pre-configured proof-of-authority test network",
|
||||||
|
|
@ -549,6 +553,9 @@ func MakeDataDir(ctx *cli.Context) string {
|
||||||
if ctx.GlobalBool(EllaismFlag.Name) {
|
if ctx.GlobalBool(EllaismFlag.Name) {
|
||||||
return filepath.Join(path, "ellaism")
|
return filepath.Join(path, "ellaism")
|
||||||
}
|
}
|
||||||
|
if ctx.GlobalBool(ClassicFlag.Name) {
|
||||||
|
return filepath.Join(path, "classic")
|
||||||
|
}
|
||||||
if ctx.GlobalBool(RinkebyFlag.Name) {
|
if ctx.GlobalBool(RinkebyFlag.Name) {
|
||||||
return filepath.Join(path, "rinkeby")
|
return filepath.Join(path, "rinkeby")
|
||||||
}
|
}
|
||||||
|
|
@ -606,6 +613,8 @@ func setBootstrapNodes(ctx *cli.Context, cfg *p2p.Config) {
|
||||||
urls = params.TestnetBootnodes
|
urls = params.TestnetBootnodes
|
||||||
case ctx.GlobalBool(EllaismFlag.Name):
|
case ctx.GlobalBool(EllaismFlag.Name):
|
||||||
urls = params.EllaismBootnodes
|
urls = params.EllaismBootnodes
|
||||||
|
case ctx.GlobalBool(ClassicFlag.Name):
|
||||||
|
urls = params.ClassicBootnodes
|
||||||
case ctx.GlobalBool(RinkebyFlag.Name):
|
case ctx.GlobalBool(RinkebyFlag.Name):
|
||||||
urls = params.RinkebyBootnodes
|
urls = params.RinkebyBootnodes
|
||||||
case cfg.BootstrapNodes != nil:
|
case cfg.BootstrapNodes != nil:
|
||||||
|
|
@ -894,6 +903,8 @@ func SetNodeConfig(ctx *cli.Context, cfg *node.Config) {
|
||||||
cfg.DataDir = filepath.Join(node.DefaultDataDir(), "testnet")
|
cfg.DataDir = filepath.Join(node.DefaultDataDir(), "testnet")
|
||||||
case ctx.GlobalBool(EllaismFlag.Name):
|
case ctx.GlobalBool(EllaismFlag.Name):
|
||||||
cfg.DataDir = filepath.Join(node.DefaultDataDir(), "ellaism")
|
cfg.DataDir = filepath.Join(node.DefaultDataDir(), "ellaism")
|
||||||
|
case ctx.GlobalBool(ClassicFlag.Name):
|
||||||
|
cfg.DataDir = filepath.Join(node.DefaultDataDir(), "classic")
|
||||||
case ctx.GlobalBool(RinkebyFlag.Name):
|
case ctx.GlobalBool(RinkebyFlag.Name):
|
||||||
cfg.DataDir = filepath.Join(node.DefaultDataDir(), "rinkeby")
|
cfg.DataDir = filepath.Join(node.DefaultDataDir(), "rinkeby")
|
||||||
}
|
}
|
||||||
|
|
@ -1023,7 +1034,7 @@ func SetShhConfig(ctx *cli.Context, stack *node.Node, cfg *whisper.Config) {
|
||||||
// SetEthConfig applies eth-related command line flags to the config.
|
// SetEthConfig applies eth-related command line flags to the config.
|
||||||
func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *eth.Config) {
|
func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *eth.Config) {
|
||||||
// Avoid conflicting network flags
|
// Avoid conflicting network flags
|
||||||
checkExclusive(ctx, DeveloperFlag, TestnetFlag, RinkebyFlag, EllaismFlag)
|
checkExclusive(ctx, DeveloperFlag, TestnetFlag, RinkebyFlag, EllaismFlag, ClassicFlag)
|
||||||
checkExclusive(ctx, FastSyncFlag, LightModeFlag, SyncModeFlag)
|
checkExclusive(ctx, FastSyncFlag, LightModeFlag, SyncModeFlag)
|
||||||
checkExclusive(ctx, LightServFlag, LightModeFlag)
|
checkExclusive(ctx, LightServFlag, LightModeFlag)
|
||||||
checkExclusive(ctx, LightServFlag, SyncModeFlag, "light")
|
checkExclusive(ctx, LightServFlag, SyncModeFlag, "light")
|
||||||
|
|
@ -1094,6 +1105,11 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *eth.Config) {
|
||||||
cfg.NetworkId = 64
|
cfg.NetworkId = 64
|
||||||
}
|
}
|
||||||
cfg.Genesis = core.DefaultEllaismGenesisBlock()
|
cfg.Genesis = core.DefaultEllaismGenesisBlock()
|
||||||
|
case ctx.GlobalBool(ClassicFlag.Name):
|
||||||
|
if !ctx.GlobalIsSet(NetworkIdFlag.Name) {
|
||||||
|
cfg.NetworkId = 1
|
||||||
|
}
|
||||||
|
cfg.Genesis = core.DefaultClassicGenesisBlock()
|
||||||
case ctx.GlobalBool(RinkebyFlag.Name):
|
case ctx.GlobalBool(RinkebyFlag.Name):
|
||||||
if !ctx.GlobalIsSet(NetworkIdFlag.Name) {
|
if !ctx.GlobalIsSet(NetworkIdFlag.Name) {
|
||||||
cfg.NetworkId = 4
|
cfg.NetworkId = 4
|
||||||
|
|
@ -1221,6 +1237,8 @@ func MakeGenesis(ctx *cli.Context) *core.Genesis {
|
||||||
genesis = core.DefaultTestnetGenesisBlock()
|
genesis = core.DefaultTestnetGenesisBlock()
|
||||||
case ctx.GlobalBool(EllaismFlag.Name):
|
case ctx.GlobalBool(EllaismFlag.Name):
|
||||||
genesis = core.DefaultEllaismGenesisBlock()
|
genesis = core.DefaultEllaismGenesisBlock()
|
||||||
|
case ctx.GlobalBool(ClassicFlag.Name):
|
||||||
|
genesis = core.DefaultClassicGenesisBlock()
|
||||||
case ctx.GlobalBool(RinkebyFlag.Name):
|
case ctx.GlobalBool(RinkebyFlag.Name):
|
||||||
genesis = core.DefaultRinkebyGenesisBlock()
|
genesis = core.DefaultRinkebyGenesisBlock()
|
||||||
case ctx.GlobalBool(DeveloperFlag.Name):
|
case ctx.GlobalBool(DeveloperFlag.Name):
|
||||||
|
|
|
||||||
|
|
@ -334,6 +334,18 @@ func DefaultEllaismGenesisBlock() *Genesis {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ClassicGenesisBlock returns the Ellaism genesis block.
|
||||||
|
func DefaultClassicGenesisBlock() *Genesis {
|
||||||
|
return &Genesis{
|
||||||
|
Config: params.ClassicChainConfig,
|
||||||
|
Nonce: 66,
|
||||||
|
ExtraData: hexutil.MustDecode("0x11bbe8db4e347b4e8c937c1c8370e4b5ed33adb3db69cbdb7a38e1e50b1b82fa"),
|
||||||
|
GasLimit: 5000,
|
||||||
|
Difficulty: big.NewInt(17179869184),
|
||||||
|
Alloc: decodePrealloc(mainnetAllocData),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// DefaultTestnetGenesisBlock returns the Ropsten network genesis block.
|
// DefaultTestnetGenesisBlock returns the Ropsten network genesis block.
|
||||||
func DefaultTestnetGenesisBlock() *Genesis {
|
func DefaultTestnetGenesisBlock() *Genesis {
|
||||||
return &Genesis{
|
return &Genesis{
|
||||||
|
|
|
||||||
|
|
@ -64,6 +64,24 @@ var (
|
||||||
Ethash: new(EthashConfig),
|
Ethash: new(EthashConfig),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ClassicChainConfig is the chain parameters to run a node on the Ellaism main network.
|
||||||
|
ClassicChainConfig = &ChainConfig{
|
||||||
|
ChainId: big.NewInt(61),
|
||||||
|
HomesteadBlock: big.NewInt(1150000),
|
||||||
|
DAOForkBlock: nil,
|
||||||
|
DAOForkSupport: false,
|
||||||
|
EIP150Block: big.NewInt(2500000),
|
||||||
|
EIP150Hash: common.HexToHash("0xca12c63534f565899681965528d536c52cb05b7c48e269c2a6cb77ad864d878a"),
|
||||||
|
EIP155Block: big.NewInt(3000000),
|
||||||
|
EIP158Block: nil,
|
||||||
|
ByzantiumBlock: nil,
|
||||||
|
DisposalBlock: big.NewInt(5900000),
|
||||||
|
ConstantinopleBlock: nil,
|
||||||
|
ECIP1017EraRounds: big.NewInt(5000000),
|
||||||
|
EIP160Block: big.NewInt(3000000),
|
||||||
|
Ethash: new(EthashConfig),
|
||||||
|
}
|
||||||
|
|
||||||
// TestnetChainConfig contains the chain parameters to run a node on the Ropsten test network.
|
// TestnetChainConfig contains the chain parameters to run a node on the Ropsten test network.
|
||||||
TestnetChainConfig = &ChainConfig{
|
TestnetChainConfig = &ChainConfig{
|
||||||
ChainId: big.NewInt(3),
|
ChainId: big.NewInt(3),
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue