Security News
Weekly Downloads Now Available in npm Package Search Results
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
libp2p-webrtc-star
Advanced tools
libp2p WebRTC transport that includes a discovery mechanism provided by the signalling-star
libp2p WebRTC transport that includes a discovery mechanism provided by the signalling-star
libp2p-webrtc-star
is one of the WebRTC transports available for libp2p. libp2p-webrtc-star
incorporates both a transport and a discovery service that is facilitated by the signalling server, also part of this module.
> npm install libp2p-webrtc-star
To use this module in Node.js, you have to BYOI of WebRTC, there are multiple options out there, unfortunately, none of them are 100% solid. The ones we recommend are: wrtc and electron-webrtc.
Instead of just creating the WebRTCStar instance without arguments, you need to pass an options object with the WebRTC implementation:
const wrtc = require('wrtc')
const electronWebRTC = require('electron-webrtc')
const WStar = require('libp2p-webrtc-star')
// Using wrtc
const ws1 = new WStar({ wrtc: wrtc })
// Using electron-webrtc
const ws2 = new WStar({ wrtc: electronWebRTC() })
const WStar = require('libp2p-webrtc-star')
const multiaddr = require('multiaddr')
const pipe = require('it-pipe')
const { collect } = require('streaming-iterables')
const addr = multiaddr('/ip4/188.166.203.82/tcp/20000/wss/p2p-webrtc-star/p2p/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSooo2a')
const ws = new WStar({ upgrader })
const listener = ws.createListener((socket) => {
console.log('new connection opened')
pipe(
['hello'],
socket
)
})
await listener.listen(addr)
console.log('listening')
const socket = await ws.dial(addr)
const values = await pipe(
socket,
collect
)
console.log(`Value: ${values.toString()}`)
// Close connection after reading
await listener.close()
ws.discovery
Nodes using libp2p-webrtc-star
will connect to a known point in the network, a rendezvous point where they can learn about other nodes (Discovery) and exchange their SDP offers (signaling data).
libp2p-webrtc-star
comes with its own signaling server, used for peers to handshake their signaling data and establish a connection. You can install it in your machine by installing the module globally:
> npm install --global libp2p-webrtc-star
This will expose a webrtc-star
cli tool. To spawn a server do:
> star-signal --port=13579 --host=127.0.0.1
Defaults:
port
- 9090host
- '0.0.0.0'We host signaling servers at wrtc-star1.par.dwebops.pub
and wrtc-star2.sjc.dwebops.pub
, that can be used for practical demos and experimentation, it should not be used for apps in production. Check Deployment.md for how to deploy your own server.
A libp2p-webrtc-star address, using the signaling server we provide, looks like:
/dns4/wrtc-star1.par.dwebops.pub/tcp/443/wss/p2p-webrtc-star/p2p/<your-peer-id>
Note: The address above indicates WebSockets Secure, which can be accessed from both http and https.
FAQs
libp2p WebRTC transport that includes a discovery mechanism provided by the signalling-star
We found that libp2p-webrtc-star demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Security News
A Stanford study reveals 9.5% of engineers contribute almost nothing, costing tech $90B annually, with remote work fueling the rise of "ghost engineers."
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.