diff options
| author | Max K. <[email protected]> | 2015-07-30 20:33:39 +0200 |
|---|---|---|
| committer | Max K. <[email protected]> | 2015-07-30 20:33:39 +0200 |
| commit | 11b10408d05e765dbb998addfeab89b0992d94b3 (patch) | |
| tree | 6e655e5a57deb4a0bbbf74ec57fba8c13feb55c6 /src/txdb.cpp | |
| parent | Merge pull request #1208 from rnicoll/1.10-simplified-rewards (diff) | |
| parent | Add Scrypt hash and AuxPoW header to index database (diff) | |
| download | discoin-11b10408d05e765dbb998addfeab89b0992d94b3.tar.xz discoin-11b10408d05e765dbb998addfeab89b0992d94b3.zip | |
Merge pull request #1206 from rnicoll/1.10-txdb
Add Scrypt hash and AuxPoW header to index database
Diffstat (limited to 'src/txdb.cpp')
| -rw-r--r-- | src/txdb.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/txdb.cpp b/src/txdb.cpp index bdc67a049..7eb857ed5 100644 --- a/src/txdb.cpp +++ b/src/txdb.cpp @@ -213,6 +213,7 @@ bool CBlockTreeDB::LoadBlockIndexGuts() // Construct block index object CBlockIndex* pindexNew = InsertBlockIndex(diskindex.GetBlockHash()); pindexNew->pprev = InsertBlockIndex(diskindex.hashPrev); + pindexNew->pauxpow = diskindex.pauxpow; pindexNew->nHeight = diskindex.nHeight; pindexNew->nFile = diskindex.nFile; pindexNew->nDataPos = diskindex.nDataPos; @@ -224,11 +225,16 @@ bool CBlockTreeDB::LoadBlockIndexGuts() pindexNew->nNonce = diskindex.nNonce; pindexNew->nStatus = diskindex.nStatus; pindexNew->nTx = diskindex.nTx; + pindexNew->hashBlockPoW = diskindex.hashBlockPoW; - /* Bitcoin checks the PoW here. We don't do this because - the CDiskBlockIndex does not contain the auxpow. - This check isn't important, since the data on disk should - already be valid and can be trusted. */ + if (pindexNew->nVersion.IsAuxpow()) { + if (!diskindex.pauxpow->check(diskindex.GetBlockHash(), pindexNew->nVersion.GetChainId(), Params().GetConsensus(pindexNew->nHeight))) { + return error("LoadBlockIndex(): CheckProofOfWork failed: %s", pindexNew->ToString()); + } + } else { + if (!CheckProofOfWork(pindexNew->hashBlockPoW, pindexNew->nBits, Params().GetConsensus(pindexNew->nHeight))) + return error("LoadBlockIndex(): CheckProofOfWork failed: %s", pindexNew->ToString()); + } pcursor->Next(); } else { |