Skip to content
This repository was archived by the owner on Jul 21, 2023. It is now read-only.

dht.provide fails if any closest peer is blacklisted #105

@kumavis

Description

@kumavis

reproduction / error flow

  • get peer blacklisted somehow
  • call dht.provide()
  • blacklisted peer in getClosestPeers
  • async/each over peers and call this.network.sendMessage(peer, msg, cb)
  • blacklist error causes whole async/each to end with error

waterfall([
(cb) => this.providers.addProvider(key, this.peerInfo.id, cb),
(cb) => this.getClosestPeers(key.buffer, cb),
(peers, cb) => {
const msg = new Message(Message.TYPES.ADD_PROVIDER, key.buffer, 0)
msg.providerPeers = peers.map((p) => new PeerInfo(p))
each(peers, (peer, cb) => {
this._log('putProvider %s to %s', key.toBaseEncodedString(), peer.toB58String())
this.network.sendMessage(peer, msg, cb)
}, cb)
}
], (err) => callback(err))

suggestions:

  • ignore all errors?
  • filter peers by not-blacklisted before async/each => sendMessage

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions