Skip to content

Commit 29cc0af

Browse files
dryajovdaviddias
authored andcommitted
feat: enable and test Circuit Relay
* feat: new super simplified API * feat: append peer id to multiaddr if not there * [WIP] Awesome DHT (#86) * feat: integrate dht * better interfaces * docs: add documentation for peerRouting, contentRouting, dht * fix: take in passed datastore * fix: update usage of _getPeerInfo * fix: getPeerInfo * docs: update docs * moar feat: correctly handle p2p-circuit addrs when creating a peer info object refactor: rework config options * feat: adding circuit relaying * feat: rework circuit relay for protobufs * feat: circuit loading and tests * fix: clean up _getPeerInfo to work with /p2p-circuit * wip: tests cleaup * test: clean up * wip * fix: bringing back test reworks and new aegir * test: group tests * test: clean up * test: adjust test * fix: use getPeerId to determine if the ipfs fragment is missing * feat: adding circuit relaying * feat: circuit loading and tests * test: clean up * wip * feat: upgrade to latest aegir * fix: removing unused tests * feat: cleanup tests * fix: create node defautl options * chore: upgrade swarm to latest version * fix: updated aegir and adjust timeouts * feat: more timeouts * chore: updating deps * fix: circle ci builds * test: timeouts
1 parent 2504cbe commit 29cc0af

15 files changed

+314
-66
lines changed

gulpfile.js .aegir.js

+10-10
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
'use strict'
22

3-
const gulp = require('gulp')
43
const Node = require('./test/nodejs-bundle/nodejs-bundle.js')
54
const PeerInfo = require('peer-info')
65
const PeerId = require('peer-id')
@@ -12,7 +11,7 @@ let server
1211
let node
1312
const rawPeer = require('./test/browser-bundle/peer.json')
1413

15-
gulp.task('libnode:start', (done) => {
14+
const before = (done) => {
1615
let count = 0
1716
const ready = () => ++count === 2 ? done() : null
1817

@@ -36,20 +35,21 @@ gulp.task('libnode:start', (done) => {
3635
node.handle('/echo/1.0.0', (protocol, conn) => pull(conn, conn))
3736
node.start(() => ready())
3837
})
39-
})
38+
}
4039

41-
gulp.task('libnode:stop', (done) => {
40+
const after = (done) => {
4241
setTimeout(() => node.stop((err) => {
4342
if (err) {
4443
return done(err)
4544
}
4645
server.stop(done)
4746
}), 2000)
48-
})
47+
}
4948

50-
gulp.task('test:browser:before', ['libnode:start'])
51-
gulp.task('test:node:before', ['libnode:start'])
52-
gulp.task('test:browser:after', ['libnode:stop'])
53-
gulp.task('test:node:after', ['libnode:stop'])
49+
module.exports = {
50+
hooks: {
51+
pre: before,
52+
post: after
53+
}
54+
}
5455

55-
require('aegir/gulp')(gulp)

circle.yml

+5-1
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,13 @@ dependencies:
66
pre:
77
- google-chrome --version
88
- curl -L -o google-chrome.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
9+
- for v in $(curl http://archive.ubuntu.com/ubuntu/pool/main/n/nss/ | grep "href=" | grep "libnss3.*deb\"" -o | grep -o "libnss3.*deb" | grep "3.28" | grep "14.04"); do curl -L -o $v http://archive.ubuntu.com/ubuntu/pool/main/n/nss/$v; done && rm libnss3-tools*_i386.deb libnss3-dev*_i386.deb
910
- sudo dpkg -i google-chrome.deb || true
11+
- sudo dpkg -i libnss3*.deb || true
1012
- sudo apt-get update
13+
- sudo apt-get install -f || true
14+
- sudo dpkg -i libnss3*.deb
1115
- sudo apt-get install -f
1216
- sudo apt-get install --only-upgrade lsb-base
1317
- sudo dpkg -i google-chrome.deb
14-
- google-chrome --version
18+
- google-chrome --version

examples/protocol-and-stream-muxing/3.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,10 @@ parallel([
7474
if (err) { throw err }
7575
console.log('Addresses by which both peers are connected')
7676
node1.peerBook
77-
.getAllArray()
78-
.forEach((peer) => console.log('node 1 to node 2:', peer.isConnected().toString()))
77+
.getAllArray()
78+
.forEach((peer) => console.log('node 1 to node 2:', peer.isConnected().toString()))
7979
node2.peerBook
80-
.getAllArray()
81-
.forEach((peer) => console.log('node 2 to node 1:', peer.isConnected().toString()))
80+
.getAllArray()
81+
.forEach((peer) => console.log('node 2 to node 1:', peer.isConnected().toString()))
8282
})
8383
})

package.json

+28-27
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@
44
"description": "JavaScript base class for libp2p bundles",
55
"main": "src/index.js",
66
"scripts": {
7-
"test": "gulp test",
8-
"test:node": "gulp test:node",
9-
"test:browser": "gulp test:browser --dom",
10-
"release": "gulp release --dom",
11-
"release-minor": "gulp release --type minor --dom",
12-
"release-major": "gulp release --type major --dom",
13-
"build": "gulp build",
14-
"lint": "aegir-lint",
15-
"coverage": "aegir-coverage",
16-
"coverage-publish": "aegir-coverage publish"
7+
"lint": "aegir lint",
8+
"build": "aegir build",
9+
"test": "aegir test --target node --target browser --no-parallel",
10+
"test:node": "aegir test --target node --no-parallel",
11+
"test:browser": "aegir test --target browser --no-parallel",
12+
"release": "aegir test release --target node --target browser --no-parallel",
13+
"release-minor": "aegir release --type minor --target node --target browser --no-parallel",
14+
"release-major": "aegir release --type major --target node --target browser --no-parallel",
15+
"coverage": "aegir coverage",
16+
"coverage-publish": "aegir coverage --provider coveralls"
1717
},
1818
"repository": {
1919
"type": "git",
@@ -39,39 +39,40 @@
3939
"dependencies": {
4040
"async": "^2.5.0",
4141
"libp2p-ping": "~0.6.0",
42-
"libp2p-swarm": "~0.32.4",
43-
"mafmt": "^3.0.1",
44-
"multiaddr": "^3.0.1",
45-
"peer-book": "~0.5.1",
46-
"peer-id": "~0.10.1",
42+
"libp2p-swarm": "~0.33.0",
43+
"mafmt": "^3.0.2",
44+
"multiaddr": "^3.0.0",
45+
"peer-book": "~0.5.0",
46+
"peer-id": "~0.10.0",
4747
"peer-info": "~0.11.0"
4848
},
4949
"devDependencies": {
50-
"aegir": "^11.0.2",
50+
"aegir": "^12.1.0",
5151
"chai": "^4.1.2",
52-
"dirty-chai": "^2.0.1",
5352
"cids": "~0.5.1",
54-
"libp2p-kad-dht": "~0.5.1",
55-
"libp2p-mdns": "~0.9.1",
53+
"dirty-chai": "^2.0.1",
54+
"electron-webrtc": "^0.3.0",
55+
"libp2p-circuit": "^0.1.2",
56+
"libp2p-kad-dht": "~0.5.0",
57+
"libp2p-mdns": "~0.9.0",
5658
"libp2p-multiplex": "~0.5.0",
57-
"libp2p-railing": "~0.7.1",
58-
"libp2p-secio": "~0.8.1",
59+
"libp2p-railing": "~0.7.0",
60+
"libp2p-secio": "~0.8.0",
5961
"libp2p-spdy": "~0.11.0",
60-
"libp2p-tcp": "~0.11.0",
61-
"libp2p-webrtc-star": "~0.13.2",
62-
"libp2p-websockets": "~0.10.1",
62+
"libp2p-tcp": "^0.11.0",
63+
"libp2p-webrtc-star": "^0.13.2",
64+
"libp2p-websockets": "^0.10.4",
6365
"lodash.times": "^4.3.2",
6466
"pre-commit": "^1.2.2",
6567
"pull-goodbye": "0.0.2",
6668
"pull-serializer": "^0.3.2",
67-
"pull-stream": "^3.6.1",
69+
"pull-stream": "^3.6.0",
6870
"safe-buffer": "^5.1.1",
69-
"electron-webrtc": "^0.3.0",
71+
"sinon": "^2.3.6",
7072
"wrtc": "0.0.62"
7173
},
7274
"contributors": [
7375
"Chris Bratlien <chrisbratlien@gmail.com>",
74-
"Daijiro Wachi <daijiro.wachi@gmail.com>",
7576
"David Dias <daviddias.p@gmail.com>",
7677
"Elven <mon.samuel@qq.com>",
7778
"Friedel Ziegelmayer <dignifiedquire@gmail.com>",

src/index.js

+4-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ const Swarm = require('libp2p-swarm')
1212
const PeerId = require('peer-id')
1313
const PeerInfo = require('peer-info')
1414
const PeerBook = require('peer-book')
15-
const mafmt = require('mafmt')
1615
const multiaddr = require('multiaddr')
1716

1817
exports = module.exports
@@ -43,6 +42,9 @@ class Node extends EventEmitter {
4342
// If muxer exists, we can use Identify
4443
this.swarm.connection.reuse()
4544

45+
// If muxer exists, we can use Relay for listening/dialing
46+
this.swarm.connection.enableCircuitRelay(_options.relay)
47+
4648
// Received incommind dial and muxer upgrade happened,
4749
// reuse this muxed connection
4850
this.swarm.on('peer-mux-established', (peerInfo) => {
@@ -155,7 +157,7 @@ class Node extends EventEmitter {
155157
const maOld = []
156158
const maNew = []
157159
this.peerInfo.multiaddrs.forEach((ma) => {
158-
if (!mafmt.IPFS.matches(ma)) {
160+
if (!ma.getPeerId()) {
159161
maOld.push(ma)
160162
maNew.push(ma.encapsulate('/ipfs/' + this.peerInfo.id.toB58String()))
161163
}

test/node.js

+1
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ require('./nodejs-bundle/stream-muxing')
88
require('./nodejs-bundle/discovery')
99
require('./nodejs-bundle/peer-routing')
1010
require('./nodejs-bundle/content-routing')
11+
require('./nodejs-bundle/circuit')

0 commit comments

Comments
 (0)