-
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
Status MVP: Status Core Contributors use Status #7
Comments
Also, the Network Topology section deems clarification.
Once this is done, we can ask Status Client team to:
Finally, edit the description to:
|
Network TopologyWork effort for Topology 1: Waku RelayFor (1) I think the scope and order of work is (roughly):
This solution would then need to be targeted for dogfooding under various scenarios. Work effort for Topology 2: Waku Filter, Waku LightpushThis topology is much more risky and has many more unknowns. Neither of these protocols have been target tested for dogfooding, scalability is unknown, some redundancy is required client-side, etc. For this to get to production, I can think of at least the following outstanding items likely to be important in the protocol itself:
This implies updates to the protocols, implementation changes for go-waku and nwaku and targeted dogfooding. I don't think it's feasible to support this topology within a short time frame. More on this ongoing effort here and here. |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
I confirm that go-waku supports upnp / pmp. (tested and also confirmed by @cammellos as he was able to reach my machine). Regarding
I had an implementation of libp2p rendezvous client and server that I removed recently in waku-org/go-waku#351 which had a change to use ENRs instead of signed peer records. If necessary it can be added back and remove the change that I did so it uses libp2p signed records.
While go-libp2p has an implementation of kad-dht available (https://pkg.go.dev/github.com/libp2p/go-libp2p-kad-dht), it needs to be integrated in go-waku. |
@richard-ramos, indeed. Risk is of course that this has not been dogfooded, but it's not a resource-intensive protocol (cached set of random peers should be available immediately upon request) |
@richard-ramos the idea under Topology (1) is based roughly off what was discussed before, with some additions (e.g. the proposed discovery methods, using waku peer exchange, etc.) Does the work items/order make roughly sense to you? Do we already know, maybe via AutoNat, roughyl what proportion of clients are affected by unsupported NAT traversal? |
The work items do make sense. Currently I'm doing a poll in #waku-e2e to get an idea of the status of NAT across clients. |
Are you saying if AutoNat fails for an individual node then they use AutoRelay (or you mentioned peer exchange too). Or are you saying that if the technology overall fails, then the backup plan would be to use AutoRelay? |
@jm-clius considering that we aim for p2p connections between Status Desktop items. Then we can imagine that some peers will provide poor connection quality (high latency, low bandwidth). How can we scope this as part of this milestone? |
The former. In other words, the circuit-relay-to-hole-punching procedure can be triggered if the client determines its not publicly reachable (via AutoNat). I'm also saying that if AutoNat shows that existing NAT traversal techniques generally work for most clients, this AutoRelay/hole-punching procedure may not be critical for this milestone (those clients can connect to others after discovering using Waku Peer Exchange, for example).
It depends: our ultimate solution for such peers is filter and lightpush, which is out of scope. This can be enabled as experimental feature and must be dogfooded already, but with the understanding that these are beta features. An intermediate step would be to e.g. use Waku Peer Exchange as light discovery mechanism and attempt to replenish connectivity in this way. Relay can be surprisingly resilient as it includes "error mechanisms" such as the IWANT/IHAVE control checks. This would imply some extra latency for such clients. |
Looks like AutoNat is not needed: https://docs.google.com/spreadsheets/d/1xgtSQpIUB1k1aIenSF_wpc4zfXuuykKbX5Ne4SNaOyw/edit?usp=sharing @Menduist could you help me here summarize the requirements for a healthy p2p network? @jm-clius mentioned that 25% of nodes need to accept incoming connections, is that for a healthy gossipsub with |
Another topic not discussed is the expectation of node availability. |
It looks like NAT traversal strategy are not needed for this milestones as the connectivity issue was related to discv5. @richard-ramos can you please confirm and provide reference to the PR? |
@LNSD What kind of information are we able to extract from Status Prod fleet sqlite? e..g current DB size? |
Don't have the metric right now, but I'm planning to report on it (having problems discovering peers with the network monito tool). Is this what you are referring to?
Not exactly the same but this is what I have right now:
One interesting finding regarding the traffic:
Will continue with this, hope this helps by now. |
AutoNat is part of the Hole-Punching stack, so it is required
This spreadsheet is based around the percent of the network that a type of node can reach. 25% comes from = 75% is apparently the best we can hope for given network shares, UPnP popularity & Hole-Punching success rates. |
Let's talk to Waku archive (the Waku store message persistence backend). SQLite is just one of the possible persistence backend drivers. The current exposed metrics are:
|
Availability over the last 7 days have been 92.23%. See this report. And note that for the last 5 days it's higher (~95%), likely due to more config and other improvements. Report here |
@fryorcraken |
How is this issue different from #8? Can one be closed? |
This issue was for the Desktop users. #8 is for launching on Mobile too. Closing this. |
Oh gotcha |
Deadline: Beginning of December
High level requirement: 120-130 people uses Status Communities over Waku v2.
Details
Client Diversity
Network Connectivity
Network Topology
Details
No one-size-fits-all solution for NAT. It will be an iterative process based on dogfooding feedback.
Possible other workaround.
Roadmap
Connection Numbers
Target 150 nodes.
Each node has at least one connection with a bootstrap node. Should assume two?
Status Client to confirm expected usage of Status Web.
Roadmap
Availability
Waku Store
Store Data Volume
Store Query Frequency
Assuming pattern defined in Network connectivity
peak of queries when app start at begin of work day. Monday highest due to weekend overlap. ~90 CCs in Europe.
Need to understand total volume of queries based on # of communities, channels, messages and contacts
Status Client to confirm expected usage of Status Web.
Store Query Format
Roadmap
Issues:
Peer Behaviour
Bridging
Peer Persistence
The text was updated successfully, but these errors were encountered: