mirror of
https://github.com/fluencelabs/js-libp2p
synced 2025-06-23 22:11:35 +00:00
feat: address and proto books (#590)
* feat: address and proto books * chore: apply suggestions from code review Co-Authored-By: Jacob Heun <jacobheun@gmail.com> * chore: minor fixes and initial tests added * chore: integrate new peer-store with code using adapters for other modules * chore: do not use peerstore.put on get-peer-info * chore: apply suggestions from code review Co-Authored-By: Jacob Heun <jacobheun@gmail.com> * chore: add new peer store tests * chore: apply suggestions from code review Co-Authored-By: Jacob Heun <jacobheun@gmail.com> Co-authored-by: Jacob Heun <jacobheun@gmail.com>
This commit is contained in:
15
src/index.js
15
src/index.js
@ -60,7 +60,7 @@ class Libp2p extends EventEmitter {
|
||||
localPeer: this.peerInfo.id,
|
||||
metrics: this.metrics,
|
||||
onConnection: (connection) => {
|
||||
const peerInfo = this.peerStore.put(new PeerInfo(connection.remotePeer), { silent: true })
|
||||
const peerInfo = new PeerInfo(connection.remotePeer)
|
||||
this.registrar.onConnect(peerInfo, connection)
|
||||
this.connectionManager.onConnect(connection)
|
||||
this.emit('peer:connect', peerInfo)
|
||||
@ -292,7 +292,11 @@ class Libp2p extends EventEmitter {
|
||||
const dialable = Dialer.getDialable(peer)
|
||||
let connection
|
||||
if (PeerInfo.isPeerInfo(dialable)) {
|
||||
this.peerStore.put(dialable, { silent: true })
|
||||
// TODO Inconsistency from: getDialable adds a set, while regular peerInfo uses a Multiaddr set
|
||||
// This should be handled on `peer-info` removal
|
||||
const multiaddrs = dialable.multiaddrs.toArray ? dialable.multiaddrs.toArray() : Array.from(dialable.multiaddrs)
|
||||
this.peerStore.addressBook.add(dialable.id, multiaddrs)
|
||||
|
||||
connection = this.registrar.getConnection(dialable)
|
||||
}
|
||||
|
||||
@ -338,7 +342,7 @@ class Libp2p extends EventEmitter {
|
||||
async ping (peer) {
|
||||
const peerInfo = await getPeerInfo(peer, this.peerStore)
|
||||
|
||||
return ping(this, peerInfo)
|
||||
return ping(this, peerInfo.id)
|
||||
}
|
||||
|
||||
/**
|
||||
@ -440,7 +444,10 @@ class Libp2p extends EventEmitter {
|
||||
log.error(new Error(codes.ERR_DISCOVERED_SELF))
|
||||
return
|
||||
}
|
||||
this.peerStore.put(peerInfo)
|
||||
|
||||
// TODO: once we deprecate peer-info, we should only set if we have data
|
||||
this.peerStore.addressBook.add(peerInfo.id, peerInfo.multiaddrs.toArray())
|
||||
this.peerStore.protoBook.set(peerInfo.id, Array.from(peerInfo.protocols))
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user