Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: deprecating pubsub topic config #2779

Closed
wants to merge 30 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
417c10e
initial changes for named sharding deprecation
gabrielmer May 23, 2024
fa47648
fixing compilation errors
gabrielmer May 23, 2024
6a8e498
setting default pubsub topic value and modifying log
gabrielmer May 23, 2024
efae19c
fix test
gabrielmer May 23, 2024
3037b11
fixing tests
gabrielmer May 23, 2024
cd4314a
subscribe by default to shard 0
gabrielmer May 24, 2024
3a351d7
Not allowing to use pubsub topics corresponding to different cluster …
gabrielmer May 24, 2024
cf5715a
fix pubsub topic in defaultTestWakuNodeConf
gabrielmer May 24, 2024
b161f0a
fixing comment
gabrielmer May 30, 2024
d5132ed
fixing redundant funcion types
gabrielmer May 30, 2024
32675a8
implementing comments
gabrielmer May 31, 2024
ba8d321
start deprecating pubsub topic
gabrielmer Jun 3, 2024
789ca90
changing signed topics for signed shards, and others
gabrielmer Jun 3, 2024
3829782
compilation errors
gabrielmer Jun 4, 2024
fdf81b1
compilation errors 2
gabrielmer Jun 5, 2024
be2416e
Fixing chat2 compilation errors
gabrielmer Jun 5, 2024
ca986f9
deleting pubsubtopic from testlib
gabrielmer Jun 5, 2024
d21b6a0
fixing compilation errors in tests/node/test_wakunode_relay_rln.nim
gabrielmer Jun 5, 2024
cef0059
fixing compilation errors of tests/waku_relay/test_wakunode_relay.nim
gabrielmer Jun 6, 2024
ba5100f
fix compilation errors in tests/test_wakunode.nim
gabrielmer Jun 6, 2024
88ff3fe
fixing compilation errors in tests/test_wakunode_lightpush.nim
gabrielmer Jun 6, 2024
ae111d8
fixing compilation errors in tests/test_peer_manager.nim
gabrielmer Jun 6, 2024
5ab5c85
fix compilation error in tests/test_relay_peer_exchange.nim
gabrielmer Jun 6, 2024
8976ac0
fixing compilation errors in tests/wakunode_rest/test_rest_relay.nim
gabrielmer Jun 6, 2024
6d4ebd5
Fixing compilation errors in tests/waku_rln_relay/test_wakunode_rln_r…
gabrielmer Jun 6, 2024
f5e8846
fixing compilation errors for tests/wakunode2/test_validators.nim
gabrielmer Jun 6, 2024
3b7405e
fix networkmonitor compilation errors
gabrielmer Jun 6, 2024
bf54dc1
setting networkShards with the number of shards configured if number …
gabrielmer Jun 6, 2024
54cc122
fix DefaultPubsubTopic computation
gabrielmer Jun 6, 2024
2e3dd36
fixed misconfigured network shards
gabrielmer Jun 6, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions apps/chat2/chat2.nim
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ when (NimMajor, NimMinor) < (1, 4):
else:
{.push raises: [].}

import std/[strformat, strutils, times, options, random]
import std/[strformat, strutils, times, options, random, sequtils]
import
confutils,
chronicles,
Expand Down Expand Up @@ -379,7 +379,9 @@ proc processInput(rfd: AsyncFD, rng: ref HmacDrbgContext) {.async.} =
raise newException(ConfigurationError, "rln-relay-cred-path MUST be passed")

if conf.relay:
await node.mountRelay(conf.topics.split(" "))
let pubsubTopics =
conf.shards.mapIt(NsPubsubTopic(clusterId: conf.clusterId, shardId: uint16(it)))
await node.mountRelay(pubsubTopics)

await node.mountLibp2pPing()

Expand Down
17 changes: 12 additions & 5 deletions apps/chat2/config_chat2.nim
Original file line number Diff line number Diff line change
Expand Up @@ -83,11 +83,18 @@ type
name: "keep-alive"
.}: bool

