Tweak
This commit is contained in:
20
src/pow.cpp
20
src/pow.cpp
@@ -101,7 +101,7 @@ unsigned int GetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHead
|
||||
// Find the first block in the averaging interval
|
||||
const CBlockIndex* pindexFirst = pindexLast;
|
||||
arith_uint256 bnTmp,bnTarget,bnPrev {0},bnSum4 {0},bnSum7 {0},bnSum12 {0},bnTot {0};
|
||||
uint32_t nbits,blocktime; int32_t diff,mult = 0,block3sum=0,block6sum=0,tipdiff = 0,block4diff=0,block7diff=0,block12diff=0;
|
||||
uint32_t nbits,blocktime; int32_t diff,mult = 0,block3sum=0,block6sum=0,block11sum=0,tipdiff = 0,block4diff=0,block7diff=0,block12diff=0;
|
||||
if ( ASSETCHAINS_ADAPTIVEPOW > 0 && pindexFirst != 0 && pblock != 0 )
|
||||
{
|
||||
tipdiff = (pblock->nTime - pindexFirst->nTime);
|
||||
@@ -166,23 +166,27 @@ unsigned int GetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHead
|
||||
bnTmp = bnSum12;
|
||||
if ( 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 += 5;
|
||||
if ( block6sum > 0 && block6sum < ASSETCHAINS_BLOCKTIME*2 )
|
||||
divisor += 2;
|
||||
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 )
|
||||
{
|
||||
bnTmp /= arith_uint256(divisor);
|
||||
if ( 1000*tipdiff/60 < 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);
|
||||
bnTmp = bnTmp * arith_uint256(1000*tipdiff/60) / arith_uint256(1000);
|
||||
bnTarget = bnTarget * arith_uint256(1000*tipdiff/60) / arith_uint256(1000);
|
||||
}
|
||||
}
|
||||
bnTarget = (bnTmp + bnPrev) / arith_uint256(2);
|
||||
flag = 1;
|
||||
}
|
||||
else if ( flag == 0 && mult > 1 ) // e^mult case, jl777: test of mult > 1 failed when it was int64_t???
|
||||
|
||||
Reference in New Issue
Block a user