fix startup

This commit is contained in:
jagdeep sidhu 2024-10-07 16:31:14 -07:00
parent 1b8ae03034
commit 8b8b66352a
6 changed files with 34 additions and 9 deletions

View file

@ -419,6 +419,11 @@ func importHistory(ctx *cli.Context) error {
network = "mainnet"
case ctx.Bool(utils.SepoliaFlag.Name):
network = "sepolia"
// SYSCOIN
case ctx.Bool(utils.SyscoinFlag.Name):
network = "syscoin"
case ctx.Bool(utils.TanenbaumFlag.Name):
network = "tanenbaum"
}
} else {
// No network flag set, try to determine network based on files

View file

@ -243,7 +243,8 @@ func makeFullNode(ctx *cli.Context) *node.Node {
blsyncer := blsync.NewClient(ctx)
blsyncer.SetEngineRPC(rpc.DialInProc(srv))
stack.RegisterLifecycle(blsyncer)
} else {
// SYSCOIN
} else if eth.BlockChain().GetChainConfig().SyscoinBlock == nil {
// Launch the engine API for interacting with external consensus client.
err := catalyst.Register(stack, eth)
if err != nil {

View file

@ -140,8 +140,7 @@ var (
}
MainnetFlag = &cli.BoolFlag{
Name: "mainnet",
// SYSCOIN
Usage: "Syscoin mainnet",
Usage: "Ethereum mainnet",
Category: flags.EthCategory,
}
// SYSCOIN
@ -152,10 +151,12 @@ var (
TanenbaumFlag = &cli.BoolFlag{
Name: "tanenbaum",
Usage: "Tanenbaum network: pre-configured NEVM-based Tanenbaum test network.",
Category: flags.EthCategory,
}
SyscoinFlag = &cli.BoolFlag{
Name: "syscoin",
Usage: "Syscoin network: pre-configured NEVM-based Syscoin network.",
Usage: "Syscoin network: pre-configured NEVM-based Syscoin mainnet.",
Category: flags.EthCategory,
}
SepoliaFlag = &cli.BoolFlag{
Name: "sepolia",
@ -971,10 +972,12 @@ var (
// TestnetFlags is the flag group of all built-in supported testnets.
TestnetFlags = []cli.Flag{
SepoliaFlag,
// SYSCOIN
TanenbaumFlag,
HoleskyFlag,
}
// NetworkFlags is the flag group of all built-in supported networks.
NetworkFlags = append([]cli.Flag{MainnetFlag}, TestnetFlags...)
// SYSCOIN NetworkFlags is the flag group of all built-in supported networks.
NetworkFlags = append([]cli.Flag{MainnetFlag, SyscoinFlag}, TestnetFlags...)
// DatabaseFlags is the flag group of all database flags.
DatabaseFlags = []cli.Flag{
@ -1670,8 +1673,8 @@ func CheckExclusive(ctx *cli.Context, args ...interface{}) {
// 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, MainnetFlag, DeveloperFlag, SepoliaFlag, HoleskyFlag)
// SYSCOIN Avoid conflicting network flags
CheckExclusive(ctx, MainnetFlag, DeveloperFlag, SepoliaFlag, TanenbaumFlag, SyscoinFlag, HoleskyFlag)
CheckExclusive(ctx, DeveloperFlag, ExternalSignerFlag) // Can't use both ephemeral unlocked and external signer
// Set configurations from CLI flags

View file

@ -257,7 +257,7 @@ func (beacon *Beacon) verifyHeader(chain consensus.ChainHeaderReader, header, pa
}
// Verify the block's difficulty to ensure it's the default constant
if !chain.Config().IsNexus(header.Number) {
if beaconDifficulty.Cmp(big.NewInt(1)) != 0 {
if header.Difficulty.Cmp(big.NewInt(1)) != 0 {
return fmt.Errorf("invalid difficulty: have %v, want %v", header.Difficulty, new(big.Int).SetInt64(1))
}
} else {

View file

@ -38,6 +38,8 @@ const (
headerCacheLimit = 512
tdCacheLimit = 1024
numberCacheLimit = 2048
// SYSCOIN
SYSBlockCacheLimit = 50001
)
// HeaderChain implements the basic block header chain logic. It is not usable
@ -85,6 +87,10 @@ func NewHeaderChain(chainDb ethdb.Database, config *params.ChainConfig, engine c
headerCache: lru.NewCache[common.Hash, *types.Header](headerCacheLimit),
tdCache: lru.NewCache[common.Hash, *big.Int](tdCacheLimit),
numberCache: lru.NewCache[common.Hash, uint64](numberCacheLimit),
// SYSCOIN
SYSHashCache: lru.NewCache[uint64, []byte](SYSBlockCacheLimit),
DataHashCache: lru.NewCache[common.Hash, []byte](SYSBlockCacheLimit),
NEVMCache: lru.NewCache[common.Hash, []byte](headerCacheLimit),
procInterrupt: procInterrupt,
engine: engine,
}
@ -728,6 +734,10 @@ func (hc *HeaderChain) setHead(headBlock uint64, headTime uint64, updateFn Updat
hc.headerCache.Purge()
hc.tdCache.Purge()
hc.numberCache.Purge()
// SYSCOIN
hc.SYSHashCache.Purge()
hc.NEVMCache.Purge()
hc.DataHashCache.Purge()
}
// SetGenesis sets a new genesis block header for the chain

View file

@ -339,6 +339,9 @@ var (
// NetworkNames are user friendly names to use in the chain spec banner.
var NetworkNames = map[string]string{
MainnetChainConfig.ChainID.String(): "mainnet",
// SYSCOIN
SyscoinChainConfig.ChainID.String(): "syscoin",
TanenbaumChainConfig.ChainID.String(): "tanenbaum",
SepoliaChainConfig.ChainID.String(): "sepolia",
HoleskyChainConfig.ChainID.String(): "holesky",
}
@ -430,6 +433,9 @@ func (c *ChainConfig) Description() string {
}
banner += fmt.Sprintf("Chain ID: %v (%s)\n", c.ChainID, network)
switch {
// SYSCOIN
case c.SyscoinBlock != nil:
banner += "Consensus: Beacon (proof-of-work), merged with Bitcoin (AuxPoW)\n"
case c.Ethash != nil:
if c.TerminalTotalDifficulty == nil {
banner += "Consensus: Ethash (proof-of-work)\n"