aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPéter Szilágyi <peterke@gmail.com>2016-04-11 18:21:47 +0800
committerPéter Szilágyi <peterke@gmail.com>2016-04-11 18:21:47 +0800
commit8abf06d378e3f6512dfce6e74d76431de024fad7 (patch)
treef92ed05c9d9e15e3cf77bd73955608e42a422739
parenta7161caedf865e3e777473bc676286d2a376afbb (diff)
parent4081868452ba5cdb92ae5d2cee8d055f20fcf4aa (diff)
downloadgo-tangerine-8abf06d378e3f6512dfce6e74d76431de024fad7.tar
go-tangerine-8abf06d378e3f6512dfce6e74d76431de024fad7.tar.gz
go-tangerine-8abf06d378e3f6512dfce6e74d76431de024fad7.tar.bz2
go-tangerine-8abf06d378e3f6512dfce6e74d76431de024fad7.tar.lz
go-tangerine-8abf06d378e3f6512dfce6e74d76431de024fad7.tar.xz
go-tangerine-8abf06d378e3f6512dfce6e74d76431de024fad7.tar.zst
go-tangerine-8abf06d378e3f6512dfce6e74d76431de024fad7.zip
Merge pull request #2430 from bas-vk/chaincmd
cmd/utils: bugfix where database is opened multiple times
-rw-r--r--cmd/utils/flags.go18
1 files changed, 11 insertions, 7 deletions
diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go
index 2f10938e3..a2927108f 100644
--- a/cmd/utils/flags.go
+++ b/cmd/utils/flags.go
@@ -776,16 +776,20 @@ func SetupNetwork(ctx *cli.Context) {
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 {
- var (
- db = MakeChainDatabase(ctx)
- genesis = core.GetBlock(db, core.GetCanonicalHash(db, 0))
- )
+ db := MakeChainDatabase(ctx)
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 {
- // Exsting genesis block, use stored config if available.
+ // Existing genesis block, use stored config if available.
storedConfig, err := core.GetChainConfig(db, genesis.Hash())
if err == nil {
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
chain, err = core.NewBlockChain(chainDb, chainConfig, ethash.New(), &eventMux)