Skip to content
This repository was archived by the owner on Feb 12, 2024. It is now read-only.

Commit aca4297

Browse files
committed
feat: update to the latest libp2p
1 parent c680596 commit aca4297

File tree

6 files changed

+25
-46
lines changed

6 files changed

+25
-46
lines changed

src/cli/commands/swarm/addrs.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,9 @@ module.exports = {
1717
}
1818

1919
res.forEach((peer) => {
20-
const count = peer.multiaddrs.length
20+
const count = peer.multiaddrs.size
2121
console.log(`${peer.id.toB58String()} (${count})`)
22+
2223
peer.multiaddrs.forEach((addr) => {
2324
const res = addr.decapsulate('ipfs').toString()
2425
console.log(`\t${res}`)

src/core/components/id.js

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ module.exports = function id (self) {
1313
id: self._peerInfo.id.toB58String(),
1414
publicKey: self._peerInfo.id.pubKey.bytes.toString('base64'),
1515
addresses: self._peerInfo.multiaddrs
16+
.toArray()
1617
.map((ma) => ma.toString())
1718
.sort(),
1819
agentVersion: 'js-ipfs',

src/core/components/pre-start.js

+3-7
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,7 @@ module.exports = function preStart (self) {
1818
(config, cb) => {
1919
const privKey = config.Identity.PrivKey
2020

21-
peerId.createFromPrivKey(privKey, (err, id) => {
22-
cb(err, config, id)
23-
})
21+
peerId.createFromPrivKey(privKey, (err, id) => cb(err, config, id))
2422
},
2523
(config, id, cb) => {
2624
self._peerInfo = new PeerInfo(id)
@@ -29,12 +27,10 @@ module.exports = function preStart (self) {
2927
let ma = multiaddr(addr)
3028

3129
if (!mafmt.IPFS.matches(ma)) {
32-
ma = ma.encapsulate(
33-
'/ipfs/' + self._peerInfo.id.toB58String()
34-
)
30+
ma = ma.encapsulate('/ipfs/' + self._peerInfo.id.toB58String())
3531
}
3632

37-
self._peerInfo.multiaddr.add(ma)
33+
self._peerInfo.multiaddrs.add(ma)
3834
})
3935

4036
cb()

src/core/components/swarm.js

+5-6
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ module.exports = function swarm (self) {
2929
const peerList = flatMap(keys, (id) => {
3030
const peer = peers[id]
3131

32-
return peer.multiaddrs.map((addr) => {
32+
return peer.multiaddrs.toArray().map((addr) => {
3333
const res = {
3434
addr: addr,
3535
peer: peers[id]
@@ -53,6 +53,8 @@ module.exports = function swarm (self) {
5353
}
5454

5555
const peers = values(self._peerInfoBook.getAll())
56+
.filter((peer) => peer.isConnected())
57+
5658
callback(null, peers)
5759
}),
5860

@@ -61,7 +63,7 @@ module.exports = function swarm (self) {
6163
return callback(OFFLINE_ERROR)
6264
}
6365

64-
callback(null, self._libp2pNode.peerInfo.multiaddrs)
66+
callback(null, self._libp2pNode.peerInfo.multiaddrs.toArray())
6567
}),
6668

6769
connect: promisify((maddr, callback) => {
@@ -88,9 +90,6 @@ module.exports = function swarm (self) {
8890
self._libp2pNode.hangUp(maddr, callback)
8991
}),
9092

91-
filters: promisify((callback) => {
92-
// TODO
93-
throw new Error('Not implemented')
94-
})
93+
filters: promisify((callback) => callback(new Error('Not implemented')))
9594
}
9695
}

src/http-api/resources/swarm.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,8 @@ exports.addrs = {
7171

7272
const addrs = {}
7373
peers.forEach((peer) => {
74-
addrs[peer.id.toB58String()] = peer.multiaddrs.map((addr) => addr.toString())
74+
addrs[peer.id.toB58String()] = peer.multiaddrs.toArray()
75+
.map((addr) => addr.toString())
7576
})
7677

7778
return reply({

test/core/bitswap.spec.js

+12-31
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ function makeBlock (cb) {
3636

3737
describe('bitswap', () => {
3838
let inProcNode // Node spawned inside this process
39-
// let swarmAddrsBak
4039

4140
beforeEach((done) => {
4241
const repo = createTempRepo()
@@ -73,50 +72,34 @@ describe('bitswap', () => {
7372
inProcNode.on('start', () => done())
7473
})
7574

76-
afterEach((done) => {
77-
inProcNode.on('stop', () => done())
78-
inProcNode.stop()
79-
})
75+
afterEach((done) => inProcNode.stop(() => done()))
8076

8177
describe('connections', () => {
8278
function wire (targetNode, dialerNode, done) {
8379
targetNode.id((err, identity) => {
8480
expect(err).to.not.exist()
8581
const addr = identity.addresses
86-
.map((addr) => {
87-
const ma = multiaddr(addr.toString().split('ipfs')[0])
88-
return ma
89-
})
90-
.filter((addr) => {
91-
return _.includes(addr.protoNames(), 'ws')
92-
})[0]
93-
94-
let targetAddr
95-
if (addr) {
96-
targetAddr = addr.encapsulate(multiaddr(`/ipfs/${identity.id}`)).toString()
97-
targetAddr = targetAddr.replace('0.0.0.0', '127.0.0.1')
98-
} else {
99-
// Note: the browser doesn't have a websockets listening addr
82+
.map((addr) => multiaddr(addr.toString().split('ipfs')[0]))
83+
.filter((addr) => _.includes(addr.protoNames(), 'ws'))[0]
10084

101-
// What we really need is a way to dial to a peerId only and another
102-
// to dial to peerInfo
85+
if (!addr) {
86+
// Note: the browser doesn't have a websockets listening addr
10387
return done()
104-
// targetAddr = multiaddr(`/ip4/127.0.0.1/tcp/0/ws/ipfs/${identity.id}`).toString()
10588
}
10689

90+
const targetAddr = addr
91+
.encapsulate(multiaddr(`/ipfs/${identity.id}`)).toString()
92+
.replace('0.0.0.0', '127.0.0.1')
93+
10794
dialerNode.swarm.connect(targetAddr, done)
10895
})
10996
}
11097

11198
function connectNodes (remoteNode, ipn, done) {
11299
series([
113-
(cb) => {
114-
wire(remoteNode, ipn, cb)
115-
},
100+
(cb) => wire(remoteNode, ipn, cb),
116101
(cb) => setTimeout(() => {
117-
// need timeout so we wait for identify
118-
// to happen.
119-
102+
// need timeout so we wait for identify to happen.
120103
// This call is just to ensure identify happened
121104
wire(ipn, remoteNode, cb)
122105
}, 300)
@@ -129,9 +112,7 @@ describe('bitswap', () => {
129112
const apiUrl = `/ip4/127.0.0.1/tcp/31${num}`
130113
const remoteNode = new API(apiUrl)
131114

132-
connectNodes(remoteNode, inProcNode, (err) => {
133-
done(err, remoteNode)
134-
})
115+
connectNodes(remoteNode, inProcNode, (err) => done(err, remoteNode))
135116
}
136117

137118
describe('fetches a remote block', () => {

0 commit comments

Comments
 (0)