aboutsummaryrefslogtreecommitdiff
path: root/src/txdb.cpp
diff options
context:
space:
mode:
authorMax K. <[email protected]>2015-07-30 20:33:39 +0200
committerMax K. <[email protected]>2015-07-30 20:33:39 +0200
commit11b10408d05e765dbb998addfeab89b0992d94b3 (patch)
tree6e655e5a57deb4a0bbbf74ec57fba8c13feb55c6 /src/txdb.cpp
parentMerge pull request #1208 from rnicoll/1.10-simplified-rewards (diff)
parentAdd Scrypt hash and AuxPoW header to index database (diff)
downloaddiscoin-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.cpp14
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 {