diff --git a/src/net_processing.cpp b/src/net_processing.cpp --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -2990,7 +2990,11 @@ LogPrint(BCLog::NET, "received block %s peer=%d\n", pblock->GetHash().ToString(), pfrom->GetId()); - bool forceProcessing = false; + // Process all blocks from whitelisted peers, even if not requested, + // unless we're still syncing with the network. Such an unrequested + // block may still be processed, subject to the conditions in + // AcceptBlock(). + bool forceProcessing = pfrom->fWhitelisted && !IsInitialBlockDownload(); const uint256 hash(pblock->GetHash()); { LOCK(cs_main);