Skip to content

Commit 1a11806

Browse files
committed
net_processing: Clean up INVENTORY_BROADCAST_MAX constants
1 parent 6fa4993 commit 1a11806

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/net_processing.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -147,8 +147,12 @@ static constexpr auto OUTBOUND_INVENTORY_BROADCAST_INTERVAL{2s};
147147
/** Maximum rate of inventory items to send per second.
148148
* Limits the impact of low-fee transaction floods. */
149149
static constexpr unsigned int INVENTORY_BROADCAST_PER_SECOND = 7;
150+
/** Target number of tx inventory items to send per transmission. */
151+
static constexpr unsigned int INVENTORY_BROADCAST_TARGET = INVENTORY_BROADCAST_PER_SECOND * count_seconds(INBOUND_INVENTORY_BROADCAST_INTERVAL);
150152
/** Maximum number of inventory items to send per transmission. */
151-
static constexpr unsigned int INVENTORY_BROADCAST_MAX = INVENTORY_BROADCAST_PER_SECOND * count_seconds(INBOUND_INVENTORY_BROADCAST_INTERVAL);
153+
static constexpr unsigned int INVENTORY_BROADCAST_MAX = 1000;
154+
static_assert(INVENTORY_BROADCAST_MAX >= INVENTORY_BROADCAST_TARGET, "INVENTORY_BROADCAST_MAX too low");
155+
static_assert(INVENTORY_BROADCAST_MAX <= MAX_PEER_TX_ANNOUNCEMENTS, "INVENTORY_BROADCAST_MAX too high");
152156
/** Average delay between feefilter broadcasts in seconds. */
153157
static constexpr auto AVG_FEEFILTER_BROADCAST_INTERVAL{10min};
154158
/** Maximum feefilter broadcast delay after significant change. */
@@ -5630,7 +5634,7 @@ bool PeerManagerImpl::SendMessages(CNode* pto)
56305634
std::vector<CInv> vInv;
56315635
{
56325636
LOCK(peer->m_block_inv_mutex);
5633-
vInv.reserve(std::max<size_t>(peer->m_blocks_for_inv_relay.size(), INVENTORY_BROADCAST_MAX));
5637+
vInv.reserve(std::max<size_t>(peer->m_blocks_for_inv_relay.size(), INVENTORY_BROADCAST_TARGET));
56345638

56355639
// Add blocks
56365640
for (const uint256& hash : peer->m_blocks_for_inv_relay) {
@@ -5707,8 +5711,8 @@ bool PeerManagerImpl::SendMessages(CNode* pto)
57075711
// especially since we have many peers and some will draw much shorter delays.
57085712
unsigned int nRelayedTransactions = 0;
57095713
LOCK(tx_relay->m_bloom_filter_mutex);
5710-
size_t broadcast_max{INVENTORY_BROADCAST_MAX + (tx_relay->m_tx_inventory_to_send.size()/1000)*5};
5711-
broadcast_max = std::min<size_t>(1000, broadcast_max);
5714+
size_t broadcast_max{INVENTORY_BROADCAST_TARGET + (tx_relay->m_tx_inventory_to_send.size()/1000)*5};
5715+
broadcast_max = std::min<size_t>(INVENTORY_BROADCAST_MAX, broadcast_max);
57125716
while (!vInvTx.empty() && nRelayedTransactions < broadcast_max) {
57135717
// Fetch the top element from the heap
57145718
std::pop_heap(vInvTx.begin(), vInvTx.end(), compareInvMempoolOrder);

0 commit comments

Comments
 (0)