2021-03-10 14:24:23 +11:00
|
|
|
import Libp2p from 'libp2p';
|
|
|
|
|
import Gossipsub from 'libp2p-gossipsub';
|
|
|
|
|
import Mplex from 'libp2p-mplex';
|
|
|
|
|
import { NOISE } from 'libp2p-noise';
|
|
|
|
|
import TCP from 'libp2p-tcp';
|
|
|
|
|
|
2021-03-10 14:30:31 +11:00
|
|
|
export async function createNode() {
|
|
|
|
|
const node = await Libp2p.create({
|
|
|
|
|
addresses: {
|
|
|
|
|
listen: ['/ip4/0.0.0.0/tcp/0'],
|
|
|
|
|
},
|
|
|
|
|
modules: {
|
|
|
|
|
transport: [TCP],
|
|
|
|
|
streamMuxer: [Mplex],
|
|
|
|
|
connEncryption: [NOISE],
|
|
|
|
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
|
|
|
// @ts-ignore: Type needs update
|
|
|
|
|
pubsub: Gossipsub,
|
|
|
|
|
},
|
2021-03-10 14:58:04 +11:00
|
|
|
config: {
|
|
|
|
|
pubsub: {
|
|
|
|
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
|
|
|
// @ts-ignore
|
|
|
|
|
enabled: true,
|
|
|
|
|
emitSelf: true,
|
|
|
|
|
signMessages: false,
|
|
|
|
|
strictSigning: false,
|
|
|
|
|
},
|
|
|
|
|
},
|
2021-03-10 14:30:31 +11:00
|
|
|
});
|
2021-03-10 14:24:23 +11:00
|
|
|
|
2021-03-10 14:30:31 +11:00
|
|
|
await node.start();
|
|
|
|
|
return node;
|
|
|
|
|
}
|