From d5d2243c2e11e47c05b740b20b40a63a0b38981c Mon Sep 17 00:00:00 2001 From: Simon-Pierre Vivier Date: Fri, 11 Aug 2023 11:28:24 -0400 Subject: [PATCH] fix: bring back default topic in config (#1902) * fix: bring back default topic in config * fix * Fix a bug * Fix enr creation --- apps/wakunode2/app.nim | 15 ++++++++++----- apps/wakunode2/external_config.nim | 6 +++++- tests/wakunode2/test_app.nim | 2 +- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/apps/wakunode2/app.nim b/apps/wakunode2/app.nim index c50a63ed8..cde2d3c52 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 18a083908..338dfe308 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 f63a9ee3e..1779d8cfc 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 )