New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

bittorrent-dht

Package Overview
Dependencies
Maintainers
2
Versions
137
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bittorrent-dht - npm Package Compare versions

Comparing version 6.3.2 to 6.4.0

7

client.js

@@ -130,4 +130,4 @@ module.exports = DHT

}
if (isMutable && typeof opts.sign !== 'function') {
throw new Error('opts.sign function required for mutable put')
if (isMutable && typeof opts.sign !== 'function' && !Buffer.isBuffer(opts.sig)) {
throw new Error('opts.sign function or options.sig signature is required for mutable put')
}

@@ -173,3 +173,4 @@ if (isMutable && opts.salt && opts.salt.length > 64) {

message.a.seq = opts.seq
if (!message.a.sig) message.a.sig = opts.sign(encodeSigData(message.a))
if (typeof opts.sign === 'function') message.a.sig = opts.sign(encodeSigData(message.a))
else if (Buffer.isBuffer(opts.sig)) message.a.sig = opts.sig
}

@@ -176,0 +177,0 @@

{
"name": "bittorrent-dht",
"description": "Simple, robust, BitTorrent DHT implementation",
"version": "6.3.2",
"version": "6.4.0",
"author": {

@@ -19,4 +19,4 @@ "name": "Feross Aboukhadijeh",

"k-bucket": "^0.6.0",
"k-rpc": "^3.5.1",
"lru": "^1.2.0"
"k-rpc": "^3.6.0",
"lru": "^2.0.0"
},

@@ -28,3 +28,3 @@ "devDependencies": {

"run-parallel": "^1.1.4",
"standard": "^5.4.1",
"standard": "^6.0.4",
"tape": "^4.4.0"

@@ -31,0 +31,0 @@ },

@@ -73,3 +73,4 @@ # bittorrent-dht [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url]

bootstrap: [], // bootstrap servers (default: router.bittorrent.com:6881, router.utorrent.com:6881, dht.transmissionbt.com:6881)
host: false // host of local peer, if specified then announces get added to local table (String, disabled by default)
host: false, // host of local peer, if specified then announces get added to local table (String, disabled by default)
concurrency: 16 // k-rpc option to specify maximum concurrent UDP requests allowed (Number, 16 by default)
}

@@ -167,3 +168,3 @@ ```

arr.forEach(function (node) {
dht2.add(node)
dht2.addNode(node)
})

@@ -269,2 +270,13 @@ ```

If you receive a key/value pair and you want to re-add to the dht it to keep it
alive you can just `put` it again.
``` js
dht.get(key, function (err, res) {
dht.put(res, function () {
// re-added the key/value pair
})
})
```
#### `dht.get(hash, callback)`

@@ -271,0 +283,0 @@

@@ -31,2 +31,69 @@ var common = require('./common')

test('delegated put', function (t) {
t.plan(5)
var dht1 = new DHT({ bootstrap: false })
var dht2 = new DHT({ bootstrap: false })
var dht3 = new DHT({ bootstrap: false })
var dht4 = new DHT({ bootstrap: false })
t.once('end', function () {
dht1.destroy()
dht2.destroy()
dht3.destroy()
dht4.destroy()
})
common.failOnWarningOrError(t, dht1)
common.failOnWarningOrError(t, dht2)
common.failOnWarningOrError(t, dht3)
common.failOnWarningOrError(t, dht4)
var pending = 4
dht1.listen(function () {
dht2.addNode({ host: '127.0.0.1', port: dht1.address().port })
dht2.once('node', ready)
})
dht2.listen(function () {
dht1.addNode({ host: '127.0.0.1', port: dht2.address().port })
dht1.once('node', ready)
})
dht3.listen(function () {
dht4.addNode({ host: '127.0.0.1', port: dht3.address().port })
dht4.once('node', ready)
})
dht4.listen(function () {
dht3.addNode({ host: '127.0.0.1', port: dht4.address().port })
dht3.once('node', ready)
})
function ready () {
if (--pending !== 0) return
var value = fill(500, 'abc')
var opts = {
v: value
}
dht1.put(opts, function (err, hash) {
t.error(err)
dht2.get(hash, function (err, res) {
t.error(err)
dht3.put(res, function (err) {
t.error(err)
dht4.get(hash, function (err, res) {
t.error(err)
t.equal(res.v.toString('utf8'), opts.v.toString('utf8'), 'got back what we put in')
})
})
})
})
}
})
test('multi-party immutable put/get', function (t) {

@@ -33,0 +100,0 @@ t.plan(4)

@@ -98,2 +98,74 @@ var common = require('./common')

test('delegated put', function (t) {
t.plan(5)
var keypair = ed.createKeyPair(ed.createSeed())
var dht1 = new DHT({ bootstrap: false, verify: ed.verify })
var dht2 = new DHT({ bootstrap: false, verify: ed.verify })
var dht3 = new DHT({ bootstrap: false, verify: ed.verify })
var dht4 = new DHT({ bootstrap: false, verify: ed.verify })
t.once('end', function () {
dht1.destroy()
dht2.destroy()
dht3.destroy()
dht4.destroy()
})
common.failOnWarningOrError(t, dht1)
common.failOnWarningOrError(t, dht2)
common.failOnWarningOrError(t, dht3)
common.failOnWarningOrError(t, dht4)
var pending = 4
dht1.listen(function () {
dht2.addNode({ host: '127.0.0.1', port: dht1.address().port })
dht2.once('node', ready)
})
dht2.listen(function () {
dht1.addNode({ host: '127.0.0.1', port: dht2.address().port })
dht1.once('node', ready)
})
dht3.listen(function () {
dht4.addNode({ host: '127.0.0.1', port: dht3.address().port })
dht4.once('node', ready)
})
dht4.listen(function () {
dht3.addNode({ host: '127.0.0.1', port: dht4.address().port })
dht3.once('node', ready)
})
function ready () {
if (--pending !== 0) return
var value = fill(500, 'abc')
var opts = {
k: keypair.publicKey,
seq: 0,
sign: sign(keypair),
v: value
}
dht1.put(opts, function (err, hash) {
t.error(err)
dht2.get(hash, function (err, res) {
t.error(err)
dht3.put(res, function (err) {
t.error(err)
dht4.get(hash, function (err, res) {
t.error(err)
t.equal(res.v.toString('utf8'), opts.v.toString('utf8'), 'got back what we put in')
})
})
})
})
}
})
test('multiparty mutable put/get sequence', function (t) {

@@ -100,0 +172,0 @@ t.plan(12)

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc