using namespace std;
-// Modifier interval: time to elapse before new modifier is computed
-// Set to 6-hour for production network and 20-minute for test network
-unsigned int nModifierInterval = MODIFIER_INTERVAL;
+extern int nStakeMaxAge;
+extern int nStakeTargetSpacing;
// Hard checkpoints of stake modifiers to ensure they are deterministic
static std::map<int, unsigned int> mapStakeModifierCheckpoints =
boost::assign::map_list_of
- ( 0, 0x0e00670bu )
- ( 6000, 0xb7cbc5d3u )
+ ( 0, 0x0e00670bu )
+ ( 6000, 0xb7cbc5d3u )
+ ( 9690, 0x97dcdafau )
+ ( 12661, 0x5d84115du )
+ ( 19600, 0xdded1b8du )
;
// Get the last stake modifier and its generation time from a given block
// Sort candidate blocks by timestamp
vector<pair<int64, uint256> > vSortedByTimestamp;
- vSortedByTimestamp.reserve(64 * nModifierInterval / STAKE_TARGET_SPACING);
+ vSortedByTimestamp.reserve(64 * nModifierInterval / nStakeTargetSpacing);
int64 nSelectionInterval = GetStakeModifierSelectionInterval();
int64 nSelectionIntervalStart = (pindexPrev->GetBlockTime() / nModifierInterval) * nModifierInterval - nSelectionInterval;
const CBlockIndex* pindex = pindexPrev;
// v0.3 protocol kernel hash weight starts from 0 at the 30-day min age
// this change increases active coins participating the hash and helps
// to secure the network when proof-of-stake difficulty is low
- int64 nTimeWeight = min((int64)nTimeTx - txPrev.nTime, (int64)STAKE_MAX_AGE) - nStakeMinAge;
+ int64 nTimeWeight = min((int64)nTimeTx - txPrev.nTime, (int64)nStakeMaxAge) - nStakeMinAge;
CBigNum bnCoinDayWeight = CBigNum(nValueIn) * nTimeWeight / COIN / (24 * 60 * 60);
// Calculate hash
// Get stake modifier checksum
unsigned int GetStakeModifierChecksum(const CBlockIndex* pindex)
{
- assert (pindex->pprev || pindex->GetBlockHash() == hashGenesisBlock);
+ assert (pindex->pprev || pindex->GetBlockHash() == (!fTestNet ? hashGenesisBlock : hashGenesisBlockTestNet));
// Hash previous checksum with flags, hashProofOfStake and nStakeModifier
CDataStream ss(SER_GETHASH, 0);
if (pindex->pprev)