|
|
@ -3597,7 +3597,9 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, |
|
|
|
// doing this will result in the received block being rejected as an orphan in case it is
|
|
|
|
// doing this will result in the received block being rejected as an orphan in case it is
|
|
|
|
// not a direct successor.
|
|
|
|
// not a direct successor.
|
|
|
|
pfrom->PushMessage("getheaders", chainActive.GetLocator(pindexBestHeader), inv.hash); |
|
|
|
pfrom->PushMessage("getheaders", chainActive.GetLocator(pindexBestHeader), inv.hash); |
|
|
|
if (chainActive.Tip()->GetBlockTime() > GetAdjustedTime() - Params().TargetSpacing() * 20) { |
|
|
|
CNodeState *nodestate = State(pfrom->GetId()); |
|
|
|
|
|
|
|
if (chainActive.Tip()->GetBlockTime() > GetAdjustedTime() - Params().TargetSpacing() * 20 && |
|
|
|
|
|
|
|
nodestate->nBlocksInFlight < MAX_BLOCKS_IN_TRANSIT_PER_PEER) { |
|
|
|
vToFetch.push_back(inv); |
|
|
|
vToFetch.push_back(inv); |
|
|
|
// Mark block as in flight already, even though the actual "getdata" message only goes out
|
|
|
|
// Mark block as in flight already, even though the actual "getdata" message only goes out
|
|
|
|
// later (within the same cs_main lock, though).
|
|
|
|
// later (within the same cs_main lock, though).
|
|
|
|