This package has been deprecated

    Author message:

    Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

    hyperdiscovery

    10.2.2 • Public • Published

    deprecated See hyperswarm replicator for similar functionality.

    More info on active projects and modules at dat-ecosystem.org


    hyperdiscovery

    Old documentation below

    This library is compatible with hypercore<=v7, which is now out of date.

    build status

    Join the p2p swarm for hypercore and hyperdrive. Uses discovery-swarm under the hood. Also works in web browsers using discovery-swarm-web.

    This module only works

    npm install hyperdiscovery
    

    Usage

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

    var hyperdrive = require('hyperdrive')
    var hypercore = require('hypercore')
    var Discovery = require('hyperdiscovery')
    
    var archive = hyperdrive('./database', 'ARCHIVE_KEY')
    var discovery = Discovery(archive)
    discovery.on('connection', function (peer, type) {
      console.log('got', peer, type)
      console.log('connected to', discovery.connections, 'peers')
      peer.on('close', function () {
        console.log('peer disconnected')
      })
    })
    
    // add another archive/feed later
    var feed = hypercore('./feed')
    discovery.add(feed) // adds this hypercore feed to the same discovery swarm

    Will use discovery-swarm to attempt to connect peers. Uses dat-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 hypercore feed:

    var hypercore = require('hypercore')
    var Discovery = require('hyperdiscovery')
    
    var feed = hypercore('/feed')
    var discovery = Discovery(feed)

    API

    var discovery = Discovery(archive, opts)

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

    discovery.add(archive, [opts])

    Add an archive/feed to the discovery swarm. Options will be passed to discovery-swarm. If you pass opts.announce as a falsy value you don't announce your port (discover-only mode).

    discovery.totalConnections

    Get length of the list of total active connections, across all archives and feeds.

    discovery.leave(discoveryKey)

    Leave discovery for a specific discovery key.

    discovery.rejoin(discoveryKey)

    Rejoin discovery for a discovery key (*must be added first using discovery.add).

    discovery.close()

    Exit the swarm, close all replication streams.

    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
    • bootstrap: [string], WebRTC bootstrap signal servers for web
    • discovery: string, discovery-swarm-stream server for web

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

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

    Debugging

    Set DEBUG='*' in the environment to enable debugging output inside discovery-swarm.

    See Also

    License

    ISC

    Keywords

    none

    Install

    npm i hyperdiscovery

    DownloadsWeekly Downloads

    84

    Version

    10.2.2

    License

    MIT

    Unpacked Size

    21.1 kB

    Total Files

    8

    Last publish

    Collaborators

    • cblgh
    • frando
    • jhand
    • juliangruber
    • karissa
    • leichtgewicht
    • mafintosh
    • maxogden
    • ninabreznik
    • pfrazee
    • rangermauve
    • serapath
    • the-real-dk
    • yoshuawuyts
    • zootella