diff --git a/core/chain_manager.go b/core/chain_manager.go
index 1df56b27f8047d85800c0a92fadb638fe268f392..e5fcd4afc73c459310ef733f0c907386df2c810b 100644
--- a/core/chain_manager.go
+++ b/core/chain_manager.go
@@ -342,14 +342,14 @@ func (self *ChainManager) Export(w io.Writer) error {
 }
 
 func (bc *ChainManager) insert(block *types.Block) {
-	bc.blockDb.Put([]byte("LastBlock"), block.Hash().Bytes())
-	bc.currentBlock = block
-	bc.lastBlockHash = block.Hash()
-
 	key := append(blockNumPre, block.Number().Bytes()...)
 	bc.blockDb.Put(key, bc.lastBlockHash.Bytes())
 	// Push block to cache
 	bc.cache.Push(block)
+
+	bc.blockDb.Put([]byte("LastBlock"), block.Hash().Bytes())
+	bc.currentBlock = block
+	bc.lastBlockHash = block.Hash()
 }
 
 func (bc *ChainManager) write(block *types.Block) {