Socket
Socket
Sign inDemoInstall

libp2p-kad-dht

Package Overview
Dependencies
Maintainers
2
Versions
109
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

libp2p-kad-dht - npm Package Compare versions

Comparing version 0.15.1 to 0.15.2

10

CHANGELOG.md

@@ -0,1 +1,11 @@

<a name="0.15.2"></a>
## [0.15.2](https://github.com/libp2p/js-libp2p-kad-dht/compare/v0.15.1...v0.15.2) (2019-05-31)
### Bug Fixes
* favour providers peerInfo over sender peerInfo in ADD_PROVIDER ([#129](https://github.com/libp2p/js-libp2p-kad-dht/issues/129)) ([6da26b0](https://github.com/libp2p/js-libp2p-kad-dht/commit/6da26b0))
<a name="0.15.1"></a>

@@ -2,0 +12,0 @@ ## [0.15.1](https://github.com/libp2p/js-libp2p-kad-dht/compare/v0.15.0...v0.15.1) (2019-05-30)

2

package.json
{
"name": "libp2p-kad-dht",
"version": "0.15.1",
"version": "0.15.2",
"description": "JavaScript implementation of the Kad-DHT for libp2p",

@@ -5,0 +5,0 @@ "leadMaintainer": "Vasco Santos <vasco.santos@moxy.studio>",

@@ -33,2 +33,3 @@ 'use strict'

let foundProvider = false
msg.providerPeers.forEach((pi) => {

@@ -49,8 +50,18 @@ // Ignore providers not from the originator

if (!dht._isSelf(pi.id)) {
foundProvider = true
dht.peerBook.put(pi)
dht.providers.addProvider(cid, pi.id, callback)
}
})
dht.providers.addProvider(cid, peer.id, callback)
// Previous versions of the JS DHT sent erroneous providers in the
// `providerPeers` field. In order to accommodate older clients that have
// this bug, we fall back to assuming the originator is the provider if
// we can't find any valid providers in the payload.
// https://github.com/libp2p/js-libp2p-kad-dht/pull/127
// https://github.com/libp2p/js-libp2p-kad-dht/issues/128
if (!foundProvider) {
dht.providers.addProvider(cid, peer.id, callback)
}
}
}

@@ -69,12 +69,13 @@ /* eslint-env mocha */

it('ignore providers not from the originator', (done) => {
it('ignore providers that do not match the sender', (done) => {
const cid = values[0].cid
const msg = new Message(Message.TYPES.ADD_PROVIDER, cid.buffer, 0)
const sender = peers[0]
sender.multiaddrs.add('/ip4/127.0.0.1/tcp/1234')
const other = peers[1]
const sender = _.cloneDeep(peers[0])
const provider = _.cloneDeep(peers[0])
provider.multiaddrs.add('/ip4/127.0.0.1/tcp/1234')
const other = _.cloneDeep(peers[1])
other.multiaddrs.add('/ip4/127.0.0.1/tcp/2345')
msg.providerPeers = [
sender,
provider,
other

@@ -88,6 +89,7 @@ ]

expect(provs).to.have.length(1)
expect(provs[0].id).to.eql(sender.id.id)
const bookEntry = dht.peerBook.get(sender.id)
expect(provs[0].id).to.eql(provider.id.id)
const bookEntry = dht.peerBook.get(provider.id)
// Favour peerInfo from payload over peerInfo from sender
expect(bookEntry.multiaddrs.toArray()).to.eql(
sender.multiaddrs.toArray()
provider.multiaddrs.toArray()
)

@@ -99,8 +101,9 @@ cb()

it('ignore providers with no multiaddrs', (done) => {
it('fall back to sender if providers have no multiaddrs', (done) => {
const cid = values[0].cid
const msg = new Message(Message.TYPES.ADD_PROVIDER, cid.buffer, 0)
const sender = _.cloneDeep(peers[0])
sender.multiaddrs.clear()
msg.providerPeers = [sender]
const provider = _.cloneDeep(peers[0])
provider.multiaddrs.clear()
msg.providerPeers = [provider]

@@ -111,5 +114,5 @@ waterfall([

(provs, cb) => {
expect(dht.peerBook.has(provider.id)).to.equal(false)
expect(provs).to.have.length(1)
expect(provs[0].id).to.eql(sender.id.id)
expect(dht.peerBook.has(sender.id)).to.equal(false)
expect(provs[0].id).to.eql(provider.id.id)
cb()

@@ -116,0 +119,0 @@ }

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