General Rendezvous Server?

Is there a recommended way/examples for implementating rendezvous server for applications without webrtc and websocket?

How far along are we on the General Rendezvous Server?

I wanna advertise a service on the network and also get back a federated list of n number of peers that are offering that service. I have seen this functionality in go-libp2p discovery module. How do I achieve this in JS?

Right now I am using OrbitDB to store the peers who offer the service. My node gets the DB and dials the first n peers manually. But this approach won’t scale for millions of nodes.

I am not familiar enough with libp2p’s rendezvous protocol. Maybe @vasco-santos can help?

Hello @sahilpohare

Unfortunately both GO and JS implementations of Rendezvous are a prototype at this point.

Go implementation: https://github.com/libp2p/go-libp2p-rendezvous/pull/1
JS implementation:

Currently, Go is a bit behind the spec, the JS implementation is functional but needs to have better stress tests and reviews before we can move it forward. Sadly, this is not an immediate priority for the project, given that it is possible to rely on the DHT/Delegate Routers to achieve the same.

The 3 possibilities I can see at this point are:

  • Setup delegate routers and use provide / findProviders as a way to advertise the service and find the peers
  • Use the pubsub based peer discovery - your peers providing the service - example
  • Use the experimental JS Rendezvous PRs I linked and provide us feedback on its state