Tweak -ac_adaptivepow

This commit is contained in:
jl777
2019-07-29 07:13:29 -11:00
parent 20f9a16c80
commit 35f7f057ca

View File

@@ -456,13 +456,16 @@ bool CheckProofOfWork(const CBlockHeader &blkHeader, uint8_t *pubkey33, int32_t
else if ( ASSETCHAINS_ADAPTIVEPOW != 0 && ASSETCHAINS_STAKED == 0 ) else if ( ASSETCHAINS_ADAPTIVEPOW != 0 && ASSETCHAINS_STAKED == 0 )
{ {
arith_uint256 origtarget; arith_uint256 origtarget;
uint32_t elapsed = (blkHeader.nTime - komodo_heightstamp(height)); uint32_t elapsed = (blkHeader.nTime - komodo_heightstamp(height-1));
if ( elapsed > 777 ) if ( elapsed > 777 )
{ {
elapsed -= 777; elapsed -= 777;
bnTarget = bnTarget / arith_uint256(elapsed * elapsed); bnTarget = bnTarget * arith_uint256(elapsed * elapsed);
if ( bnTarget > origtarget ) if ( bnTarget < origtarget ) // deal with underflow
{
bnTarget.SetCompact(KOMODO_MINDIFF_NBITS,&fNegative,&fOverflow); bnTarget.SetCompact(KOMODO_MINDIFF_NBITS,&fNegative,&fOverflow);
fprintf(stderr,"underflowed, set to mindiff\n");
} else fprintf(stderr,"elapsed %d, adjust by factor of %d\n",elapsed+777,elapsed*elapsed);
} }
} }
// Check proof of work matches claimed amount // Check proof of work matches claimed amount