-
Notifications
You must be signed in to change notification settings - Fork 14
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Roughly agree with these changes, except changing the default pubsub topic itself, which would be an unnecessarily complicated migration (it is used by Status, for example).
content/docs/rfcs/23/README.md
Outdated
|
||
`/waku/2/default-waku/proto` | ||
`/waku/2/default-waku/` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure we need to change the default named pubsub topic (this would require a finicky migration). We can just mention that for legacy reasons it has the /proto
encoding trailer, but that we no longer support semantic interpretation of that suffix. In other words, it still adheres to the format /waku/2/{topic-name}
, but for legacy reasons {topic-name}
is default-waku/proto
. The same goes for the recently introduced /waku/2/dev-waku/proto
topic.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agree with @jm-clius. For compatibility with the existing implementations, we should support both topics as the default topic:
/waku/2/default-waku/proto
/waku/2/default-waku
The same way Protocol labs does with the multiaddr protocol ipfs
, which is an alternate form for p2p
for backward compatibility reasons.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree with keeping /waku/2/default-waku/proto
Having two default topics would be a third option.
If I understand correctly, @jm-clius suggestion is only use /waku/2/default-waku/proto
as the default topic.
While /waku/2/default-waku
would be a valid topic, it is is not declared as a default.
Co-authored-by: Hanno Cornelius <68783915+jm-clius@users.noreply.github.com>
Co-authored-by: Hanno Cornelius <68783915+jm-clius@users.noreply.github.com>
Agreed. I will change that back and explain the new format with another example. |
content/docs/rfcs/23/README.md
Outdated
### Topic sharding example | ||
|
||
Topic sharding is currently not supported by default, but is planned for the future in order to deal with increased network traffic. | ||
Here's an example of what this might look like: | ||
The following is an example of named sharding, as specified in [51/WAKU2-RELAY-SHARDING](/spec/51). | ||
|
||
``` | ||
waku/2/waku-9_shard-0/proto | ||
waku/2/waku-9_shard-0/ | ||
... | ||
waku/2/waku-9_shard-9/proto | ||
waku/2/waku-9_shard-9/ | ||
``` | ||
|
||
This indicates explicitly that the network traffic has been partitioned into 10 buckets. | ||
|
||
### Compression example | ||
|
||
Not yet implemented, but would be easy to add with: | ||
|
||
`/waku/2/default-waku/proto_snappy` | ||
Besides named sharding, [51/WAKU2-RELAY-SHARDING](/spec/51) specifies two more sharding methods: static sharding and automatic sharding. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This section does not convince me because this is referencing something that references this RFC (I see a cyclic dependency 😅). I would not specify anything about sharding in RFC 23.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Additionally, you have already provided some examples above, rs/0/2
. So I would leave this part for RFC 51.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The reason I mention that here is: 23/ gives some advice on how to shard, and how to use topics beyond just naming.
If we leave this in, imo, it makes sense to ref to 51/.
I see two options:
- leave it as it is (inlc. the cyclic ref)
- remove suggestions beyond naming (also the advice to use the default topic) from 23/.
Imo, the second option would be cleaner, and I agree the cyclic ref is not nice.
I chose 1) to have minimal changes, but happy to switch to 2).
Wdyt? Also cc @jm-clius
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(2) makes the most sense.
I've been trying to find specific guidelines on cyclic dependencies and cross-referencing in RFCs when evolving a concept. This of course cannot be done for normative references, but IMO, since this is not a normative RFC and 51
is not a normative reference, I don't have a major problem to have an appendix/section which is not part of the main text that briefly points people to the evolution of ideas in this RFC in 51
. It makes navigating to the latest "full picture" a bit easier.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just to be sure, that would be (1) in the list?
So, keeping the suggestions as well as refs to /51
(To me both are fine. Both have different advantages. And I agree with the point of easier navigation :)).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mmm, I had more in mind simplifying this whole section to a line or two in an appendix ("Future work"?) with possible reference to 51
for easier navigation (but, in other words, the specification for named sharding and default pubsub topic happens there, not in 23
). But I don't have a strong opinion here, because we tend to be more pragmatic when it's not a normative spec. Might make sense to just do the simplest thing here for now.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like this the most :).
Just kept the topic recommendation in 23/ to not change too much, given the RFC moved to draft state.
But as you said, it is informational and should be fine.
I'll adjust it, and we can have another round of discussion on this.
It is not a blocker, because in any case we agreed on how the implementation should look like :).
content/docs/rfcs/23/README.md
Outdated
@@ -184,3 +197,5 @@ Copyright and related rights waived via | |||
8. [15/WAKU-BRIDGE](/spec/15) | |||
|
|||
9. [26/WAKU-PAYLOAD](/spec/26) | |||
|
|||
10. [51/WAKU2-RELAY-SHARDING](/spec/51) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same thing with the references.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same reason as above.
content/docs/rfcs/51/README.md
Outdated
With named sharding, managing discovery falls into the responsibility of apps. | ||
|
||
The default Waku pubsub topic `/waku/2/default-waku/proto` can be seen as a named shard available to all app protocols. | ||
The default Waku pubsub topic `/waku/2/default-waku` can be seen as a named shard available to all app protocols. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The same comment as @jm-clius pointed out, for compatibility with the existing implementations, we should support both topics as the default topic:
/waku/2/default-waku/proto
/waku/2/default-waku
The same way Protocol labs does with the multiaddr protocol ipfs
which is an alternate form for p2p
for backward compatibility reasons.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(see above)
Thanks for the feedback :). My replys are in-line. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As I can see we are removing proto
from the gossipsub topic but its still in the content topic? Is that correct or am I missing something?
|
||
``` | ||
waku/2/waku-9_shard-0/proto | ||
waku/2/waku-9_shard-0/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why not waku/2/rs/9/0
? like in the other example?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is an example for named sharding, not static sharding.
That is correct. Reason is in the RFC update (this PR). |
Updates in 233fa61 :
Wdyt? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
Co-authored-by: Hanno Cornelius <68783915+jm-clius@users.noreply.github.com>
Co-authored-by: Hanno Cornelius <68783915+jm-clius@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM ✅
Background
This PR
static-rshard
to `rs/{encoding}
part of the pub sub topic name, including removing/proto
from the default topic.(Copied from a note added to 23/ with this PR:)
Open
adjust test vectors in 14/WAKU2-MESSAGE to the updated default topic nameadjust 36/WAKU2-BINDINGS-API to the updated default topic name(edit: we will keep the old default topic for backwards compatibility.)
Future