diff --git a/waku/node.go b/waku/node.go index d8a6cc5f..3bdf84d3 100644 --- a/waku/node.go +++ b/waku/node.go @@ -14,6 +14,7 @@ import ( "time" "github.com/ethereum/go-ethereum/crypto" + "github.com/ethereum/go-ethereum/p2p/enode" dssql "github.com/ipfs/go-ds-sql" logging "github.com/ipfs/go-log" "github.com/libp2p/go-libp2p" @@ -91,9 +92,6 @@ var rootCmd = &cobra.Command{ prvKey, err := crypto.HexToECDSA(key) checkError(err, "error converting key into valid ecdsa key") - // TODO: this ENR record might be necessary later for DNS discovery - // enr := enode.NewV4(&prvKey.PublicKey, hostAddr.IP, hostAddr.Port, 0) - if dbPath == "" && useDB { checkError(errors.New("dbpath can't be null"), "") } @@ -196,19 +194,30 @@ var rootCmd = &cobra.Command{ } } - if enableDnsDiscovery && dnsDiscoveryUrl != "" { - log.Info("attempting DNS discovery with ", dnsDiscoveryUrl) - multiaddresses, err := discovery.RetrieveNodes(ctx, dnsDiscoveryUrl, discovery.WithNameserver(dnsDiscoveryNameServer)) - if err != nil { - log.Warn("dns discovery error ", err) - } else { - log.Info("found dns entries ", multiaddresses) - for _, m := range multiaddresses { - err = wakuNode.DialPeerWithMultiAddress(m) - if err != nil { - log.Error("error dialing peer ", err) + if enableDnsDiscovery { + + for _, addr := range wakuNode.ListenAddresses() { + ip, _ := addr.ValueForProtocol(multiaddr.P_IP4) + enr := enode.NewV4(&prvKey.PublicKey, net.ParseIP(ip), hostAddr.Port, 0) + log.Info("ENR: ", enr) + } + + if dnsDiscoveryUrl != "" { + log.Info("attempting DNS discovery with ", dnsDiscoveryUrl) + multiaddresses, err := discovery.RetrieveNodes(ctx, dnsDiscoveryUrl, discovery.WithNameserver(dnsDiscoveryNameServer)) + if err != nil { + log.Warn("dns discovery error ", err) + } else { + log.Info("found dns entries ", multiaddresses) + for _, m := range multiaddresses { + err = wakuNode.DialPeerWithMultiAddress(m) + if err != nil { + log.Error("error dialing peer ", err) + } } } + } else { + log.Fatal("DNS discovery URL is required") } } diff --git a/waku/v2/node/wakunode2.go b/waku/v2/node/wakunode2.go index 463010ae..4ec45e25 100644 --- a/waku/v2/node/wakunode2.go +++ b/waku/v2/node/wakunode2.go @@ -352,11 +352,11 @@ func (w *WakuNode) HasHistory() bool { return false } -func (w *WakuNode) ListenAddresses() []string { +func (w *WakuNode) ListenAddresses() []ma.Multiaddr { hostInfo, _ := ma.NewMultiaddr(fmt.Sprintf("/p2p/%s", w.host.ID().Pretty())) - var result []string + var result []ma.Multiaddr for _, addr := range w.host.Addrs() { - result = append(result, addr.Encapsulate(hostInfo).String()) + result = append(result, addr.Encapsulate(hostInfo)) } return result }