Skip to content
This repository was archived by the owner on Apr 29, 2020. It is now read-only.

Commit bb04345

Browse files
authored
Merge pull request #17 from ipfs/pull
pull
2 parents c27542e + 843110d commit bb04345

File tree

6 files changed

+63
-45
lines changed

6 files changed

+63
-45
lines changed

examples/echo/node-dialer.js

+12-8
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ const PeerId = require('peer-id')
55
const PeerInfo = require('peer-info')
66
const libp2p = require('../../src')
77
const multiaddr = require('multiaddr')
8+
const pull = require('pull-stream')
89

910
const privateKeyA = 'CAASpAkwggSgAgEAAoIBAQCwJRMRUmQFEr1Y+JUm2A2IEZbGUbHi/D3+SQ5UQLVA561DOHpCNR8gd/3VlniuOrKVpBlZETSmx5tWhXkyvEzfzzP0+0oOK/60nRdDRhCs7xwBi0gZk3uHiEao1T8+x2YUz7XQYNCgXHN1ouSTtFRrI2ub5Zj4QPpc6tSmTczyziYgCYskT5VRxEfWts8R4LzJDhGSZUhZMEEEXSsI1nBXyNS4W81WmnCizidgIpxWM5GnUA5H+TNQ5qkEO78E4vOKjj44Nk6OUpfGwwdt2iTWIakrdme+mdcLAeXiwud3cv3P8d7YJYOjW8M/CTizmvU03IiA3m12AR0mbbY/7qHrAgMBAAECggEAJ6xiDA+7mWzsGuL6bSJSgeg8RnTWFSLtL53yzUU5zeGgo7hPySO/3AdKs9XNXqi32n54exgl/L6OnUE42BWTVwGLWU1UE7cTCkkrmSppzRmZ/DsLxT7znsYx7AsD0LcGpf9WmxWDR+sq0j8bLq16KhtzPEzNVHUGLvFxbfeuBq3KLhvma7cp0I22dbgVZ3DTA5SJWiGrZNjXrzH69MFu8TMiaGhRSqqP4LWWoZq/xwMjNtQrMAL5CVg4Vr9UYd8unKvLMpvMaA7wescpKj0Hgh32kyCiIRiTEKhuZgYxy+jK/681l55VTYvCyzOE7kXBqMgThI7agUwItedv9UAiMQKBgQDcKe4iTtjyDr304gEnvPXO2QzMzmzCo5strRHOGziF7qKo0N7ZxdHgnD9tRuvsA69On70Mpph3N6ds6vjvedPP9EO72bKTqHP2c0m5UIkXBFef39aRWLLvQmRLW86TifNc6s9rEDvPAwBJtYTmz1hgcSP09yfg4EHF74kCfOAu2QKBgQDM0OeqiSlUr4NrOoXn/qHfcvhAXbvCuvjOULFJAXNTlcV01um270m5TBhJI+Pr3W9/kxePAeONWo5pOcjr/+Od9jm5N9b56FOMHtgV6pFQbnC5p6AX2vAK2N/wimDG1zPbyJoLdzwNLo0shH/TZTphCdNz6SC4zpai887eqBYkYwKBgALaJDSbkuHn4PwYJW2vW/vXAfxxPCV1WyBHWrCx15Scl8zaD9kAYAyp2YR/47SGA7JgDWHpkpYQyYF2tczcZisOfgYj9tVE3GO38J+O9IewzbXLf4sYfBDvaj8zrERrCBUPEarQZgXzgwBxcoxO6VUuggm9Xe3i2ddHmB3JIlpZAn9tm15e5Qg5SbQKrkb64EnASsaPq5nPnD+KKaS2bRBKqtwAqwJn46aQgyh7+7j9gIMqwozY+ynLe6q6pTHhGg+1eQ9rD3b8RlhvpBH/qIgbgv7QW+RQ39mV9HnjQCqKPqCB/dhySlzYsRDbwgymFIYpaBjA7wGT5Pq4OcF7ZnhzAoGAIzHjYXZQcxFN7gOUm/bnXb+OuLnvdBaKzF1CFxeTy4gJmf7Jn9GEcJQQCehVpaJGAd2+hRM1fkZwPqtScnGEVSpNkU3IeTG7nCFVcP14o4eMLC9tMJNC7Ul8hjPqlhVEgS5cCDOOhdqkYY1jdvVGnRSjEDua4eSxA7OJjyMEcFc='
1011

