mirror of
https://github.com/vacp2p/waku-web-chat.git
synced 2026-01-08 20:57:58 -05:00
63 lines
1.4 KiB
JavaScript
63 lines
1.4 KiB
JavaScript
// Libp2p Core
|
|
import Libp2p from 'libp2p'
|
|
// Transports
|
|
import Websockets from 'libp2p-websockets'
|
|
import WebrtcStar from 'libp2p-webrtc-star'
|
|
// Stream Muxer
|
|
import Mplex from 'libp2p-mplex'
|
|
// Connection Encryption
|
|
import { NOISE } from 'libp2p-noise'
|
|
import Secio from 'libp2p-secio'
|
|
// Peer Discovery
|
|
import Bootstrap from 'libp2p-bootstrap'
|
|
import KadDHT from 'libp2p-kad-dht'
|
|
// Gossipsub
|
|
import Gossipsub from 'libp2p-gossipsub'
|
|
|
|
const createLibp2p = async (peerId) => {
|
|
// Create the Node
|
|
const libp2p = await Libp2p.create({
|
|
peerId,
|
|
addresses: {
|
|
listen: [
|
|
// Add the signaling server multiaddr
|
|
'/ip4/127.0.0.1/tcp/15555/ws/p2p-webrtc-star'
|
|
]
|
|
},
|
|
modules: {
|
|
transport: [Websockets, WebrtcStar],
|
|
streamMuxer: [Mplex],
|
|
connEncryption: [NOISE, Secio],
|
|
peerDiscovery: [Bootstrap],
|
|
dht: KadDHT,
|
|
pubsub: Gossipsub
|
|
},
|
|
config: {
|
|
peerDiscovery: {
|
|
bootstrap: {
|
|
list: ['/ip4/127.0.0.1/tcp/63786/ws/p2p/QmWjz6xb8v9K4KnYEwP5Yk75k5mMBCehzWFLCvvQpYxF3d']
|
|
}
|
|
},
|
|
dht: {
|
|
enabled: true,
|
|
randomWalk: {
|
|
enabled: true
|
|
}
|
|
},
|
|
pubsub: {
|
|
enabled: true,
|
|
emitSelf: true,
|
|
signMessages: false,
|
|
strictSigning: false
|
|
}
|
|
}
|
|
})
|
|
|
|
// Automatically start libp2p
|
|
await libp2p.start()
|
|
|
|
return libp2p
|
|
}
|
|
|
|
export default createLibp2p
|