From e2d994e06b5762fabae5b130c39989ae1685c00f Mon Sep 17 00:00:00 2001 From: Matthias Knopp Date: Thu, 26 Nov 2020 19:10:42 +0100 Subject: [PATCH 1/2] docs: use Libp2p.create() in examples (#811) --- doc/API.md | 16 ++++++++++++---- examples/chat/src/dialer.js | 4 ++-- examples/chat/src/libp2p-bundle.js | 25 ++++++++++--------------- examples/chat/src/listener.js | 4 ++-- examples/echo/src/dialer.js | 5 ++--- examples/echo/src/libp2p-bundle.js | 25 ++++++++++--------------- examples/echo/src/listener.js | 4 ++-- 7 files changed, 40 insertions(+), 43 deletions(-) diff --git a/doc/API.md b/doc/API.md index f059741721..57c13ab9b9 100644 --- a/doc/API.md +++ b/doc/API.md @@ -131,12 +131,20 @@ As an alternative, it is possible to create a Libp2p instance with the construct ```js const Libp2p = require('libp2p') +const PeerId = require('peer-id') -// specify options -const options = {} +;(async () => { + const peerId = await PeerId.create(); -// create libp2p -const libp2p = new Libp2p(options) + // specify options + // peerId is required when Libp2p is instantiated via the constructor + const options = { + peerId + } + + // create libp2p + const libp2p = new Libp2p(options) +})() ``` Required keys in the `options` object: diff --git a/examples/chat/src/dialer.js b/examples/chat/src/dialer.js index 12e969c301..10581ed237 100644 --- a/examples/chat/src/dialer.js +++ b/examples/chat/src/dialer.js @@ -3,7 +3,7 @@ const PeerId = require('peer-id') const multiaddr = require('multiaddr') -const Node = require('./libp2p-bundle') +const createLibp2p = require('./libp2p-bundle') const { stdinToStream, streamToConsole } = require('./stream') async function run() { @@ -13,7 +13,7 @@ async function run() { ]) // Create a new libp2p node on localhost with a randomly chosen port - const nodeDialer = new Node({ + const nodeDialer = await createLibp2p({ peerId: idDialer, addresses: { listen: ['/ip4/0.0.0.0/tcp/0'] diff --git a/examples/chat/src/libp2p-bundle.js b/examples/chat/src/libp2p-bundle.js index dd4596708f..c4bfb88d65 100644 --- a/examples/chat/src/libp2p-bundle.js +++ b/examples/chat/src/libp2p-bundle.js @@ -7,21 +7,16 @@ const { NOISE } = require('libp2p-noise') const defaultsDeep = require('@nodeutils/defaults-deep') const libp2p = require('../../..') -class Node extends libp2p { - constructor (_options) { - const defaults = { - modules: { - transport: [ - TCP, - WS - ], - streamMuxer: [ mplex ], - connEncryption: [ NOISE ] - } - } - - super(defaultsDeep(_options, defaults)) +async function createLibp2p(_options) { + const defaults = { + modules: { + transport: [TCP, WS], + streamMuxer: [mplex], + connEncryption: [NOISE], + }, } + + return libp2p.create(defaultsDeep(_options, defaults)) } -module.exports = Node +module.exports = createLibp2p diff --git a/examples/chat/src/listener.js b/examples/chat/src/listener.js index 9b4aa49576..0a64660072 100644 --- a/examples/chat/src/listener.js +++ b/examples/chat/src/listener.js @@ -2,13 +2,13 @@ /* eslint-disable no-console */ const PeerId = require('peer-id') -const Node = require('./libp2p-bundle.js') +const createLibp2p = require('./libp2p-bundle.js') const { stdinToStream, streamToConsole } = require('./stream') async function run() { // Create a new libp2p node with the given multi-address const idListener = await PeerId.createFromJSON(require('./peer-id-listener')) - const nodeListener = new Node({ + const nodeListener = await createLibp2p({ peerId: idListener, addresses: { listen: ['/ip4/0.0.0.0/tcp/10333'] diff --git a/examples/echo/src/dialer.js b/examples/echo/src/dialer.js index 05227bf9ab..aa20208edd 100644 --- a/examples/echo/src/dialer.js +++ b/examples/echo/src/dialer.js @@ -5,9 +5,8 @@ * Dialer Node */ -const multiaddr = require('multiaddr') const PeerId = require('peer-id') -const Node = require('./libp2p-bundle') +const createLibp2p = require('./libp2p-bundle') const pipe = require('it-pipe') async function run() { @@ -17,7 +16,7 @@ async function run() { ]) // Dialer - const dialerNode = new Node({ + const dialerNode = await createLibp2p({ addresses: { listen: ['/ip4/0.0.0.0/tcp/0'] }, diff --git a/examples/echo/src/libp2p-bundle.js b/examples/echo/src/libp2p-bundle.js index 0e11a7103d..4f14a6e14f 100644 --- a/examples/echo/src/libp2p-bundle.js +++ b/examples/echo/src/libp2p-bundle.js @@ -8,21 +8,16 @@ const { NOISE } = require('libp2p-noise') const defaultsDeep = require('@nodeutils/defaults-deep') const libp2p = require('../../..') -class Node extends libp2p { - constructor (_options) { - const defaults = { - modules: { - transport: [ - TCP, - WS - ], - streamMuxer: [ mplex ], - connEncryption: [ NOISE ] - } - } - - super(defaultsDeep(_options, defaults)) +async function createLibp2p(_options) { + const defaults = { + modules: { + transport: [TCP, WS], + streamMuxer: [mplex], + connEncryption: [NOISE], + }, } + + return libp2p.create(defaultsDeep(_options, defaults)) } -module.exports = Node +module.exports = createLibp2p diff --git a/examples/echo/src/listener.js b/examples/echo/src/listener.js index fffc57b57e..e4a9cd171b 100644 --- a/examples/echo/src/listener.js +++ b/examples/echo/src/listener.js @@ -6,14 +6,14 @@ */ const PeerId = require('peer-id') -const Node = require('./libp2p-bundle') +const createLibp2p = require('./libp2p-bundle') const pipe = require('it-pipe') async function run() { const listenerId = await PeerId.createFromJSON(require('./id-l')) // Listener libp2p node - const listenerNode = new Node({ + const listenerNode = await createLibp2p({ addresses: { listen: ['/ip4/0.0.0.0/tcp/10333'] }, From c3af0ef8a802bcdd331a357bcf05149cb88fc42a Mon Sep 17 00:00:00 2001 From: Matthias Knopp Date: Fri, 27 Nov 2020 13:13:51 +0100 Subject: [PATCH 2/2] docs: add required Libp2p modules (#811) --- doc/API.md | 37 ++++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/doc/API.md b/doc/API.md index 57c13ab9b9..84d971512a 100644 --- a/doc/API.md +++ b/doc/API.md @@ -114,12 +114,25 @@ For Libp2p configurations and modules details read the [Configuration Document]( ```js const Libp2p = require('libp2p') +const TCP = require('libp2p-tcp') +const MPLEX = require('libp2p-mplex') +const { NOISE } = require('libp2p-noise') -// specify options -const options = {} +async function main () { + // specify options + const options = { + modules: { + transport: [TCP], + streamMuxer: [MPLEX], + connEncryption: [NOISE] + } + } -// create libp2p -const libp2p = await Libp2p.create(options) + // create libp2p + const libp2p = await Libp2p.create(options) +} + +main() ``` Note: The [`PeerId`][peer-id] option is not required and will be generated if it is not provided. @@ -131,20 +144,30 @@ As an alternative, it is possible to create a Libp2p instance with the construct ```js const Libp2p = require('libp2p') +const TCP = require('libp2p-tcp') +const MPLEX = require('libp2p-mplex') +const { NOISE } = require('libp2p-noise') const PeerId = require('peer-id') -;(async () => { +async function main () { const peerId = await PeerId.create(); // specify options // peerId is required when Libp2p is instantiated via the constructor const options = { - peerId + peerId, + modules: { + transport: [TCP], + streamMuxer: [MPLEX], + connEncryption: [NOISE] + } } // create libp2p const libp2p = new Libp2p(options) -})() +} + +main() ``` Required keys in the `options` object: