|
|
|
@ -793,7 +793,8 @@ func MustMakeChainConfigFromDb(ctx *cli.Context, db ethdb.Database) *core.ChainC |
|
|
|
|
// If the chain is already initialized, use any existing chain configs
|
|
|
|
|
config := new(core.ChainConfig) |
|
|
|
|
|
|
|
|
|
if genesis := core.GetBlock(db, core.GetCanonicalHash(db, 0)); genesis != nil { |
|
|
|
|
genesis := core.GetBlock(db, core.GetCanonicalHash(db, 0)) |
|
|
|
|
if genesis != nil { |
|
|
|
|
storedConfig, err := core.GetChainConfig(db, genesis.Hash()) |
|
|
|
|
switch err { |
|
|
|
|
case nil: |
|
|
|
@ -827,6 +828,23 @@ func MustMakeChainConfigFromDb(ctx *cli.Context, db ethdb.Database) *core.ChainC |
|
|
|
|
case ctx.GlobalBool(OpposeDAOFork.Name): |
|
|
|
|
config.DAOForkSupport = false |
|
|
|
|
} |
|
|
|
|
// Temporarilly display a proper message so the user knows which fork its on
|
|
|
|
|
if !ctx.GlobalBool(TestNetFlag.Name) && (genesis == nil || genesis.Hash() == common.HexToHash("0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3")) { |
|
|
|
|
choice := "SUPPORT" |
|
|
|
|
if !config.DAOForkSupport { |
|
|
|
|
choice = "OPPOSE" |
|
|
|
|
} |
|
|
|
|
current := fmt.Sprintf("Geth is currently configured to %s the DAO hard-fork!", choice) |
|
|
|
|
howtoswap := fmt.Sprintf("You can change your choice prior to block #%v with --support-dao-fork or --oppose-dao-fork.", config.DAOForkBlock) |
|
|
|
|
howtosync := fmt.Sprintf("After the hard-fork block #%v passed, changing chains requires a resync from scratch!", config.DAOForkBlock) |
|
|
|
|
separator := strings.Repeat("-", len(howtoswap)) |
|
|
|
|
|
|
|
|
|
glog.V(logger.Warn).Info(separator) |
|
|
|
|
glog.V(logger.Warn).Info(current) |
|
|
|
|
glog.V(logger.Warn).Info(howtoswap) |
|
|
|
|
glog.V(logger.Warn).Info(howtosync) |
|
|
|
|
glog.V(logger.Warn).Info(separator) |
|
|
|
|
} |
|
|
|
|
return config |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|