mirror of
https://github.com/kvazar-network/kevacoin.git
synced 2025-02-03 02:34:14 +00:00
Merge pull request #6058
03c5687 appropriate response when trying to get a block in pruned mode (Jonas Schnelli) 1b2e555 add autoprune information to RPC "getblockchaininfo" (Jonas Schnelli)
This commit is contained in:
commit
7e0e7f823f
@ -197,6 +197,9 @@ static bool rest_block(AcceptedConnection* conn,
|
|||||||
throw RESTERR(HTTP_NOT_FOUND, hashStr + " not found");
|
throw RESTERR(HTTP_NOT_FOUND, hashStr + " not found");
|
||||||
|
|
||||||
pblockindex = mapBlockIndex[hash];
|
pblockindex = mapBlockIndex[hash];
|
||||||
|
if (fHavePruned && !(pblockindex->nStatus & BLOCK_HAVE_DATA) && pblockindex->nTx > 0)
|
||||||
|
throw RESTERR(HTTP_NOT_FOUND, hashStr + " not available (pruned data)");
|
||||||
|
|
||||||
if (!ReadBlockFromDisk(block, pblockindex))
|
if (!ReadBlockFromDisk(block, pblockindex))
|
||||||
throw RESTERR(HTTP_NOT_FOUND, hashStr + " not found");
|
throw RESTERR(HTTP_NOT_FOUND, hashStr + " not found");
|
||||||
}
|
}
|
||||||
|
@ -299,6 +299,9 @@ Value getblock(const Array& params, bool fHelp)
|
|||||||
CBlock block;
|
CBlock block;
|
||||||
CBlockIndex* pblockindex = mapBlockIndex[hash];
|
CBlockIndex* pblockindex = mapBlockIndex[hash];
|
||||||
|
|
||||||
|
if (fHavePruned && !(pblockindex->nStatus & BLOCK_HAVE_DATA) && pblockindex->nTx > 0)
|
||||||
|
throw JSONRPCError(RPC_INTERNAL_ERROR, "Block not available (pruned data)");
|
||||||
|
|
||||||
if(!ReadBlockFromDisk(block, pblockindex))
|
if(!ReadBlockFromDisk(block, pblockindex))
|
||||||
throw JSONRPCError(RPC_INTERNAL_ERROR, "Can't read block from disk");
|
throw JSONRPCError(RPC_INTERNAL_ERROR, "Can't read block from disk");
|
||||||
|
|
||||||
@ -492,6 +495,15 @@ Value getblockchaininfo(const Array& params, bool fHelp)
|
|||||||
obj.push_back(Pair("difficulty", (double)GetDifficulty()));
|
obj.push_back(Pair("difficulty", (double)GetDifficulty()));
|
||||||
obj.push_back(Pair("verificationprogress", Checkpoints::GuessVerificationProgress(Params().Checkpoints(), chainActive.Tip())));
|
obj.push_back(Pair("verificationprogress", Checkpoints::GuessVerificationProgress(Params().Checkpoints(), chainActive.Tip())));
|
||||||
obj.push_back(Pair("chainwork", chainActive.Tip()->nChainWork.GetHex()));
|
obj.push_back(Pair("chainwork", chainActive.Tip()->nChainWork.GetHex()));
|
||||||
|
obj.push_back(Pair("pruned", fPruneMode));
|
||||||
|
if (fPruneMode)
|
||||||
|
{
|
||||||
|
CBlockIndex *block = chainActive.Tip();
|
||||||
|
while (block && block->pprev && (block->pprev->nStatus & BLOCK_HAVE_DATA))
|
||||||
|
block = block->pprev;
|
||||||
|
|
||||||
|
obj.push_back(Pair("pruneheight", block->nHeight));
|
||||||
|
}
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user