aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorJeffrey Wilcke <jeffrey@ethereum.org>2015-07-01 18:57:13 +0800
committerJeffrey Wilcke <jeffrey@ethereum.org>2015-07-01 18:57:13 +0800
commitbb418a43c1b9ebf9a32006652b405f8e1cb3acd2 (patch)
tree379d6ecbefce1d317ca2646a072cfa6879890dbe /core
parent2e5242f9bbbf8412fa5b6e94da942e69570d860d (diff)
parent29ab1fa8a50db8aa16c5d707f1cab7dc201a4053 (diff)
downloadgo-tangerine-bb418a43c1b9ebf9a32006652b405f8e1cb3acd2.tar.gz
go-tangerine-bb418a43c1b9ebf9a32006652b405f8e1cb3acd2.tar.zst
go-tangerine-bb418a43c1b9ebf9a32006652b405f8e1cb3acd2.zip
Merge pull request #1370 from obscuren/force-checkpoint
core, cmd/geth: recover by number
Diffstat (limited to 'core')
-rw-r--r--core/chain_manager.go12
1 files changed, 10 insertions, 2 deletions
diff --git a/core/chain_manager.go b/core/chain_manager.go
index cdbdeb5ae..a7b57b26b 100644
--- a/core/chain_manager.go
+++ b/core/chain_manager.go
@@ -238,6 +238,16 @@ func (self *ChainManager) setTransState(statedb *state.StateDB) {
self.transState = statedb
}
+func (bc *ChainManager) Recover(num uint64) {
+ block := bc.GetBlockByNumber(num)
+ if block != nil {
+ bc.insert(block)
+ glog.Infof("Recovery succesful. New HEAD %x\n", block.Hash())
+ } else {
+ glog.Fatalln("Recovery failed")
+ }
+}
+
func (bc *ChainManager) recover() bool {
data, _ := bc.blockDb.Get([]byte("checkpoint"))
if len(data) != 0 {
@@ -261,8 +271,6 @@ func (bc *ChainManager) setLastState() {
if len(data) != 0 {
block := bc.GetBlock(common.BytesToHash(data))
if block != nil {
- bc.blockDb.Put([]byte("checkpoint"), block.Hash().Bytes())
-
bc.currentBlock = block
bc.lastBlockHash = block.Hash()
} else {