Security News
The Unpaid Backbone of Open Source: Solo Maintainers Face Increasing Security Demands
Solo open source maintainers face burnout and security challenges, with 60% unpaid and 60% considering quitting.
discovery-channel
Advanced tools
Search for a key across multiple discovery networks and find peers who answer.
Currently searches across and advertises on the Bittorrent DHT, centralized DNS servers and Multicast DNS simultaneously.
Uses the bittorrent-dht and dns-discovery modules.
Also check out discovery-swarm which adds connection management on top of this module.
var DC = require('discovery-channel')
Returns a constructor
var channel = DC(<opts>)
Returns a new instance. opts
is optional and can have the following properties:
dns
- default undefined
, if false
will disable dns
discovery, any other value type will be passed to the dns-discovery
constructordht
- default undefined
, if false
will disable dht
discovery, any other value type will be passed to the bittorrent-dht
constructorhash
- default sha1
. provide a custom hash function to hash ids before they are stored in the dht / on dns servers.By default hashes are re-announced around every 10 min on the dht and 1 min using dns. Set dht.interval
or dns.interval
to change these.
channel.join(id, [port], [cb])
Perform a lookup across all networks for id
. id
can be a buffer or a string.
Specify port
if you want to announce that you share id
as well.
If you specify cb
, it will be called when the first round of discovery has completed. But only on the first round.
channel.leave(id, [port])
Stop looking for id
. id
can be a buffer or a string.
Specify port
to stop announcing that you share id
as well.
channel.update()
Force announce / lookup all joined hashes
var list = channel.list()
List all the channels you have joined. The returned array items look like this
{
id: <Buffer>,
port: <port you are announcing>
}
channel.on('peer', id, peer, type)
Emitted when a peer answers your query.
id
is the id (as a buffer) this peer was discovered forpeer
is the peer that was discovered {port: port, host: host}
type
is the network type (one of ['dht', 'dns']
)channel.destroy(cb)
Stops all lookups and advertisements and call cb
when done.
channel.on('close')
Emitted when the channel is destroyed
FAQs
discover peers that have hashes using various kewl methods
The npm package discovery-channel receives a total of 170 weekly downloads. As such, discovery-channel popularity was classified as not popular.
We found that discovery-channel demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Solo open source maintainers face burnout and security challenges, with 60% unpaid and 60% considering quitting.
Security News
License exceptions modify the terms of open source licenses, impacting how software can be used, modified, and distributed. Developers should be aware of the legal implications of these exceptions.
Security News
A developer is accusing Tencent of violating the GPL by modifying a Python utility and changing its license to BSD, highlighting the importance of copyleft compliance.