diff --git a/src/pow.cpp b/src/pow.cpp index a0352c807..c9ab3e726 100644 --- a/src/pow.cpp +++ b/src/pow.cpp @@ -307,13 +307,20 @@ unsigned int GetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHead if ( bnTarget < origtarget ) bnTarget = bnTarget * arith_uint256(2); } - else + else if ( pindexLast->GetHeight()+1 < 310 ) { bnTarget *= arith_uint256(2); if ( bnTarget < origtarget ) bnTarget = (origtarget + bnTarget + bnPrev) / arith_uint256(3); else bnTarget = origtarget; } + else + { + bnTarget /= arith_uint256(2); + if ( bnTarget < origtarget ) + bnTarget = (bnTarget + bnPrev) / arith_uint256(2); + else bnTarget = origtarget; + } } } nbits = bnTarget.GetCompact();