topics* {.
desc: "Default topics to subscribe to (space separated list).",
defaultValue: "/waku/2/default-waku/proto",
name: "topics"
.}: string
clusterId* {.
desc:
"Cluster id that the node is running in. Node in a different cluster id is disconnected.",
defaultValue: 0,
name: "cluster-id"
.}: uint16

shards* {.
desc: "Shards index to subscribe to [0..MAX_SHARDS-1]. Argument may be repeated.",
defaultValue: @[uint16(0)],
name: "shard"
.}: seq[uint16]

## Store config
store* {.
Expand Down
17 changes: 12 additions & 5 deletions apps/chat2bridge/config_chat2bridge.nim
Original file line number Diff line number Diff line change
Expand Up @@ -67,11 +67,18 @@ type Chat2MatterbridgeConf* = object
name: "nodekey"
.}: crypto.PrivateKey

topics* {.
desc: "Default topics to subscribe to (space separated list)",
defaultValue: "/waku/2/default-waku/proto",
name: "topics"
.}: string
clusterId* {.
desc:
"Cluster id that the node is running in. Node in a different cluster id is disconnected.",
defaultValue: 0,
name: "cluster-id"
.}: uint16

shards* {.
desc: "Shards index to subscribe to [0..MAX_SHARDS-1]. Argument may be repeated.",
defaultValue: @[uint16(0)],
name: "shard"
.}: seq[uint16]

