Changeset View
Changeset View
Standalone View
Standalone View
src/rpc/blockchain.cpp
Show First 20 Lines • Show All 1,528 Lines • ▼ Show 20 Lines | UniValue getblockchaininfo(const Config &config, | ||||
obj.pushKV("chain", chainparams.NetworkIDString()); | obj.pushKV("chain", chainparams.NetworkIDString()); | ||||
obj.pushKV("blocks", int(::ChainActive().Height())); | obj.pushKV("blocks", int(::ChainActive().Height())); | ||||
obj.pushKV("headers", pindexBestHeader ? pindexBestHeader->nHeight : -1); | obj.pushKV("headers", pindexBestHeader ? pindexBestHeader->nHeight : -1); | ||||
obj.pushKV("bestblockhash", tip->GetBlockHash().GetHex()); | obj.pushKV("bestblockhash", tip->GetBlockHash().GetHex()); | ||||
obj.pushKV("difficulty", double(GetDifficulty(tip))); | obj.pushKV("difficulty", double(GetDifficulty(tip))); | ||||
obj.pushKV("mediantime", int64_t(tip->GetMedianTimePast())); | obj.pushKV("mediantime", int64_t(tip->GetMedianTimePast())); | ||||
obj.pushKV("verificationprogress", | obj.pushKV("verificationprogress", | ||||
GuessVerificationProgress(Params().TxData(), tip)); | GuessVerificationProgress(Params().TxData(), tip)); | ||||
obj.pushKV("initialblockdownload", IsInitialBlockDownload()); | obj.pushKV("initialblockdownload", | ||||
::ChainstateActive().IsInitialBlockDownload()); | |||||
obj.pushKV("chainwork", tip->nChainWork.GetHex()); | obj.pushKV("chainwork", tip->nChainWork.GetHex()); | ||||
obj.pushKV("size_on_disk", CalculateCurrentUsage()); | obj.pushKV("size_on_disk", CalculateCurrentUsage()); | ||||
obj.pushKV("pruned", fPruneMode); | obj.pushKV("pruned", fPruneMode); | ||||
if (fPruneMode) { | if (fPruneMode) { | ||||
const CBlockIndex *block = tip; | const CBlockIndex *block = tip; | ||||
assert(block); | assert(block); | ||||
while (block->pprev && (block->pprev->nStatus.hasData())) { | while (block->pprev && (block->pprev->nStatus.hasData())) { | ||||
▲ Show 20 Lines • Show All 1,275 Lines • Show Last 20 Lines |