100x booster, let e^x find real hash rate
This commit is contained in:
43
src/pow.cpp
43
src/pow.cpp
@@ -154,8 +154,18 @@ unsigned int GetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHead
|
||||
nbits = CalculateNextWorkRequired(bnAvg, pindexLast->GetMedianTimePast(), pindexFirst->GetMedianTimePast(), params);
|
||||
if ( ASSETCHAINS_ADAPTIVEPOW > 0 && block12diff != 0 && block7diff != 0 && block4diff != 0 )
|
||||
{
|
||||
block3sum = (block4diff - tipdiff);
|
||||
block6sum = (block7diff - tipdiff);
|
||||
block11sum = (block12diff - tipdiff);
|
||||
origtarget = bnTarget = arith_uint256().SetCompact(nbits);
|
||||
easy.SetCompact(KOMODO_MINDIFF_NBITS,&fNegative,&fOverflow);
|
||||
if ( block3sum < ASSETCHAINS_BLOCKTIME/5 || block6sum < ASSETCHAINS_BLOCKTIME || block11sum < ASSETCHAINS_BLOCKTIME*5 )
|
||||
{
|
||||
bnTarget /= arith_uint256(100);
|
||||
fprintf(stderr,"booster triggered 100x\n");
|
||||
nbits = bnTarget.GetCompact();
|
||||
return(nbits);
|
||||
}
|
||||
bnSum4 = zawy_targetMA(easy,bnSum4,4,block4diff * 5,1);
|
||||
bnSum7 = zawy_targetMA(easy,bnSum7,7,block7diff * 3,1);
|
||||
bnSum12 = zawy_targetMA(easy,bnSum12,12,block12diff * 2,1);
|
||||
@@ -164,27 +174,28 @@ unsigned int GetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHead
|
||||
else bnTmp = bnSum7;
|
||||
if ( bnSum12 < bnTmp )
|
||||
bnTmp = bnSum12;
|
||||
if ( bnTmp < bnTarget )
|
||||
if ( flag == 0 && bnTmp < bnTarget )
|
||||
{
|
||||
bnTarget = (bnTmp + bnPrev) / arith_uint256(2);
|
||||
fprintf(stderr,"ht.%d block12diff %d vs %d, make harder\n",(int32_t)pindexLast->GetHeight()+1,block12diff,ASSETCHAINS_BLOCKTIME*11);
|
||||
block3sum = (block4diff - tipdiff);
|
||||
block6sum = (block7diff - tipdiff);
|
||||
block11sum = (block12diff - tipdiff);
|
||||
if ( block3sum > 0 && block3sum < ASSETCHAINS_BLOCKTIME/5 )
|
||||
divisor = 15;
|
||||
else if ( block6sum > 0 && block6sum < ASSETCHAINS_BLOCKTIME*2 )
|
||||
divisor = 3;
|
||||
else if ( block11sum > 0 && block11sum < ASSETCHAINS_BLOCKTIME*5 )
|
||||
divisor = 2;
|
||||
if ( divisor != 0 )
|
||||
if ( 0 )
|
||||
{
|
||||
bnTarget /= arith_uint256(divisor);
|
||||
fprintf(stderr,"special booster block3sum.%d block6sum.%d tipdiff.%d -> %d, divisor.%d\n",block3sum,block6sum,tipdiff,1000*tipdiff/60,divisor);
|
||||
if ( 0 && 1000*tipdiff/60 < 1000 )
|
||||
|
||||
if ( block3sum > 0 && block3sum < ASSETCHAINS_BLOCKTIME/5 )
|
||||
divisor = 15;
|
||||
else if ( block6sum > 0 && block6sum < ASSETCHAINS_BLOCKTIME*2 )
|
||||
divisor = 3;
|
||||
else if ( block11sum > 0 && block11sum < ASSETCHAINS_BLOCKTIME*5 )
|
||||
divisor = 2;
|
||||
if ( divisor != 0 )
|
||||
{
|
||||
fprintf(stderr,"special booster block3sum.%d block6sum.%d tipdiff.%d -> %d\n",block3sum,block6sum,tipdiff,1000*tipdiff/60);
|
||||
bnTarget = bnTarget * arith_uint256(1000*tipdiff/60) / arith_uint256(1000);
|
||||
bnTarget /= arith_uint256(divisor);
|
||||
fprintf(stderr,"special booster block3sum.%d block6sum.%d tipdiff.%d -> %d, divisor.%d\n",block3sum,block6sum,tipdiff,1000*tipdiff/60,divisor);
|
||||
if ( 0 && 1000*tipdiff/60 < 1000 )
|
||||
{
|
||||
fprintf(stderr,"special booster block3sum.%d block6sum.%d tipdiff.%d -> %d\n",block3sum,block6sum,tipdiff,1000*tipdiff/60);
|
||||
bnTarget = bnTarget * arith_uint256(1000*tipdiff/60) / arith_uint256(1000);
|
||||
}
|
||||
}
|
||||
}
|
||||
flag = 1;
|
||||
|
||||
Reference in New Issue
Block a user