#include <boost/assign/list_of.hpp>
#include "kernel.h"
-#include "db.h"
+#include "txdb.h"
using namespace std;
( 9690, 0x97dcdafau )
( 12661, 0x5d84115du )
( 37092, 0xd230afccu )
+ ( 44200, 0x05370164u )
;
// Hard checkpoints of stake modifiers to ensure they are deterministic (testNet)
int64 nValueIn = txPrev.vout[prevout.n].nValue;
int64 nTimeWeight;
+ uint256 hashBlockFrom = blockFrom.GetHash();
// Kernel hash weight starts from 0 at the 30-day min age
// this change increases active coins participating the hash and helps
int nStakeModifierHeight = 0;
int64 nStakeModifierTime = 0;
- if (!GetKernelStakeModifier(blockFrom.GetHash(), nStakeModifier, nStakeModifierHeight, nStakeModifierTime, fPrintProofOfStake))
+ if (!GetKernelStakeModifier(hashBlockFrom, nStakeModifier, nStakeModifierHeight, nStakeModifierTime, fPrintProofOfStake))
return false;
ss << nStakeModifier;
printf("CheckStakeKernelHash() : using modifier 0x%016"PRI64x" at height=%d timestamp=%s for block from height=%d timestamp=%s\n",
nStakeModifier, nStakeModifierHeight,
DateTimeStrFormat(nStakeModifierTime).c_str(),
- mapBlockIndex[blockFrom.GetHash()]->nHeight,
+ mapBlockIndex[hashBlockFrom]->nHeight,
DateTimeStrFormat(blockFrom.GetBlockTime()).c_str());
printf("CheckStakeKernelHash() : check protocol=%s modifier=0x%016"PRI64x" nTimeBlockFrom=%u nTxPrevOffset=%u nTimeTxPrev=%u nPrevout=%u nTimeTx=%u hashProof=%s\n",
"0.3",
printf("CheckStakeKernelHash() : using modifier 0x%016"PRI64x" at height=%d timestamp=%s for block from height=%d timestamp=%s\n",
nStakeModifier, nStakeModifierHeight,
DateTimeStrFormat(nStakeModifierTime).c_str(),
- mapBlockIndex[blockFrom.GetHash()]->nHeight,
+ mapBlockIndex[hashBlockFrom]->nHeight,
DateTimeStrFormat(blockFrom.GetBlockTime()).c_str());
printf("CheckStakeKernelHash() : pass protocol=%s modifier=0x%016"PRI64x" nTimeBlockFrom=%u nTxPrevOffset=%u nTimeTxPrev=%u nPrevout=%u nTimeTx=%u hashProof=%s\n",
"0.3",
CTxIndex txindex;
if (!txPrev.ReadFromDisk(txdb, txin.prevout, txindex))
return tx.DoS(1, error("CheckProofOfStake() : INFO: read txPrev failed")); // previous transaction not in main chain, may occur during initial download
+
+#ifndef USE_LEVELDB
txdb.Close();
+#endif
// Verify signature
if (!VerifySignature(txPrev, tx, 0, true, 0))