Optimization: disable block signature varification during initial block index checking,
authoralex <alex@alex-VirtualBox.(none)>
Sun, 18 Aug 2013 00:13:48 +0000 (04:13 +0400)
committeralex <alex@alex-VirtualBox.(none)>
Sun, 18 Aug 2013 00:13:48 +0000 (04:13 +0400)
by default. It's still could be enabled using -checklevel=7 option. It's safe because signature checked it ProcessBlock() already.

src/db.cpp

index 13a59fd..89c162b 100644 (file)
@@ -712,7 +712,8 @@ bool CTxDB::LoadBlockIndex()
         if (!block.ReadFromDisk(pindex))
             return error("LoadBlockIndex() : block.ReadFromDisk failed");
         // check level 1: verify block validity
-        if (nCheckLevel>0 && !block.CheckBlock())
+        // check level 7: verify block signature too
+        if (nCheckLevel>0 && !block.CheckBlock(true, true, (nCheckLevel>6)))
         {
             printf("LoadBlockIndex() : *** found bad block at %d, hash=%s\n", pindex->nHeight, pindex->GetBlockHash().ToString().c_str());
             pindexFork = pindex->pprev;