Skip to content
forked from ssbc/ssb-lan

SSB plugin for discovery of other peers in the same LAN

License

Notifications You must be signed in to change notification settings

fraction/ssb-lan

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ssb-lan

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.

Usage

Prerequisites:

  • Requires Node.js 6.5 or higher
  • Requires 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;
};
  • address: this is a multiserver address that the remote peer is declaring to us in the LAN
  • verified: this is a boolean indicating whether we are cryptographically sure the remote peer is not spoofing their multiserver address, and that they actually own the ed25519 identity which they announced

License

MIT

About

SSB plugin for discovery of other peers in the same LAN

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 53.6%
  • JavaScript 46.4%