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

docs: extend waku store config tutorial of the operator docs #1359

Merged
merged 4 commits into from
Nov 10, 2022

Conversation

LNSD
Copy link
Contributor

@LNSD LNSD commented Nov 8, 2022

This PR covers the work pending of #1293

Same here:

I am not 100% sure if this is the right place (the correct markdown file) to provide these details. If you know a better place where to specify this information, do not hesitate to suggest it in the comments.

  • Extend the operator's documentation (the store configuration tutorial) with the changes in the waku store protocol configuration

@LNSD LNSD added documentation Improvements or additions to documentation track:production labels Nov 8, 2022
@LNSD LNSD self-assigned this Nov 8, 2022
@status-im-auto
Copy link
Collaborator

status-im-auto commented Nov 8, 2022

Jenkins Builds

Click to see older builds (10)
Commit #️⃣ Finished (UTC) Duration Platform Result
⁉️ 6b476a4 #1 2022-11-08 22:31:28 ~4 min linux 📄log
⁉️ 6b476a4 #1 2022-11-08 22:34:26 ~7 min macos 📄log
⁉️ 3f5cc52 #2 2022-11-09 09:12:07 ~8 min macos 📄log
⁉️ 3f5cc52 #2 2022-11-09 09:12:13 ~8 min linux 📄log
⁉️ 3f5cc52 #3 2022-11-09 09:12:13 ~7 min linux 📄log
⁉️ 3f5cc52 #3 2022-11-09 09:13:29 ~9 min macos 📄log
⁉️ 53a4213 #4 2022-11-09 09:19:35 ~6 min linux 📄log
⁉️ 53a4213 #4 2022-11-09 09:19:48 ~7 min macos 📄log
⁉️ fdabfc7 #5 2022-11-09 12:24:55 ~4 min linux 📄log
⁉️ fdabfc7 #5 2022-11-09 12:27:03 ~7 min macos 📄log
Commit #️⃣ Finished (UTC) Duration Platform Result
⁉️ f887d8f #6 2022-11-09 16:10:14 ~5 min linux 📄log
⁉️ f887d8f #6 2022-11-09 16:49:02 ~44 min macos 📄log
⁉️ a4e58a6 #7 2022-11-10 08:59:35 ~4 min linux 📄log
⁉️ a4e58a6 #7 2022-11-10 09:01:02 ~6 min macos 📄log

Copy link
Contributor

@rymnc rymnc 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!

docs/operators/how-to/configure-store.md Show resolved Hide resolved
@LNSD LNSD force-pushed the docs-store-config branch from 3f5cc52 to 53a4213 Compare November 9, 2022 09:12
Copy link
Contributor

@kaiserd kaiserd left a comment

Choose a reason for hiding this comment

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

LGTM.
Left some minor comments.

docs/operators/how-to/configure-store.md Outdated Show resolved Hide resolved

## Configuring the node as a store service node

If the waku store node is enabled (the `--store` option is set to `true`) the node will store historical messages and will be able to serve those messages to the waku store clients.
Copy link
Contributor

Choose a reason for hiding this comment

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

Does that mean storing messages is default? (Because --store=true is default)

Copy link
Contributor

Choose a reason for hiding this comment

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

I'd make it explicit above that you need to set --store=false and set --storenode to setup a client only store-node.

Copy link
Contributor Author

@LNSD LNSD Nov 9, 2022

Choose a reason for hiding this comment

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

Does that mean storing messages is default? (Because --store=true is default)

Yes, that's what I meant with "the node will store historical messages".

I'd make it explicit above that you need to set --store=false and set --storenode to setup a client only store-node.

This is not the case. Both things (server and client) are independent. You can have both on, both off, or one on and the other off.

This is what I meant with this: https://github.com/status-im/nwaku/pull/1359/files?diff=split&w=0#diff-a2d58beafcccb9e2b626c20cb0e31383f1107c520e7a427e20d2896763f71eb7R16 😁

Copy link
Contributor

Choose a reason for hiding this comment

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

True, but it may be worth spelling out in the client section that to configure a client only store must explicitly be set to false. This is clearly implied, of course, but we should assume that operators will just skip to the section they're interested in and may be surprised that following the client guidelines lead to a node that's also persisting messages.

Not part of this conversation, but wondering if shouldn't rather make the default for store false. Otherwise many operators upgrading after the release will suddenly start persisting messages. We can warn them, of course, but I think the sensible default for a nwaku node should just be a relay node.

Copy link
Contributor

@alrevuelta alrevuelta 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!

@LNSD LNSD merged commit 4e5318b into master Nov 10, 2022
@LNSD LNSD deleted the docs-store-config branch November 10, 2022 14:37
Copy link
Contributor

@jm-clius jm-clius 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. Apologies for only reviewing after merging. Comments below are not critical at all and can be addressed in future. A good idea to follow semantic line breaks in future. :)

Currently store service nodes use, by default, a message store backed by an in-disk SQLite database. Most Waku messages average a size of 1KB - 2KB, implying a minimum memory requirement of at least ~250MB
Copy link
Contributor

Choose a reason for hiding this comment

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

Great to have some numbers here!

* `--store-message-retention-policy`: This option controls the retention policy i.e., how long certain messages will be persisted. Two different retention policies are supported:
+ The time retention policy,`time:<duration-in-seconds>` (e.g., `time:14400`)
+ The capacity retention policy,`capacity:<messages-count>` (e.g, `capacity:25000`)
+ To disable the retention policy, explicitly, set this option to to `""`, an empty string.
Copy link
Contributor

Choose a reason for hiding this comment

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

Can we spell out the implications? Something like: Disabling the retention policy implies that, from nwaku's perspective, messages will either be persisted indefinitely or that retention is managed by a third party outside of the node.


## Configuring the node as a store service node

If the waku store node is enabled (the `--store` option is set to `true`) the node will store historical messages and will be able to serve those messages to the waku store clients.
Copy link
Contributor

Choose a reason for hiding this comment

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

True, but it may be worth spelling out in the client section that to configure a client only store must explicitly be set to false. This is clearly implied, of course, but we should assume that operators will just skip to the section they're interested in and may be surprised that following the client guidelines lead to a node that's also persisting messages.

Not part of this conversation, but wondering if shouldn't rather make the default for store false. Otherwise many operators upgrading after the release will suddenly start persisting messages. We can warn them, of course, but I think the sensible default for a nwaku node should just be a relay node.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

6 participants