1
0
mirror of https://github.com/fluencelabs/js-libp2p synced 2025-06-28 08:21:33 +00:00
Files
.github
doc
examples
auto-relay
chat
connection-encryption
1.js
README.md
test.js
delegated-routing
discovery-mechanisms
echo
libp2p-in-the-browser
nat-traversal
peer-and-content-routing
pnet
protocol-and-stream-muxing
pubsub
transports
webrtc-direct
README.md
package.json
test-all.js
test.js
utils.js
img
scripts
src
test
.aegir.js
.gitignore
CHANGELOG.md
CODE_OF_CONDUCT.md
CONTRIBUTING.md
ISSUE_TEMPLATE.md
LICENSE
MIGRATION_TEMPLATE.md
OKR.md
README.md
package-list.json
package.json
tsconfig.json
js-libp2p/examples/connection-encryption/1.js

53 lines
1.0 KiB
JavaScript
Raw Normal View History

'use strict'
const Libp2p = require('../..')
const TCP = require('libp2p-tcp')
const Mplex = require('libp2p-mplex')
const { NOISE } = require('libp2p-noise')
const pipe = require('it-pipe')
const createNode = async () => {
const node = await Libp2p.create({
addresses: {
listen: ['/ip4/0.0.0.0/tcp/0']
},
modules: {
transport: [TCP],
streamMuxer: [Mplex],
connEncryption: [NOISE]
}
})
await node.start()
return node
}
;(async () => {
const [node1, node2] = await Promise.all([
createNode(),
createNode()
])
node1.peerStore.addressBook.set(node2.peerId, node2.multiaddrs)
node2.handle('/a-protocol', ({ stream }) => {
pipe(
stream,
async function (source) {
for await (const msg of source) {
console.log(msg.toString())
}
}
)
})
const { stream } = await node1.dialProtocol(node2.peerId, '/a-protocol')
await pipe(
['This information is sent out encrypted to the other peer'],
stream
)
})();