Litecoin: Disable PoW Sanity check while loading block index from disk.

We use the sha256 hash for the block index for performance reasons, which is recorded for later use.
CheckProofOfWork() uses the scrypt hash which is discarded after a block is accepted.
While it is technically feasible to verify the PoW, doing so takes several minutes as it
requires recomputing every PoW hash during every Litecoin startup.
We opt instead to simply trust the data that is on your local disk.
This commit is contained in:
Warren Togami 2015-01-19 02:26:52 -10:00 committed by Adrian Gallagher
parent 1f553b07cf
commit e30d65c009
2 changed files with 13 additions and 2 deletions

View File

@ -276,6 +276,11 @@ public:
return *phashBlock;
}
uint256 GetBlockPoWHash() const
{
return GetBlockHeader().GetPoWHash();
}
int64_t GetBlockTime() const
{
return (int64_t)nTime;

View File

@ -199,8 +199,14 @@ bool CBlockTreeDB::LoadBlockIndexGuts(boost::function<CBlockIndex*(const uint256
pindexNew->nStatus = diskindex.nStatus;
pindexNew->nTx = diskindex.nTx;
if (!CheckProofOfWork(pindexNew->GetBlockHash(), pindexNew->nBits, Params().GetConsensus()))
return error("LoadBlockIndex(): CheckProofOfWork failed: %s", pindexNew->ToString());
// Litecoin: Disable PoW Sanity check while loading block index from disk.
// We use the sha256 hash for the block index for performance reasons, which is recorded for later use.
// CheckProofOfWork() uses the scrypt hash which is discarded after a block is accepted.
// While it is technically feasible to verify the PoW, doing so takes several minutes as it
// requires recomputing every PoW hash during every Litecoin startup.
// We opt instead to simply trust the data that is on your local disk.
//if (!CheckProofOfWork(pindexNew->GetBlockHash(), pindexNew->nBits, Params().GetConsensus()))
// return error("LoadBlockIndex(): CheckProofOfWork failed: %s", pindexNew->ToString());
pcursor->Next();
} else {