| 666 | const CRPCTable tableRPC; |
| 667 | |
| 668 | double GetPoWMHashPS() { |
| 669 | if (pindexBestHeader->nHeight >= Params().GetConsensus().nLastPOWBlock) |
| 670 | return 0; |
| 671 | int nPoWInterval = 72; |
| 672 | int64_t nTargetSpacingWorkMin = 30, nTargetSpacingWork = 30; |
| 673 | CBlockIndex* pindexGenesisBlock = chainActive.Genesis(); |
| 674 | CBlockIndex* pindex = pindexGenesisBlock; |
| 675 | CBlockIndex* pindexPrevWork = pindexGenesisBlock; |
| 676 | while (pindex) { |
| 677 | if (pindex->IsProofOfWork()) { |
| 678 | int64_t nActualSpacingWork = pindex->GetBlockTime() - pindexPrevWork->GetBlockTime(); |
| 679 | nTargetSpacingWork = ((nPoWInterval - 1) * nTargetSpacingWork + nActualSpacingWork + nActualSpacingWork) / (nPoWInterval + 1); |
| 680 | nTargetSpacingWork = std::max(nTargetSpacingWork, nTargetSpacingWorkMin); |
| 681 | pindexPrevWork = pindex; |
| 682 | } |
| 683 | pindex = pindex->pnext; |
| 684 | } |
| 685 | return GetDifficulty() * 4294.967296 / nTargetSpacingWork; |
| 686 | } |
| 687 | |
| 688 | double GetPoSKernelPS() { |
| 689 | int nStakingInterval = Params().StakingInterval(); |
nothing calls this directly
no test coverage detected