store* {.
desc: "Flag whether to start store protocol", defaultValue: true, name: "store"
Expand Down
4 changes: 2 additions & 2 deletions apps/liteprotocoltester/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ docker compose logs -f receivernode
| ---: | :--- | :--- |
| NUM_MESSAGES | Number of message to publish | 120 |
| DELAY_MESSAGES | Frequency of messages in milliseconds | 1000 |
| PUBSUB | Used pubsub_topic for testing | /waku/2/default-waku/proto |
| PUBSUB | Used pubsub_topic for testing | /waku/2/rs/0/0 |
| CONTENT_TOPIC | content_topic for testing | /tester/1/light-pubsub-example/proto |

### Lite Protocol Tester application cli options
Expand All @@ -67,7 +67,7 @@ docker compose logs -f receivernode
| --service-node| Address of the service node to use for lightpush and/or filter service | - |
| --num-messages | Number of message to publish | 120 |
| --delay-messages | Frequency of messages in milliseconds | 1000 |
| --pubsub-topic | Used pubsub_topic for testing | /waku/2/default-waku/proto |
| --pubsub-topic | Used pubsub_topic for testing | /waku/2/rs/0/0 |
| --content_topic | content_topic for testing | /tester/1/light-pubsub-example/proto |
| --cluster-id | Cluster id for the test | 0 |
| --config-file | TOML configuration file to fine tune the light waku node<br>Note that some configurations (full node services) are not taken into account | - |
Expand Down
2 changes: 1 addition & 1 deletion apps/liteprotocoltester/run_service_node.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,5 +25,5 @@ exec /usr/bin/wakunode\
--metrics-server-address=0.0.0.0\
--nodekey=e3f5e64568b3a612dee609f6e7c0203c501dab6131662922bdcbcabd474281d5\
--nat=extip:${IP}\
--pubsub-topic=/waku/2/default-waku/proto\
--pubsub-topic=/waku/2/rs/0/0\
--cluster-id=0
2 changes: 1 addition & 1 deletion apps/liteprotocoltester/run_tester_node.sh
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ echo "Using service node: ${SERIVCE_NODE_ADDR}"
exec /usr/bin/liteprotocoltester\
--log-level=DEBUG\
--service-node="${SERIVCE_NODE_ADDR}"\
--pubsub-topic=/waku/2/default-waku/proto\
--pubsub-topic=/waku/2/rs/0/0\
--cluster-id=0\
--num-messages=${NUM_MESSAGES}\
--delay-messages=${DELAY_MESSAGES}\
Expand Down
2 changes: 1 addition & 1 deletion apps/liteprotocoltester/tester_config.nim
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import
export confTomlDefs, confTomlNet, confEnvvarDefs, confEnvvarNet

const
LitePubsubTopic* = PubsubTopic("/waku/2/default-waku/proto")
LitePubsubTopic* = PubsubTopic("/waku/2/rs/0/0")
LiteContentTopic* = ContentTopic("/tester/1/light-pubsub-example/proto")

type TesterFunctionality* = enum
Expand Down
25 changes: 17 additions & 8 deletions apps/networkmonitor/networkmonitor.nim
Original file line number Diff line number Diff line change
Expand Up @@ -425,10 +425,12 @@ proc initAndStartApp(
ipAddr = some(extIp), tcpPort = some(nodeTcpPort), udpPort = some(nodeUdpPort)
)
builder.withWakuCapabilities(flags)
let addShardedTopics = builder.withShardedTopics(conf.pubsubTopics)
if addShardedTopics.isErr():
error "failed to add sharded topics to ENR", error = addShardedTopics.error
return err($addShardedTopics.error)

builder.withWakuRelaySharding(
RelayShards(clusterId: conf.clusterId, shardIds: conf.shards)
).isOkOr:
error "failed to add sharded topics to ENR", error = error
return err("failed to add sharded topics to ENR: " & $error)

let recordRes = builder.build()
let record =
Expand Down Expand Up @@ -545,11 +547,14 @@ when isMainModule:
let twnClusterConf = ClusterConf.TheWakuNetworkConf()

conf.bootstrapNodes = twnClusterConf.discv5BootstrapNodes
conf.pubsubTopics = twnClusterConf.pubsubTopics
conf.rlnRelayDynamic = twnClusterConf.rlnRelayDynamic
conf.rlnRelayEthContractAddress = twnClusterConf.rlnRelayEthContractAddress
conf.rlnEpochSizeSec = twnClusterConf.rlnEpochSizeSec
conf.rlnRelayUserMessageLimit = twnClusterConf.rlnRelayUserMessageLimit
conf.networkShards = twnClusterConf.networkShards

if conf.shards.len == 0:
conf.shards = toSeq(uint16(0) .. uint16(twnClusterConf.networkShards - 1))

if conf.logLevel != LogLevel.NONE:
setLogLevel(conf.logLevel)
Expand Down Expand Up @@ -615,9 +620,13 @@ when isMainModule:
error "failed to mount waku metadata protocol: ", err = error
quit 1

for pubsubTopic in conf.pubsubTopics:
# Subscribe the node to the default pubsubtopic, to count messages
subscribeAndHandleMessages(node, pubsubTopic, msgPerContentTopic)
for shard in conf.shards:
# Subscribe the node to the shards, to count messages
subscribeAndHandleMessages(
node,
$NsPubsubTopic(shardId: uint16(shard), clusterId: conf.clusterId),
msgPerContentTopic,
)

# spawn the routine that crawls the network
# TODO: split into 3 routines (discovery, connections, ip2location)
Expand Down
13 changes: 8 additions & 5 deletions apps/networkmonitor/networkmonitor_config.nim
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,13 @@ type NetworkMonitorConf* = object
name: "dns-discovery-url"
.}: string

pubsubTopics* {.
desc: "Default pubsub topic to subscribe to. Argument may be repeated.",
name: "pubsub-topic"
.}: seq[string]
shards* {.
desc: "Shards index to subscribe to [0..MAX_SHARDS-1]. Argument may be repeated.",
name: "shard"
.}: seq[uint16]

networkShards* {.desc: "Number of shards in the network", name: "network-shards".}:
uint32

refreshInterval* {.
desc: "How often new peers are discovered and connected to (in seconds)",
Expand All @@ -55,7 +58,7 @@ type NetworkMonitorConf* = object
"Cluster id that the node is running in. Node in a different cluster id is disconnected.",
defaultValue: 1,
name: "cluster-id"
.}: uint32
.}: uint16

