diff --git a/packages/ipfs/src/core/components/start.js b/packages/ipfs/src/core/components/start.js index ec771cb09b..f6d8a710ef 100644 --- a/packages/ipfs/src/core/components/start.js +++ b/packages/ipfs/src/core/components/start.js @@ -39,7 +39,11 @@ module.exports = ({ config.Addresses.Swarm.forEach(addr => { let ma = multiaddr(addr) - if (ma.getPeerId()) { + // multiaddrs that go via a signalling server or other intermediary (e.g. stardust, + // webrtc-star) can have the intermediary's peer ID in the address, so append our + // peer ID to the end of it + const maId = ma.getPeerId() + if (maId && maId !== peerInfo.id.toB58String()) { ma = ma.encapsulate(`/p2p/${peerInfo.id.toB58String()}`) }