-
Notifications
You must be signed in to change notification settings - Fork 2
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
Waku fleets: separate pubsub topic for development #13
Comments
Thanks for the issue! Regarding ethdenver requirements:
A quick solution for ethdenver would be to use |
Would we want to use #9 to avoid the dupe messages in filter? Should I just create an issue for the dupe message and we can track there? We are seeing this problem in js-waku examples. I agree for a separate pubsub topic for development purposes. In js-waku, we have a This is especially useful in the context of hackathon, workshop, PoC, so that developer can get going and have a reliable experience out-of-the-box. We currently connect to the wakuv2.prod fleet when such option is enabled. Which such options, developer could use the bootstrap option whether they were doing a hackathon, PoC or promoting software to prod. Now, by introducing a different pubsub topic for development, it creates some friction: when they want to promote their software to prod, they'll have to specify the "prod" pubsub topic. I think that's fine. Thoughts @hackyguru ?
Related to my comment above, js-waku default bootstrap option connects to the wakuv2,prod fleet by default. For stability reason and to ensure that developer's first experience with Waku is best, I would suggest that we subscrive the wakuv2.prod fleet to the dev topic too.
Recommended is
That's why I think it should be wakuv2.prod fleet, not test. |
Sure, that's fine. And way better indeed, since wakuv2.prod does not restart on every merge to master. Only thing left for ethdenver would be to have a separate topic to avoid having lots of traffic (since that fleet is connected to status.prod right now). Understand the default gossipsub topic is hardcoded, we can discuss this in our brainstorming session.
I brought this up a few weeks ago with @jm-clius but never really gave a detailed explanation of my idea. I think in the medium term (since it shouldn't be that difficult to implement), we should have separate and segregated environments (not just pubsub topics). A "production" (or mainnet) and a "staging" (testnet) one. Similar to what blockchains have (mainnet vs testnet). Over the longer term when we add (des)incentivization these networks will perhaps relate to the existing Ethereum mainnet and (Goerli most likely), but it's too early for this, leaving that aside by now. So I think we need:
Reasons why I think we need separate networks (and not just a dev-topic)
A non-exhaustive list of how to achieve this:
What do you think? Apologies if this derails from the main topic, can move it to another thread. "Waku fleets: separate networks production/development". |
Some responses :)
While I agree with doing this on
Indeed! Gossipsub should take care of building the mesh as long as the total number of peers is still relatively low and we can discover and maintain connectivity to "all peers", but this will become an issue in future for multiple networks/shards.
I roughly agree with your reasoning here for separate networks in the medium term. What I think would be a sufficient definition for what you term a separate network is one which is:
I think the static sharding strategy would provide us with this functionality? We could e.g. have a static shard formally allocated for a mainnet and one or more shards for testnet(s)? This would imply that |
Linking relevant issue: vacp2p/research#174 |
Yes agree. Disregard my comment :)
I'm not sure it would be a good idea to have "test shards", since imho mainnet/testnet should be a mirror/copy of each other to ensure that what works in one, works in the other one with just a minor tweak (change in Some related thoughts here |
Short term solution to fix this problem with all gathered feedback. wdyt?
Would this actions points comply with the requirements of this issue? |
Currently blocked by: waku-org/nwaku#1545 |
Please don't use spaces to separate values in CLI flags. |
I am not sure this can be closed just yet. I think we need some follow-up actions:
|
@fryorcraken Good points. Can we make a combo box in
Since the spec only talks about the default pubsub topic, I would perhaps leave it as it is. Meaning when no topic is specific just subscribe to the default one. |
Combo box is not really the way forward because that's not something a developer would want in their app, it just creates more confusion.
Good point. I think this warranties a RFC update to mention that the dev topic is recommended for development purposes. |
Re-opening as I believe we have pending items, |
From Discord: Ok we said that we should make the dev topic by default on dappnode for nwaku. Not much point doing that if nwaku on dappnode are the only nodes running on dev topic (with the fleets).
If we decide to use a dev network I think we need to do it properly across our ecosystem. |
Trying a more constructive/direct approach. Here is a proposed action plan:
|
The initial purpose of this change was simply to have another pubsub topic available to developers (specifically aimed at DappNode and the ETHDenver demos). While I agree that we can document its use better, I think fully switching our strategy from default -> dev becomes less important once static sharding for communities etc will be in place, which should be soon-ish. Happy to follow a more comprehensive approach if that's what we agree on. |
Right. The issue is that the usage of the dev pubsub topic has already leaked beyond EthDenver as it is made as the default pubsub topic in nwaku DappNode package. Something I don't fully agree with but was push to avoid issue with users staking Eth. Hence we have already started switching strategy from default to dev. Any thoughts? |
@fryorcraken closing this issue as not relevant given current shards approach. |
Problem
Dogfooding of Status Communities has recently started. Since Status currently uses the default Waku pubsub topic:
The Waku fleets (
wakuv2.prod
andwakuv2.test
) are currently only subscribed to this same default pubsub topic. Everyone using the default pubsub topic plus connecting to one of the Waku fleets will therefore be sharing (1) traffic and (2) infrastructure with the Status community dogfooding.This is potentially an issue for:
(1) other operators using the default network and who do not want to deal with Status community artefacts on the same network
(2) Status community dogfooding being affected by Waku testers/operators injecting traffic and testing on the same default network
(3) testers wanting to tryout Waku who do not have a "clean" network to bootstrap to (e.g. during workshop planned for ETHDenver)
Issues reported
Some issues reported that could be caused by Status Community traffic on the default network:
Longer term solution
Vac Secure Messaging is currently working with Status app to:
Interim suggestion (named shard)
Subscribe Waku fleets to one more pubsub topic for developers/operators/testers to use and remain unaffected on gossipsub level by Status traffic and vice versa. This pubsub topic could for example be
/waku/2/dev-waku/proto
. Fleet nodes would remain subscribed to both this dev topic and the default pubsub topic. However, Waku nodes could choose to subscribe to/waku/2/dev-waku/proto
only and be separated from those (including Status Communities) on the default network.What this does not solve:
Separating out the discv5 layer and differentiating networks/pubsub topics on discovery level. This would require the static
rshard
dimension which is being developed for the longer term use case. Nodes subscribed to the dev network will still discover and attempt connection to nodes in the default network - however, they will only form a mesh around other peers in the dev network.Why not simply have a "separate fleet"?
Separate fleet does not translate to separate network. Since we don't have a discv5 mechanism yet to differentiate networks/shards on the discovery level, fleets will likely still discover and connect to each other until this is in place.
cc @alrevuelta for ETHDenver requirements
The text was updated successfully, but these errors were encountered: