mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-19 02:12:23 +00:00
seperate startup with sys param
This commit is contained in:
parent
c6262351eb
commit
c2f7ed163d
5 changed files with 78 additions and 13 deletions
|
|
@ -291,6 +291,8 @@ func prepare(ctx *cli.Context) {
|
||||||
// If we're running a known preset, log it for convenience.
|
// If we're running a known preset, log it for convenience.
|
||||||
switch {
|
switch {
|
||||||
// SYSCOIN
|
// SYSCOIN
|
||||||
|
case ctx.IsSet(utils.SyscoinFlag.Name):
|
||||||
|
log.Info("Starting Geth on Syscoin mainnet...")
|
||||||
case ctx.IsSet(utils.TanenbaumFlag.Name):
|
case ctx.IsSet(utils.TanenbaumFlag.Name):
|
||||||
log.Info("Starting Geth on Tanenbaum testnet...")
|
log.Info("Starting Geth on Tanenbaum testnet...")
|
||||||
case ctx.IsSet(utils.SepoliaFlag.Name):
|
case ctx.IsSet(utils.SepoliaFlag.Name):
|
||||||
|
|
@ -327,6 +329,7 @@ func prepare(ctx *cli.Context) {
|
||||||
if !ctx.IsSet(utils.HoleskyFlag.Name) &&
|
if !ctx.IsSet(utils.HoleskyFlag.Name) &&
|
||||||
!ctx.IsSet(utils.SepoliaFlag.Name) &&
|
!ctx.IsSet(utils.SepoliaFlag.Name) &&
|
||||||
// SYSCOIN
|
// SYSCOIN
|
||||||
|
!ctx.IsSet(utils.SyscoinFlag.Name) &&
|
||||||
!ctx.IsSet(utils.TanenbaumFlag.Name) &&
|
!ctx.IsSet(utils.TanenbaumFlag.Name) &&
|
||||||
!ctx.IsSet(utils.DeveloperFlag.Name) {
|
!ctx.IsSet(utils.DeveloperFlag.Name) {
|
||||||
// Nope, we're really on mainnet. Bump that cache up!
|
// Nope, we're really on mainnet. Bump that cache up!
|
||||||
|
|
|
||||||
|
|
@ -153,6 +153,10 @@ var (
|
||||||
Name: "tanenbaum",
|
Name: "tanenbaum",
|
||||||
Usage: "Tanenbaum network: pre-configured NEVM-based Tanenbaum test network.",
|
Usage: "Tanenbaum network: pre-configured NEVM-based Tanenbaum test network.",
|
||||||
}
|
}
|
||||||
|
SyscoinFlag = &cli.BoolFlag{
|
||||||
|
Name: "syscoin",
|
||||||
|
Usage: "Syscoin network: pre-configured NEVM-based Syscoin network.",
|
||||||
|
}
|
||||||
SepoliaFlag = &cli.BoolFlag{
|
SepoliaFlag = &cli.BoolFlag{
|
||||||
Name: "sepolia",
|
Name: "sepolia",
|
||||||
Usage: "Sepolia network: pre-configured proof-of-work test network",
|
Usage: "Sepolia network: pre-configured proof-of-work test network",
|
||||||
|
|
@ -992,6 +996,9 @@ func MakeDataDir(ctx *cli.Context) string {
|
||||||
return filepath.Join(path, "sepolia")
|
return filepath.Join(path, "sepolia")
|
||||||
}
|
}
|
||||||
// SYSCOIN
|
// SYSCOIN
|
||||||
|
if ctx.Bool(SyscoinFlag.Name) {
|
||||||
|
return filepath.Join(path, "syscoin")
|
||||||
|
}
|
||||||
if ctx.Bool(TanenbaumFlag.Name) {
|
if ctx.Bool(TanenbaumFlag.Name) {
|
||||||
return filepath.Join(path, "tanenbaum")
|
return filepath.Join(path, "tanenbaum")
|
||||||
}
|
}
|
||||||
|
|
@ -1057,6 +1064,8 @@ func setBootstrapNodes(ctx *cli.Context, cfg *p2p.Config) {
|
||||||
case ctx.Bool(HoleskyFlag.Name):
|
case ctx.Bool(HoleskyFlag.Name):
|
||||||
urls = params.HoleskyBootnodes
|
urls = params.HoleskyBootnodes
|
||||||
// SYSCOIN
|
// SYSCOIN
|
||||||
|
case ctx.Bool(SyscoinFlag.Name):
|
||||||
|
urls = params.SyscoinBootnodes
|
||||||
case ctx.Bool(TanenbaumFlag.Name):
|
case ctx.Bool(TanenbaumFlag.Name):
|
||||||
urls = params.TanenbaumBootnodes
|
urls = params.TanenbaumBootnodes
|
||||||
case ctx.Bool(SepoliaFlag.Name):
|
case ctx.Bool(SepoliaFlag.Name):
|
||||||
|
|
@ -1487,6 +1496,8 @@ func SetDataDir(ctx *cli.Context, cfg *node.Config) {
|
||||||
case ctx.Bool(DeveloperFlag.Name):
|
case ctx.Bool(DeveloperFlag.Name):
|
||||||
cfg.DataDir = "" // unless explicitly requested, use memory databases
|
cfg.DataDir = "" // unless explicitly requested, use memory databases
|
||||||
// SYSCOIN
|
// SYSCOIN
|
||||||
|
case ctx.Bool(SyscoinFlag.Name) && cfg.DataDir == node.DefaultDataDir():
|
||||||
|
cfg.DataDir = filepath.Join(node.DefaultDataDir(), "syscoin")
|
||||||
case ctx.Bool(TanenbaumFlag.Name) && cfg.DataDir == node.DefaultDataDir():
|
case ctx.Bool(TanenbaumFlag.Name) && cfg.DataDir == node.DefaultDataDir():
|
||||||
cfg.DataDir = filepath.Join(node.DefaultDataDir(), "tanenbaum")
|
cfg.DataDir = filepath.Join(node.DefaultDataDir(), "tanenbaum")
|
||||||
case ctx.Bool(SepoliaFlag.Name) && cfg.DataDir == node.DefaultDataDir():
|
case ctx.Bool(SepoliaFlag.Name) && cfg.DataDir == node.DefaultDataDir():
|
||||||
|
|
@ -1814,8 +1825,7 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *ethconfig.Config) {
|
||||||
switch {
|
switch {
|
||||||
case ctx.Bool(MainnetFlag.Name):
|
case ctx.Bool(MainnetFlag.Name):
|
||||||
if !ctx.IsSet(NetworkIdFlag.Name) {
|
if !ctx.IsSet(NetworkIdFlag.Name) {
|
||||||
// SYSCOIN
|
cfg.NetworkId = 1
|
||||||
cfg.NetworkId = 57
|
|
||||||
}
|
}
|
||||||
cfg.Genesis = core.DefaultGenesisBlock()
|
cfg.Genesis = core.DefaultGenesisBlock()
|
||||||
SetDNSDiscoveryDefaults(cfg, params.MainnetGenesisHash)
|
SetDNSDiscoveryDefaults(cfg, params.MainnetGenesisHash)
|
||||||
|
|
@ -1832,6 +1842,12 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *ethconfig.Config) {
|
||||||
cfg.Genesis = core.DefaultSepoliaGenesisBlock()
|
cfg.Genesis = core.DefaultSepoliaGenesisBlock()
|
||||||
SetDNSDiscoveryDefaults(cfg, params.SepoliaGenesisHash)
|
SetDNSDiscoveryDefaults(cfg, params.SepoliaGenesisHash)
|
||||||
// SYSCOIN
|
// SYSCOIN
|
||||||
|
case ctx.Bool(SyscoinFlag.Name):
|
||||||
|
if !ctx.IsSet(NetworkIdFlag.Name) {
|
||||||
|
cfg.NetworkId = 57
|
||||||
|
}
|
||||||
|
cfg.Genesis = core.DefaultSyscoinGenesisBlock()
|
||||||
|
SetDNSDiscoveryDefaults(cfg, params.SyscoinGenesisHash)
|
||||||
case ctx.Bool(TanenbaumFlag.Name):
|
case ctx.Bool(TanenbaumFlag.Name):
|
||||||
if !ctx.IsSet(NetworkIdFlag.Name) {
|
if !ctx.IsSet(NetworkIdFlag.Name) {
|
||||||
cfg.NetworkId = 5700
|
cfg.NetworkId = 5700
|
||||||
|
|
@ -2157,6 +2173,9 @@ func MakeGenesis(ctx *cli.Context) *core.Genesis {
|
||||||
genesis = core.DefaultHoleskyGenesisBlock()
|
genesis = core.DefaultHoleskyGenesisBlock()
|
||||||
case ctx.Bool(SepoliaFlag.Name):
|
case ctx.Bool(SepoliaFlag.Name):
|
||||||
genesis = core.DefaultSepoliaGenesisBlock()
|
genesis = core.DefaultSepoliaGenesisBlock()
|
||||||
|
// SYSCOIN
|
||||||
|
case ctx.Bool(SyscoinFlag.Name):
|
||||||
|
genesis = core.DefaultSyscoinGenesisBlock()
|
||||||
case ctx.Bool(TanenbaumFlag.Name):
|
case ctx.Bool(TanenbaumFlag.Name):
|
||||||
genesis = core.DefaultTanenbaumGenesisBlock()
|
genesis = core.DefaultTanenbaumGenesisBlock()
|
||||||
case ctx.Bool(DeveloperFlag.Name):
|
case ctx.Bool(DeveloperFlag.Name):
|
||||||
|
|
|
||||||
|
|
@ -201,6 +201,8 @@ func getGenesisState(db ethdb.Database, blockhash common.Hash) (alloc types.Gene
|
||||||
case params.HoleskyGenesisHash:
|
case params.HoleskyGenesisHash:
|
||||||
genesis = DefaultHoleskyGenesisBlock()
|
genesis = DefaultHoleskyGenesisBlock()
|
||||||
// SYSCOIN
|
// SYSCOIN
|
||||||
|
case params.SyscoinGenesisHash:
|
||||||
|
genesis = DefaultSyscoinGenesisBlock()
|
||||||
case params.TanenbaumGenesisHash:
|
case params.TanenbaumGenesisHash:
|
||||||
genesis = DefaultTanenbaumGenesisBlock()
|
genesis = DefaultTanenbaumGenesisBlock()
|
||||||
}
|
}
|
||||||
|
|
@ -402,6 +404,8 @@ func (g *Genesis) configOrDefault(ghash common.Hash) *params.ChainConfig {
|
||||||
case ghash == params.SepoliaGenesisHash:
|
case ghash == params.SepoliaGenesisHash:
|
||||||
return params.SepoliaChainConfig
|
return params.SepoliaChainConfig
|
||||||
// SYSCOIN
|
// SYSCOIN
|
||||||
|
case ghash == params.SyscoinGenesisHash:
|
||||||
|
return params.SyscoinChainConfig
|
||||||
case ghash == params.TanenbaumGenesisHash:
|
case ghash == params.TanenbaumGenesisHash:
|
||||||
return params.TanenbaumChainConfig
|
return params.TanenbaumChainConfig
|
||||||
default:
|
default:
|
||||||
|
|
@ -543,7 +547,17 @@ func (g *Genesis) MustCommit(db ethdb.Database, triedb *triedb.Database) *types.
|
||||||
func DefaultGenesisBlock() *Genesis {
|
func DefaultGenesisBlock() *Genesis {
|
||||||
return &Genesis{
|
return &Genesis{
|
||||||
Config: params.MainnetChainConfig,
|
Config: params.MainnetChainConfig,
|
||||||
|
Nonce: 66,
|
||||||
|
ExtraData: hexutil.MustDecode("0x11bbe8db4e347b4e8c937c1c8370e4b5ed33adb3db69cbdb7a38e1e50b1b82fa"),
|
||||||
|
GasLimit: 5000,
|
||||||
|
Difficulty: big.NewInt(17179869184),
|
||||||
|
Alloc: decodePrealloc(mainnetAllocData),
|
||||||
|
}
|
||||||
|
}
|
||||||
// SYSCOIN
|
// SYSCOIN
|
||||||
|
func DefaultSyscoinGenesisBlock() *Genesis {
|
||||||
|
return &Genesis{
|
||||||
|
Config: params.SyscoinChainConfig,
|
||||||
Timestamp: 0x60d7aef6,
|
Timestamp: 0x60d7aef6,
|
||||||
ExtraData: hexutil.MustDecode("0x00"),
|
ExtraData: hexutil.MustDecode("0x00"),
|
||||||
GasLimit: 0x7A1200,
|
GasLimit: 0x7A1200,
|
||||||
|
|
@ -551,7 +565,6 @@ func DefaultGenesisBlock() *Genesis {
|
||||||
Alloc: decodePrealloc(syscoinAllocData),
|
Alloc: decodePrealloc(syscoinAllocData),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// SYSCOIN
|
|
||||||
func DefaultTanenbaumGenesisBlock() *Genesis {
|
func DefaultTanenbaumGenesisBlock() *Genesis {
|
||||||
return &Genesis{
|
return &Genesis{
|
||||||
Config: params.TanenbaumChainConfig,
|
Config: params.TanenbaumChainConfig,
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,9 @@ var MainnetBootnodes = []string{
|
||||||
"enode://4aeb4ab6c14b23e2c4cfdce879c04b0748a20d8e9b59e25ded2a08143e265c6c25936e74cbc8e641e3312ca288673d91f2f93f8e277de3cfa444ecdaaf982052@157.90.35.166:30303", // bootnode-hetzner-fsn
|
"enode://4aeb4ab6c14b23e2c4cfdce879c04b0748a20d8e9b59e25ded2a08143e265c6c25936e74cbc8e641e3312ca288673d91f2f93f8e277de3cfa444ecdaaf982052@157.90.35.166:30303", // bootnode-hetzner-fsn
|
||||||
}
|
}
|
||||||
// SYSCOIN
|
// SYSCOIN
|
||||||
|
var SyscoinBootnodes = []string{
|
||||||
|
"enode://6f417e6740e559818cedd1ae31ea339657f4580c06491ab9c9a7be9dc9136e858e5bc9a3c2e8d6ea49567af5102afced9d8a99c04410244b0c0880911720439a@54.203.37.244:30303",
|
||||||
|
}
|
||||||
var TanenbaumBootnodes = []string{
|
var TanenbaumBootnodes = []string{
|
||||||
"enode://f0e3e91d3d28b808734ce08b10855b5e6b6bde8eb9e4bedaf8aababc2ceaa8f4134cec309a996765f183361f1e67bce341326c05b743ed5932a8e705149364e4@44.238.217.166:30303",
|
"enode://f0e3e91d3d28b808734ce08b10855b5e6b6bde8eb9e4bedaf8aababc2ceaa8f4134cec309a996765f183361f1e67bce341326c05b743ed5932a8e705149364e4@44.238.217.166:30303",
|
||||||
}
|
}
|
||||||
|
|
@ -83,6 +86,8 @@ func KnownDNSNetwork(genesis common.Hash, protocol string) string {
|
||||||
switch genesis {
|
switch genesis {
|
||||||
case MainnetGenesisHash:
|
case MainnetGenesisHash:
|
||||||
net = "mainnet"
|
net = "mainnet"
|
||||||
|
case SyscoinGenesisHash:
|
||||||
|
net = "syscoin"
|
||||||
case TanenbaumGenesisHash:
|
case TanenbaumGenesisHash:
|
||||||
net = "tanenbaum"
|
net = "tanenbaum"
|
||||||
case SepoliaGenesisHash:
|
case SepoliaGenesisHash:
|
||||||
|
|
|
||||||
|
|
@ -26,8 +26,9 @@ import (
|
||||||
|
|
||||||
// Genesis hashes to enforce below configs on.
|
// Genesis hashes to enforce below configs on.
|
||||||
var (
|
var (
|
||||||
|
MainnetGenesisHash = common.HexToHash("0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3")
|
||||||
// SYSCOIN
|
// SYSCOIN
|
||||||
MainnetGenesisHash = common.HexToHash("0x2112327cad6deec6ada8bd7e5d33d263b57742a8495f3b641faa326b55b1c666")
|
SyscoinGenesisHash = common.HexToHash("0x2112327cad6deec6ada8bd7e5d33d263b57742a8495f3b641faa326b55b1c666")
|
||||||
TanenbaumGenesisHash = common.HexToHash("0x5fb22cd4425cea75d2ddaf5fbafb247bb682f407575c599d954b811214c3617c")
|
TanenbaumGenesisHash = common.HexToHash("0x5fb22cd4425cea75d2ddaf5fbafb247bb682f407575c599d954b811214c3617c")
|
||||||
HoleskyGenesisHash = common.HexToHash("0xb5f7f912443c940f21fd611f12828d75b534364ed9e95ca4e307729a4661bde4")
|
HoleskyGenesisHash = common.HexToHash("0xb5f7f912443c940f21fd611f12828d75b534364ed9e95ca4e307729a4661bde4")
|
||||||
SepoliaGenesisHash = common.HexToHash("0x25a5cc106eea7138acab33231d7160d69cb777ee0c2c553fcddf5138993e6dd9")
|
SepoliaGenesisHash = common.HexToHash("0x25a5cc106eea7138acab33231d7160d69cb777ee0c2c553fcddf5138993e6dd9")
|
||||||
|
|
@ -36,15 +37,41 @@ var (
|
||||||
func newUint64(val uint64) *uint64 { return &val }
|
func newUint64(val uint64) *uint64 { return &val }
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
MainnetTerminalTotalDifficulty, _ = new(big.Int).SetString("58_750_000_000_000_000_000_000", 0)
|
||||||
// SYSCOIN
|
// SYSCOIN
|
||||||
MainnetTerminalTotalDifficulty, _ = new(big.Int).SetString("0", 0)
|
SyscoinTerminalTotalDifficulty, _ = new(big.Int).SetString("0", 0)
|
||||||
|
|
||||||
// MainnetChainConfig is the chain parameters to run a node on the main network.
|
// MainnetChainConfig is the chain parameters to run a node on the main network.
|
||||||
MainnetChainConfig = &ChainConfig{
|
MainnetChainConfig = &ChainConfig{
|
||||||
|
ChainID: big.NewInt(1),
|
||||||
|
HomesteadBlock: big.NewInt(1_150_000),
|
||||||
|
DAOForkBlock: big.NewInt(1_920_000),
|
||||||
|
DAOForkSupport: true,
|
||||||
|
EIP150Block: big.NewInt(2_463_000),
|
||||||
|
EIP155Block: big.NewInt(2_675_000),
|
||||||
|
EIP158Block: big.NewInt(2_675_000),
|
||||||
|
ByzantiumBlock: big.NewInt(4_370_000),
|
||||||
|
ConstantinopleBlock: big.NewInt(7_280_000),
|
||||||
|
PetersburgBlock: big.NewInt(7_280_000),
|
||||||
|
IstanbulBlock: big.NewInt(9_069_000),
|
||||||
|
MuirGlacierBlock: big.NewInt(9_200_000),
|
||||||
|
BerlinBlock: big.NewInt(12_244_000),
|
||||||
|
LondonBlock: big.NewInt(12_965_000),
|
||||||
|
ArrowGlacierBlock: big.NewInt(13_773_000),
|
||||||
|
GrayGlacierBlock: big.NewInt(15_050_000),
|
||||||
|
TerminalTotalDifficulty: MainnetTerminalTotalDifficulty, // 58_750_000_000_000_000_000_000
|
||||||
|
TerminalTotalDifficultyPassed: true,
|
||||||
|
ShanghaiTime: newUint64(1681338455),
|
||||||
|
CancunTime: newUint64(1710338135),
|
||||||
|
DepositContractAddress: common.HexToAddress("0x00000000219ab540356cbb839cbe05303d7705fa"),
|
||||||
|
Ethash: new(EthashConfig),
|
||||||
|
}
|
||||||
|
// SYSCOIN
|
||||||
|
SyscoinChainConfig = &ChainConfig{
|
||||||
ChainID: big.NewInt(57),
|
ChainID: big.NewInt(57),
|
||||||
HomesteadBlock: big.NewInt(0),
|
HomesteadBlock: big.NewInt(0),
|
||||||
DAOForkBlock: nil,
|
DAOForkBlock: nil,
|
||||||
DAOForkSupport: true,
|
DAOForkSupport: false,
|
||||||
EIP150Block: big.NewInt(0),
|
EIP150Block: big.NewInt(0),
|
||||||
EIP155Block: big.NewInt(0),
|
EIP155Block: big.NewInt(0),
|
||||||
EIP158Block: big.NewInt(0),
|
EIP158Block: big.NewInt(0),
|
||||||
|
|
@ -58,18 +85,17 @@ var (
|
||||||
RolluxBlock: big.NewInt(268500),
|
RolluxBlock: big.NewInt(268500),
|
||||||
NexusBlock: big.NewInt(600000),
|
NexusBlock: big.NewInt(600000),
|
||||||
LondonBlock: big.NewInt(1),
|
LondonBlock: big.NewInt(1),
|
||||||
TerminalTotalDifficulty: MainnetTerminalTotalDifficulty,
|
TerminalTotalDifficulty: SyscoinTerminalTotalDifficulty,
|
||||||
TerminalTotalDifficultyPassed: true,
|
TerminalTotalDifficultyPassed: true,
|
||||||
ShanghaiTime: newUint64(1679618404),
|
ShanghaiTime: newUint64(1679618404),
|
||||||
CancunTime: newUint64(1679618404),
|
CancunTime: newUint64(1679618404),
|
||||||
Ethash: new(EthashConfig),
|
Ethash: nil,
|
||||||
}
|
}
|
||||||
// SYSCOIN SyscoinChainConfig is the chain parameters to run a node on the syscoin network.
|
|
||||||
TanenbaumChainConfig = &ChainConfig{
|
TanenbaumChainConfig = &ChainConfig{
|
||||||
ChainID: big.NewInt(5700),
|
ChainID: big.NewInt(5700),
|
||||||
HomesteadBlock: big.NewInt(0),
|
HomesteadBlock: big.NewInt(0),
|
||||||
DAOForkBlock: nil,
|
DAOForkBlock: nil,
|
||||||
DAOForkSupport: true,
|
DAOForkSupport: false,
|
||||||
EIP150Block: big.NewInt(0),
|
EIP150Block: big.NewInt(0),
|
||||||
EIP155Block: big.NewInt(0),
|
EIP155Block: big.NewInt(0),
|
||||||
EIP158Block: big.NewInt(0),
|
EIP158Block: big.NewInt(0),
|
||||||
|
|
@ -85,8 +111,7 @@ var (
|
||||||
NexusBlock: big.NewInt(600000),
|
NexusBlock: big.NewInt(600000),
|
||||||
LondonBlock: big.NewInt(1),
|
LondonBlock: big.NewInt(1),
|
||||||
CancunTime: newUint64(1675118284),
|
CancunTime: newUint64(1675118284),
|
||||||
ArrowGlacierBlock: nil,
|
Ethash: nil,
|
||||||
Ethash: new(EthashConfig),
|
|
||||||
}
|
}
|
||||||
// HoleskyChainConfig contains the chain parameters to run a node on the Holesky test network.
|
// HoleskyChainConfig contains the chain parameters to run a node on the Holesky test network.
|
||||||
HoleskyChainConfig = &ChainConfig{
|
HoleskyChainConfig = &ChainConfig{
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue