|
|
@ -776,16 +776,20 @@ func SetupNetwork(ctx *cli.Context) { |
|
|
|
params.TargetGasLimit = common.String2Big(ctx.GlobalString(TargetGasLimitFlag.Name)) |
|
|
|
params.TargetGasLimit = common.String2Big(ctx.GlobalString(TargetGasLimitFlag.Name)) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// MustMakeChainConfig reads the chain configuration from the given database.
|
|
|
|
// MustMakeChainConfig reads the chain configuration from the database in ctx.Datadir.
|
|
|
|
func MustMakeChainConfig(ctx *cli.Context) *core.ChainConfig { |
|
|
|
func MustMakeChainConfig(ctx *cli.Context) *core.ChainConfig { |
|
|
|
var ( |
|
|
|
db := MakeChainDatabase(ctx) |
|
|
|
db = MakeChainDatabase(ctx) |
|
|
|
|
|
|
|
genesis = core.GetBlock(db, core.GetCanonicalHash(db, 0)) |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
defer db.Close() |
|
|
|
defer db.Close() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return MustMakeChainConfigFromDb(ctx, db) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// MustMakeChainConfigFromDb reads the chain configuration from the given database.
|
|
|
|
|
|
|
|
func MustMakeChainConfigFromDb(ctx *cli.Context, db ethdb.Database) *core.ChainConfig { |
|
|
|
|
|
|
|
genesis := core.GetBlock(db, core.GetCanonicalHash(db, 0)) |
|
|
|
|
|
|
|
|
|
|
|
if genesis != nil { |
|
|
|
if genesis != nil { |
|
|
|
// Exsting genesis block, use stored config if available.
|
|
|
|
// Existing genesis block, use stored config if available.
|
|
|
|
storedConfig, err := core.GetChainConfig(db, genesis.Hash()) |
|
|
|
storedConfig, err := core.GetChainConfig(db, genesis.Hash()) |
|
|
|
if err == nil { |
|
|
|
if err == nil { |
|
|
|
return storedConfig |
|
|
|
return storedConfig |
|
|
@ -829,7 +833,7 @@ func MakeChain(ctx *cli.Context) (chain *core.BlockChain, chainDb ethdb.Database |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
chainConfig := MustMakeChainConfig(ctx) |
|
|
|
chainConfig := MustMakeChainConfigFromDb(ctx, chainDb) |
|
|
|
|
|
|
|
|
|
|
|
var eventMux event.TypeMux |
|
|
|
var eventMux event.TypeMux |
|
|
|
chain, err = core.NewBlockChain(chainDb, chainConfig, ethash.New(), &eventMux) |
|
|
|
chain, err = core.NewBlockChain(chainDb, chainConfig, ethash.New(), &eventMux) |
|
|
|