From 6cad482ca60ac420fb846eba8c748508398038a2 Mon Sep 17 00:00:00 2001 From: rshiv Date: Mon, 15 Nov 2021 13:29:18 +0000 Subject: [PATCH] Publish multiple address when websocket enabled. (#766) * publish multiple nodes Signed-off-by: rshiv * Print multiple addresses if wsenabled Signed-off-by: rshiv * review comment fix Signed-off-by: rshiv * review comment fix Signed-off-by: rshiv * review changes Signed-off-by: rshiv * review changes Signed-off-by: rshiv * code review changes Signed-off-by: rshiv * review comments Signed-off-by: rshiv * review fixes Signed-off-by: rshiv * websocket address fix Signed-off-by: rshiv --- waku/v2/node/wakunode2.nim | 22 +++++++++++++++------- waku/v2/utils/wakuswitch.nim | 2 +- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/waku/v2/node/wakunode2.nim b/waku/v2/node/wakunode2.nim index 284ea7967..919ceb220 100644 --- a/waku/v2/node/wakunode2.nim +++ b/waku/v2/node/wakunode2.nim @@ -55,6 +55,7 @@ const clientId* = "Nimbus Waku v2 node" # Default topic const defaultTopic = "/waku/2/default-waku/proto" + # key and crypto modules different type KeyPair* = crypto.KeyPair @@ -87,6 +88,7 @@ type filters*: Filters rng*: ref BrHmacDrbgContext wakuDiscv5*: WakuDiscoveryV5 + announcedAddresses* : seq[MultiAddress] started*: bool # Indicates that node has started listening proc protocolMatcher(codec: string): Matcher = @@ -168,8 +170,9 @@ proc new*(T: type WakuNode, nodeKey: crypto.PrivateKey, enrTcpPort = if extPort.isSome(): extPort else: some(bindPort) enr = createEnr(nodeKey, enrIp, enrTcpPort, none(Port)) + - if wsEnabled == true or wssEnabled == true: + if wsEnabled or wssEnabled: info "Initializing networking", hostAddress, wsHostAddress, announcedAddresses peerInfo.addrs.add(wsHostAddress) @@ -178,7 +181,7 @@ proc new*(T: type WakuNode, nodeKey: crypto.PrivateKey, peerInfo.addrs.add(hostAddress) for multiaddr in announcedAddresses: - peerInfo.addrs.add(multiaddr) # Announced addresses in index > 0 + peerInfo.addrs.add(multiaddr) var switch = newWakuSwitch(some(nodekey), hostAddress, @@ -194,10 +197,11 @@ proc new*(T: type WakuNode, nodeKey: crypto.PrivateKey, let wakuNode = WakuNode( peerManager: PeerManager.new(switch, peerStorage), switch: switch, - rng: rng, + rng: rng, peerInfo: peerInfo, enr: enr, - filters: initTable[string, Filter]() + filters: initTable[string, Filter](), + announcedAddresses: announcedAddresses ) return wakuNode @@ -814,7 +818,11 @@ proc start*(node: WakuNode) {.async.} = # TODO Get this from WakuNode obj let peerInfo = node.peerInfo info "PeerInfo", peerId = peerInfo.peerId, addrs = peerInfo.addrs - let listenStr = $peerInfo.addrs[^1] & "/p2p/" & $peerInfo.peerId + var listenStr = "" + for address in node.announcedAddresses: + var fulladdr = "[" & $address & "/p2p/" & $peerInfo.peerId & "]" + listenStr &= fulladdr + ## XXX: this should be /ip4..., / stripped? info "Listening on", full = listenStr info "Discoverable ENR ", enr = node.enr.toURI() @@ -1046,9 +1054,9 @@ when isMainModule: ## Resume history, connect to static nodes and start ## keep-alive, if configured. - # Start Waku v2 node + # Start Waku v2 node waitFor node.start() - + # Resume historical messages, this has to be called after the node has been started if conf.store and conf.persistMessages: waitFor node.resume() diff --git a/waku/v2/utils/wakuswitch.nim b/waku/v2/utils/wakuswitch.nim index ab369b8fa..ede7ec8f1 100644 --- a/waku/v2/utils/wakuswitch.nim +++ b/waku/v2/utils/wakuswitch.nim @@ -90,7 +90,7 @@ proc newWakuSwitch*( if wsEnabled == true: b = b.withAddresses(@[wsAddress, address]) b = b.withWsTransport() - if wssEnabled == true: + elif wssEnabled == true: b = b.withAddresses(@[wsAddress, address]) b = b.withWssTransport(secureKeyPath, secureCertPath) else :