|
|
|
@ -3791,15 +3791,16 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
|
|
|
|
|
|
|
|
|
|
bool fMissingInputs = false;
|
|
|
|
|
CValidationState state;
|
|
|
|
|
|
|
|
|
|
mapAlreadyAskedFor.erase(inv);
|
|
|
|
|
|
|
|
|
|
if (AcceptToMemoryPool(mempool, state, tx, true, &fMissingInputs))
|
|
|
|
|
{
|
|
|
|
|
mempool.check(pcoinsTip);
|
|
|
|
|
RelayTransaction(tx);
|
|
|
|
|
mapAlreadyAskedFor.erase(inv);
|
|
|
|
|
vWorkQueue.push_back(inv.hash);
|
|
|
|
|
vEraseQueue.push_back(inv.hash);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LogPrint("mempool", "AcceptToMemoryPool: peer=%d %s : accepted %s (poolsz %u)\n",
|
|
|
|
|
pfrom->id, pfrom->cleanSubVer,
|
|
|
|
|
tx.GetHash().ToString(),
|
|
|
|
@ -3833,7 +3834,6 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
|
|
|
|
|
{
|
|
|
|
|
LogPrint("mempool", " accepted orphan tx %s\n", orphanHash.ToString());
|
|
|
|
|
RelayTransaction(orphanTx);
|
|
|
|
|
mapAlreadyAskedFor.erase(CInv(MSG_TX, orphanHash));
|
|
|
|
|
vWorkQueue.push_back(orphanHash);
|
|
|
|
|
}
|
|
|
|
|
else if (!fMissingInputs2)
|
|
|
|
|