Merge #16757: doc: CChainState return values
fa912a8ad5
doc: move-only ActivateBestChain doxygen comment to header (MarcoFalke)fa99efd054
doc: ActivateBestChainStep return value (MarcoFalke) Pull request description: It will always return true, unless a system error such as #15305 occurred ACKs for top commit: laanwj: ACKfa912a8ad5
Tree-SHA512: d439da844a467f9705014b946d7d987fb62cb63fe6a325b2fdbbb73a6578fc0ade3f60892044f02face43948204fc4e3c9fa70d108233d4ca8eef27984059689
This commit is contained in:
commit
871d3ae45b
2 changed files with 22 additions and 12 deletions
|
@ -2508,6 +2508,8 @@ void CChainState::PruneBlockIndexCandidates() {
|
||||||
/**
|
/**
|
||||||
* Try to make some progress towards making pindexMostWork the active block.
|
* Try to make some progress towards making pindexMostWork the active block.
|
||||||
* pblock is either nullptr or a pointer to a CBlock corresponding to pindexMostWork.
|
* pblock is either nullptr or a pointer to a CBlock corresponding to pindexMostWork.
|
||||||
|
*
|
||||||
|
* @returns true unless a system error occurred
|
||||||
*/
|
*/
|
||||||
bool CChainState::ActivateBestChainStep(CValidationState& state, const CChainParams& chainparams, CBlockIndex* pindexMostWork, const std::shared_ptr<const CBlock>& pblock, bool& fInvalidFound, ConnectTrace& connectTrace)
|
bool CChainState::ActivateBestChainStep(CValidationState& state, const CChainParams& chainparams, CBlockIndex* pindexMostWork, const std::shared_ptr<const CBlock>& pblock, bool& fInvalidFound, ConnectTrace& connectTrace)
|
||||||
{
|
{
|
||||||
|
@ -2627,15 +2629,6 @@ static void LimitValidationInterfaceQueue() LOCKS_EXCLUDED(cs_main) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Make the best chain active, in multiple steps. The result is either failure
|
|
||||||
* or an activated best chain. pblock is either nullptr or a pointer to a block
|
|
||||||
* that is already loaded (to avoid loading it again from disk).
|
|
||||||
*
|
|
||||||
* ActivateBestChain is split into steps (see ActivateBestChainStep) so that
|
|
||||||
* we avoid holding cs_main for an extended period of time; the length of this
|
|
||||||
* call may be quite long during reindexing or a substantial reorg.
|
|
||||||
*/
|
|
||||||
bool CChainState::ActivateBestChain(CValidationState &state, const CChainParams& chainparams, std::shared_ptr<const CBlock> pblock) {
|
bool CChainState::ActivateBestChain(CValidationState &state, const CChainParams& chainparams, std::shared_ptr<const CBlock> pblock) {
|
||||||
// Note that while we're often called here from ProcessNewBlock, this is
|
// Note that while we're often called here from ProcessNewBlock, this is
|
||||||
// far from a guarantee. Things in the P2P/RPC will often end up calling
|
// far from a guarantee. Things in the P2P/RPC will often end up calling
|
||||||
|
@ -2683,8 +2676,10 @@ bool CChainState::ActivateBestChain(CValidationState &state, const CChainParams&
|
||||||
|
|
||||||
bool fInvalidFound = false;
|
bool fInvalidFound = false;
|
||||||
std::shared_ptr<const CBlock> nullBlockPtr;
|
std::shared_ptr<const CBlock> nullBlockPtr;
|
||||||
if (!ActivateBestChainStep(state, chainparams, pindexMostWork, pblock && pblock->GetHash() == pindexMostWork->GetBlockHash() ? pblock : nullBlockPtr, fInvalidFound, connectTrace))
|
if (!ActivateBestChainStep(state, chainparams, pindexMostWork, pblock && pblock->GetHash() == pindexMostWork->GetBlockHash() ? pblock : nullBlockPtr, fInvalidFound, connectTrace)) {
|
||||||
|
// A system error occurred
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
blocks_connected = true;
|
blocks_connected = true;
|
||||||
|
|
||||||
if (fInvalidFound) {
|
if (fInvalidFound) {
|
||||||
|
|
|
@ -211,7 +211,7 @@ static const uint64_t MIN_DISK_SPACE_FOR_BLOCK_FILES = 550 * 1024 * 1024;
|
||||||
* @param[in] pblock The block we want to process.
|
* @param[in] pblock The block we want to process.
|
||||||
* @param[in] fForceProcessing Process this block even if unrequested; used for non-network block sources and whitelisted peers.
|
* @param[in] fForceProcessing Process this block even if unrequested; used for non-network block sources and whitelisted peers.
|
||||||
* @param[out] fNewBlock A boolean which is set to indicate if the block was first received via this call
|
* @param[out] fNewBlock A boolean which is set to indicate if the block was first received via this call
|
||||||
* @return True if state.IsValid()
|
* @returns If the block was processed, independently of block validity
|
||||||
*/
|
*/
|
||||||
bool ProcessNewBlock(const CChainParams& chainparams, const std::shared_ptr<const CBlock> pblock, bool fForceProcessing, bool* fNewBlock) LOCKS_EXCLUDED(cs_main);
|
bool ProcessNewBlock(const CChainParams& chainparams, const std::shared_ptr<const CBlock> pblock, bool fForceProcessing, bool* fNewBlock) LOCKS_EXCLUDED(cs_main);
|
||||||
|
|
||||||
|
@ -653,6 +653,8 @@ public:
|
||||||
*
|
*
|
||||||
* If FlushStateMode::NONE is used, then FlushStateToDisk(...) won't do anything
|
* If FlushStateMode::NONE is used, then FlushStateToDisk(...) won't do anything
|
||||||
* besides checking if we need to prune.
|
* besides checking if we need to prune.
|
||||||
|
*
|
||||||
|
* @returns true unless a system error occurred
|
||||||
*/
|
*/
|
||||||
bool FlushStateToDisk(
|
bool FlushStateToDisk(
|
||||||
const CChainParams& chainparams,
|
const CChainParams& chainparams,
|
||||||
|
@ -667,7 +669,20 @@ public:
|
||||||
//! if we pruned.
|
//! if we pruned.
|
||||||
void PruneAndFlush();
|
void PruneAndFlush();
|
||||||
|
|
||||||
bool ActivateBestChain(CValidationState &state, const CChainParams& chainparams, std::shared_ptr<const CBlock> pblock) LOCKS_EXCLUDED(cs_main);
|
/**
|
||||||
|
* Make the best chain active, in multiple steps. The result is either failure
|
||||||
|
* or an activated best chain. pblock is either nullptr or a pointer to a block
|
||||||
|
* that is already loaded (to avoid loading it again from disk).
|
||||||
|
*
|
||||||
|
* ActivateBestChain is split into steps (see ActivateBestChainStep) so that
|
||||||
|
* we avoid holding cs_main for an extended period of time; the length of this
|
||||||
|
* call may be quite long during reindexing or a substantial reorg.
|
||||||
|
*
|
||||||
|
* @returns true unless a system error occurred
|
||||||
|
*/
|
||||||
|
bool ActivateBestChain(CValidationState& state,
|
||||||
|
const CChainParams& chainparams,
|
||||||
|
std::shared_ptr<const CBlock> pblock) LOCKS_EXCLUDED(cs_main);
|
||||||
|
|
||||||
bool AcceptBlock(const std::shared_ptr<const CBlock>& pblock, CValidationState& state, const CChainParams& chainparams, CBlockIndex** ppindex, bool fRequested, const FlatFilePos* dbp, bool* fNewBlock) EXCLUSIVE_LOCKS_REQUIRED(cs_main);
|
bool AcceptBlock(const std::shared_ptr<const CBlock>& pblock, CValidationState& state, const CChainParams& chainparams, CBlockIndex** ppindex, bool fRequested, const FlatFilePos* dbp, bool* fNewBlock) EXCLUSIVE_LOCKS_REQUIRED(cs_main);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue