Compare commits

...

5 Commits

5 changed files with 30 additions and 16 deletions

View File

@ -22,81 +22,81 @@ jobs:
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- run: npm install - run: npm install
- run: cd examples && yarn && npm run test -- auto-relay - run: cd examples && npm install && npm run test -- auto-relay
test-chat-example: test-chat-example:
needs: check needs: check
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- run: npm install - run: npm install
- run: cd examples && yarn && npm run test -- chat - run: cd examples && npm install && npm run test -- chat
test-connection-encryption-example: test-connection-encryption-example:
needs: check needs: check
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- run: npm install - run: npm install
- run: cd examples && yarn && npm run test -- connection-encryption - run: cd examples && npm install && npm run test -- connection-encryption
test-discovery-mechanisms-example: test-discovery-mechanisms-example:
needs: check needs: check
runs-on: macos-latest runs-on: macos-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- run: npm install - run: npm install
- run: cd examples && yarn && npm run test -- discovery-mechanisms - run: cd examples && npm install && npm run test -- discovery-mechanisms
test-echo-example: test-echo-example:
needs: check needs: check
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- run: npm install - run: npm install
- run: cd examples && yarn && npm run test -- echo - run: cd examples && npm install && npm run test -- echo
test-libp2p-in-the-browser-example: test-libp2p-in-the-browser-example:
needs: check needs: check
runs-on: macos-latest runs-on: macos-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- run: npm install - run: npm install
- run: cd examples && yarn && npm run test -- libp2p-in-the-browser - run: cd examples && npm install && npm run test -- libp2p-in-the-browser
test-peer-and-content-routing-example: test-peer-and-content-routing-example:
needs: check needs: check
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- run: npm install - run: npm install
- run: cd examples && yarn && npm run test -- peer-and-content-routing - run: cd examples && npm install && npm run test -- peer-and-content-routing
test-pnet-example: test-pnet-example:
needs: check needs: check
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- run: npm install - run: npm install
- run: cd examples && yarn && npm run test -- pnet - run: cd examples && npm install && npm run test -- pnet
test-protocol-and-stream-muxing-example: test-protocol-and-stream-muxing-example:
needs: check needs: check
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- run: npm install - run: npm install
- run: cd examples && yarn && npm run test -- protocol-and-stream-muxing - run: cd examples && npm install && npm run test -- protocol-and-stream-muxing
test-pubsub-example: test-pubsub-example:
needs: check needs: check
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- run: npm install - run: npm install
- run: cd examples && yarn && npm run test -- pubsub - run: cd examples && npm install && npm run test -- pubsub
test-transports-example: test-transports-example:
needs: check needs: check
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- run: npm install - run: npm install
- run: cd examples && yarn && npm run test -- transports - run: cd examples && npm install && npm run test -- transports
test-webrtc-direct-example: test-webrtc-direct-example:
needs: check needs: check
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- run: npm install - run: npm install
- run: cd examples && yarn && npm run test -- webrtc-direct - run: cd examples && npm install && npm run test -- webrtc-direct

View File

