From 6fc441fb42eb9f1691a26480d4bf1b40d8a55dd0 Mon Sep 17 00:00:00 2001 From: David Hill Date: Fri, 18 Sep 2020 10:54:29 -0400 Subject: [PATCH] dcrd: trickle mempool response to peer. QueueInventory also has the benefit of skipping known inventory. --- server.go | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/server.go b/server.go index 8e153c5a..f060cb9c 100644 --- a/server.go +++ b/server.go @@ -733,19 +733,11 @@ func (sp *serverPeer) OnMemPool(p *peer.Peer, msg *wire.MsgMemPool) { // without double checking it here. txMemPool := sp.server.txMemPool txDescs := txMemPool.TxDescs() - invMsg := wire.NewMsgInvSizeHint(uint(len(txDescs))) - - for i, txDesc := range txDescs { - iv := wire.NewInvVect(wire.InvTypeTx, txDesc.Tx.Hash()) - invMsg.AddInvVect(iv) - if i+1 >= wire.MaxInvPerMsg { - break - } - } // Send the inventory message if there is anything to send. - if len(invMsg.InvList) > 0 { - p.QueueMessage(invMsg, nil) + for _, txDesc := range txDescs { + iv := wire.NewInvVect(wire.InvTypeTx, txDesc.Tx.Hash()) + sp.QueueInventory(iv) } }