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

feat: add migration instructions #211

Merged
merged 21 commits into from
Sep 16, 2024
Merged

Conversation

gabrielmer
Copy link
Contributor

@gabrielmer gabrielmer commented Aug 29, 2024

Adding section with instructions on how to migrate a node after new releases

@gabrielmer gabrielmer self-assigned this Aug 29, 2024
Copy link

vercel bot commented Aug 29, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
docs-waku-org ✅ Ready (Inspect) Visit Preview 💬 Add feedback Sep 14, 2024 9:09pm

@fryorcraken
Copy link
Contributor

@gabrielmer are you able to build the website locally without any issue?

@gabrielmer
Copy link
Contributor Author

@gabrielmer are you able to build the website locally without any issue?

Was able to debug the issue locally and now everything should work :)

Thank you!

Copy link
Contributor

@Ivansete-status Ivansete-status left a comment

Choose a reason for hiding this comment

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

Thanks for that! I think I may lack some more context to understand the change better.

I've added some comments that I hope you find useful.

Also, I'm a little bit worried that we might need to maintain this page. I think it'd be better to address people towards the nwaku's CHANGELOG.md and then only maintain that CHANGELOG.md.

docs/guides/nwaku/upgrade-instructions.md Outdated Show resolved Hide resolved

In order to migrate your existing application, you need to:

1. Make sure that your clients are sending messages to pubsub topics in the required format.
Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe we can elaborate a bit more about how to validate that a client is sending messages

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Please take a look now. The idea here was that if an user interacts with a node via REST clients or js-waku, that they use valid pubsub topics.

It's hard to get into details because there's so many ways of interacting with a node. But at the end it boils down to REST and js-waku usage. And when using any of them, valid topics should be configured.

Let me know if you have a better way of explaining it :))

In order to migrate your existing application, you need to:

1. Make sure that your clients are sending messages to pubsub topics in the required format.
2. When running a node with the `--pubsub-topic` CLI flag, the values provided should comply with the static sharding format.
Copy link
Contributor

Choose a reason for hiding this comment

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

Interesting if we could add an example about the "static sharding format".

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I added the definition of the static sharding format right above it, in

Named sharding was deprecated in this version. This means that pubsub topics will only be supported if they comply with the static sharding format: <code>/waku/2/rs/&lt;CLUSTER_ID&gt;/&lt;SHARD_ID&gt;</code><br /><br />

do you think we should repeat that point?


1. Make sure that your clients are sending messages to pubsub topics in the required format.
2. When running a node with the `--pubsub-topic` CLI flag, the values provided should comply with the static sharding format.
3. If your application relies on nodes or clients that may not be updated immediately, keep your node on an older version while subscribing to both the current pubsub topic and the new pubsub topic that will comply with the static sharding format. In that case, you can keep backward compatibility for a migration period.
Copy link
Contributor

Choose a reason for hiding this comment

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

Sorry but my single neuron can't quite follow that. Maybe we can have an example :)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Lol, this was proposed by @fryorcraken , I didn't think about it before. But if some application relies on nodes that use named sharding to interact with the network, if we upgrade our nodes and stop allowing named sharding, then all the traffic by outdated clients will be rejected.

Sometimes people want to give a longer and smoother migration period and give more time for users to update their clients. So by running nodes that support both the deprecated naming version and the new version, traffic can be relayed for people with outdated and with updated clients. Once there's almost no outdated clients, then they can update and completely break support for them.

Does it make sense? If so, do you think that adding an explanation like this would help? Thinking on how can I word an example for this without deviating too much from the main point

Copy link
Contributor

@Ivansete-status Ivansete-status left a comment

Choose a reason for hiding this comment

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

LGTM! Thanks!

@gabrielmer gabrielmer merged commit 8ca7835 into develop Sep 16, 2024
3 checks passed
@gabrielmer gabrielmer deleted the feat-add-migration-instructions branch September 16, 2024 09:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants