seperate startup with sys param

This commit is contained in:
jagdeep sidhu 2024-10-07 12:54:48 -07:00
parent c6262351eb
commit c2f7ed163d
5 changed files with 78 additions and 13 deletions

View file

@ -291,6 +291,8 @@ func prepare(ctx *cli.Context) {
// If we're running a known preset, log it for convenience.
switch {
// SYSCOIN
case ctx.IsSet(utils.SyscoinFlag.Name):
log.Info("Starting Geth on Syscoin mainnet...")
case ctx.IsSet(utils.TanenbaumFlag.Name):
log.Info("Starting Geth on Tanenbaum testnet...")
case ctx.IsSet(utils.SepoliaFlag.Name):
@ -327,6 +329,7 @@ func prepare(ctx *cli.Context) {
if !ctx.IsSet(utils.HoleskyFlag.Name) &&
!ctx.IsSet(utils.SepoliaFlag.Name) &&
// SYSCOIN
!ctx.IsSet(utils.SyscoinFlag.Name) &&
!ctx.IsSet(utils.TanenbaumFlag.Name) &&
!ctx.IsSet(utils.DeveloperFlag.Name) {
// Nope, we're really on mainnet. Bump that cache up!

View file

@ -153,6 +153,10 @@ var (
Name: "tanenbaum",
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{
Name: "sepolia",
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")
}
// SYSCOIN
if ctx.Bool(SyscoinFlag.Name) {
return filepath.Join(path, "syscoin")
}
if ctx.Bool(TanenbaumFlag.Name) {
return filepath.Join(path, "tanenbaum")
}
@ -1057,6 +1064,8 @@ func setBootstrapNodes(ctx *cli.Context, cfg *p2p.Config) {
case ctx.Bool(HoleskyFlag.Name):
urls = params.HoleskyBootnodes
// SYSCOIN
case ctx.Bool(SyscoinFlag.Name):
urls = params.SyscoinBootnodes
case ctx.Bool(TanenbaumFlag.Name):
urls = params.TanenbaumBootnodes
case ctx.Bool(SepoliaFlag.Name):
@ -1487,6 +1496,8 @@ func SetDataDir(ctx *cli.Context, cfg *node.Config) {
case ctx.Bool(DeveloperFlag.Name):
cfg.DataDir = "" // unless explicitly requested, use memory databases
// 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():
cfg.DataDir = filepath.Join(node.DefaultDataDir(), "tanenbaum")
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 {
case ctx.Bool(MainnetFlag.Name):
if !ctx.IsSet(NetworkIdFlag.Name) {
// SYSCOIN
cfg.NetworkId = 57
cfg.NetworkId = 1
}
cfg.Genesis = core.DefaultGenesisBlock()
SetDNSDiscoveryDefaults(cfg, params.MainnetGenesisHash)
@ -1832,6 +1842,12 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *ethconfig.Config) {
cfg.Genesis = core.DefaultSepoliaGenesisBlock()
SetDNSDiscoveryDefaults(cfg, params.SepoliaGenesisHash)
// 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):
if !ctx.IsSet(NetworkIdFlag.Name) {
cfg.NetworkId = 5700
@ -2157,6 +2173,9 @@ func MakeGenesis(ctx *cli.Context) *core.Genesis {
genesis = core.DefaultHoleskyGenesisBlock()
case ctx.Bool(SepoliaFlag.Name):
genesis = core.DefaultSepoliaGenesisBlock()
// SYSCOIN
case ctx.Bool(SyscoinFlag.Name):
genesis = core.DefaultSyscoinGenesisBlock()
case ctx.Bool(TanenbaumFlag.Name):
genesis = core.DefaultTanenbaumGenesisBlock()
case ctx.Bool(DeveloperFlag.Name):

View file

@ -201,6 +201,8 @@ func getGenesisState(db ethdb.Database, blockhash common.Hash) (alloc types.Gene
case params.HoleskyGenesisHash:
genesis = DefaultHoleskyGenesisBlock()
// SYSCOIN
case params.SyscoinGenesisHash:
genesis = DefaultSyscoinGenesisBlock()
case params.TanenbaumGenesisHash:
genesis = DefaultTanenbaumGenesisBlock()
}
@ -402,6 +404,8 @@ func (g *Genesis) configOrDefault(ghash common.Hash) *params.ChainConfig {
case ghash == params.SepoliaGenesisHash:
return params.SepoliaChainConfig
// SYSCOIN
case ghash == params.SyscoinGenesisHash:
return params.SyscoinChainConfig
case ghash == params.TanenbaumGenesisHash:
return params.TanenbaumChainConfig
default:
@ -543,7 +547,17 @@ func (g *Genesis) MustCommit(db ethdb.Database, triedb *triedb.Database) *types.
func DefaultGenesisBlock() *Genesis {
return &Genesis{
Config: params.MainnetChainConfig,
// SYSCOIN
Nonce: 66,
ExtraData: hexutil.MustDecode("0x11bbe8db4e347b4e8c937c1c8370e4b5ed33adb3db69cbdb7a38e1e50b1b82fa"),
GasLimit: 5000,
Difficulty: big.NewInt(17179869184),
Alloc: decodePrealloc(mainnetAllocData),
}
}
// SYSCOIN
func DefaultSyscoinGenesisBlock() *Genesis {
return &Genesis{
Config: params.SyscoinChainConfig,
Timestamp: 0x60d7aef6,
ExtraData: hexutil.MustDecode("0x00"),
GasLimit: 0x7A1200,
@ -551,7 +565,6 @@ func DefaultGenesisBlock() *Genesis {
Alloc: decodePrealloc(syscoinAllocData),
}
}
// SYSCOIN
func DefaultTanenbaumGenesisBlock() *Genesis {
return &Genesis{
Config: params.TanenbaumChainConfig,

View file

@ -28,6 +28,9 @@ var MainnetBootnodes = []string{
"enode://4aeb4ab6c14b23e2c4cfdce879c04b0748a20d8e9b59e25ded2a08143e265c6c25936e74cbc8e641e3312ca288673d91f2f93f8e277de3cfa444ecdaaf982052@157.90.35.166:30303", // bootnode-hetzner-fsn
}
// SYSCOIN
var SyscoinBootnodes = []string{
"enode://6f417e6740e559818cedd1ae31ea339657f4580c06491ab9c9a7be9dc9136e858e5bc9a3c2e8d6ea49567af5102afced9d8a99c04410244b0c0880911720439a@54.203.37.244:30303",
}
var TanenbaumBootnodes = []string{
"enode://f0e3e91d3d28b808734ce08b10855b5e6b6bde8eb9e4bedaf8aababc2ceaa8f4134cec309a996765f183361f1e67bce341326c05b743ed5932a8e705149364e4@44.238.217.166:30303",
}
@ -83,6 +86,8 @@ func KnownDNSNetwork(genesis common.Hash, protocol string) string {
switch genesis {
case MainnetGenesisHash:
net = "mainnet"
case SyscoinGenesisHash:
net = "syscoin"
case TanenbaumGenesisHash:
net = "tanenbaum"
case SepoliaGenesisHash:

View file

@ -26,8 +26,9 @@ import (
// Genesis hashes to enforce below configs on.
var (
MainnetGenesisHash = common.HexToHash("0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3")
// SYSCOIN
MainnetGenesisHash = common.HexToHash("0x2112327cad6deec6ada8bd7e5d33d263b57742a8495f3b641faa326b55b1c666")
SyscoinGenesisHash = common.HexToHash("0x2112327cad6deec6ada8bd7e5d33d263b57742a8495f3b641faa326b55b1c666")
TanenbaumGenesisHash = common.HexToHash("0x5fb22cd4425cea75d2ddaf5fbafb247bb682f407575c599d954b811214c3617c")
HoleskyGenesisHash = common.HexToHash("0xb5f7f912443c940f21fd611f12828d75b534364ed9e95ca4e307729a4661bde4")
SepoliaGenesisHash = common.HexToHash("0x25a5cc106eea7138acab33231d7160d69cb777ee0c2c553fcddf5138993e6dd9")
@ -36,15 +37,41 @@ var (
func newUint64(val uint64) *uint64 { return &val }
var (
MainnetTerminalTotalDifficulty, _ = new(big.Int).SetString("58_750_000_000_000_000_000_000", 0)
// 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 = &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),
HomesteadBlock: big.NewInt(0),
DAOForkBlock: nil,
DAOForkSupport: true,
DAOForkSupport: false,
EIP150Block: big.NewInt(0),
EIP155Block: big.NewInt(0),
EIP158Block: big.NewInt(0),
@ -58,18 +85,17 @@ var (
RolluxBlock: big.NewInt(268500),
NexusBlock: big.NewInt(600000),
LondonBlock: big.NewInt(1),
TerminalTotalDifficulty: MainnetTerminalTotalDifficulty,
TerminalTotalDifficulty: SyscoinTerminalTotalDifficulty,
TerminalTotalDifficultyPassed: true,
ShanghaiTime: 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{
ChainID: big.NewInt(5700),
HomesteadBlock: big.NewInt(0),
DAOForkBlock: nil,
DAOForkSupport: true,
DAOForkSupport: false,
EIP150Block: big.NewInt(0),
EIP155Block: big.NewInt(0),
EIP158Block: big.NewInt(0),
@ -85,8 +111,7 @@ var (
NexusBlock: big.NewInt(600000),
LondonBlock: big.NewInt(1),
CancunTime: newUint64(1675118284),
ArrowGlacierBlock: nil,
Ethash: new(EthashConfig),
Ethash: nil,
}
// HoleskyChainConfig contains the chain parameters to run a node on the Holesky test network.
HoleskyChainConfig = &ChainConfig{