hyperdiscovery

Join the swarm for a given hypercore, hyperdrive, or hyperdb feed.

  • 所有者: dat-ecosystem-archive/hyperdiscovery
  • 平台:
  • 許可證: MIT License
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

hyperdiscovery

DEPRECATED

This module has been deprecated in favor of
hyperswarm/replicator which is
compatible with hypercore v8.

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

See Also

License

ISC

主要指標

概覽
名稱與所有者dat-ecosystem-archive/hyperdiscovery
主編程語言JavaScript
編程語言JavaScript (語言數: 2)
平台
許可證MIT License
所有者活动
創建於2016-11-28 21:05:58
推送於2022-01-06 16:08:36
最后一次提交2022-01-06 17:08:32
發布數42
最新版本名稱v10.2.1 (發布於 2019-11-06 15:48:44)
第一版名稱v1.0.1 (發布於 2016-06-01 17:58:53)
用户参与
星數134
關注者數12
派生數30
提交數213
已啟用問題?
問題數17
打開的問題數7
拉請求數24
打開的拉請求數1
關閉的拉請求數1
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?