"getmininginfo\n"
"Returns an object containing mining-related information.");
- double dStakeKernelsTriedAvg = 0;
- int nPoWInterval = 72, nPoSInterval = 72, nStakesHandled = 0, nStakesTime = 0;
- int64 nTargetSpacingWorkMin = 30, nTargetSpacingWork = 30;
-
- CBlockIndex* pindex = pindexGenesisBlock;
- CBlockIndex* pindexPrevWork = pindexGenesisBlock;
- CBlockIndex* pindexPrevStake = NULL;
-
- while (pindex)
- {
- if (pindex->IsProofOfWork())
- {
- int64 nActualSpacingWork = pindex->GetBlockTime() - pindexPrevWork->GetBlockTime();
- nTargetSpacingWork = ((nPoWInterval - 1) * nTargetSpacingWork + nActualSpacingWork + nActualSpacingWork) / (nPoWInterval + 1);
- nTargetSpacingWork = max(nTargetSpacingWork, nTargetSpacingWorkMin);
- pindexPrevWork = pindex;
- }
-
- pindex = pindex->pnext;
- }
-
-
- pindex = pindexBest;
-
- while (pindex && nStakesHandled < nPoSInterval)
- {
- if (pindex->IsProofOfStake())
- {
- dStakeKernelsTriedAvg += GetDifficulty(pindex) * 4294967296.0;
- nStakesTime += pindexPrevStake ? (pindexPrevStake->nTime - pindex->nTime) : 0;
- pindexPrevStake = pindex;
- nStakesHandled++;
- }
-
- pindex = pindex->pprev;
- }
-
- double dNetworkMhps = GetDifficulty() * 4294.967296 / nTargetSpacingWork;
- double dNetworkWeight = dStakeKernelsTriedAvg / nStakesTime;
-
Object obj;
obj.push_back(Pair("blocks", (int)nBestHeight));
obj.push_back(Pair("currentblocksize",(uint64_t)nLastBlockSize));
obj.push_back(Pair("currentblocktx",(uint64_t)nLastBlockTx));
obj.push_back(Pair("difficulty", (double)GetDifficulty()));
obj.push_back(Pair("blockvalue", (uint64_t)GetProofOfWorkReward(GetLastBlockIndex(pindexBest, false)->nBits)));
- obj.push_back(Pair("netmhashps", dNetworkMhps));
- obj.push_back(Pair("netstakeweight", dNetworkWeight));
+ obj.push_back(Pair("netmhashps", GetPoWMHashPS()));
+ obj.push_back(Pair("netstakeweight", GetPoSKernelPS()));
obj.push_back(Pair("errors", GetWarnings("statusbar")));
obj.push_back(Pair("pooledtx", (uint64_t)mempool.size()));
obj.push_back(Pair("stakeweight", (uint64_t)pwalletMain->GetStakeWeight(*pwalletMain, STAKE_NORMAL)));