Merge #13259: refactoring: add a method for determining if a block is pruned or not
e9a1881b90
refactor: add a function for determining if a block is pruned or not (Karl-Johan Alm)
Pull request description:
The check for whether a block is pruned or not is sufficiently obscure that it deserves a macro. It is also used in 2 places, ~~with more coming, e.g. #10757~~ (turns out it was a move, not an addition).
Tree-SHA512: b9aeb60663e1d1196df5371d5aa00b32ff5d4cdea6a77e4b566f28115cce09570c18e45e4b81a4033f67c4135c8e32c027f67bae3b75c2ea4564285578a3f4dd
This commit is contained in:
commit
121cbaacc2
3 changed files with 8 additions and 2 deletions
|
@ -217,7 +217,7 @@ static bool rest_block(HTTPRequest* req,
|
||||||
return RESTERR(req, HTTP_NOT_FOUND, hashStr + " not found");
|
return RESTERR(req, HTTP_NOT_FOUND, hashStr + " not found");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fHavePruned && !(pblockindex->nStatus & BLOCK_HAVE_DATA) && pblockindex->nTx > 0)
|
if (IsBlockPruned(pblockindex))
|
||||||
return RESTERR(req, HTTP_NOT_FOUND, hashStr + " not available (pruned data)");
|
return RESTERR(req, HTTP_NOT_FOUND, hashStr + " not available (pruned data)");
|
||||||
|
|
||||||
if (!ReadBlockFromDisk(block, pblockindex, Params().GetConsensus()))
|
if (!ReadBlockFromDisk(block, pblockindex, Params().GetConsensus()))
|
||||||
|
|
|
@ -732,7 +732,7 @@ static UniValue getblockheader(const JSONRPCRequest& request)
|
||||||
static CBlock GetBlockChecked(const CBlockIndex* pblockindex)
|
static CBlock GetBlockChecked(const CBlockIndex* pblockindex)
|
||||||
{
|
{
|
||||||
CBlock block;
|
CBlock block;
|
||||||
if (fHavePruned && !(pblockindex->nStatus & BLOCK_HAVE_DATA) && pblockindex->nTx > 0) {
|
if (IsBlockPruned(pblockindex)) {
|
||||||
throw JSONRPCError(RPC_MISC_ERROR, "Block not available (pruned data)");
|
throw JSONRPCError(RPC_MISC_ERROR, "Block not available (pruned data)");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -497,4 +497,10 @@ bool DumpMempool();
|
||||||
/** Load the mempool from disk. */
|
/** Load the mempool from disk. */
|
||||||
bool LoadMempool();
|
bool LoadMempool();
|
||||||
|
|
||||||
|
//! Check whether the block associated with this index entry is pruned or not.
|
||||||
|
inline bool IsBlockPruned(const CBlockIndex* pblockindex)
|
||||||
|
{
|
||||||
|
return (fHavePruned && !(pblockindex->nStatus & BLOCK_HAVE_DATA) && pblockindex->nTx > 0);
|
||||||
|
}
|
||||||
|
|
||||||
#endif // BITCOIN_VALIDATION_H
|
#endif // BITCOIN_VALIDATION_H
|
||||||
|
|
Loading…
Reference in a new issue