mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-01-18 22:35:39 +01:00
testnet: Add Testnet4 difficulty adjustment rules fix
This commit is contained in:
14
src/pow.cpp
14
src/pow.cpp
@@ -61,7 +61,19 @@ unsigned int CalculateNextWorkRequired(const CBlockIndex* pindexLast, int64_t nF
|
||||
// Retarget
|
||||
const arith_uint256 bnPowLimit = UintToArith256(params.powLimit);
|
||||
arith_uint256 bnNew;
|
||||
bnNew.SetCompact(pindexLast->nBits);
|
||||
|
||||
// Special difficulty rule for Testnet4
|
||||
if (params.enforce_BIP94) {
|
||||
// Here we use the first block of the difficulty period. This way
|
||||
// the real difficulty is always preserved in the first block as
|
||||
// it is not allowed to use the min-difficulty exception.
|
||||
int nHeightFirst = pindexLast->nHeight - (params.DifficultyAdjustmentInterval()-1);
|
||||
const CBlockIndex* pindexFirst = pindexLast->GetAncestor(nHeightFirst);
|
||||
bnNew.SetCompact(pindexFirst->nBits);
|
||||
} else {
|
||||
bnNew.SetCompact(pindexLast->nBits);
|
||||
}
|
||||
|
||||
bnNew *= nActualTimespan;
|
||||
bnNew /= params.nPowTargetTimespan;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user