diff options
Diffstat (limited to 'src/db.cpp')
-rw-r--r-- | src/db.cpp | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/src/db.cpp b/src/db.cpp index 9ad67892f1..cef395c444 100644 --- a/src/db.cpp +++ b/src/db.cpp @@ -637,12 +637,12 @@ bool CTxDB::LoadBlockIndex() nCheckDepth = nBestHeight; printf("Verifying last %i blocks at level %i\n", nCheckDepth, nCheckLevel); CBlockIndex* pindexFork = NULL; - map<pair<unsigned int, unsigned int>, CBlockIndex*> mapBlockPos; for (CBlockIndex* pindex = pindexBest; pindex && pindex->pprev; pindex = pindex->pprev) { if (fRequestShutdown || pindex->nHeight < nBestHeight-nCheckDepth) break; CBlock block; + CDiskBlockPos blockPos = pindex->GetBlockPos(); if (!block.ReadFromDisk(pindex)) return error("LoadBlockIndex() : block.ReadFromDisk failed"); // check level 1: verify block validity @@ -654,8 +654,6 @@ bool CTxDB::LoadBlockIndex() // check level 2: verify transaction index validity if (nCheckLevel>1) { - pair<unsigned int, unsigned int> pos = make_pair(pindex->nFile, pindex->nBlockPos); - mapBlockPos[pos] = pindex; BOOST_FOREACH(const CTransaction &tx, block.vtx) { uint256 hashTx = tx.GetHash(); @@ -663,7 +661,7 @@ bool CTxDB::LoadBlockIndex() if (ReadTxIndex(hashTx, txindex)) { // check level 3: checker transaction hashes - if (nCheckLevel>2 || pindex->nFile != txindex.pos.nFile || pindex->nBlockPos != txindex.pos.nBlockPos) + if (nCheckLevel>2 || blockPos != txindex.pos.blockPos) { // either an error or a duplicate transaction CTransaction txFound; @@ -687,12 +685,6 @@ bool CTxDB::LoadBlockIndex() { if (!txpos.IsNull()) { - pair<unsigned int, unsigned int> posFind = make_pair(txpos.nFile, txpos.nBlockPos); - if (!mapBlockPos.count(posFind)) - { - printf("LoadBlockIndex(): *** found bad spend at %d, hashBlock=%s, hashTx=%s\n", pindex->nHeight, pindex->GetBlockHash().ToString().c_str(), hashTx.ToString().c_str()); - pindexFork = pindex->pprev; - } // check level 6: check whether spent txouts were spent by a valid transaction that consume them if (nCheckLevel>5) { @@ -795,9 +787,8 @@ bool CTxDB::LoadBlockIndexGuts() CBlockIndex* pindexNew = InsertBlockIndex(diskindex.GetBlockHash()); pindexNew->pprev = InsertBlockIndex(diskindex.hashPrev); pindexNew->pnext = InsertBlockIndex(diskindex.hashNext); - pindexNew->nFile = diskindex.nFile; - pindexNew->nBlockPos = diskindex.nBlockPos; pindexNew->nHeight = diskindex.nHeight; + pindexNew->nAlternative = diskindex.nAlternative; pindexNew->nVersion = diskindex.nVersion; pindexNew->hashMerkleRoot = diskindex.hashMerkleRoot; pindexNew->nTime = diskindex.nTime; |