Fix peer discovery (#319)

* Fix peer discovery

* Make peer discovery connections parallel
This commit is contained in:
petricadaipegsp 2024-10-31 18:57:55 +01:00 committed by GitHub
parent 6d6189d1ad
commit fe964fc535
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -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 {