core: fixed head write on block insertion

Due to a rebase this probably got overlooked / ignored. This fixes the
issue of a block insertion never writing the last block.
This commit is contained in:
Jeffrey Wilcke 2015-10-05 16:51:06 +02:00
parent 5b34fa538e
commit 20ab29f885
2 changed files with 16 additions and 0 deletions

View File

@ -297,6 +297,9 @@ func (bc *BlockChain) insert(block *types.Block) {
if err := WriteCanonicalHash(bc.chainDb, block.Hash(), block.NumberU64()); err != nil { if err := WriteCanonicalHash(bc.chainDb, block.Hash(), block.NumberU64()); err != nil {
glog.Fatalf("failed to insert block number: %v", err) glog.Fatalf("failed to insert block number: %v", err)
} }
if err := WriteHeadBlockHash(bc.chainDb, block.Hash()); err != nil {
glog.Fatalf("failed to insert block number: %v", err)
}
bc.currentBlock = block bc.currentBlock = block
} }

View File

@ -153,6 +153,19 @@ func insertChain(done chan bool, blockchain *BlockChain, chain types.Blocks, t *
done <- true done <- true
} }
func TestLastBlock(t *testing.T) {
db, err := ethdb.NewMemDatabase()
if err != nil {
t.Fatal("Failed to create db:", err)
}
bchain := theBlockChain(db, t)
block := makeChain(bchain.CurrentBlock(), 1, db, 0)[0]
bchain.insert(block)
if block.Hash() != GetHeadBlockHash(db) {
t.Errorf("Write/Get HeadBlockHash failed")
}
}
func TestExtendCanonical(t *testing.T) { func TestExtendCanonical(t *testing.T) {
CanonicalLength := 5 CanonicalLength := 5
db, err := ethdb.NewMemDatabase() db, err := ethdb.NewMemDatabase()