Eliminate unnecessary call to CheckBlock
This commit is contained in:
17
src/main.cpp
17
src/main.cpp
@@ -4177,22 +4177,17 @@ bool static IsCanonicalBlockSignature(const CBlock* pblock)
|
||||
|
||||
bool ProcessNewBlock(CValidationState& state, const CChainParams& chainparams, const CNode* pfrom, const CBlock* pblock, bool fForceProcessing, CDiskBlockPos* dbp, const uint256& hash)
|
||||
{
|
||||
if (!IsCanonicalBlockSignature(pblock)) {
|
||||
if (pfrom && pfrom->nVersion >= CANONICAL_BLOCK_SIG_VERSION)
|
||||
return state.DoS(100, error("ProcessNewBlock(): bad block signature encoding"),
|
||||
REJECT_INVALID, "bad-block-signature-encoding");
|
||||
return false;
|
||||
}
|
||||
// Preliminary checks
|
||||
bool checked = CheckBlock(*pblock, state, hash);
|
||||
if (!IsCanonicalBlockSignature(pblock)) {
|
||||
if (pfrom && pfrom->nVersion >= CANONICAL_BLOCK_SIG_VERSION)
|
||||
return state.DoS(100, error("ProcessNewBlock(): bad block signature encoding"),
|
||||
REJECT_INVALID, "bad-block-signature-encoding");
|
||||
return false;
|
||||
}
|
||||
|
||||
{
|
||||
LOCK(cs_main);
|
||||
bool fRequested = MarkBlockAsReceived(hash);
|
||||
fRequested |= fForceProcessing;
|
||||
if (!checked) {
|
||||
return error("%s: CheckBlock FAILED", __func__);
|
||||
}
|
||||
|
||||
// Store to disk
|
||||
CBlockIndex *pindex = NULL;
|
||||
|
||||
Reference in New Issue
Block a user