1- 'use strict'
2-
31const defaultRepo = require ( './default-repo' )
4- // const bl = require('bl')
52const blocks = require ( 'ipfs-blocks' )
63const BlockService = blocks . BlockService
74const Block = blocks . Block
85const mDAG = require ( 'ipfs-merkle-dag' )
96const DAGNode = mDAG . DAGNode
107const DAGService = mDAG . DAGService
11- const peerId = require ( 'peer-id' )
8+ const PeerId = require ( 'peer-id' )
9+ const PeerInfo = require ( 'peer-info' )
10+ const libp2p = require ( 'libp2p-ipfs' )
11+ const multiaddr = require ( 'multiaddr' )
1212
1313exports = module . exports = IPFS
1414
@@ -24,6 +24,8 @@ function IPFS (repo) {
2424 const blockS = new BlockService ( repo )
2525 const dagS = new DAGService ( blockS )
2626
27+ var libp2pNode
28+
2729 this . version = ( opts , callback ) => {
2830 if ( typeof opts === 'function' ) {
2931 callback = opts
@@ -53,7 +55,7 @@ function IPFS (repo) {
5355 if ( err ) {
5456 return callback ( err )
5557 }
56- var pid = peerId . createFromPrivKey ( config . Identity . PrivKey )
58+ var pid = PeerId . createFromPrivKey ( config . Identity . PrivKey )
5759 callback ( null , {
5860 ID : config . Identity . PeerID ,
5961 PublicKey : pid . pubKey ,
@@ -124,7 +126,7 @@ function IPFS (repo) {
124126 replace : ( config , callback ) => {
125127 repo . config . set ( config , callback )
126128 } ,
127- show : callback => {
129+ show : ( callback ) => {
128130 repo . config . get ( ( err , config ) => {
129131 if ( err ) { return callback ( err ) }
130132 callback ( null , config )
@@ -281,4 +283,28 @@ function IPFS (repo) {
281283 } )
282284 }
283285 }
286+
287+ this . libp2p = {
288+ start : ( options , callback ) => {
289+ // create libp2pNode and make it to listen
290+ // patch this.libp2p with .routing .records and .swarm
291+ this . config . show ( ( err , config ) => {
292+ if ( err ) {
293+ return callback ( err )
294+ }
295+ options . multiaddrs = { tcp : multiaddr ( config . Addresses . Swarm [ 0 ] ) }
296+ this . nodeId = PeerId . createFromPrivKey ( config . Identity . PrivKey )
297+
298+ this . nodeInfo = new PeerInfo ( this . nodeId , [ ] )
299+ options . peer = this . nodeInfo
300+
301+ libp2pNode = libp2p ( options )
302+ this . libp2p . swarm = libp2pNode . swarm
303+ this . libp2p . routing = libp2pNode . routing
304+ this . libp2p . records = libp2pNode . records
305+ libp2pNode . listen ( callback )
306+ } )
307+ } ,
308+ stop : ( options , callback ) => { }
309+ }
284310}
0 commit comments