Skip to content

Help js browser peers discover each other out of the box  #95

@2color

Description

@2color

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?

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions