-
Notifications
You must be signed in to change notification settings - Fork 58
Description
Background
When I initially created this project, I aimed to have it simply work when loaded in the browser for demo purposes. I wanted to show how easy libp2p makes it for different runtimes and languages to connect to each other — even when behind NAT.
I wanted to be able to just share the URL as part of a talk/demo, and for browsers to just establish connectivity with each other.
Moreover, it expands the scope of this demo app to include a critical part of any libp2p app, namely peer discovery/routing.
Current challenges
-
There's no existing protocol or suggestions regarding how browsers should discover each other's webrtc multiaddrs.
-
The example relies on hardcoded ephemeral multiaddrs — this is actually an antipattern because the multiaddrs are invalid after a the certificates are rotated (~ 2 weeks).
Ideal case
- We have both Rust and Go peers deployed. feat(rust): automated deployment to fly.io #91 should solve the Rust node
- The js peer has the PeerIds of the Rust and Go peers, hardcoded
- The js peer can do peer routing to discover the latest multiaddrs of the Rust/Go peers
Open questions
- Which peer routing/discovery approach should be used for this? DHT with the public bootstrap nodes or Rendezvous?