| 686 | } |
| 687 | |
| 688 | double 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 | } |
no test coverage detected