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

Commit d1ee623

Browse files
authored
fix: do not append peer id to advertised addresses (#192)
The libp2p address manager does this so we can just treat the addresses as opaque values here. Fixes libp2p/js-libp2p#1673
1 parent d09bd34 commit d1ee623

File tree

4 files changed

+8
-12
lines changed

4 files changed

+8
-12
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,6 @@
136136
},
137137
"dependencies": {
138138
"@libp2p/interface-peer-discovery": "^1.0.5",
139-
"@libp2p/interface-peer-id": "^2.0.1",
140139
"@libp2p/interface-peer-info": "^1.0.8",
141140
"@libp2p/interfaces": "^3.3.1",
142141
"@libp2p/logger": "^2.0.5",
@@ -149,6 +148,7 @@
149148
"devDependencies": {
150149
"@libp2p/interface-address-manager": "^2.0.1",
151150
"@libp2p/interface-peer-discovery-compliance-tests": "^2.0.1",
151+
"@libp2p/interface-peer-id": "^2.0.1",
152152
"@libp2p/peer-id-factory": "^2.0.0",
153153
"aegir": "^38.1.2",
154154
"p-wait-for": "^5.0.0",

src/index.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import type { PeerDiscovery, PeerDiscoveryEvents } from '@libp2p/interface-peer-
66
import type { PeerInfo } from '@libp2p/interface-peer-info'
77
import { symbol } from '@libp2p/interface-peer-discovery'
88
import { stringGen } from './utils.js'
9-
import type { PeerId } from '@libp2p/interface-peer-id'
109
import type { AddressManager } from '@libp2p/interface-address-manager'
1110

1211
const log = logger('libp2p:mdns')
@@ -21,7 +20,6 @@ export interface MulticastDNSInit {
2120
}
2221

2322
export interface MulticastDNSComponents {
24-
peerId: PeerId
2523
addressManager: AddressManager
2624
}
2725

@@ -92,12 +90,11 @@ class MulticastDNS extends EventEmitter<PeerDiscoveryEvents> implements PeerDisc
9290
}
9391

9492
log.trace('received incoming mDNS query')
95-
const localPeerId = this.components.peerId
9693
query.gotQuery(
9794
event,
9895
this.mdns,
9996
this.peerName,
100-
this.components.addressManager.getAddresses().map((ma) => ma.encapsulate('/p2p/' + localPeerId.toString())),
97+
this.components.addressManager.getAddresses(),
10198
this.serviceTag,
10299
this.broadcast)
103100
}
@@ -109,7 +106,7 @@ class MulticastDNS extends EventEmitter<PeerDiscoveryEvents> implements PeerDisc
109106
const foundPeer = query.gotResponse(event, this.peerName, this.serviceTag)
110107

111108
if (foundPeer != null) {
112-
log('discovered peer in mDNS qeury response %p', foundPeer.id)
109+
log('discovered peer in mDNS query response %p', foundPeer.id)
113110

114111
this.dispatchEvent(new CustomEvent<PeerInfo>('peer', {
115112
detail: foundPeer

test/compliance.spec.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ describe('compliance tests', () => {
2828
broadcast: false,
2929
port: 50001
3030
})({
31-
peerId: peerId1,
3231
addressManager
3332
})
3433

test/multicast-dns.spec.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,18 @@ import type { Multiaddr } from '@multiformats/multiaddr'
55
import { multiaddr } from '@multiformats/multiaddr'
66
import { createEd25519PeerId } from '@libp2p/peer-id-factory'
77
import pWaitFor from 'p-wait-for'
8-
import { mdns } from './../src/index.js'
8+
import { mdns, MulticastDNSComponents } from './../src/index.js'
99
import type { PeerId } from '@libp2p/interface-peer-id'
1010
import type { PeerInfo } from '@libp2p/interface-peer-info'
11-
import { StubbedInstance, stubInterface } from 'ts-sinon'
11+
import { stubInterface } from 'ts-sinon'
1212
import type { AddressManager } from '@libp2p/interface-address-manager'
1313
import { start, stop } from '@libp2p/interfaces/startable'
1414

15-
function getComponents (peerId: PeerId, multiaddrs: Multiaddr[]): { peerId: PeerId, addressManager: StubbedInstance<AddressManager> } {
15+
function getComponents (peerId: PeerId, multiaddrs: Multiaddr[]): MulticastDNSComponents {
1616
const addressManager = stubInterface<AddressManager>()
17-
addressManager.getAddresses.returns(multiaddrs)
17+
addressManager.getAddresses.returns(multiaddrs.map(ma => ma.encapsulate(`/p2p/${peerId.toString()}`)))
1818

19-
return { peerId, addressManager }
19+
return { addressManager }
2020
}
2121

2222
describe('MulticastDNS', () => {

0 commit comments

Comments
 (0)