diff --git a/apps/wakunode2/app.nim b/apps/wakunode2/app.nim index c50a63ed88..cde2d3c524 100644 --- a/apps/wakunode2/app.nim +++ b/apps/wakunode2/app.nim @@ -135,16 +135,16 @@ proc init*(T: type App, rng: ref HmacDrbgContext, conf: WakuNodeConf): T = error "failed to parse content topic", error=res.error quit(QuitFailure) - let pubsubTopicsRes = contentTopicsRes.mapIt(singleHighestWeigthShard(it.get())) + let shardsRes = contentTopicsRes.mapIt(singleHighestWeigthShard(it.get())) - for res in pubsubTopicsRes: + for res in shardsRes: if res.isErr(): error "failed to shard content topic", error=res.error quit(QuitFailure) - let pubsubTopics = pubsubTopicsRes.mapIt($it.get()) + let shards = shardsRes.mapIt($it.get()) - let topics = pubsubTopics & conf.pubsubTopics + let topics = conf.topics & conf.pubsubTopics & shards let addShardedTopics = enrBuilder.withShardedTopics(topics) if addShardedTopics.isErr(): @@ -360,7 +360,12 @@ proc setupProtocols(node: WakuNode, peerExchangeHandler = some(handlePeerExchange) if conf.relay: - let pubsubTopics = conf.pubsubTopics + # TODO autoshard content topics only once. + # Already checked for errors in app.init + let contentTopics = conf.contentTopics.mapIt(NsContentTopic.parse(it).expect("Parsing")) + let shards = contentTopics.mapIt($(singleHighestWeigthShard(it).expect("Sharding"))) + + let pubsubTopics = conf.topics & conf.pubsubTopics & shards try: await mountRelay(node, pubsubTopics, peerExchangeHandler = peerExchangeHandler) except CatchableError: diff --git a/apps/wakunode2/external_config.nim b/apps/wakunode2/external_config.nim index 18a083908a..338dfe308f 100644 --- a/apps/wakunode2/external_config.nim +++ b/apps/wakunode2/external_config.nim @@ -225,9 +225,13 @@ type defaultValue: false name: "keep-alive" }: bool + topics* {. + desc: "Default topic to subscribe to. Argument may be repeated. Deprecated! Please use pubsub-topic and/or content-topic instead." + defaultValue: @["/waku/2/default-waku/proto"] + name: "topic" .}: seq[string] + pubsubTopics* {. desc: "Default pubsub topic to subscribe to. Argument may be repeated." - defaultValue: @["/waku/2/default-waku/proto"] name: "pubsub-topic" .}: seq[string] contentTopics* {. diff --git a/tests/wakunode2/test_app.nim b/tests/wakunode2/test_app.nim index f63a9ee3e7..1779d8cfca 100644 --- a/tests/wakunode2/test_app.nim +++ b/tests/wakunode2/test_app.nim @@ -23,7 +23,7 @@ proc defaultTestWakuNodeConf(): WakuNodeConf = metricsServerAddress: ValidIpAddress.init("127.0.0.1"), nat: "any", maxConnections: 50, - pubsubTopics: @["/waku/2/default-waku/proto"], + topics: @["/waku/2/default-waku/proto"], relay: true )