js-libp2p/examples/delegated-routing/src/libp2p-configuration.js
2020-11-09 15:17:57 +01:00

68 lines
1.5 KiB
JavaScript

// eslint-disable-next-line
'use strict'
const Libp2p = require('libp2p')
const Websockets = require('libp2p-websockets')
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')
export default function Libp2pConfiguration ({peerId}) {
const delegatedApiOptions = {
protocol: 'https',
port: 443,
host: 'node0.delegate.ipfs.io'
}
return new Libp2p({
peerId,
// Lets limit the connection managers peers and have it check peer health less frequently
connectionManager: {
maxPeers: 10,
pollInterval: 5000
},
modules: {
contentRouting: [
new DelegatedContentRouter(peerId, delegatedApiOptions)
],
peerRouting: [
new DelegatedPeerRouter(delegatedApiOptions)
],
transport: [
WebRTCStar,
Websockets
],
streamMuxer: [
MPLEX
],
connEncryption: [
SECIO
],
dht: KadDHT
},
config: {
peerDiscovery: {
autoDial: false,
webrtcStar: {
enabled: false
},
websocketStar: {
enabled: false
}
},
dht: {
enabled: false
},
relay: {
enabled: true,
hop: {
enabled: false
}
}
}
})
}