mirror of
https://github.com/bitcoin/bitcoin.git
synced 2024-11-19 01:42:58 +01:00
[refactor] rename maybe_add_extra_compact_tx to first_time_failure
The usage of this bool will increase in scope in the next commit. For this commit, the value of this bool is accurate at each ProcessInvalidTx callsite: - ProcessOrphanTx -> this tx is an orphan i.e. has been rejected before - ProcessPackageResult -> 1p1c only, each transaction is either an orphan or in m_lazy_recent_rejects_reconsiderable - ProcessMessage -> tx was received over p2p and validated for the first time
This commit is contained in:
parent
f48d36cd97
commit
288865338f
@ -581,12 +581,12 @@ private:
|
||||
bool MaybeDiscourageAndDisconnect(CNode& pnode, Peer& peer);
|
||||
|
||||
/** Handle a transaction whose result was not MempoolAcceptResult::ResultType::VALID.
|
||||
* @param[in] maybe_add_extra_compact_tx Whether this tx should be added to vExtraTxnForCompact.
|
||||
* @param[in] first_time_failure Whether this tx should be added to vExtraTxnForCompact.
|
||||
* Set to false if the tx has already been rejected before,
|
||||
* e.g. is an orphan, to avoid adding duplicate entries.
|
||||
* Updates m_txrequest, m_lazy_recent_rejects, m_lazy_recent_rejects_reconsiderable, m_orphanage, and vExtraTxnForCompact. */
|
||||
void ProcessInvalidTx(NodeId nodeid, const CTransactionRef& tx, const TxValidationState& result,
|
||||
bool maybe_add_extra_compact_tx)
|
||||
bool first_time_failure)
|
||||
EXCLUSIVE_LOCKS_REQUIRED(!m_peer_mutex, g_msgproc_mutex, m_tx_download_mutex);
|
||||
|
||||
/** Handle a transaction whose result was MempoolAcceptResult::ResultType::VALID.
|
||||
@ -3052,7 +3052,7 @@ void PeerManagerImpl::ProcessHeadersMessage(CNode& pfrom, Peer& peer,
|
||||
}
|
||||
|
||||
void PeerManagerImpl::ProcessInvalidTx(NodeId nodeid, const CTransactionRef& ptx, const TxValidationState& state,
|
||||
bool maybe_add_extra_compact_tx)
|
||||
bool first_time_failure)
|
||||
{
|
||||
AssertLockNotHeld(m_peer_mutex);
|
||||
AssertLockHeld(g_msgproc_mutex);
|
||||
@ -3106,7 +3106,7 @@ void PeerManagerImpl::ProcessInvalidTx(NodeId nodeid, const CTransactionRef& ptx
|
||||
RecentRejectsFilter().insert(ptx->GetHash().ToUint256());
|
||||
m_txrequest.ForgetTxHash(ptx->GetHash());
|
||||
}
|
||||
if (maybe_add_extra_compact_tx && RecursiveDynamicUsage(*ptx) < 100000) {
|
||||
if (first_time_failure && RecursiveDynamicUsage(*ptx) < 100000) {
|
||||
AddToCompactExtraTransactions(ptx);
|
||||
}
|
||||
}
|
||||
@ -3191,7 +3191,7 @@ void PeerManagerImpl::ProcessPackageResult(const PackageToValidate& package_to_v
|
||||
// added there when added to the orphanage or rejected for TX_RECONSIDERABLE.
|
||||
// This should be updated if package submission is ever used for transactions
|
||||
// that haven't already been validated before.
|
||||
ProcessInvalidTx(nodeid, tx, tx_result.m_state, /*maybe_add_extra_compact_tx=*/false);
|
||||
ProcessInvalidTx(nodeid, tx, tx_result.m_state, /*first_time_failure=*/false);
|
||||
break;
|
||||
}
|
||||
case MempoolAcceptResult::ResultType::MEMPOOL_ENTRY:
|
||||
@ -3290,7 +3290,7 @@ bool PeerManagerImpl::ProcessOrphanTx(Peer& peer)
|
||||
state.GetResult() != TxValidationResult::TX_UNKNOWN &&
|
||||
state.GetResult() != TxValidationResult::TX_NO_MEMPOOL &&
|
||||
state.GetResult() != TxValidationResult::TX_RESULT_UNSET)) {
|
||||
ProcessInvalidTx(peer.m_id, porphanTx, state, /*maybe_add_extra_compact_tx=*/false);
|
||||
ProcessInvalidTx(peer.m_id, porphanTx, state, /*first_time_failure=*/false);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@ -4574,7 +4574,7 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
|
||||
}
|
||||
}
|
||||
if (state.IsInvalid()) {
|
||||
ProcessInvalidTx(pfrom.GetId(), ptx, state, /*maybe_add_extra_compact_tx=*/true);
|
||||
ProcessInvalidTx(pfrom.GetId(), ptx, state, /*first_time_failure=*/true);
|
||||
}
|
||||
// When a transaction fails for TX_RECONSIDERABLE, look for a matching child in the
|
||||
// orphanage, as it is possible that they succeed as a package.
|
||||
|
Loading…
Reference in New Issue
Block a user