dweb-discovery

1.0.0 • Public • Published

dweb-discovery

build status

Join the p2p swarm for ddatabase, dwebfs, and dappdb feeds. Uses dweb-discovery-swarm under the hood.

npm install dweb-discovery

Usage

Run the following code in two different places and they will replicate the contents of the given ARCHIVE_KEY.

var dwebfs = require('dwebfs')
var swarm = require('dweb-discovery')

var archive = dwebfs('./database', 'ARCHIVE_KEY')
var sw = swarm(archive)
sw.on('connection', function (peer, type) {
  console.log('got', peer, type) 
  console.log('connected to', sw.connections.length, 'peers')
  peer.on('close', function () {
    console.log('peer disconnected')
  })
})

Will use dweb-discovery-swarm to attempt to connect peers. Uses datland-swarm-defaults for peer introduction defaults on the server side, which can be overwritten (see below).

The module can also create and join a swarm for a ddatabase feed:

var ddatabase = require('ddatabase')
var swarm = require('dweb-discovery')

var feed = ddatabase('/feed')
var sw = swarm(feed)

The module can also create and join a swarm for a dappdb feed:

var dappdb = require('dappdb')
var swarm = require('dweb-discovery')

var db = dappdb('/feed', 'ARCHIVE_KEY')
db.on('ready', function() {
  var sw = swarm(db)
})

A dappdb database must be ready before attempting to connect to the swarm. When download is enabled the swarm will automatically db.authorize() all connecting peers.

API

var sw = swarm(archive, opts)

Join the p2p swarm for the given feed. The return object, sw, is an event emitter that will emit a peer event with the peer information when a peer is found.

sw.connections

Get the list of currently active connections.

sw.close()

Exit the swarm

Options
  • stream: function, replication stream for connection. Default is archive.replicate({live, upload, download}).
  • upload: bool, upload data to the other peer?
  • download: bool, download data from the other peer?
  • port: port for discovery swarm
  • utp: use utp in discovery swarm
  • tcp: use tcp in discovery swarm

Defaults from datland-swarm-defaults can also be overwritten:

  • dns.server: DNS server
  • dns.domain: DNS domain
  • dht.bootstrap: distributed hash table bootstrapping nodes

See Also

License

ISC

Readme

Keywords

none

Package Sidebar

Install

npm i dweb-discovery

Weekly Downloads

4

Version

1.0.0

License

ISC

Unpacked Size

9.22 kB

Total Files

7

Last publish

Collaborators

  • shikhars3711