diff --git a/examples/level1-swarm/README.md b/examples/level1-swarm/README.md new file mode 100644 index 00000000..293f6322 --- /dev/null +++ b/examples/level1-swarm/README.md @@ -0,0 +1,4 @@ +Using libp2p-swarm +================== + + diff --git a/examples/level1-swarm/node-1.js b/examples/level1-swarm/node-1.js new file mode 100644 index 00000000..3489b06f --- /dev/null +++ b/examples/level1-swarm/node-1.js @@ -0,0 +1,37 @@ +var Swarm = require('libp2p-swarm') +var tcp = require('libp2p-tcp') +var multiaddr = require('multiaddr') +var Id = require('peer-id') +var Spdy = require('libp2p-spdy') +var Libp2p = require('../../src') +var Peer = require('peer-info') + +// set up + +var mh = multiaddr('/ip4/127.0.0.1/tcp/8010') +var p = new Peer(Id.create(), []) +var sw = new Swarm(p) + +// create a libp2p node + +var node = new Libp2p(sw) + +node.swarm.addTransport('tcp', tcp, {multiaddr: mh}, {}, {port: 8010}, function () { + // Ready to receive incoming connections + + sw.addStreamMuxer('spdy', Spdy, {}) + + // dial to another node + + var mh2 = multiaddr('/ip4/127.0.0.1/tcp/8020') + var p2 = new Peer(Id.create(), [mh2]) + + node.swarm.dial(p2, {}, '/sparkles/1.0.0', function (err, conn) { + if (err) { + return console.error(err) + } + + console.log('-> connection is ready') + process.stdin.pipe(conn).pipe(process.stdout) + }) +}) diff --git a/examples/level1-swarm/node-2.js b/examples/level1-swarm/node-2.js new file mode 100644 index 00000000..25af2e35 --- /dev/null +++ b/examples/level1-swarm/node-2.js @@ -0,0 +1,29 @@ +var Swarm = require('libp2p-swarm') +var tcp = require('libp2p-tcp') +var multiaddr = require('multiaddr') +var Id = require('peer-id') +var Spdy = require('libp2p-spdy') +var Libp2p = require('../../src') +var Peer = require('peer-info') + +// set up + +var mh = multiaddr('/ip4/127.0.0.1/tcp/8020') +var p = new Peer(Id.create(), []) +var sw = new Swarm(p) + +sw.addTransport('tcp', tcp, {multiaddr: mh}, {}, {port: 8020}, function () { + // Ready to receive incoming connections + + sw.addStreamMuxer('spdy', Spdy, {}) + + // create a libp2p node + + var node = new Libp2p(sw) + + // handle/mount a protocol + + node.swarm.handleProtocol('/sparkles/1.0.0', function (conn) { + process.stdin.pipe(conn).pipe(process.stdout) + }) +}) diff --git a/package.json b/package.json index 4bf29a92..f139322a 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,12 @@ "devDependencies": { "code": "^1.5.0", "lab": "^5.17.0", + "libp2p-spdy": "^0.1.0", + "libp2p-swarm": "^0.5.5", + "libp2p-tcp": "^0.1.2", + "multiaddr": "^1.1.1", + "peer-id": "^0.4.0", + "peer-info": "^0.4.0", "pre-commit": "^1.1.1", "standard": "^5.3.1" } diff --git a/src/index.js b/src/index.js index 7f704ef8..65d95d88 100644 --- a/src/index.js +++ b/src/index.js @@ -1,4 +1,3 @@ - exports = module.exports = Libp2p function Libp2p (swarm, peerRouting, recordStore) {