aboutsummaryrefslogtreecommitdiffstats
path: root/cmd
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2015-03-07 01:26:16 +0800
committerobscuren <geffobscura@gmail.com>2015-03-07 01:26:16 +0800
commitcd856cb2133d390758bb24b88fa3b538bb7bc306 (patch)
treec6d75750802c2de16ae095569a8f2e0c05ce256f /cmd
parented84b58af57809a743e5be6f6ea53c079c50b765 (diff)
downloaddexon-cd856cb2133d390758bb24b88fa3b538bb7bc306.tar
dexon-cd856cb2133d390758bb24b88fa3b538bb7bc306.tar.gz
dexon-cd856cb2133d390758bb24b88fa3b538bb7bc306.tar.bz2
dexon-cd856cb2133d390758bb24b88fa3b538bb7bc306.tar.lz
dexon-cd856cb2133d390758bb24b88fa3b538bb7bc306.tar.xz
dexon-cd856cb2133d390758bb24b88fa3b538bb7bc306.tar.zst
dexon-cd856cb2133d390758bb24b88fa3b538bb7bc306.zip
Separated block db from state db. Partial fix for #416
Diffstat (limited to 'cmd')
-rw-r--r--cmd/ethereum/js.go2
-rw-r--r--cmd/ethereum/main.go6
-rw-r--r--cmd/mist/bindings.go2
-rw-r--r--cmd/utils/cmd.go2
-rw-r--r--cmd/utils/flags.go11
5 files changed, 14 insertions, 9 deletions
diff --git a/cmd/ethereum/js.go b/cmd/ethereum/js.go
index 9125ccbba..d5cf62146 100644
--- a/cmd/ethereum/js.go
+++ b/cmd/ethereum/js.go
@@ -229,7 +229,7 @@ func (self *repl) dump(call otto.FunctionCall) otto.Value {
block = self.ethereum.ChainManager().CurrentBlock()
}
- statedb := state.New(block.Root(), self.ethereum.Db())
+ statedb := state.New(block.Root(), self.ethereum.StateDb())
v, _ := self.re.Vm.ToValue(statedb.RawDump())
diff --git a/cmd/ethereum/main.go b/cmd/ethereum/main.go
index d9fbabdb7..d29ae3f78 100644
--- a/cmd/ethereum/main.go
+++ b/cmd/ethereum/main.go
@@ -171,7 +171,7 @@ func importchain(ctx *cli.Context) {
if len(ctx.Args()) != 1 {
utils.Fatalf("This command requires an argument.")
}
- chain, _ := utils.GetChain(ctx)
+ chain, _, _ := utils.GetChain(ctx)
start := time.Now()
err := utils.ImportChain(chain, ctx.Args().First())
if err != nil {
@@ -182,7 +182,7 @@ func importchain(ctx *cli.Context) {
}
func dump(ctx *cli.Context) {
- chain, db := utils.GetChain(ctx)
+ chain, _, stateDb := utils.GetChain(ctx)
for _, arg := range ctx.Args() {
var block *types.Block
if hashish(arg) {
@@ -195,7 +195,7 @@ func dump(ctx *cli.Context) {
fmt.Println("{}")
utils.Fatalf("block not found")
} else {
- statedb := state.New(block.Root(), db)
+ statedb := state.New(block.Root(), stateDb)
fmt.Printf("%s\n", statedb.Dump())
// fmt.Println(block)
}
diff --git a/cmd/mist/bindings.go b/cmd/mist/bindings.go
index f21aa3135..c63f11591 100644
--- a/cmd/mist/bindings.go
+++ b/cmd/mist/bindings.go
@@ -113,7 +113,7 @@ func (self *Gui) DumpState(hash, path string) {
return
}
- stateDump = state.New(block.Root(), self.eth.Db()).Dump()
+ stateDump = state.New(block.Root(), self.eth.StateDb()).Dump()
}
file, err := os.OpenFile(path[7:], os.O_CREATE|os.O_RDWR, os.ModePerm)
diff --git a/cmd/utils/cmd.go b/cmd/utils/cmd.go
index 3c3d3955d..99e60ff9e 100644
--- a/cmd/utils/cmd.go
+++ b/cmd/utils/cmd.go
@@ -197,7 +197,7 @@ func BlockDo(ethereum *eth.Ethereum, hash []byte) error {
parent := ethereum.ChainManager().GetBlock(block.ParentHash())
- statedb := state.New(parent.Root(), ethereum.Db())
+ statedb := state.New(parent.Root(), ethereum.StateDb())
_, err := ethereum.BlockProcessor().TransitionState(statedb, parent, block, true)
if err != nil {
return err
diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go
index d363ef280..88ff3558d 100644
--- a/cmd/utils/flags.go
+++ b/cmd/utils/flags.go
@@ -175,11 +175,16 @@ func GetEthereum(clientID, version string, ctx *cli.Context) *eth.Ethereum {
return ethereum
}
-func GetChain(ctx *cli.Context) (*core.ChainManager, ethutil.Database) {
+func GetChain(ctx *cli.Context) (*core.ChainManager, ethutil.Database, ethutil.Database) {
dataDir := ctx.GlobalString(DataDirFlag.Name)
- db, err := ethdb.NewLDBDatabase(path.Join(dataDir, "blockchain"))
+ blockDb, err := ethdb.NewLDBDatabase(path.Join(dataDir, "blockchain"))
if err != nil {
Fatalf("Could not open database: %v", err)
}
- return core.NewChainManager(db, new(event.TypeMux)), db
+
+ stateDb, err := ethdb.NewLDBDatabase(path.Join(dataDir, "state"))
+ if err != nil {
+ Fatalf("Could not open database: %v", err)
+ }
+ return core.NewChainManager(blockDb, stateDb, new(event.TypeMux)), blockDb, stateDb
}