mirror of
https://github.com/fluencelabs/js-libp2p
synced 2025-04-02 15:51:06 +00:00
79 lines
1.8 KiB
JavaScript
79 lines
1.8 KiB
JavaScript
|
// eslint-disable-next-line
|
||
|
'use strict'
|
||
|
|
||
|
const Libp2p = require('libp2p')
|
||
|
const Websockets = require('libp2p-websockets')
|
||
|
const WebSocketStar = require('libp2p-websocket-star')
|
||
|
const WebRTCStar = require('libp2p-webrtc-star')
|
||
|
const MPLEX = require('libp2p-mplex')
|
||
|
const SECIO = require('libp2p-secio')
|
||
|
const KadDHT = require('libp2p-kad-dht')
|
||
|
const DelegatedPeerRouter = require('libp2p-delegated-peer-routing')
|
||
|
const DelegatedContentRouter = require('libp2p-delegated-content-routing')
|
||
|
|
||
|
module.exports = ({peerInfo, peerBook}) => {
|
||
|
const wrtcstar = new WebRTCStar({id: peerInfo.id})
|
||
|
const wsstar = new WebSocketStar({id: peerInfo.id})
|
||
|
const delegatedApiOptions = {
|
||
|
host: '0.0.0.0',
|
||
|
protocol: 'http',
|
||
|
port: '8080'
|
||
|
}
|
||
|
|
||
|
return new Libp2p({
|
||
|
peerInfo,
|
||
|
peerBook,
|
||
|
// Lets limit the connection managers peers and have it check peer health less frequently
|
||
|
connectionManager: {
|
||
|
maxPeers: 10,
|
||
|
pollInterval: 5000
|
||
|
},
|
||
|
modules: {
|
||
|
contentRouting: [
|
||
|
new DelegatedContentRouter(peerInfo.id, delegatedApiOptions)
|
||
|
],
|
||
|
peerRouting: [
|
||
|
new DelegatedPeerRouter(delegatedApiOptions)
|
||
|
],
|
||
|
peerDiscovery: [
|
||
|
wrtcstar.discovery,
|
||
|
wsstar.discovery
|
||
|
],
|
||
|
transport: [
|
||
|
wrtcstar,
|
||
|
wsstar,
|
||
|
Websockets
|
||
|
],
|
||
|
streamMuxer: [
|
||
|
MPLEX
|
||
|
],
|
||
|
connEncryption: [
|
||
|
SECIO
|
||
|
],
|
||
|
dht: KadDHT
|
||
|
},
|
||
|
config: {
|
||
|
peerDiscovery: {
|
||
|
webrtcStar: {
|
||
|
enabled: false
|
||
|
},
|
||
|
websocketStar: {
|
||
|
enabled: false
|
||
|
}
|
||
|
},
|
||
|
dht: {
|
||
|
kBucketSize: 20
|
||
|
},
|
||
|
relay: {
|
||
|
enabled: true,
|
||
|
hop: {
|
||
|
enabled: false
|
||
|
}
|
||
|
},
|
||
|
EXPERIMENTAL: {
|
||
|
dht: false
|
||
|
}
|
||
|
}
|
||
|
})
|
||
|
}
|