@@ -31,16 +32,19 @@ nodeA.start((err) => {
3132

3233
nodeA.dialByPeerInfo(peerB, '/echo/1.0.0', (err, conn) => {
3334
if (err) {
34-
throw err
35+
return console.log('err', err)
3536
}
3637
console.log('nodeA dialed to nodeB on protocol: /echo/1.0.0')
3738

38-
conn.on('data', (data) => {
39-
console.log('echo back', data.toString())
40-
})
41-
42-
conn.write('hey')
43-
conn.end()
44-
conn.on('end', process.exit)
39+
pull(
40+
pull.values(['hey']),
41+
conn,
42+
pull.collect((err, data) => {
43+
if (err) {
44+
throw err
45+
}
46+
console.log('echo back', data.toString())
47+
})
48+
)
4549
})
4650
})

examples/echo/node-listener.js

+4-2
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@ const PeerId = require('peer-id')
55
const PeerInfo = require('peer-info')
66
const libp2p = require('../../src')
77
const multiaddr = require('multiaddr')
8+
const pull = require('pull-stream')
89

910
const privateKeyB = 'CAASpgkwggSiAgEAAoIBAQC2SKo/HMFZeBml1AF3XijzrxrfQXdJzjePBZAbdxqKR1Mc6juRHXij6HXYPjlAk01BhF1S3Ll4Lwi0cAHhggf457sMg55UWyeGKeUv0ucgvCpBwlR5cQ020i0MgzjPWOLWq1rtvSbNcAi2ZEVn6+Q2EcHo3wUvWRtLeKz+DZSZfw2PEDC+DGPJPl7f8g7zl56YymmmzH9liZLNrzg/qidokUv5u1pdGrcpLuPNeTODk0cqKB+OUbuKj9GShYECCEjaybJDl9276oalL9ghBtSeEv20kugatTvYy590wFlJkkvyl+nPxIH0EEYMKK9XRWlu9XYnoSfboiwcv8M3SlsjAgMBAAECggEAZtju/bcKvKFPz0mkHiaJcpycy9STKphorpCT83srBVQi59CdFU6Mj+aL/xt0kCPMVigJw8P3/YCEJ9J+rS8BsoWE+xWUEsJvtXoT7vzPHaAtM3ci1HZd302Mz1+GgS8Epdx+7F5p80XAFLDUnELzOzKftvWGZmWfSeDnslwVONkL/1VAzwKy7Ce6hk4SxRE7l2NE2OklSHOzCGU1f78ZzVYKSnS5Ag9YrGjOAmTOXDbKNKN/qIorAQ1bovzGoCwx3iGIatQKFOxyVCyO1PsJYT7JO+kZbhBWRRE+L7l+ppPER9bdLFxs1t5CrKc078h+wuUr05S1P1JjXk68pk3+kQKBgQDeK8AR11373Mzib6uzpjGzgNRMzdYNuExWjxyxAzz53NAR7zrPHvXvfIqjDScLJ4NcRO2TddhXAfZoOPVH5k4PJHKLBPKuXZpWlookCAyENY7+Pd55S8r+a+MusrMagYNljb5WbVTgN8cgdpim9lbbIFlpN6SZaVjLQL3J8TWH6wKBgQDSChzItkqWX11CNstJ9zJyUE20I7LrpyBJNgG1gtvz3ZMUQCn3PxxHtQzN9n1P0mSSYs+jBKPuoSyYLt1wwe10/lpgL4rkKWU3/m1Myt0tveJ9WcqHh6tzcAbb/fXpUFT/o4SWDimWkPkuCb+8j//2yiXk0a/T2f36zKMuZvujqQKBgC6B7BAQDG2H2B/ijofp12ejJU36nL98gAZyqOfpLJ+FeMz4TlBDQ+phIMhnHXA5UkdDapQ+zA3SrFk+6yGk9Vw4Hf46B+82SvOrSbmnMa+PYqKYIvUzR4gg34rL/7AhwnbEyD5hXq4dHwMNsIDq+l2elPjwm/U9V0gdAl2+r50HAoGALtsKqMvhv8HucAMBPrLikhXP/8um8mMKFMrzfqZ+otxfHzlhI0L08Bo3jQrb0Z7ByNY6M8epOmbCKADsbWcVre/AAY0ZkuSZK/CaOXNX/AhMKmKJh8qAOPRY02LIJRBCpfS4czEdnfUhYV/TYiFNnKRj57PPYZdTzUsxa/yVTmECgYBr7slQEjb5Onn5mZnGDh+72BxLNdgwBkhO0OCdpdISqk0F0Pxby22DFOKXZEpiyI9XYP1C8wPiJsShGm2yEwBPWXnrrZNWczaVuCbXHrZkWQogBDG3HGXNdU4MAWCyiYlyinIBpPpoAJZSzpGLmWbMWh28+RJS6AQX6KHrK1o2uw=='
1011

