From fe964fc535cee81ccbaa8af98c2e55d0bf479053 Mon Sep 17 00:00:00 2001 From: petricadaipegsp <155911522+petricadaipegsp@users.noreply.github.com> Date: Thu, 31 Oct 2024 18:57:55 +0100 Subject: [PATCH] Fix peer discovery (#319) * Fix peer discovery * Make peer discovery connections parallel --- node/p2p/blossomsub.go | 51 +++++++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/node/p2p/blossomsub.go b/node/p2p/blossomsub.go index 507a945..c32dc93 100644 --- a/node/p2p/blossomsub.go +++ b/node/p2p/blossomsub.go @@ -924,9 +924,10 @@ func discoverPeers( routingDiscovery *routing.RoutingDiscovery, init bool, ) { - logger.Info("initiating peer discovery") - discover := func() { + logger.Info("initiating peer discovery") + defer logger.Info("completed peer discovery") + peerChan, err := routingDiscovery.FindPeers( ctx, getNetworkNamespace(p2pConfig.Network), @@ -936,28 +937,34 @@ func discoverPeers( return } + wg := &sync.WaitGroup{} + defer wg.Wait() for peer := range peerChan { peer := peer - if peer.ID == h.ID() || - h.Network().Connectedness(peer.ID) == network.Connected || - h.Network().Connectedness(peer.ID) == network.Limited { - return - } + wg.Add(1) + go func() { + defer wg.Done() + if peer.ID == h.ID() || + h.Network().Connectedness(peer.ID) == network.Connected || + h.Network().Connectedness(peer.ID) == network.Limited { + return + } - logger.Debug("found peer", zap.String("peer_id", peer.ID.String())) - err := h.Connect(ctx, peer) - if err != nil { - logger.Debug( - "error while connecting to blossomsub peer", - zap.String("peer_id", peer.ID.String()), - zap.Error(err), - ) - } else { - logger.Debug( - "connected to peer", - zap.String("peer_id", peer.ID.String()), - ) - } + logger.Debug("found peer", zap.String("peer_id", peer.ID.String())) + err := h.Connect(ctx, peer) + if err != nil { + logger.Debug( + "error while connecting to blossomsub peer", + zap.String("peer_id", peer.ID.String()), + zap.Error(err), + ) + } else { + logger.Debug( + "connected to peer", + zap.String("peer_id", peer.ID.String()), + ) + } + }() } } @@ -966,8 +973,6 @@ func discoverPeers( } else { discover() } - - logger.Info("completed peer discovery") } func mergeDefaults(p2pConfig *config.P2PConfig) blossomsub.BlossomSubParams {