rlnRelay* {.
desc: "Enable spam protection through rln-relay: true|false",
Expand Down
4 changes: 2 additions & 2 deletions docs/operators/how-to/run.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ By default a nwaku node will:
See [this tutorial](./configure-key.md) if you want to generate and configure a persistent private key.
- listen for incoming libp2p connections on the default TCP port (`60000`)
- enable `relay` protocol
- subscribe to the default pubsub topic, namely `/waku/2/default-waku/proto`
- subscribe to the default pubsub topic, namely `/waku/2/rs/0/0`
- enable `store` protocol, but only as a client.
This implies that the nwaku node will not persist any historical messages itself,
but can query `store` service peers who do so.
Expand Down Expand Up @@ -107,7 +107,7 @@ enr=enr:-IO4QDxToTg86pPCK2KvMeVCXC2ADVZWrxXSvNZeaoa0JhShbM5qed69RQz1s1mWEEqJ3aok
## Typical configuration (relay node)

The typical configuration for a nwaku node is to run the `relay` protocol,
subscribed to the default pubsub topic `/waku/2/default-waku/proto`,
subscribed to the default pubsub topic `/waku/2/rs/0/0`,
and connecting to one or more existing peers.
We assume below that running nodes also participate in Discovery v5
to continually discover and connect to random peers for a more robust mesh.
Expand Down
2 changes: 1 addition & 1 deletion docs/tutorial/onchain-rln-relay-chat2.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ At a high level, when a chat2 client is run with Waku-RLN-Relay mounted in on-ch
Under the hood, the chat2 client constantly listens to the membership contract and keeps itself updated with the latest state of the group.

In the following test setting, the chat2 clients are to be connected to the Waku test fleets as their first hop.
The test fleets will act as routers and are also set to run Waku-RLN-Relay over the same pubsub topic and content topic as chat2 clients i.e., the default pubsub topic of `/waku/2/default-waku/proto` and the content topic of `/toy-chat/3/mingde/proto`.
The test fleets will act as routers and are also set to run Waku-RLN-Relay over the same pubsub topic and content topic as chat2 clients i.e., the default pubsub topic of `/waku/2/rs/0/0` and the content topic of `/toy-chat/3/mingde/proto`.
Spam messages published on the said combination of topics will be caught by the test fleet nodes and will not be routed.
Note that spam protection does not rely on the presence of the test fleets.
In fact, all the chat2 clients are also capable of catching and dropping spam messages if they receive any.
Expand Down
2 changes: 1 addition & 1 deletion docs/tutorial/rln-chat-cross-client.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ As for the setup, please follow the tutorials below:
- [JS-chat](https://examples.waku.org/rln-js/)

Once you set up your chat client, it will be connected to the Waku v2 test fleets as its first hop.
Messages generated by the chat client are set to be published on a specific combination of pubsub and content topic i.e., the default pubsub topic of `/waku/2/default-waku/proto` and the content topic of `/toy-chat/3/mingde/proto`.
Messages generated by the chat client are set to be published on a specific combination of pubsub and content topic i.e., the default pubsub topic of `/waku/2/rs/0/0` and the content topic of `/toy-chat/3/mingde/proto`.
The test fleets also run Waku-RLN-Relay over the same pubsub topic and content topic.
Test fleets act as routers and enforce the message rate limit.
As such, any spam messages published by a chat client on the said combination of topics will be caught by the Waku v2 test fleet nodes and will not be routed.
Expand Down
2 changes: 1 addition & 1 deletion examples/cbindings/waku_example.c
Original file line number Diff line number Diff line change
Expand Up @@ -317,7 +317,7 @@ int main(int argc, char** argv) {
userData) );

WAKU_CALL( waku_relay_subscribe(ctx,
"/waku/2/default-waku/proto",
"/waku/2/rs/0/0",
event_handler,
userData) );

Expand Down
2 changes: 1 addition & 1 deletion examples/filter_subscriber.nim
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ const
FilterPeer =
"/ip4/34.16.1.67/tcp/30303/p2p/16Uiu2HAmDCp8XJ9z1ev18zuv8NHekAsjNyezAvmMfFEJkiharitG"
# node-01.gc-us-central1-a.waku.test.statusim.net on waku.test
FilterPubsubTopic = PubsubTopic("/waku/2/default-waku/proto")
FilterPubsubTopic = PubsubTopic("/waku/2/rs/0/0")
FilterContentTopic = ContentTopic("/examples/1/light-pubsub-example/proto")

proc unsubscribe(
Expand Down
2 changes: 1 addition & 1 deletion examples/lightpush_publisher.nim
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ const
LightpushPeer =
"/ip4/178.128.141.171/tcp/30303/p2p/16Uiu2HAkykgaECHswi3YKJ5dMLbq2kPVCo89fcyTd38UcQD6ej5W"
# node-01.do-ams3.waku.test.statusim.net on waku.test
LightpushPubsubTopic = PubsubTopic("/waku/2/default-waku/proto")
LightpushPubsubTopic = PubsubTopic("/waku/2/rs/0/0")
LightpushContentTopic = ContentTopic("/examples/1/light-pubsub-example/proto")

proc publishMessages(
Expand Down
2 changes: 1 addition & 1 deletion examples/publisher.nim
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ proc setupAndPublish(rng: ref HmacDrbgContext) {.async.} =

# Make sure it matches the publisher. Use default value
# see spec: https://rfc.vac.dev/spec/23/
let pubSubTopic = PubsubTopic("/waku/2/default-waku/proto")
let pubSubTopic = PubsubTopic("/waku/2/rs/0/0")

# any content topic can be chosen
let contentTopic = ContentTopic("/examples/1/pubsub-example/proto")
Expand Down
2 changes: 1 addition & 1 deletion examples/subscriber.nim
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ proc setupAndSubscribe(rng: ref HmacDrbgContext) {.async.} =

# Make sure it matches the publisher. Use default value
# see spec: https://rfc.vac.dev/spec/23/
let pubSubTopic = PubsubTopic("/waku/2/default-waku/proto")
let pubSubTopic = PubsubTopic("/waku/2/rs/0/0")

# any content topic can be chosen. make sure it matches the publisher
let contentTopic = ContentTopic("/examples/1/pubsub-example/proto")
Expand Down
2 changes: 1 addition & 1 deletion tests/node/peer_manager/test_peer_manager.nim
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ suite "Peer Manager":

# When making an operation that triggers onPeerMetadata
discard await client.filterSubscribe(
some("/waku/2/default-waku/proto"), "waku/lightpush/1", serverRemotePeerInfo
some("/waku/2/rs/0/0"), "waku/lightpush/1", serverRemotePeerInfo
)
await sleepAsync(FUTURE_TIMEOUT)

Expand Down
20 changes: 13 additions & 7 deletions tests/node/test_wakunode_relay_rln.nim
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ suite "Waku RlnRelay - End to End":
var
pubsubTopic {.threadvar.}: PubsubTopic
contentTopic {.threadvar.}: ContentTopic
nsTopic {.threadvar.}: NsPubsubTopic

var
server {.threadvar.}: WakuNode
Expand All @@ -36,7 +37,8 @@ suite "Waku RlnRelay - End to End":
asyncSetup:
pubsubTopic = DefaultPubsubTopic
contentTopic = DefaultContentTopic

nsTopic = DefaultNsPubsubTopic

let
serverKey = generateSecp256k1Key()
clientKey = generateSecp256k1Key()
Expand Down Expand Up @@ -72,8 +74,8 @@ suite "Waku RlnRelay - End to End":

asyncTest "Pubsub topics subscribed before mounting RlnRelay are added to it":
# Given the node enables Relay and Rln while subscribing to a pubsub topic
await server.setupRelayWithRln(1.uint, @[pubsubTopic])
await client.setupRelayWithRln(2.uint, @[pubsubTopic])
await server.setupRelayWithRln(1.uint, @[nsTopic])
await client.setupRelayWithRln(2.uint, @[nsTopic])
check:
server.wakuRelay != nil
server.wakuRlnRelay != nil
Expand Down Expand Up @@ -140,8 +142,12 @@ suite "Waku RlnRelay - End to End":
suite "Analysis of Bandwith Limitations":
asyncTest "Valid Payload Sizes":
# Given the node enables Relay and Rln while subscribing to a pubsub topic
await server.setupRelayWithRln(1.uint, @[pubsubTopic])
await client.setupRelayWithRln(2.uint, @[pubsubTopic])
await server.setupRelayWithRln(
1.uint, @[nsTopic])
)
await client.setupRelayWithRln(
2.uint, @[nsTopic])
)

# And the nodes are connected
await client.connectToNodes(@[serverRemotePeerInfo])
Expand Down Expand Up @@ -234,8 +240,8 @@ suite "Waku RlnRelay - End to End":

asyncTest "Invalid Payload Sizes":
# Given the node enables Relay and Rln while subscribing to a pubsub topic
await server.setupRelayWithRln(1.uint, @[pubsubTopic])
await client.setupRelayWithRln(2.uint, @[pubsubTopic])
await server.setupRelayWithRln(1.uint, @[nsTopic])
await client.setupRelayWithRln(2.uint, @[nsTopic])

# And the nodes are connected
await client.connectToNodes(@[serverRemotePeerInfo])
Expand Down
9 changes: 6 additions & 3 deletions tests/test_peer_manager.nim
Original file line number Diff line number Diff line change
Expand Up @@ -416,21 +416,24 @@ procSuite "Peer Manager":
generateSecp256k1Key(),
ValidIpAddress.init("0.0.0.0"),
port,
pubsubTopics = @["/waku/2/rs/3/0"],
clusterId = 3,
shards = @[uint16(0)],
)