1112
const idB = PeerId.createFromPrivKey(privateKeyB)
1213
const peerB = new PeerInfo(idB)
13-
peerB.multiaddr.add(multiaddr('/ip4/0.0.0.0/tcp/10333'))
14+
peerB.multiaddr.add(multiaddr('/ip4/127.0.0.1/tcp/10333'))
1415
const nodeB = new libp2p.Node(peerB)
1516

1617
nodeB.start((err) => {
@@ -19,7 +20,8 @@ nodeB.start((err) => {
1920
}
2021

2122
nodeB.handle('/echo/1.0.0', (conn) => {
22-
conn.pipe(conn)
23+
console.log('in echo')
24+
pull(conn, conn)
2325
})
2426

2527
console.log('Listener node is ready')

package.json

+9-8
Original file line numberDiff line numberDiff line change
@@ -32,18 +32,19 @@
3232
},
3333
"homepage": "https://github.com/ipfs/js-libp2p-ipfs#readme",
3434
"devDependencies": {
35-
"aegir": "^4.0.0",
36-
"bl": "^1.1.2",
35+
"aegir": "^8.0.0",
3736
"chai": "^3.5.0",
3837
"pre-commit": "^1.1.3",
38+
"pull-stream": "^3.4.5",
3939
"run-parallel": "^1.1.6"
4040
},
4141
"dependencies": {
42-
"libp2p-spdy": "^0.8.1",
43-
"libp2p-swarm": "^0.22.2",
44-
"libp2p-tcp": "^0.7.4",
45-
"libp2p-websockets": "^0.7.1",
46-
"mafmt": "^2.1.1",
42+
"libp2p-secio": "^0.4.2",
43+
"libp2p-spdy": "^0.9.0",
44+
"libp2p-swarm": "^0.23.0",
45+
"libp2p-tcp": "^0.8.1",
46+
"libp2p-websockets": "^0.8.1",
47+
"mafmt": "^2.1.2",
4748
"multiaddr": "^2.0.2",
4849
"peer-book": "^0.3.0",
4950
"peer-id": "^0.7.0",
@@ -66,4 +67,4 @@
6667
"Stephen Whitmore <[email protected]>",
6768
"dignifiedquire <[email protected]>"
6869
]
69-
}
70+
}

src/index.js

+7-3
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
'use strict'
22

33
const Swarm = require('libp2p-swarm')
4-
const PeerId = require('peer-id')
5-
const PeerInfo = require('peer-info')
6-
const PeerBook = require('peer-book')
74
const TCP = require('libp2p-tcp')
85
// const UTP = require('libp2p-utp')
96
const WS = require('libp2p-websockets')
107
const spdy = require('libp2p-spdy')
8+
const secio = require('libp2p-secio')
9+
const PeerId = require('peer-id')
10+
const PeerInfo = require('peer-info')
11+
const PeerBook = require('peer-book')
1112
const multiaddr = require('multiaddr')
1213
const mafmt = require('mafmt')
1314
const EE = require('events').EventEmitter
@@ -39,6 +40,8 @@ exports.Node = function Node (pInfo, pBook) {
3940
this.swarm.connection.addStreamMuxer(spdy)
4041
this.swarm.connection.reuse()
4142

43+
this.swarm.connection.crypto(secio.tag, secio.encrypt)
44+
4245
this.swarm.on('peer-mux-established', (peerInfo) => {
4346
this.peerBook.put(peerInfo)
4447
})
@@ -65,6 +68,7 @@ exports.Node = function Node (pInfo, pBook) {
6568
if (err) {
6669
return callback(err)
6770
}
71+
6872
isOnline = true
6973
callback()
7074
})

