From ebcbff62eb7b0be973ed1aa11ec94e8bcdc31282 Mon Sep 17 00:00:00 2001 From: Richard Ramos Date: Mon, 27 Sep 2021 18:32:40 -0400 Subject: [PATCH] feat: add dns-discovery flags to wakunode and chat2 example --- examples/chat2/main.go | 19 +++++++++++++++++++ waku/node.go | 3 +++ 2 files changed, 22 insertions(+) diff --git a/examples/chat2/main.go b/examples/chat2/main.go index a40f74fd..7d1cea15 100644 --- a/examples/chat2/main.go +++ b/examples/chat2/main.go @@ -176,6 +176,25 @@ func main() { } } + enableDiscovery := *dnsDiscoveryFlag + dnsDiscoveryUrl := *dnsDiscoveryUrlFlag + dnsDiscoveryNameServer := *dnsDiscoveryNameServerFlag + + if enableDiscovery && dnsDiscoveryUrl != "" { + ui.displayMessage(fmt.Sprintf("attempting DNS discovery with %s", dnsDiscoveryUrl)) + multiaddresses, err := discovery.RetrieveNodes(ctx, dnsDiscoveryUrl, discovery.WithNameserver(dnsDiscoveryNameServer)) + if err != nil { + ui.displayMessage("DNS discovery error: " + err.Error()) + } else { + for _, m := range multiaddresses { + err = wakuNode.DialPeerWithMultiAddress(m) + if err != nil { + ui.displayMessage("error dialing peer: " + err.Error()) + } + } + } + } + if len(storenode) == 0 { ui.displayMessage(fmt.Sprintf("No store node configured. Choosing one at random from %s fleet...", *fleetFlag)) storenode = getRandomFleetNode(fleetData, *fleetFlag) diff --git a/waku/node.go b/waku/node.go index 0d2b7751..0b43c5c4 100644 --- a/waku/node.go +++ b/waku/node.go @@ -100,6 +100,9 @@ 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"), "") }