X-Git-Url: https://git.novaco.in/?p=novacoin.git;a=blobdiff_plain;f=src%2Fdb.cpp;h=3af07f99dcb265696e95c35767c118c09d073026;hp=e8c066a7ec8c60ec6b9665ce94289ae99c7fcbdc;hb=3176e0f244d929669aa3e1d81e0787d82d9150d3;hpb=4c67b566465449fea8ff964ee2179dca51c2e2d4 diff --git a/src/db.cpp b/src/db.cpp index e8c066a..3af07f9 100644 --- a/src/db.cpp +++ b/src/db.cpp @@ -1,6 +1,6 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2012 The Bitcoin developers -// Copyright (c) 2011-2012 The PPCoin developers +// Copyright (c) 2011-2013 The PPCoin developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -9,6 +9,7 @@ #include "checkpoints.h" #include "util.h" #include "main.h" +#include "kernel.h" #include #include #include @@ -580,8 +581,11 @@ bool CTxDB::LoadBlockIndex() pindexNew->nHeight = diskindex.nHeight; pindexNew->nMint = diskindex.nMint; pindexNew->nMoneySupply = diskindex.nMoneySupply; - pindexNew->fProofOfStake = diskindex.fProofOfStake; + pindexNew->nFlags = diskindex.nFlags; + pindexNew->nStakeModifier = diskindex.nStakeModifier; pindexNew->prevoutStake = diskindex.prevoutStake; + pindexNew->nStakeTime = diskindex.nStakeTime; + pindexNew->hashProofOfStake = diskindex.hashProofOfStake; pindexNew->nVersion = diskindex.nVersion; pindexNew->hashMerkleRoot = diskindex.hashMerkleRoot; pindexNew->nTime = diskindex.nTime; @@ -596,7 +600,7 @@ bool CTxDB::LoadBlockIndex() return error("LoadBlockIndex() : CheckIndex failed at %d", pindexNew->nHeight); // ppcoin: build setStakeSeen - if (pindexNew->fProofOfStake) + if (pindexNew->IsProofOfStake()) setStakeSeen.insert(make_pair(pindexNew->prevoutStake, pindexNew->nStakeTime)); } else @@ -626,6 +630,10 @@ bool CTxDB::LoadBlockIndex() { CBlockIndex* pindex = item.second; pindex->bnChainTrust = (pindex->pprev ? pindex->pprev->bnChainTrust : 0) + pindex->GetBlockTrust(); + // ppcoin: calculate stake modifier checksum + pindex->nStakeModifierChecksum = GetStakeModifierChecksum(pindex); + if (!CheckStakeModifierCheckpoints(pindex->nHeight, pindex->nStakeModifierChecksum)) + return error("CTxDB::LoadBlockIndex() : Failed stake modifier checkpoint height=%d, modifier=0x%016"PRI64x, pindex->nHeight, pindex->nStakeModifier); } // Load hashBestChain pointer to end of best chain