test/libp2p.spec.js

+29-23
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ const libp2p = require('../src')
66
const PeerInfo = require('peer-info')
77
const multiaddr = require('multiaddr')
88
const parallel = require('run-parallel')
9-
const bl = require('bl')
109
const spawn = require('child_process').spawn
1110
const path = require('path')
11+
const pull = require('pull-stream')
1212

1313
describe('libp2p-ipfs', () => {
1414
let nodeA // TCP
@@ -135,7 +135,7 @@ describe('libp2p-ipfs', () => {
135135

136136
it('handle echo proto in 6 nodes', () => {
137137
function echo (conn) {
138-
conn.pipe(conn)
138+
pull(conn, conn)
139139
}
140140

141141
nodeA.handle('/echo/1.0.0', echo)
@@ -191,13 +191,15 @@ describe('libp2p-ipfs', () => {
191191
cb()
192192
}
193193
], () => {
194-
conn.pipe(bl((err, data) => {
195-
expect(err).to.not.exist
196-
expect(data.toString()).to.equal('hey')
197-
done()
198-
}))
199-
conn.write('hey')
200-
conn.end()
194+
pull(
195+
pull.values([Buffer('hey')]),
196+
conn,
197+
pull.collect((err, data) => {
198+
expect(err).to.not.exist
199+
expect(data).to.be.eql([Buffer('hey')])
200+
done()
201+
})
202+
)
201203
})
202204
})
203205
})
@@ -272,13 +274,15 @@ describe('libp2p-ipfs', () => {
272274
cb()
273275
}
274276
], () => {
275-
conn.pipe(bl((err, data) => {
276-
expect(err).to.not.exist
277-
expect(data.toString()).to.equal('hey')
278-
done()
279-
}))
280-
conn.write('hey')
281-
conn.end()
277+
pull(
278+
pull.values([Buffer('hey')]),
279+
conn,
280+
pull.collect((err, data) => {
281+
expect(err).to.not.exist
282+
expect(data).to.be.eql([Buffer('hey')])
283+
done()
284+
})
285+
)
282286
})
283287
})
284288
})
@@ -387,13 +391,15 @@ describe('libp2p-ipfs', () => {
387391
const peers = nodeA.peerBook.getAll()
388392
expect(Object.keys(peers)).to.have.length(4)
389393

390-
conn.pipe(bl((err, data) => {
391-
expect(err).to.not.exist
392-
expect(data.toString()).to.equal('hey')
393-
done()
394-
}))
395-
conn.write('hey')
396-
conn.end()
394+
pull(
395+
pull.values([Buffer('hey')]),
396+
conn,
397+
pull.collect((err, data) => {
398+
expect(err).to.not.exist
399+
expect(data).to.be.eql([Buffer('hey')])
400+
done()
401+
})
402+
)
397403
})
398404
})
399405

test/spawn-libp2p-node.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ const libp2p = require('../src')
66
const PeerInfo = require('peer-info')
77
const PeerId = require('peer-id')
88
const multiaddr = require('multiaddr')
9+
const pull = require('pull-stream')
910

1011
const idBak = require('./test-data/test-id.json')
1112

@@ -17,7 +18,7 @@ pInfo.multiaddr.add(maddr)
1718
const node = new libp2p.Node(pInfo)
1819

1920
node.handle('/echo/1.0.0', (conn) => {
20-
conn.pipe(conn)
21+
pull(conn, conn)
2122
})
2223

2324
node.start((err) => {

0 commit comments

Comments
 (0)