mirror of
https://github.com/fluencelabs/js-libp2p
synced 2025-06-24 06:21:32 +00:00
* fix: performance bottleneck in stat.js (#463) Array.shift seems to be very slow, perhaps linear, on some engines, resulting in _update consuming a lot of CPU. * docs(fix): correct docs and example for pnet (#464) * docs(fix): correct docs and example for pnet * docs(fix): correct pnet docs * docs(fix): update README.md language (#468) * docs: reciprocate (#474) * docs(example): fix ipfs cat (#475) `ipfs.files.cat` is incorrect. the correct function is `ipfs.cat` * fix: async-await example chat * fix: move handler before start * fix: examples readme typos (#481) * fix: simplify libp2p bundle for echo example * chore: remove unused vars
48 lines
1.4 KiB
JavaScript
48 lines
1.4 KiB
JavaScript
'use strict'
|
|
/* eslint-disable no-console */
|
|
|
|
const PeerId = require('peer-id')
|
|
const PeerInfo = require('peer-info')
|
|
const Node = require('./libp2p-bundle')
|
|
const { stdinToStream, streamToConsole } = require('./stream')
|
|
|
|
async function run() {
|
|
const [idDialer, idListener] = await Promise.all([
|
|
PeerId.createFromJSON(require('./peer-id-dialer')),
|
|
PeerId.createFromJSON(require('./peer-id-listener'))
|
|
])
|
|
|
|
// Create a new libp2p node on localhost with a randomly chosen port
|
|
const peerDialer = new PeerInfo(idDialer)
|
|
peerDialer.multiaddrs.add('/ip4/0.0.0.0/tcp/0')
|
|
const nodeDialer = new Node({
|
|
peerInfo: peerDialer
|
|
})
|
|
|
|
// Create a PeerInfo with the listening peer's address
|
|
const peerListener = new PeerInfo(idListener)
|
|
peerListener.multiaddrs.add('/ip4/127.0.0.1/tcp/10333')
|
|
|
|
// Start the libp2p host
|
|
await nodeDialer.start()
|
|
|
|
// Output this node's address
|
|
console.log('Dialer ready, listening on:')
|
|
peerListener.multiaddrs.forEach((ma) => {
|
|
console.log(ma.toString() + '/p2p/' + idListener.toB58String())
|
|
})
|
|
|
|
// Dial to the remote peer (the "listener")
|
|
const { stream } = await nodeDialer.dialProtocol(peerListener, '/chat/1.0.0')
|
|
|
|
console.log('Dialer dialed to listener on protocol: /chat/1.0.0')
|
|
console.log('Type a message and see what happens')
|
|
|
|
// Send stdin to the stream
|
|
stdinToStream(stream)
|
|
// Read the stream and output to console
|
|
streamToConsole(stream)
|
|
}
|
|
|
|
run()
|