From 23e8293b7509d75e8a33efb1a9e1d2188ada9126 Mon Sep 17 00:00:00 2001 From: David Dias Date: Wed, 7 Feb 2018 07:23:08 +0000 Subject: [PATCH] feat: use libp2p-switch --- package.json | 8 ++++---- src/index.js | 38 ++++++++++++++++++------------------ test/circuit-relay.node.js | 2 +- test/stream-muxing.node.js | 6 +++--- test/transports.browser.js | 16 +++++++-------- test/transports.node.js | 40 +++++++++++++++++++------------------- test/turbolence.node.js | 2 +- 7 files changed, 56 insertions(+), 56 deletions(-) diff --git a/package.json b/package.json index ce5a9c51..d1d40025 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "dependencies": { "async": "^2.6.0", "libp2p-ping": "~0.6.0", - "libp2p-swarm": "~0.35.1", + "libp2p-switch": "~0.36.0", "mafmt": "^3.0.2", "multiaddr": "^3.0.2", "peer-book": "~0.5.4", @@ -53,13 +53,13 @@ "dirty-chai": "^2.0.1", "electron-webrtc": "~0.3.0", "libp2p-circuit": "~0.1.4", - "libp2p-kad-dht": "~0.6.0", - "libp2p-mdns": "~0.9.1", + "libp2p-kad-dht": "~0.6.3", + "libp2p-mdns": "~0.9.2", "libp2p-multiplex": "~0.5.1", "libp2p-railing": "~0.7.1", "libp2p-secio": "~0.9.1", "libp2p-spdy": "~0.11.0", - "libp2p-tcp": "~0.11.2", + "libp2p-tcp": "~0.11.5", "libp2p-webrtc-star": "~0.13.3", "libp2p-websockets": "~0.10.4", "libp2p-websocket-star": "~0.7.2", diff --git a/src/index.js b/src/index.js index 907eb86e..2093fe4a 100644 --- a/src/index.js +++ b/src/index.js @@ -8,7 +8,7 @@ const each = require('async/each') const series = require('async/series') const Ping = require('libp2p-ping') -const Swarm = require('libp2p-swarm') +const Switch = require('libp2p-switch') const PeerId = require('peer-id') const PeerInfo = require('peer-info') const PeerBook = require('peer-book') @@ -31,28 +31,28 @@ class Node extends EventEmitter { this._isStarted = false - this.swarm = new Swarm(this.peerInfo, this.peerBook) + this.switch = new Switch(this.peerInfo, this.peerBook) // Attach stream multiplexers if (this.modules.connection && this.modules.connection.muxer) { let muxers = this.modules.connection.muxer muxers = Array.isArray(muxers) ? muxers : [muxers] - muxers.forEach((muxer) => this.swarm.connection.addStreamMuxer(muxer)) + muxers.forEach((muxer) => this.switch.connection.addStreamMuxer(muxer)) // If muxer exists, we can use Identify - this.swarm.connection.reuse() + this.switch.connection.reuse() // If muxer exists, we can use Relay for listening/dialing - this.swarm.connection.enableCircuitRelay(_options.relay) + this.switch.connection.enableCircuitRelay(_options.relay) // Received incommind dial and muxer upgrade happened, // reuse this muxed connection - this.swarm.on('peer-mux-established', (peerInfo) => { + this.switch.on('peer-mux-established', (peerInfo) => { this.emit('peer:connect', peerInfo) this.peerBook.put(peerInfo) }) - this.swarm.on('peer-mux-closed', (peerInfo) => { + this.switch.on('peer-mux-closed', (peerInfo) => { this.emit('peer:disconnect', peerInfo) }) } @@ -62,7 +62,7 @@ class Node extends EventEmitter { let cryptos = this.modules.connection.crypto cryptos = Array.isArray(cryptos) ? cryptos : [cryptos] cryptos.forEach((crypto) => { - this.swarm.connection.crypto(crypto.tag, crypto.encrypt) + this.switch.connection.crypto(crypto.tag, crypto.encrypt) }) } @@ -77,11 +77,11 @@ class Node extends EventEmitter { } // Mount default protocols - Ping.mount(this.swarm) + Ping.mount(this.switch) // dht provided components (peerRouting, contentRouting, dht) if (_modules.DHT) { - this._dht = new this.modules.DHT(this.swarm, { + this._dht = new this.modules.DHT(this.switch, { kBucketSize: 20, datastore: _options.DHT && _options.DHT.datastore }) @@ -167,7 +167,7 @@ class Node extends EventEmitter { const multiaddrs = this.peerInfo.multiaddrs.toArray() transports.forEach((transport) => { if (transport.filter(multiaddrs).length > 0) { - this.swarm.transport.add( + this.switch.transport.add( transport.tag || transport.constructor.name, transport) } else if (transport.constructor && transport.constructor.name === 'WebSockets') { @@ -178,11 +178,11 @@ class Node extends EventEmitter { }) series([ - (cb) => this.swarm.listen(cb), + (cb) => this.switch.start(cb), (cb) => { if (ws) { // always add dialing on websockets - this.swarm.transport.add(ws.tag || ws.constructor.name, ws) + this.switch.transport.add(ws.tag || ws.constructor.name, ws) } // all transports need to be setup before discover starts @@ -237,7 +237,7 @@ class Node extends EventEmitter { } cb() }, - (cb) => this.swarm.close(cb), + (cb) => this.switch.stop(cb), (cb) => { this.emit('stop') cb() @@ -259,7 +259,7 @@ class Node extends EventEmitter { return callback(err) } - callback(null, new Ping(this.swarm, peerInfo)) + callback(null, new Ping(this.switch, peerInfo)) }) } @@ -276,7 +276,7 @@ class Node extends EventEmitter { return callback(err) } - this.swarm.dial(peerInfo, protocol, (err, conn) => { + this.switch.dial(peerInfo, protocol, (err, conn) => { if (err) { return callback(err) } @@ -294,16 +294,16 @@ class Node extends EventEmitter { return callback(err) } - this.swarm.hangUp(peerInfo, callback) + this.switch.hangUp(peerInfo, callback) }) } handle (protocol, handlerFunc, matchFunc) { - this.swarm.handle(protocol, handlerFunc, matchFunc) + this.switch.handle(protocol, handlerFunc, matchFunc) } unhandle (protocol) { - this.swarm.unhandle(protocol) + this.switch.unhandle(protocol) } /* diff --git a/test/circuit-relay.node.js b/test/circuit-relay.node.js index 09e0af53..d3a54887 100644 --- a/test/circuit-relay.node.js +++ b/test/circuit-relay.node.js @@ -39,7 +39,7 @@ describe('circuit relay', function () { node.start((err) => { expect(err).to.not.exist() - handlerSpies.push(sinon.spy(node.swarm.transports[Circuit.tag].listeners[0].hopHandler, 'handle')) + handlerSpies.push(sinon.spy(node.switch.transports[Circuit.tag].listeners[0].hopHandler, 'handle')) cb(node) }) }) diff --git a/test/stream-muxing.node.js b/test/stream-muxing.node.js index 1c00722d..42227f2b 100644 --- a/test/stream-muxing.node.js +++ b/test/stream-muxing.node.js @@ -200,12 +200,12 @@ describe('stream muxing', () => { (cb) => setup(cb), (cb) => { // it will just 'warm up a conn' - expect(Object.keys(nodeA.swarm.muxers)).to.have.length(1) - expect(Object.keys(nodeB.swarm.muxers)).to.have.length(1) + expect(Object.keys(nodeA.switch.muxers)).to.have.length(1) + expect(Object.keys(nodeB.switch.muxers)).to.have.length(1) nodeA.dial(nodeB.peerInfo, (err) => { expect(err).to.not.exist() - expect(Object.keys(nodeA.swarm.muxedConns)).to.have.length(0) + expect(Object.keys(nodeA.switch.muxedConns)).to.have.length(0) cb() }) }, diff --git a/test/transports.browser.js b/test/transports.browser.js index 01808df2..71d83e53 100644 --- a/test/transports.browser.js +++ b/test/transports.browser.js @@ -105,7 +105,7 @@ describe('transports', () => { function check () { const peers = nodeA.peerBook.getAll() expect(Object.keys(peers)).to.have.length(1) - expect(Object.keys(nodeA.swarm.muxedConns)).to.have.length(0) + expect(Object.keys(nodeA.switch.muxedConns)).to.have.length(0) done() } }) @@ -153,7 +153,7 @@ describe('transports', () => { const peers = nodeA.peerBook.getAll() expect(err).to.not.exist() expect(Object.keys(peers)).to.have.length(1) - expect(Object.keys(nodeA.swarm.muxedConns)).to.have.length(0) + expect(Object.keys(nodeA.switch.muxedConns)).to.have.length(0) done() } }) @@ -280,7 +280,7 @@ describe('transports', () => { function check () { const peers = node1.peerBook.getAll() expect(Object.keys(peers)).to.have.length(1) - expect(Object.keys(node1.swarm.muxedConns)).to.have.length(0) + expect(Object.keys(node1.switch.muxedConns)).to.have.length(0) done() } }) @@ -291,8 +291,8 @@ describe('transports', () => { function check () { if (++counter === 3) { - expect(Object.keys(node1.swarm.muxedConns).length).to.equal(1) - expect(Object.keys(node2.swarm.muxedConns).length).to.equal(1) + expect(Object.keys(node1.switch.muxedConns).length).to.equal(1) + expect(Object.keys(node2.switch.muxedConns).length).to.equal(1) done() } } @@ -389,7 +389,7 @@ describe('transports', () => { function check () { const peers = node1.peerBook.getAll() expect(Object.keys(peers)).to.have.length(1) - expect(Object.keys(node1.swarm.muxedConns)).to.have.length(0) + expect(Object.keys(node1.switch.muxedConns)).to.have.length(0) done() } }) @@ -400,8 +400,8 @@ describe('transports', () => { function check () { if (++counter === 3) { - expect(Object.keys(node1.swarm.muxedConns).length).to.equal(1) - expect(Object.keys(node2.swarm.muxedConns).length).to.equal(1) + expect(Object.keys(node1.switch.muxedConns).length).to.equal(1) + expect(Object.keys(node2.switch.muxedConns).length).to.equal(1) done() } } diff --git a/test/transports.node.js b/test/transports.node.js index 62387923..02d2f508 100644 --- a/test/transports.node.js +++ b/test/transports.node.js @@ -98,14 +98,14 @@ describe('transports', () => { (cb) => { const peers = nodeA.peerBook.getAll() expect(Object.keys(peers)).to.have.length(1) - expect(Object.keys(nodeA.swarm.muxedConns)).to.have.length(0) + expect(Object.keys(nodeA.switch.muxedConns)).to.have.length(0) cb() }, (cb) => { const peers = nodeB.peerBook.getAll() expect(Object.keys(peers)).to.have.length(1) - expect(Object.keys(nodeB.swarm.muxedConns)).to.have.length(0) + expect(Object.keys(nodeB.switch.muxedConns)).to.have.length(0) cb() } ], done) @@ -125,14 +125,14 @@ describe('transports', () => { const peers = nodeA.peerBook.getAll() expect(Object.keys(peers)).to.have.length(1) - expect(Object.keys(nodeA.swarm.muxedConns)).to.have.length(1) + expect(Object.keys(nodeA.switch.muxedConns)).to.have.length(1) cb() }, (cb) => { const peers = nodeB.peerBook.getAll() expect(Object.keys(peers)).to.have.length(1) - expect(Object.keys(nodeA.swarm.muxedConns)).to.have.length(1) + expect(Object.keys(nodeA.switch.muxedConns)).to.have.length(1) cb() } ], () => { @@ -161,14 +161,14 @@ describe('transports', () => { const peers = nodeA.peerBook.getAll() expect(Object.keys(peers)).to.have.length(1) - expect(Object.keys(nodeA.swarm.muxedConns)).to.have.length(0) + expect(Object.keys(nodeA.switch.muxedConns)).to.have.length(0) cb() }, (cb) => { const peers = nodeB.peerBook.getAll() expect(Object.keys(peers)).to.have.length(1) - expect(Object.keys(nodeB.swarm.muxedConns)).to.have.length(0) + expect(Object.keys(nodeB.switch.muxedConns)).to.have.length(0) cb() } ], done) @@ -187,13 +187,13 @@ describe('transports', () => { (cb) => { const peers = nodeA.peerBook.getAll() expect(Object.keys(peers)).to.have.length(1) - expect(Object.keys(nodeA.swarm.muxedConns)).to.have.length(1) + expect(Object.keys(nodeA.switch.muxedConns)).to.have.length(1) cb() }, (cb) => { const peers = nodeB.peerBook.getAll() expect(Object.keys(peers)).to.have.length(1) - expect(Object.keys(nodeA.swarm.muxedConns)).to.have.length(1) + expect(Object.keys(nodeA.switch.muxedConns)).to.have.length(1) cb() } ], () => { @@ -221,13 +221,13 @@ describe('transports', () => { (cb) => { const peers = nodeA.peerBook.getAll() expect(Object.keys(peers)).to.have.length(1) - expect(Object.keys(nodeA.swarm.muxedConns)).to.have.length(0) + expect(Object.keys(nodeA.switch.muxedConns)).to.have.length(0) cb() }, (cb) => { const peers = nodeB.peerBook.getAll() expect(Object.keys(peers)).to.have.length(1) - expect(Object.keys(nodeB.swarm.muxedConns)).to.have.length(0) + expect(Object.keys(nodeB.switch.muxedConns)).to.have.length(0) cb() } ], done) @@ -291,13 +291,13 @@ describe('transports', () => { (cb) => { const peers = nodeTCP.peerBook.getAll() expect(Object.keys(peers)).to.have.length(1) - expect(Object.keys(nodeTCP.swarm.muxedConns)).to.have.length(1) + expect(Object.keys(nodeTCP.switch.muxedConns)).to.have.length(1) cb() }, (cb) => { const peers = nodeTCPnWS.peerBook.getAll() expect(Object.keys(peers)).to.have.length(1) - expect(Object.keys(nodeTCPnWS.swarm.muxedConns)).to.have.length(1) + expect(Object.keys(nodeTCPnWS.switch.muxedConns)).to.have.length(1) cb() } ], done) @@ -315,14 +315,14 @@ describe('transports', () => { (cb) => { const peers = nodeTCP.peerBook.getAll() expect(Object.keys(peers)).to.have.length(1) - expect(Object.keys(nodeTCP.swarm.muxedConns)).to.have.length(0) + expect(Object.keys(nodeTCP.switch.muxedConns)).to.have.length(0) cb() }, (cb) => { const peers = nodeTCPnWS.peerBook.getAll() expect(Object.keys(peers)).to.have.length(1) - expect(Object.keys(nodeTCPnWS.swarm.muxedConns)).to.have.length(0) + expect(Object.keys(nodeTCPnWS.switch.muxedConns)).to.have.length(0) cb() } ], done) @@ -342,13 +342,13 @@ describe('transports', () => { (cb) => { const peers = nodeTCPnWS.peerBook.getAll() expect(Object.keys(peers)).to.have.length(2) - expect(Object.keys(nodeTCPnWS.swarm.muxedConns)).to.have.length(1) + expect(Object.keys(nodeTCPnWS.switch.muxedConns)).to.have.length(1) cb() }, (cb) => { const peers = nodeWS.peerBook.getAll() expect(Object.keys(peers)).to.have.length(1) - expect(Object.keys(nodeWS.swarm.muxedConns)).to.have.length(1) + expect(Object.keys(nodeWS.switch.muxedConns)).to.have.length(1) cb() } ], done) @@ -366,14 +366,14 @@ describe('transports', () => { (cb) => { const peers = nodeTCPnWS.peerBook.getAll() expect(Object.keys(peers)).to.have.length(2) - expect(Object.keys(nodeTCPnWS.swarm.muxedConns)).to.have.length(0) + expect(Object.keys(nodeTCPnWS.switch.muxedConns)).to.have.length(0) cb() }, (cb) => { const peers = nodeWS.peerBook.getAll() expect(Object.keys(peers)).to.have.length(1) - expect(Object.keys(nodeWS.swarm.muxedConns)).to.have.length(0) + expect(Object.keys(nodeWS.switch.muxedConns)).to.have.length(0) cb() } ], done) @@ -481,7 +481,7 @@ describe('transports', () => { let i = 1; [nodeAll, otherNode].forEach((node) => { expect(Object.keys(node.peerBook.getAll())).to.have.length(i-- ? peers : 1) - expect(Object.keys(node.swarm.muxedConns)).to.have.length(muxed) + expect(Object.keys(node.switch.muxedConns)).to.have.length(muxed) }) callback() } @@ -624,7 +624,7 @@ describe('transports', () => { let i = 1; [nodeAll, otherNode].forEach((node) => { expect(Object.keys(node.peerBook.getAll())).to.have.length(i-- ? peers : 1) - expect(Object.keys(node.swarm.muxedConns)).to.have.length(muxed) + expect(Object.keys(node.switch.muxedConns)).to.have.length(muxed) }) done() } diff --git a/test/turbolence.node.js b/test/turbolence.node.js index 8c4dee4c..37803340 100644 --- a/test/turbolence.node.js +++ b/test/turbolence.node.js @@ -76,7 +76,7 @@ describe('Turbolence tests', () => { function check () { const peers = nodeA.peerBook.getAll() expect(Object.keys(peers)).to.have.length(1) - expect(Object.keys(nodeA.swarm.muxedConns)).to.have.length(0) + expect(Object.keys(nodeA.switch.muxedConns)).to.have.length(0) done() } })