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

[Epic] Waku Relay scalability in the Browser #905

Open
3 of 12 tasks
fryorcraken opened this issue Aug 25, 2022 · 5 comments
Open
3 of 12 tasks

[Epic] Waku Relay scalability in the Browser #905

fryorcraken opened this issue Aug 25, 2022 · 5 comments
Assignees
Labels
epic Tracks a yearly team epic (only for waku-org/pm repo) track:restricted-run Restricted run track (Secure Messaging/Waku Product), e.g. filter, WebRTC

Comments

@fryorcraken
Copy link
Collaborator

fryorcraken commented Aug 25, 2022

Problem

See https://forum.vac.dev/t/waku-v2-scalability-studies/142/9?u=fryorcraken for original post

tl;dr:

  1. Browser nodes do not connect to each other with the currently available transport protocols (tcp, websocket).
  2. Browser nodes do not advertise themselves via the currently available discovery protocols (static list, DNS Discovery, discv5).
  3. If browser nodes were to advertise themselves, because of the ephemeral nature of a browser tab being opened, they would likely to poorly contribute to the Waku Relay network.

Proposed Solutions

0. Make Relay Production Ready

1. Enable browser to browser connection

Ref libp2p/specs#220

2. Peer Exchange "Push"

Once browser-to-browser connection is possible, then browser need to advertise themselves in way that works for short live nodes.

3. Waku Browser Extension

  • Scope and create a PoC that uses browser-to-browser connection
  • Scope and create a PoC that uses a local/user control service node to access the Waku network

Notes:

  • usage of the extension should be pseudo-transparent to the developer
  • Waku apps with a browser such as Status could provide an interface equivalent to the extension
@fryorcraken fryorcraken added the track:restricted-run Restricted run track (Secure Messaging/Waku Product), e.g. filter, WebRTC label Aug 25, 2022
@fryorcraken fryorcraken added the milestone Tracks a subteam milestone label Aug 25, 2022
@fryorcraken fryorcraken moved this to Todo in Waku Aug 25, 2022
@fryorcraken fryorcraken added this to Waku Aug 25, 2022
@fryorcraken fryorcraken mentioned this issue Aug 25, 2022
11 tasks
@fryorcraken fryorcraken changed the title Waku Relay scability in the Browser Waku Relay scalability in the Browser Aug 26, 2022
@fryorcraken fryorcraken moved this from Todo to Icebox in Waku Feb 14, 2023
@fryorcraken fryorcraken moved this from Icebox to To Do in Waku May 18, 2023
@weboko
Copy link
Collaborator

weboko commented Aug 7, 2023

Weekly update

@fryorcraken
Copy link
Collaborator Author

fryorcraken commented Aug 9, 2023

Need to review this:

  1. new transport protocols (webrtc browser<>server, webtransport) are likely to be used for Waku scalability in general so that browser nodes can connect to status desktop nodes
  2. relay in the browser is more for a privacy focused item, probably better handled in 2024. It is also a very watched/requested topic, so it could somehow fall under making js-waku relevant for the projects using it

For now, let's continue on the current work wich aims to chip a PoC that run Waku Relay over WebRTC to other node. Once done, we can review the work we want to do this year.

@fryorcraken fryorcraken changed the title Waku Relay scalability in the Browser [Epic] Waku Relay scalability in the Browser Aug 24, 2023
@fryorcraken fryorcraken added epic Tracks a yearly team epic (only for waku-org/pm repo) and removed milestone Tracks a subteam milestone labels Aug 24, 2023
@weboko weboko self-assigned this Aug 31, 2023
@weboko
Copy link
Collaborator

weboko commented Sep 4, 2023

Weekly update:

  • achieved: complete PoC of Waku Relay over WebRTC using circuit relay
  • next: pause this to prioritize Waku Network milestone

@danisharora099
Copy link
Collaborator

danisharora099 commented Sep 6, 2023

As a part of this epic, we should also track work around looking into implementing other more reliable NAT traversal techniques by libp2p like:

Both of these have support for js-libp2p in browser and might help with NAT traversal, along with WebRTC

@fryorcraken fryorcraken moved this from To Do to Icebox in Waku Oct 27, 2023
@fryorcraken
Copy link
Collaborator Author

Icebox'd, see waku-org/pm#50 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
epic Tracks a yearly team epic (only for waku-org/pm repo) track:restricted-run Restricted run track (Secure Messaging/Waku Product), e.g. filter, WebRTC
Projects
Status: Icebox
Development

No branches or pull requests

3 participants