mirror of
https://github.com/fluencelabs/js-libp2p
synced 2025-06-09 15:31:19 +00:00
parent
e9e4b731a5
commit
73204958ee
47
doc/API.md
47
doc/API.md
@ -114,12 +114,25 @@ For Libp2p configurations and modules details read the [Configuration Document](
|
|||||||
|
|
||||||
```js
|
```js
|
||||||
const Libp2p = require('libp2p')
|
const Libp2p = require('libp2p')
|
||||||
|
const TCP = require('libp2p-tcp')
|
||||||
|
const MPLEX = require('libp2p-mplex')
|
||||||
|
const { NOISE } = require('libp2p-noise')
|
||||||
|
|
||||||
// specify options
|
async function main () {
|
||||||
const options = {}
|
// specify options
|
||||||
|
const options = {
|
||||||
|
modules: {
|
||||||
|
transport: [TCP],
|
||||||
|
streamMuxer: [MPLEX],
|
||||||
|
connEncryption: [NOISE]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// create libp2p
|
// create libp2p
|
||||||
const libp2p = await Libp2p.create(options)
|
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.
|
Note: The [`PeerId`][peer-id] option is not required and will be generated if it is not provided.
|
||||||
@ -131,12 +144,30 @@ As an alternative, it is possible to create a Libp2p instance with the construct
|
|||||||
|
|
||||||
```js
|
```js
|
||||||
const Libp2p = require('libp2p')
|
const Libp2p = require('libp2p')
|
||||||
|
const TCP = require('libp2p-tcp')
|
||||||
|
const MPLEX = require('libp2p-mplex')
|
||||||
|
const { NOISE } = require('libp2p-noise')
|
||||||
|
const PeerId = require('peer-id')
|
||||||
|
|
||||||
// specify options
|
async function main () {
|
||||||
const options = {}
|
const peerId = await PeerId.create();
|
||||||
|
|
||||||
// create libp2p
|
// specify options
|
||||||
const libp2p = new Libp2p(options)
|
// peerId is required when Libp2p is instantiated via the constructor
|
||||||
|
const options = {
|
||||||
|
peerId,
|
||||||
|
modules: {
|
||||||
|
transport: [TCP],
|
||||||
|
streamMuxer: [MPLEX],
|
||||||
|
connEncryption: [NOISE]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// create libp2p
|
||||||
|
const libp2p = new Libp2p(options)
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
```
|
```
|
||||||
|
|
||||||
Required keys in the `options` object:
|
Required keys in the `options` object:
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
const PeerId = require('peer-id')
|
const PeerId = require('peer-id')
|
||||||
const multiaddr = require('multiaddr')
|
const multiaddr = require('multiaddr')
|
||||||
const Node = require('./libp2p-bundle')
|
const createLibp2p = require('./libp2p-bundle')
|
||||||
const { stdinToStream, streamToConsole } = require('./stream')
|
const { stdinToStream, streamToConsole } = require('./stream')
|
||||||
|
|
||||||
async function run() {
|
async function run() {
|
||||||
@ -13,7 +13,7 @@ async function run() {
|
|||||||
])
|
])
|
||||||
|
|
||||||
// Create a new libp2p node on localhost with a randomly chosen port
|
// Create a new libp2p node on localhost with a randomly chosen port
|
||||||
const nodeDialer = new Node({
|
const nodeDialer = await createLibp2p({
|
||||||
peerId: idDialer,
|
peerId: idDialer,
|
||||||
addresses: {
|
addresses: {
|
||||||
listen: ['/ip4/0.0.0.0/tcp/0']
|
listen: ['/ip4/0.0.0.0/tcp/0']
|
||||||
|
@ -7,21 +7,16 @@ const { NOISE } = require('libp2p-noise')
|
|||||||
const defaultsDeep = require('@nodeutils/defaults-deep')
|
const defaultsDeep = require('@nodeutils/defaults-deep')
|
||||||
const libp2p = require('../../..')
|
const libp2p = require('../../..')
|
||||||
|
|
||||||
class Node extends libp2p {
|
async function createLibp2p(_options) {
|
||||||
constructor (_options) {
|
const defaults = {
|
||||||
const defaults = {
|
modules: {
|
||||||
modules: {
|
transport: [TCP, WS],
|
||||||
transport: [
|
streamMuxer: [mplex],
|
||||||
TCP,
|
connEncryption: [NOISE],
|
||||||
WS
|
},
|
||||||
],
|
|
||||||
streamMuxer: [ mplex ],
|
|
||||||
connEncryption: [ NOISE ]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
super(defaultsDeep(_options, defaults))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return libp2p.create(defaultsDeep(_options, defaults))
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = Node
|
module.exports = createLibp2p
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
/* eslint-disable no-console */
|
/* eslint-disable no-console */
|
||||||
|
|
||||||
const PeerId = require('peer-id')
|
const PeerId = require('peer-id')
|
||||||
const Node = require('./libp2p-bundle.js')
|
const createLibp2p = require('./libp2p-bundle.js')
|
||||||
const { stdinToStream, streamToConsole } = require('./stream')
|
const { stdinToStream, streamToConsole } = require('./stream')
|
||||||
|
|
||||||
async function run() {
|
async function run() {
|
||||||
// Create a new libp2p node with the given multi-address
|
// Create a new libp2p node with the given multi-address
|
||||||
const idListener = await PeerId.createFromJSON(require('./peer-id-listener'))
|
const idListener = await PeerId.createFromJSON(require('./peer-id-listener'))
|
||||||
const nodeListener = new Node({
|
const nodeListener = await createLibp2p({
|
||||||
peerId: idListener,
|
peerId: idListener,
|
||||||
addresses: {
|
addresses: {
|
||||||
listen: ['/ip4/0.0.0.0/tcp/10333']
|
listen: ['/ip4/0.0.0.0/tcp/10333']
|
||||||
|
@ -5,9 +5,8 @@
|
|||||||
* Dialer Node
|
* Dialer Node
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const multiaddr = require('multiaddr')
|
|
||||||
const PeerId = require('peer-id')
|
const PeerId = require('peer-id')
|
||||||
const Node = require('./libp2p-bundle')
|
const createLibp2p = require('./libp2p-bundle')
|
||||||
const pipe = require('it-pipe')
|
const pipe = require('it-pipe')
|
||||||
|
|
||||||
async function run() {
|
async function run() {
|
||||||
@ -17,7 +16,7 @@ async function run() {
|
|||||||
])
|
])
|
||||||
|
|
||||||
// Dialer
|
// Dialer
|
||||||
const dialerNode = new Node({
|
const dialerNode = await createLibp2p({
|
||||||
addresses: {
|
addresses: {
|
||||||
listen: ['/ip4/0.0.0.0/tcp/0']
|
listen: ['/ip4/0.0.0.0/tcp/0']
|
||||||
},
|
},
|
||||||
|
@ -8,21 +8,16 @@ const { NOISE } = require('libp2p-noise')
|
|||||||
const defaultsDeep = require('@nodeutils/defaults-deep')
|
const defaultsDeep = require('@nodeutils/defaults-deep')
|
||||||
const libp2p = require('../../..')
|
const libp2p = require('../../..')
|
||||||
|
|
||||||
class Node extends libp2p {
|
async function createLibp2p(_options) {
|
||||||
constructor (_options) {
|
const defaults = {
|
||||||
const defaults = {
|
modules: {
|
||||||
modules: {
|
transport: [TCP, WS],
|
||||||
transport: [
|
streamMuxer: [mplex],
|
||||||
TCP,
|
connEncryption: [NOISE],
|
||||||
WS
|
},
|
||||||
],
|
|
||||||
streamMuxer: [ mplex ],
|
|
||||||
connEncryption: [ NOISE ]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
super(defaultsDeep(_options, defaults))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return libp2p.create(defaultsDeep(_options, defaults))
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = Node
|
module.exports = createLibp2p
|
||||||
|
@ -6,14 +6,14 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
const PeerId = require('peer-id')
|
const PeerId = require('peer-id')
|
||||||
const Node = require('./libp2p-bundle')
|
const createLibp2p = require('./libp2p-bundle')
|
||||||
const pipe = require('it-pipe')
|
const pipe = require('it-pipe')
|
||||||
|
|
||||||
async function run() {
|
async function run() {
|
||||||
const listenerId = await PeerId.createFromJSON(require('./id-l'))
|
const listenerId = await PeerId.createFromJSON(require('./id-l'))
|
||||||
|
|
||||||
// Listener libp2p node
|
// Listener libp2p node
|
||||||
const listenerNode = new Node({
|
const listenerNode = await createLibp2p({
|
||||||
addresses: {
|
addresses: {
|
||||||
listen: ['/ip4/0.0.0.0/tcp/10333']
|
listen: ['/ip4/0.0.0.0/tcp/10333']
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user