@ -210,7 +210,7 @@ const modules = {
Moreover, the majority of the modules can be customized via option parameters. This way, it is also possible to provide this options through a `config` object. This config object should have the property name of each building block to configure, the same way as the modules specification. Moreover, the majority of the modules can be customized via option parameters. This way, it is also possible to provide this options through a `config` object. This config object should have the property name of each building block to configure, the same way as the modules specification.
Besides the `modules` and `config`, libp2p allows other internal options and configurations: Besides the `modules` and `config`, libp2p allows other internal options and configurations:
- `datastore`: an instance of [ipfs/interface-datastore](https://github.com/ipfs/interface-datastore/) modules. - `datastore`: an instance of [ipfs/interface-datastore](https://github.com/ipfs/js-ipfs-interfaces/tree/master/packages/interface-datastore) modules.
- This is used in modules such as the DHT. If it is not provided, `js-libp2p` will use an in memory datastore. - This is used in modules such as the DHT. If it is not provided, `js-libp2p` will use an in memory datastore.
- `peerId`: the identity of the node, an instance of [libp2p/js-peer-id](https://github.com/libp2p/js-peer-id). - `peerId`: the identity of the node, an instance of [libp2p/js-peer-id](https://github.com/libp2p/js-peer-id).
- This is particularly useful if you want to reuse the same `peer-id`, as well as for modules like `libp2p-delegated-content-routing`, which need a `peer-id` in their instantiation. - This is particularly useful if you want to reuse the same `peer-id`, as well as for modules like `libp2p-delegated-content-routing`, which need a `peer-id` in their instantiation.

View File

@ -0,0 +1,14 @@
<!--Specify versions for migration below-->
# Migrating to libp2p@33
A migration guide for refactoring your application code from libp2p v0.32.x to v0.33.0.
## Table of Contents
- [Module Updates](#module-updates)
## Module Updates
Libp2p uses a datastore implementation for Peerstore persistence and for the DHT state. While libp2p defaults to a datastore implementation, it can receive any implementation of a datastore compliant with the [interface-datastore](https://github.com/ipfs/js-ipfs-interfaces/tree/master/packages/interface-datastore) via its configuration.
In this release, we updated to `interface-datastore@6.0.0`. As a result, libp2p users relying on a configured datastore should update it to a compliant implementation for updating libp2p.

View File

@ -125,7 +125,7 @@ As you can see in the code, we need to provide the relay address, `relayAddr`, a
You should now run the following to start the node running Auto Relay: You should now run the following to start the node running Auto Relay:
```sh ```sh
node listener.js /ip4/192.168.1.120/tcp/58941/ws/p2p/QmQKCBm87HQMbFqy14oqC85pMmnRrj6iD46ggM6reqNpsd node listener.js /ip4/192.168.1.120/tcp/61592/ws/p2p/QmWDn2LY8nannvSWJzruUYoLZ4vV83vfCBwd8DipvdgQc3
``` ```
This should print out something similar to the following: This should print out something similar to the following:
@ -173,7 +173,7 @@ console.log(`Connected to the auto relay node via ${conn.remoteAddr.toString()}`
You should now run the following to start the relay node using the listen address from step 2: You should now run the following to start the relay node using the listen address from step 2:
```sh ```sh
node dialer.js /ip4/192.168.1.120/tcp/58941/ws/p2p/QmQKCBm87HQMbFqy14oqC85pMmnRrj6iD46ggM6reqNpsd node dialer.js /ip4/192.168.1.120/tcp/61592/ws/p2p/QmWDn2LY8nannvSWJzruUYoLZ4vV83vfCBwd8DipvdgQc3
``` ```
Once you start your test node, it should print out something similar to the following: Once you start your test node, it should print out something similar to the following:

View File

@ -10,7 +10,6 @@ const log = Object.assign(debug('libp2p:nat'), {
}) })
const { isBrowser } = require('wherearewe') const { isBrowser } = require('wherearewe')
const retry = require('p-retry') const retry = require('p-retry')
// @ts-ignore private-api does not export types
const isPrivateIp = require('private-ip') const isPrivateIp = require('private-ip')
const pkg = require('../package.json') const pkg = require('../package.json')
const errcode = require('err-code') const errcode = require('err-code')
@ -115,6 +114,7 @@ class NatManager {
const client = this._getClient() const client = this._getClient()
const publicIp = this._externalIp || await client.externalIp() const publicIp = this._externalIp || await client.externalIp()
// @ts-ignore isPrivate has no call signatures
if (isPrivateIp(publicIp)) { if (isPrivateIp(publicIp)) {
throw new Error(`${publicIp} is private - please set config.nat.externalIp to an externally routable IP or ensure you are not behind a double NAT`) throw new Error(`${publicIp} is private - please set config.nat.externalIp to an externally routable IP or ensure you are not behind a double NAT`)
} }