## 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. #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?