undo attempt at hs/s for staking chains
This commit is contained in:
@@ -59,22 +59,9 @@ arith_uint256 komodo_PoWtarget(int32_t *percPoSp,arith_uint256 target,int32_t he
|
|||||||
* Return average network hashes per second based on the last 'lookup' blocks,
|
* Return average network hashes per second based on the last 'lookup' blocks,
|
||||||
* or over the difficulty averaging window if 'lookup' is nonpositive.
|
* or over the difficulty averaging window if 'lookup' is nonpositive.
|
||||||
* If 'height' is nonnegative, compute the estimate at the time when a given block was found.
|
* If 'height' is nonnegative, compute the estimate at the time when a given block was found.
|
||||||
time =0, lastBlockTime=time_of_last_block, PoWblocks=0
|
|
||||||
for x = 1 to 100
|
|
||||||
get block info
|
|
||||||
if PoS then
|
|
||||||
lastBlockTime = ThisBlockTime
|
|
||||||
next x
|
|
||||||
else
|
|
||||||
PoWblocks += 1
|
|
||||||
some var/array about diff
|
|
||||||
newTime = timeNow - lastBlockTime
|
|
||||||
totalTime = totalTime + newTime
|
|
||||||
lastBlockTime = newTime
|
|
||||||
next x
|
|
||||||
do math of num PoW blocks over PoW active Time with stored diff info
|
|
||||||
*/
|
*/
|
||||||
int64_t GetNetworkHashPS(int lookup, int height) {
|
int64_t GetNetworkHashPS(int lookup, int height)
|
||||||
|
{
|
||||||
CBlockIndex *pb = chainActive.LastTip();
|
CBlockIndex *pb = chainActive.LastTip();
|
||||||
|
|
||||||
if (height >= 0 && height < chainActive.Height())
|
if (height >= 0 && height < chainActive.Height())
|
||||||
@@ -93,36 +80,21 @@ int64_t GetNetworkHashPS(int lookup, int height) {
|
|||||||
|
|
||||||
CBlockIndex *pb0 = pb;
|
CBlockIndex *pb0 = pb;
|
||||||
int64_t minTime = pb0->GetBlockTime();
|
int64_t minTime = pb0->GetBlockTime();
|
||||||
int64_t timeoffset = 0, n=0,i=0;
|
|
||||||
int64_t maxTime = minTime;
|
int64_t maxTime = minTime;
|
||||||
for (i = 0; i < lookup; i++) {
|
for (int i = 0; i < lookup; i++) {
|
||||||
pb0 = pb0->pprev;
|
pb0 = pb0->pprev;
|
||||||
// if PoW block save block time, and skip the hash.
|
|
||||||
if ( pb0->segid >= 0 && pb0->segid != -2 )
|
|
||||||
{
|
|
||||||
n++;
|
|
||||||
// only staking chains should ever set this.
|
|
||||||
|
|
||||||
timeoffset += pb0->GetBlockTime() - pb0->pprev->GetBlockTime();
|
|
||||||
//fprintf(stderr, "staking tx.%li segid.%i blocktime.%li\n", n, pb0->segid, (pb0->GetBlockTime() - pb0->pprev->GetBlockTime()));
|
|
||||||
if ( lookup > pb->GetHeight() )
|
|
||||||
break;
|
|
||||||
lookup++;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
int64_t time = pb0->GetBlockTime();
|
int64_t time = pb0->GetBlockTime();
|
||||||
minTime = std::min(time, minTime);
|
minTime = std::min(time, minTime);
|
||||||
maxTime = std::max(time, maxTime);
|
maxTime = std::max(time, maxTime);
|
||||||
}
|
}
|
||||||
//fprintf(stderr, "number blocks scanned.%li\n",i );
|
|
||||||
|
|
||||||
// In case there's a situation where minTime == maxTime, we don't want a divide by zero exception.
|
// In case there's a situation where minTime == maxTime, we don't want a divide by zero exception.
|
||||||
if (minTime == maxTime)
|
if (minTime == maxTime)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
arith_uint256 workDiff = pb->chainPower.chainWork - pb0->chainPower.chainWork;
|
arith_uint256 workDiff = pb->chainPower.chainWork - pb0->chainPower.chainWork;
|
||||||
int64_t timeDiff = maxTime - minTime;// - timeoffset;
|
int64_t timeDiff = maxTime - minTime;
|
||||||
fprintf(stderr, "timediff.%li timeoffset.%li mintime.%li maxtime.%li\n", timeDiff, timeoffset, minTime, maxTime);
|
|
||||||
return (int64_t)(workDiff.getdouble() / timeDiff);
|
return (int64_t)(workDiff.getdouble() / timeDiff);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user