From 392558ec8eadc762cd404d91fec63cb2cf1dcf0a Mon Sep 17 00:00:00 2001 From: Prem Chaitanya Prathi Date: Tue, 14 Nov 2023 16:47:49 +0530 Subject: [PATCH] fix: panic when discv5 is enabled while running service node (#897) --- cmd/waku/node.go | 30 ++++++++++++++--------------- waku/v2/peermanager/peer_manager.go | 4 ++-- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/cmd/waku/node.go b/cmd/waku/node.go index 08de3e2f..92da475e 100644 --- a/cmd/waku/node.go +++ b/cmd/waku/node.go @@ -293,6 +293,21 @@ func Execute(options NodeOptions) error { return nonRecoverError(err) } + var discoveredNodes []dnsdisc.DiscoveredNode + if options.DNSDiscovery.Enable { + if len(options.DNSDiscovery.URLs.Value()) == 0 { + return nonRecoverErrorMsg("DNS discovery URL is required") + } + discoveredNodes = node.GetNodesFromDNSDiscovery(logger, ctx, options.DNSDiscovery.Nameserver, options.DNSDiscovery.URLs.Value()) + } + if options.DiscV5.Enable { + discv5Opts, err := node.GetDiscv5Option(discoveredNodes, options.DiscV5.Nodes.Value(), options.DiscV5.Port, options.DiscV5.AutoUpdate) + if err != nil { + logger.Fatal("parsing ENR", zap.Error(err)) + } + nodeOpts = append(nodeOpts, discv5Opts) + } + wakuNode, err := node.New(nodeOpts...) if err != nil { return fmt.Errorf("could not instantiate waku: %w", err) @@ -315,21 +330,6 @@ func Execute(options NodeOptions) error { } } - var discoveredNodes []dnsdisc.DiscoveredNode - if options.DNSDiscovery.Enable { - if len(options.DNSDiscovery.URLs.Value()) == 0 { - return nonRecoverErrorMsg("DNS discovery URL is required") - } - discoveredNodes = node.GetNodesFromDNSDiscovery(logger, ctx, options.DNSDiscovery.Nameserver, options.DNSDiscovery.URLs.Value()) - } - if options.DiscV5.Enable { - discv5Opts, err := node.GetDiscv5Option(discoveredNodes, options.DiscV5.Nodes.Value(), options.DiscV5.Port, options.DiscV5.AutoUpdate) - if err != nil { - logger.Fatal("parsing ENR", zap.Error(err)) - } - nodeOpts = append(nodeOpts, discv5Opts) - } - if err = wakuNode.Start(ctx); err != nil { return nonRecoverError(err) } diff --git a/waku/v2/peermanager/peer_manager.go b/waku/v2/peermanager/peer_manager.go index c1169129..1b150670 100644 --- a/waku/v2/peermanager/peer_manager.go +++ b/waku/v2/peermanager/peer_manager.go @@ -467,7 +467,7 @@ func (pm *PeerManager) AddPeer(address ma.Multiaddr, origin wps.Origin, pubsubTo return pData, nil } -// Connect establishes a connection to a peer. +// Connect establishes a connection to a func (pm *PeerManager) Connect(pData *service.PeerData) { go pm.peerConnector.PushToChan(*pData) } @@ -486,7 +486,7 @@ func (pm *PeerManager) RemovePeer(peerID peer.ID) { // If relay proto is passed, it is not added to serviceSlot. func (pm *PeerManager) addPeerToServiceSlot(proto protocol.ID, peerID peer.ID) { if proto == relay.WakuRelayID_v200 { - pm.logger.Warn("Cannot add Relay peer to service peer slots") + pm.logger.Debug("cannot add Relay peer to service peer slots") return }