RST outer and inner
This commit is contained in:
31
src/pow.cpp
31
src/pow.cpp
@@ -95,9 +95,36 @@ bnTarget = RT_CST_RST (bnTarget, ts, cw, numerator, denominator, W, T, past);
|
|||||||
#define T ASSETCHAINS_BLOCKTIME
|
#define T ASSETCHAINS_BLOCKTIME
|
||||||
#define K ((int64_t)1000000)
|
#define K ((int64_t)1000000)
|
||||||
|
|
||||||
arith_uint256 oldRT_CST_RST(int32_t height,uint32_t nTime,arith_uint256 bnTarget,uint32_t *ts,arith_uint256 *ct,int32_t numerator,int32_t denominator,int32_t W,int32_t past)
|
arith_uint256 RT_CST_RST_outer(int32_t height,uint32_t nTime,arith_uint256 bnTarget,uint32_t *ts,arith_uint256 *ct,int32_t numerator,int32_t denominator,int32_t W,int32_t past)
|
||||||
{
|
{
|
||||||
|
int64_t outerK;
|
||||||
|
if ( (ts[0] - ts[W]) < (T * numerator)/denominator )
|
||||||
|
{
|
||||||
|
outerK = (K * (nTime-ts[0]) * (ts[0]-ts[W]) * denominator) / (numerator * (T * T));
|
||||||
|
fprintf(stderr,"ht.%d initial outerK.%lld %d * %d * %d / %d\n",height,(long long)outerK,(nTime-ts[0]),(ts[0]-ts[W]),denominator,numerator);
|
||||||
|
if ( outerK < K )
|
||||||
|
{
|
||||||
|
bnTarget = ct[0] / arith_uint256(K);
|
||||||
|
bnTarget *= arith_uint256(outerK);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return(bnTarget);
|
||||||
|
}
|
||||||
|
|
||||||
|
arith_uint256 RT_CST_RST_inner(int32_t height,uint32_t nTime,arith_uint256 bnTarget,uint32_t *ts,arith_uint256 *ct,int32_t numerator,int32_t denominator,int32_t W,int32_t past,int32_t outeri)
|
||||||
|
{
|
||||||
|
int64_t innerK; int32_t i;
|
||||||
|
if ( (ts[0] - ts[outeri+W]) < (outeri+W)*T )
|
||||||
|
{
|
||||||
|
bnTarget = ct[0];
|
||||||
|
for (i=1; i<W; i++)
|
||||||
|
bnTarget += ct[i];
|
||||||
|
bnTarget /= arith_uint256(W * K);
|
||||||
|
innerK = (K * (nTime-ts[0]) * (ts[0]-ts[W])) / (W * T * T);
|
||||||
|
fprintf(stderr,"ht.%d made it to i == 0, innerK %lld (%d * %d) %u - %u W.%d\n",height,(long long)innerK,(nTime-ts[0]),(ts[0]-ts[W]),ts[0],ts[W],W);
|
||||||
|
bnTarget *= arith_uint256(innerK);
|
||||||
|
}
|
||||||
|
return(bnTarget);
|
||||||
}
|
}
|
||||||
|
|
||||||
arith_uint256 oldRT_CST_RST(int32_t height,uint32_t nTime,arith_uint256 bnTarget,uint32_t *ts,arith_uint256 *ct,int32_t numerator,int32_t denominator,int32_t W,int32_t past)
|
arith_uint256 oldRT_CST_RST(int32_t height,uint32_t nTime,arith_uint256 bnTarget,uint32_t *ts,arith_uint256 *ct,int32_t numerator,int32_t denominator,int32_t W,int32_t past)
|
||||||
|
|||||||
Reference in New Issue
Block a user