SSB plugin for discovery of other peers in the same LAN. Works by broadcasting UDP packets to all other peers in the local network. The data in these packets is (symmetrically) encrypted using your chosen network caps. Is backwards-compatible with ssb-local.
Prerequisites:
secret-stack@^6.2.0
npm install --save ssb-lan
Add this plugin to ssb-server like this:
var createSsbServer = require('ssb-server')
.use(require('ssb-onion'))
.use(require('ssb-unix-socket'))
.use(require('ssb-no-auth'))
.use(require('ssb-plugins'))
.use(require('ssb-master'))
.use(require('ssb-conn'))
+ .use(require('ssb-lan'))
.use(require('ssb-replicate'))
.use(require('ssb-friends'))
// ...
Now you should be able to access the following muxrpc APIs under ssb.lan.*
:
API | Type | Description |
---|---|---|
start() |
sync |
Triggers the start of LAN discovery of peers. |
stop() |
sync |
Stops the LAN discovery of peers if it is currently active. |
discoveredPeers() |
source |
A pull-stream that emits "discovery objects" (see definition below) every time a peer is (re)discovered on the local area network. Only peers using the same network caps are discovered. |
A "discovery" is an object with the following shape:
type Discovery = {
address: string;
verified: boolean;
};
By default, ssb-lan will operate two modes: legacy and normal. Legacy mode mimics how ssb-local behaves, broadcasting UDP packets with the same format for the contents of the packet, i.e. multiserver addresses as strings. Normal mode broadcasts packets with encrypted contents, using the network caps as symmetric encryption key.
You can turn off legacy mode by updating your SSB config object:
{
path: ssbPath,
keys: keys,
port: 8008,
conn: {
autostart: false
},
+ lan: {
+ legacy: false
+ }
}
MIT