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

fix: wakunode2 config. adding new 'topic' config parameter. #1727

Merged
merged 2 commits into from
May 12, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
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
11 changes: 10 additions & 1 deletion apps/wakunode2/app.nim
Original file line number Diff line number Diff line change
Expand Up @@ -547,7 +547,16 @@ proc setupProtocols(node: WakuNode, conf: WakuNodeConf,
peerExchangeHandler = some(handlePeerExchange)

if conf.relay:
let pubsubTopics = conf.topics.split(" ")

var pubsubTopics = @[""]
if conf.topicsDeprecated != "":
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about logging a warning if conf.topicsDeprecated != "" ?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point! I'll add it

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

agree.

if conf.topicsDeprecated != "" and conf.topics.len !=0.
  error

if conf.topicsDeprecated != "":
  warn

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now, if topicsDeprecated is given, it prints a warn. If both topicsDeprecated and topics are given, then an error is returned and the execution is halted.

if conf.topics != @["/waku/2/default-waku/proto"]:
return err("Please don't specify 'topics' and 'topic' simultaneously. Only use the 'topic' parameter")

# This clause (if conf.topicsDeprecated != "") should disapear in >= v0.18.0
pubsubTopics = conf.topicsDeprecated.split(" ")
else:
pubsubTopics = conf.topics
try:
await mountRelay(node, pubsubTopics, peerExchangeHandler = peerExchangeHandler)
except CatchableError:
Expand Down
13 changes: 8 additions & 5 deletions apps/wakunode2/config.nim
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ type
defaultValue: newSeq[ProtectedTopic](0)
name: "protected-topic" .}: seq[ProtectedTopic]


## Log configuration
logLevel* {.
desc: "Sets the log level for process. Supported levels: TRACE, DEBUG, INFO, NOTICE, WARN, ERROR or FATAL",
Expand All @@ -54,7 +53,6 @@ type
defaultValue: logging.LogFormat.TEXT,
name: "log-format" .}: logging.LogFormat


## General node config
agentString* {.
defaultValue: "nwaku",
Expand Down Expand Up @@ -207,11 +205,16 @@ type
defaultValue: false
name: "keep-alive" }: bool

topics* {.
desc: "Default topics to subscribe to (space separated list)."
defaultValue: "/waku/2/default-waku/proto"
topicsDeprecated* {.
desc: "Default topics to subscribe to (space separated list). DEPRECATED: please use repeated --topic argument instead."
defaultValue: ""
Copy link
Contributor

@alrevuelta alrevuelta May 12, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we keep the /waku/2/default-waku/proto here? otherwise old deployments using "topics" will break? (meaning they will no longer be subscribed)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh! Important point that I missed. @alrevuelta is right here. I think we should keep the default in both config options.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It shouldn't break because if nothing is specified, the default pubsub topic will get used.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you are right:

pubsubTopics = conf.topics

but perhaps a bit convoluted? can see you applied the changes thanks!

name: "topics" .}: string

topics* {.
desc: "Default topic to subscribe to. Argument may be repeated."
defaultValue: @["/waku/2/default-waku/proto"]
name: "topic" .}: seq[string]

## Store and message store config

store* {.
Expand Down