From 44a0de1861a78a693ad3331f0f7b06003a78a9d7 Mon Sep 17 00:00:00 2001 From: s_nakamoto Date: Mon, 16 Aug 2010 18:46:02 +0000 Subject: do an extra CheckBlock in ConnectBlock git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@139 1a98c847-1fd6-4fd8-948a-caf3550aa51b --- db.cpp | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) (limited to 'db.cpp') diff --git a/db.cpp b/db.cpp index c6127a318d..8576e0d826 100644 --- a/db.cpp +++ b/db.cpp @@ -460,12 +460,9 @@ bool CTxDB::LoadBlockIndex() ReadBestInvalidWork(bnBestInvalidWork); // Verify blocks in the best chain - vector vChain; - vector vBad; CBlockIndex* pindexFork = NULL; for (CBlockIndex* pindex = pindexBest; pindex && pindex->pprev; pindex = pindex->pprev) { - vChain.push_back(pindex); CBlock block; if (!block.ReadFromDisk(pindex)) return error("LoadBlockIndex() : block.ReadFromDisk failed"); @@ -473,25 +470,17 @@ bool CTxDB::LoadBlockIndex() { printf("LoadBlockIndex() : *** found bad block at %d, hash=%s\n", pindex->nHeight, pindex->GetBlockHash().ToString().c_str()); pindexFork = pindex->pprev; - vBad = vChain; } } if (pindexFork) { + // Reorg back to the fork printf("LoadBlockIndex() : *** moving best chain pointer back to block %d\n", pindexFork->nHeight); CBlock block; if (!block.ReadFromDisk(pindexFork)) return error("LoadBlockIndex() : block.ReadFromDisk failed"); CTxDB txdb; block.SetBestChain(txdb, pindexFork); - - // Delete the bad chain - foreach(CBlockIndex* pindex, vBad) - { - txdb.EraseBlockIndex(pindex->GetBlockHash()); - mapBlockIndex.erase(pindex->GetBlockHash()); - delete pindex; - } } return true; -- cgit v1.2.3