mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-04-11 08:07:33 +02:00
net_processing: move a debug check in VERACK processing earlier
The following commit will interrupt the processing of the `VERACK` message earlier for private broadcast connections. The `Assume()` would be nice to have for private broadcast as well, so move it earlier. This is a non-functional change.
This commit is contained in:
@@ -3719,6 +3719,20 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
|
||||
LogInfo("%s", new_peer_msg());
|
||||
}
|
||||
|
||||
if (auto tx_relay = peer->GetTxRelay()) {
|
||||
// `TxRelay::m_tx_inventory_to_send` must be empty before the
|
||||
// version handshake is completed as
|
||||
// `TxRelay::m_next_inv_send_time` is first initialised in
|
||||
// `SendMessages` after the verack is received. Any transactions
|
||||
// received during the version handshake would otherwise
|
||||
// immediately be advertised without random delay, potentially
|
||||
// leaking the time of arrival to a spy.
|
||||
Assume(WITH_LOCK(
|
||||
tx_relay->m_tx_inventory_mutex,
|
||||
return tx_relay->m_tx_inventory_to_send.empty() &&
|
||||
tx_relay->m_next_inv_send_time == 0s));
|
||||
}
|
||||
|
||||
if (pfrom.GetCommonVersion() >= SHORT_IDS_BLOCKS_VERSION) {
|
||||
// Tell our peer we are willing to provide version 2 cmpctblocks.
|
||||
// However, we do not request new block announcements using
|
||||
@@ -3737,20 +3751,6 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
|
||||
}
|
||||
}
|
||||
|
||||
if (auto tx_relay = peer->GetTxRelay()) {
|
||||
// `TxRelay::m_tx_inventory_to_send` must be empty before the
|
||||
// version handshake is completed as
|
||||
// `TxRelay::m_next_inv_send_time` is first initialised in
|
||||
// `SendMessages` after the verack is received. Any transactions
|
||||
// received during the version handshake would otherwise
|
||||
// immediately be advertised without random delay, potentially
|
||||
// leaking the time of arrival to a spy.
|
||||
Assume(WITH_LOCK(
|
||||
tx_relay->m_tx_inventory_mutex,
|
||||
return tx_relay->m_tx_inventory_to_send.empty() &&
|
||||
tx_relay->m_next_inv_send_time == 0s));
|
||||
}
|
||||
|
||||
{
|
||||
LOCK2(::cs_main, m_tx_download_mutex);
|
||||
const CNodeState* state = State(pfrom.GetId());
|
||||
|
||||
Reference in New Issue
Block a user