Sign inSign up

libp2p/websocket-star-rendezvous

By libp2p

•Updated almost 8 years ago

Websocket star rendezvous server

Image
1

2.1K

libp2p/websocket-star-rendezvous repository overview

⁠libp2p-websocket-star-rendezvous

Travis Circle Coverage david-dm

The rendezvous service for libp2p-websocket-star⁠.

⁠Lead Maintainer

Jacob Heun⁠

⁠Descriptions

Nodes using libp2p-websocket-star will connect to a known point in the network, a rendezvous point where they can learn about other nodes (Discovery) and route their messages to other nodes (2 hop message routing, also known as relay).

⁠Usage

libp2p-websocket-star-rendezvous is the rendezvous server required for libp2p-websocket-star and can be used to start a rendezvous server for development. To do that, first install the module globally in your machine with:

> npm install --global libp2p-websocket-star-rendezvous

This will install a rendezvous CLI tool. Now you can spawn the server with:

> rendezvous --port=9090 --host=127.0.0.1

Defaults:

  • port - 9090
  • host - '0.0.0.0'

⁠Docker

A docker image is offered for running this service in production

docker pull libp2p/websocket-star-rendezvous:release
docker run -d -p 9090:9090 --name rendezvous libp2p/websocket-star-rendezvous:release

To disable prometheus metrics run the server with -e DISABLE_METRICS=1

docker run -d -p 9090:9090 --name rendezvous -e DISABLE_METRICS=1 libp2p/websocket-star-rendezvous:release

⁠Hosted Rendezvous server

We host a rendezvous server at ws-star.discovery.libp2p.io that can be used for practical demos and experimentation, it should not be used for apps in production.

A libp2p-websocket-star address, using the signalling server we provide, looks like:

/dns4/ws-star.discovery.libp2p.io/wss/p2p-websocket-star/ipfs/<your-peer-id>

Note: The address above indicates WebSockets Secure, which can be accessed from both http and https.

⁠This module uses pull-streams

We expose a streaming interface based on pull-streams, rather then on the Node.js core streams implementation (aka Node.js streams). pull-streams offers us a better mechanism for error handling and flow control guarantees. If you would like to know more about why we did this, see the discussion at this issue⁠.

You can learn more about pull-streams at:

⁠Converting pull-streams to Node.js Streams

If you are a Node.js streams user, you can convert a pull-stream to a Node.js stream using the module pull-stream-to-stream⁠, giving you an instance of a Node.js stream that is linked to the pull-stream. For example:

const pullToStream = require('pull-stream-to-stream')

const nodeStreamInstance = pullToStream(pullStreamInstance)
// nodeStreamInstance is an instance of a Node.js Stream

To learn more about this utility, visit https://pull-stream.github.io/#pull-stream-to-stream⁠.

LICENSE MIT

Tag summary

Content type

Image

Digest

Size

365.8 MB

Last updated

almost 8 years ago

docker pull libp2p/websocket-star-rendezvous