MCPcopy Create free account
hub / github.com/LUX-Core/lux / GetPoSKernelPS

Function GetPoSKernelPS

src/rpcserver.cpp:688–710  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

686}
687
688double GetPoSKernelPS() {
689 int nStakingInterval = Params().StakingInterval();
690 double dStakeKernelsTriedAvg = 120;
691 int nStakesHandled = 0, nStakesTime = 0;
692 CBlockIndex* pindex = pindexBestHeader;
693 CBlockIndex* pindexPrevStake = nullptr;
694 while (pindex && nStakesHandled < nStakingInterval) {
695 if (pindex->IsProofOfStake()) {
696 if (pindexPrevStake) {
697 dStakeKernelsTriedAvg += GetDifficulty(pindexPrevStake) * 4294967296.0;
698 nStakesTime += pindexPrevStake->nTime - pindex->nTime;
699 nStakesHandled++;
700 }
701 pindexPrevStake = pindex;
702 }
703 pindex = pindex->pprev;
704 }
705 double result = 0;
706 if (nStakesTime)
707 result = dStakeKernelsTriedAvg / nStakesTime;
708 result *= STAKE_TIMESTAMP_MASK + 1;
709 return result;
710}

Callers 1

getstakingstatusFunction · 0.85

Calls 4

GetDifficultyFunction · 0.85
StakingIntervalMethod · 0.80
ParamsClass · 0.70
IsProofOfStakeMethod · 0.45

Tested by

no test coverage detected