# same network
node2 = newTestWakuNode(
generateSecp256k1Key(),
ValidIpAddress.init("0.0.0.0"),
port,
pubsubTopics = @["/waku/2/rs/4/0"],
clusterId = 4,
shards = @[uint16(0)],
)
node3 = newTestWakuNode(
generateSecp256k1Key(),
ValidIpAddress.init("0.0.0.0"),
port,
pubsubTopics = @["/waku/2/rs/4/0"],
clusterId = 4,
shards = @[uint16(0)],
)

node1.mountMetadata(3).expect("Mounted Waku Metadata")
Expand Down
10 changes: 5 additions & 5 deletions tests/test_relay_peer_exchange.nim
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ procSuite "Relay (GossipSub) Peer Exchange":
newTestWakuNode(node2Key, listenAddress, port, sendSignedPeerRecord = true)

# When both client and server mount relay without a handler
await node1.mountRelay(@[DefaultPubsubTopic])
await node2.mountRelay(@[DefaultPubsubTopic], none(RoutingRecordsHandler))
await node1.mountRelay(@[DefaultNsPubsubTopic])
await node2.mountRelay(@[DefaultNsPubsubTopic], none(RoutingRecordsHandler))

# Then the relays are mounted without a handler
check:
Expand Down Expand Up @@ -76,9 +76,9 @@ procSuite "Relay (GossipSub) Peer Exchange":
peerExchangeHandle: RoutingRecordsHandler = peerExchangeHandler

# Givem the nodes mount relay with a peer exchange handler
await node1.mountRelay(@[DefaultPubsubTopic], some(emptyPeerExchangeHandle))
await node2.mountRelay(@[DefaultPubsubTopic], some(emptyPeerExchangeHandle))
await node3.mountRelay(@[DefaultPubsubTopic], some(peerExchangeHandle))
await node1.mountRelay(@[DefaultNsPubsubTopic], some(emptyPeerExchangeHandle))
await node2.mountRelay(@[DefaultNsPubsubTopic], some(emptyPeerExchangeHandle))
await node3.mountRelay(@[DefaultNsPubsubTopic], some(peerExchangeHandle))

# Ensure that node1 prunes all peers after the first connection
node1.wakuRelay.parameters.dHigh = 1
Expand Down
Loading
Loading