libp2p 2.8.11 → 2.8.12-cfe2be4c9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.min.js +7 -7
- package/dist/index.min.js.map +4 -4
- package/dist/src/config.js +1 -1
- package/dist/src/config.js.map +1 -1
- package/dist/src/connection-manager/constants.defaults.d.ts +4 -0
- package/dist/src/connection-manager/constants.defaults.d.ts.map +1 -1
- package/dist/src/connection-manager/constants.defaults.js +4 -0
- package/dist/src/connection-manager/constants.defaults.js.map +1 -1
- package/dist/src/connection-manager/dial-queue.d.ts +4 -3
- package/dist/src/connection-manager/dial-queue.d.ts.map +1 -1
- package/dist/src/connection-manager/dial-queue.js +12 -11
- package/dist/src/connection-manager/dial-queue.js.map +1 -1
- package/dist/src/connection-manager/index.d.ts +3 -3
- package/dist/src/connection-manager/index.d.ts.map +1 -1
- package/dist/src/connection-manager/index.js +1 -1
- package/dist/src/connection-manager/index.js.map +1 -1
- package/dist/src/connection-manager/resolvers/dnsaddr.d.ts +11 -0
- package/dist/src/connection-manager/resolvers/dnsaddr.d.ts.map +1 -0
- package/dist/src/connection-manager/resolvers/dnsaddr.js +52 -0
- package/dist/src/connection-manager/resolvers/dnsaddr.js.map +1 -0
- package/dist/src/connection-manager/resolvers/index.d.ts +23 -0
- package/dist/src/connection-manager/resolvers/index.d.ts.map +1 -0
- package/dist/src/connection-manager/resolvers/index.js +31 -0
- package/dist/src/connection-manager/resolvers/index.js.map +1 -0
- package/dist/src/connection-manager/utils.d.ts +1 -6
- package/dist/src/connection-manager/utils.d.ts.map +1 -1
- package/dist/src/connection-manager/utils.js +4 -23
- package/dist/src/connection-manager/utils.js.map +1 -1
- package/dist/src/errors.d.ts +3 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +6 -0
- package/dist/src/errors.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.d.ts.map +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/package.json +10 -10
- package/src/config.ts +1 -1
- package/src/connection-manager/constants.defaults.ts +5 -0
- package/src/connection-manager/dial-queue.ts +16 -15
- package/src/connection-manager/index.ts +4 -4
- package/src/connection-manager/resolvers/dnsaddr.ts +69 -0
- package/src/connection-manager/resolvers/index.ts +59 -0
- package/src/connection-manager/utils.ts +6 -32
- package/src/errors.ts +7 -0
- package/src/index.ts +2 -0
- package/src/version.ts +1 -1
- package/dist/typedoc-urls.json +0 -21
package/dist/src/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -26,6 +26,7 @@ export type ServiceFactoryMap<T extends ServiceMap = ServiceMap> = {
|
|
|
26
26
|
[Property in keyof T]: (components: Components & T) => T[Property];
|
|
27
27
|
};
|
|
28
28
|
export type { AddressManagerInit, AddressFilter };
|
|
29
|
+
export { dnsaddrResolver } from './connection-manager/resolvers/index.ts';
|
|
29
30
|
/**
|
|
30
31
|
* For Libp2p configurations and modules details read the [Configuration Document](https://github.com/libp2p/js-libp2p/tree/main/doc/CONFIGURATION.md).
|
|
31
32
|
*/
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -17,6 +17,7 @@ import { generateKeyPair } from '@libp2p/crypto/keys';
|
|
|
17
17
|
import { peerIdFromPrivateKey } from '@libp2p/peer-id';
|
|
18
18
|
import { validateConfig } from './config.js';
|
|
19
19
|
import { Libp2p as Libp2pClass } from './libp2p.js';
|
|
20
|
+
export { dnsaddrResolver } from "./connection-manager/resolvers/index.js";
|
|
20
21
|
/**
|
|
21
22
|
* Returns a new instance of the Libp2p interface, generating a new PeerId
|
|
22
23
|
* if one is not passed as part of the options.
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,aAAa,CAAA;AAiBnD,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAA;AA0IzE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAsC,UAA4B,EAAE;IACpG,OAAO,CAAC,UAAU,KAAK,MAAM,eAAe,CAAC,SAAS,CAAC,CAAA;IAEvD,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC;QAC3B,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC;QAChC,MAAM,EAAE,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC;KACjD,CAAC,CAAA;IAEF,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;QAC5B,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC"}
|
package/dist/src/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,qBAAqB,CAAA;AACzC,eAAO,MAAM,IAAI,cAAc,CAAA"}
|
package/dist/src/version.js
CHANGED
package/dist/src/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,kBAAkB,CAAA;AACzC,MAAM,CAAC,MAAM,IAAI,GAAG,WAAW,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "libp2p",
|
|
3
|
-
"version": "2.8.
|
|
3
|
+
"version": "2.8.12-cfe2be4c9",
|
|
4
4
|
"description": "JavaScript implementation of libp2p, a modular peer to peer network stack",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/libp2p#readme",
|
|
@@ -80,15 +80,15 @@
|
|
|
80
80
|
"dependencies": {
|
|
81
81
|
"@chainsafe/is-ip": "^2.1.0",
|
|
82
82
|
"@chainsafe/netmask": "^2.0.0",
|
|
83
|
-
"@libp2p/crypto": "
|
|
84
|
-
"@libp2p/interface": "
|
|
85
|
-
"@libp2p/interface-internal": "
|
|
86
|
-
"@libp2p/logger": "
|
|
87
|
-
"@libp2p/multistream-select": "
|
|
88
|
-
"@libp2p/peer-collections": "
|
|
89
|
-
"@libp2p/peer-id": "
|
|
90
|
-
"@libp2p/peer-store": "
|
|
91
|
-
"@libp2p/utils": "
|
|
83
|
+
"@libp2p/crypto": "5.1.7-cfe2be4c9",
|
|
84
|
+
"@libp2p/interface": "2.10.5-cfe2be4c9",
|
|
85
|
+
"@libp2p/interface-internal": "2.3.18-cfe2be4c9",
|
|
86
|
+
"@libp2p/logger": "5.1.21-cfe2be4c9",
|
|
87
|
+
"@libp2p/multistream-select": "6.0.28-cfe2be4c9",
|
|
88
|
+
"@libp2p/peer-collections": "6.0.34-cfe2be4c9",
|
|
89
|
+
"@libp2p/peer-id": "5.1.8-cfe2be4c9",
|
|
90
|
+
"@libp2p/peer-store": "11.2.6-cfe2be4c9",
|
|
91
|
+
"@libp2p/utils": "6.7.1-cfe2be4c9",
|
|
92
92
|
"@multiformats/dns": "^1.0.6",
|
|
93
93
|
"@multiformats/multiaddr": "^12.4.4",
|
|
94
94
|
"@multiformats/multiaddr-matcher": "^1.7.2",
|
package/src/config.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { FaultTolerance, InvalidParametersError } from '@libp2p/interface'
|
|
2
2
|
import { mergeOptions } from '@libp2p/utils/merge-options'
|
|
3
|
-
import { dnsaddrResolver } from '
|
|
3
|
+
import { dnsaddrResolver } from './connection-manager/resolvers/dnsaddr.ts'
|
|
4
4
|
import type { Libp2pInit } from './index.js'
|
|
5
5
|
import type { ServiceMap } from '@libp2p/interface'
|
|
6
6
|
import type { Multiaddr } from '@multiformats/multiaddr'
|
|
@@ -54,3 +54,8 @@ export const LAST_DIAL_SUCCESS_KEY = 'last-dial-success'
|
|
|
54
54
|
* @see https://libp2p.github.io/js-libp2p/interfaces/index._internal_.ConnectionManagerConfig.html#maxDialQueueLength
|
|
55
55
|
*/
|
|
56
56
|
export const MAX_DIAL_QUEUE_LENGTH = 500
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* @see https://libp2p.github.io/js-libp2p/interfaces/index._internal_.ConnectionManagerConfig.html#maxRecursiveDepth
|
|
60
|
+
*/
|
|
61
|
+
export const MAX_RECURSIVE_DEPTH = 32
|
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
import { TimeoutError, DialError, AbortError } from '@libp2p/interface'
|
|
3
3
|
import { PeerMap } from '@libp2p/peer-collections'
|
|
4
4
|
import { PriorityQueue } from '@libp2p/utils/priority-queue'
|
|
5
|
-
import {
|
|
6
|
-
import { dnsaddrResolver } from '@multiformats/multiaddr/resolvers'
|
|
5
|
+
import { multiaddr } from '@multiformats/multiaddr'
|
|
7
6
|
import { Circuit } from '@multiformats/multiaddr-matcher'
|
|
8
7
|
import { anySignal } from 'any-signal'
|
|
9
8
|
import { setMaxListeners } from 'main-event'
|
|
@@ -20,13 +19,13 @@ import {
|
|
|
20
19
|
MAX_DIAL_QUEUE_LENGTH,
|
|
21
20
|
LAST_DIAL_SUCCESS_KEY
|
|
22
21
|
} from './constants.js'
|
|
23
|
-
import {
|
|
22
|
+
import { resolveMultiaddr, dnsaddrResolver } from './resolvers/index.js'
|
|
24
23
|
import { DEFAULT_DIAL_PRIORITY } from './index.js'
|
|
25
|
-
import type { AddressSorter, ComponentLogger, Logger, Connection, ConnectionGater, Metrics, PeerId, Address, PeerStore, PeerRouting, IsDialableOptions, OpenConnectionProgressEvents } from '@libp2p/interface'
|
|
24
|
+
import type { AddressSorter, ComponentLogger, Logger, Connection, ConnectionGater, Metrics, PeerId, Address, PeerStore, PeerRouting, IsDialableOptions, OpenConnectionProgressEvents, MultiaddrResolver } from '@libp2p/interface'
|
|
26
25
|
import type { OpenConnectionOptions, TransportManager } from '@libp2p/interface-internal'
|
|
27
26
|
import type { PriorityQueueJobOptions } from '@libp2p/utils/priority-queue'
|
|
28
27
|
import type { DNS } from '@multiformats/dns'
|
|
29
|
-
import type { Multiaddr
|
|
28
|
+
import type { Multiaddr } from '@multiformats/multiaddr'
|
|
30
29
|
import type { ProgressOptions } from 'progress-events'
|
|
31
30
|
|
|
32
31
|
export interface PendingDialTarget {
|
|
@@ -45,7 +44,7 @@ interface DialerInit {
|
|
|
45
44
|
maxDialQueueLength?: number
|
|
46
45
|
maxPeerAddrsToDial?: number
|
|
47
46
|
dialTimeout?: number
|
|
48
|
-
resolvers?: Record<string,
|
|
47
|
+
resolvers?: Record<string, MultiaddrResolver>
|
|
49
48
|
connections?: PeerMap<Connection[]>
|
|
50
49
|
}
|
|
51
50
|
|
|
@@ -80,6 +79,7 @@ export class DialQueue {
|
|
|
80
79
|
private shutDownController: AbortController
|
|
81
80
|
private readonly connections: PeerMap<Connection[]>
|
|
82
81
|
private readonly log: Logger
|
|
82
|
+
private readonly resolvers: Record<string, MultiaddrResolver>
|
|
83
83
|
|
|
84
84
|
constructor (components: DialQueueComponents, init: DialerInit = {}) {
|
|
85
85
|
this.addressSorter = init.addressSorter
|
|
@@ -89,14 +89,11 @@ export class DialQueue {
|
|
|
89
89
|
this.connections = init.connections ?? new PeerMap()
|
|
90
90
|
this.log = components.logger.forComponent('libp2p:connection-manager:dial-queue')
|
|
91
91
|
this.components = components
|
|
92
|
+
this.resolvers = init.resolvers ?? defaultOptions.resolvers
|
|
92
93
|
|
|
93
94
|
this.shutDownController = new AbortController()
|
|
94
95
|
setMaxListeners(Infinity, this.shutDownController.signal)
|
|
95
96
|
|
|
96
|
-
for (const [key, value] of Object.entries(init.resolvers ?? {})) {
|
|
97
|
-
resolvers.set(key, value)
|
|
98
|
-
}
|
|
99
|
-
|
|
100
97
|
// controls dial concurrency
|
|
101
98
|
this.queue = new PriorityQueue({
|
|
102
99
|
concurrency: init.maxParallelDials ?? defaultOptions.maxParallelDials,
|
|
@@ -139,13 +136,17 @@ export class DialQueue {
|
|
|
139
136
|
async dial (peerIdOrMultiaddr: PeerId | Multiaddr | Multiaddr[], options: OpenConnectionOptions = {}): Promise<Connection> {
|
|
140
137
|
const { peerId, multiaddrs } = getPeerAddress(peerIdOrMultiaddr)
|
|
141
138
|
|
|
142
|
-
// make sure we don't have an existing connection to any of the
|
|
143
|
-
// are about to dial
|
|
139
|
+
// make sure we don't have an existing non-limited connection to any of the
|
|
140
|
+
// addresses we are about to dial
|
|
144
141
|
const existingConnection = Array.from(this.connections.values()).flat().find(conn => {
|
|
145
142
|
if (options.force === true) {
|
|
146
143
|
return false
|
|
147
144
|
}
|
|
148
145
|
|
|
146
|
+
if (conn.limits != null) {
|
|
147
|
+
return false
|
|
148
|
+
}
|
|
149
|
+
|
|
149
150
|
if (conn.remotePeer.equals(peerId)) {
|
|
150
151
|
return true
|
|
151
152
|
}
|
|
@@ -415,10 +416,10 @@ export class DialQueue {
|
|
|
415
416
|
// dnsaddrs are resolved
|
|
416
417
|
let resolvedAddresses = (await Promise.all(
|
|
417
418
|
addrs.map(async addr => {
|
|
418
|
-
const result = await
|
|
419
|
+
const result = await resolveMultiaddr(addr.multiaddr, this.resolvers, {
|
|
419
420
|
dns: this.components.dns,
|
|
420
|
-
|
|
421
|
-
|
|
421
|
+
log: this.log,
|
|
422
|
+
...options
|
|
422
423
|
})
|
|
423
424
|
|
|
424
425
|
if (result.length === 1 && result[0].equals(addr.multiaddr)) {
|
|
@@ -2,19 +2,19 @@ import { ConnectionClosedError, InvalidMultiaddrError, InvalidParametersError, I
|
|
|
2
2
|
import { PeerMap } from '@libp2p/peer-collections'
|
|
3
3
|
import { RateLimiter } from '@libp2p/utils/rate-limiter'
|
|
4
4
|
import { multiaddr } from '@multiformats/multiaddr'
|
|
5
|
-
import { dnsaddrResolver } from '@multiformats/multiaddr/resolvers'
|
|
6
5
|
import { CustomProgressEvent } from 'progress-events'
|
|
7
6
|
import { getPeerAddress } from '../get-peer.js'
|
|
8
7
|
import { ConnectionPruner } from './connection-pruner.js'
|
|
9
8
|
import { DIAL_TIMEOUT, INBOUND_CONNECTION_THRESHOLD, MAX_CONNECTIONS, MAX_DIAL_QUEUE_LENGTH, MAX_INCOMING_PENDING_CONNECTIONS, MAX_PARALLEL_DIALS, MAX_PEER_ADDRS_TO_DIAL } from './constants.js'
|
|
10
9
|
import { DialQueue } from './dial-queue.js'
|
|
11
10
|
import { ReconnectQueue } from './reconnect-queue.js'
|
|
11
|
+
import { dnsaddrResolver } from './resolvers/index.ts'
|
|
12
12
|
import { multiaddrToIpNet } from './utils.js'
|
|
13
13
|
import type { IpNet } from '@chainsafe/netmask'
|
|
14
|
-
import type { PendingDial, AddressSorter, Libp2pEvents, AbortOptions, ComponentLogger, Logger, Connection, MultiaddrConnection, ConnectionGater, Metrics, PeerId, PeerStore, Startable, PendingDialStatus, PeerRouting, IsDialableOptions } from '@libp2p/interface'
|
|
14
|
+
import type { PendingDial, AddressSorter, Libp2pEvents, AbortOptions, ComponentLogger, Logger, Connection, MultiaddrConnection, ConnectionGater, Metrics, PeerId, PeerStore, Startable, PendingDialStatus, PeerRouting, IsDialableOptions, MultiaddrResolver } from '@libp2p/interface'
|
|
15
15
|
import type { ConnectionManager, OpenConnectionOptions, TransportManager } from '@libp2p/interface-internal'
|
|
16
16
|
import type { JobStatus } from '@libp2p/utils/queue'
|
|
17
|
-
import type { Multiaddr
|
|
17
|
+
import type { Multiaddr } from '@multiformats/multiaddr'
|
|
18
18
|
import type { TypedEventTarget } from 'main-event'
|
|
19
19
|
|
|
20
20
|
export const DEFAULT_DIAL_PRIORITY = 50
|
|
@@ -112,7 +112,7 @@ export interface ConnectionManagerInit {
|
|
|
112
112
|
/**
|
|
113
113
|
* Multiaddr resolvers to use when dialling
|
|
114
114
|
*/
|
|
115
|
-
resolvers?: Record<string,
|
|
115
|
+
resolvers?: Record<string, MultiaddrResolver>
|
|
116
116
|
|
|
117
117
|
/**
|
|
118
118
|
* A list of multiaddrs that will always be allowed (except if they are in the
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { dns, RecordType } from '@multiformats/dns'
|
|
2
|
+
import { multiaddr } from '@multiformats/multiaddr'
|
|
3
|
+
import type { MultiaddrResolver, MultiaddrResolveOptions } from '@libp2p/interface'
|
|
4
|
+
import type { DNS } from '@multiformats/dns'
|
|
5
|
+
import type { Multiaddr } from '@multiformats/multiaddr'
|
|
6
|
+
|
|
7
|
+
class DNSAddrResolver implements MultiaddrResolver {
|
|
8
|
+
private dns?: DNS
|
|
9
|
+
|
|
10
|
+
canResolve (ma: Multiaddr): boolean {
|
|
11
|
+
return ma.getComponents().some(({ name }) => name === 'dnsaddr')
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
async resolve (ma: Multiaddr, options: MultiaddrResolveOptions): Promise<Multiaddr[]> {
|
|
15
|
+
const hostname = ma.getComponents()
|
|
16
|
+
.find(component => component.name === 'dnsaddr')
|
|
17
|
+
?.value
|
|
18
|
+
|
|
19
|
+
if (hostname == null) {
|
|
20
|
+
return [ma]
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const resolver = this.getDNS(options)
|
|
24
|
+
const result = await resolver.query(`_dnsaddr.${hostname}`, {
|
|
25
|
+
signal: options?.signal,
|
|
26
|
+
types: [
|
|
27
|
+
RecordType.TXT
|
|
28
|
+
]
|
|
29
|
+
})
|
|
30
|
+
|
|
31
|
+
const peerId = ma.getComponents()
|
|
32
|
+
.find(component => component.name === 'p2p')
|
|
33
|
+
?.value
|
|
34
|
+
const output: Multiaddr[] = []
|
|
35
|
+
|
|
36
|
+
for (const answer of result.Answer) {
|
|
37
|
+
const addr = answer.data
|
|
38
|
+
.replace(/["']/g, '')
|
|
39
|
+
.trim()
|
|
40
|
+
.split('=')[1]
|
|
41
|
+
|
|
42
|
+
if (addr == null) {
|
|
43
|
+
continue
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
if (peerId != null && !addr.includes(peerId)) {
|
|
47
|
+
continue
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
output.push(multiaddr(addr))
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return output
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
private getDNS (options: MultiaddrResolveOptions): DNS {
|
|
57
|
+
if (options.dns != null) {
|
|
58
|
+
return options.dns
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
if (this.dns == null) {
|
|
62
|
+
this.dns = dns()
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return this.dns
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export const dnsaddrResolver = new DNSAddrResolver()
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { RecursionLimitError } from '../../errors.ts'
|
|
2
|
+
import { MAX_RECURSIVE_DEPTH } from '../constants.defaults.ts'
|
|
3
|
+
import type { MultiaddrResolveOptions, MultiaddrResolver } from '@libp2p/interface'
|
|
4
|
+
import type { Multiaddr } from '@multiformats/multiaddr'
|
|
5
|
+
|
|
6
|
+
export interface ResolveOptions extends MultiaddrResolveOptions {
|
|
7
|
+
/**
|
|
8
|
+
* When resolving DNSADDR Multiaddrs that resolve to other DNSADDR Multiaddrs,
|
|
9
|
+
* limit how many times we will recursively resolve them.
|
|
10
|
+
*
|
|
11
|
+
* @default 32
|
|
12
|
+
*/
|
|
13
|
+
maxRecursiveDepth?: number
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* The current recursive depth
|
|
17
|
+
*
|
|
18
|
+
* @default 0
|
|
19
|
+
*/
|
|
20
|
+
depth?: number
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Recursively resolve multiaddrs
|
|
25
|
+
*/
|
|
26
|
+
export async function resolveMultiaddr (address: Multiaddr, resolvers: Record<string, MultiaddrResolver>, options: ResolveOptions): Promise<Multiaddr[]> {
|
|
27
|
+
const depth = options.depth ?? 0
|
|
28
|
+
|
|
29
|
+
if (depth > (options.maxRecursiveDepth ?? MAX_RECURSIVE_DEPTH)) {
|
|
30
|
+
throw new RecursionLimitError('Max recursive depth reached')
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
let resolved = false
|
|
34
|
+
const output: Multiaddr[] = []
|
|
35
|
+
|
|
36
|
+
for (const resolver of Object.values(resolvers)) {
|
|
37
|
+
if (resolver.canResolve(address)) {
|
|
38
|
+
resolved = true
|
|
39
|
+
const addresses = await resolver.resolve(address, options)
|
|
40
|
+
|
|
41
|
+
for (const address of addresses) {
|
|
42
|
+
output.push(
|
|
43
|
+
...(await resolveMultiaddr(address, resolvers, {
|
|
44
|
+
...options,
|
|
45
|
+
depth: depth + 1
|
|
46
|
+
}))
|
|
47
|
+
)
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
if (resolved === false) {
|
|
53
|
+
output.push(address)
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return output
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export { dnsaddrResolver } from './dnsaddr.js'
|
|
@@ -1,35 +1,7 @@
|
|
|
1
|
-
import { multiaddr
|
|
1
|
+
import { multiaddr } from '@multiformats/multiaddr'
|
|
2
2
|
import { convertToIpNet } from '@multiformats/multiaddr/convert'
|
|
3
3
|
import type { IpNet } from '@chainsafe/netmask'
|
|
4
|
-
import type {
|
|
5
|
-
import type { Multiaddr, ResolveOptions } from '@multiformats/multiaddr'
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Recursively resolve DNSADDR multiaddrs
|
|
9
|
-
*/
|
|
10
|
-
export async function resolveMultiaddrs (ma: Multiaddr, options: ResolveOptions & LoggerOptions): Promise<Multiaddr[]> {
|
|
11
|
-
// check multiaddr resolvers
|
|
12
|
-
let resolvable = false
|
|
13
|
-
|
|
14
|
-
for (const key of resolvers.keys()) {
|
|
15
|
-
resolvable = ma.protoNames().includes(key)
|
|
16
|
-
|
|
17
|
-
if (resolvable) {
|
|
18
|
-
break
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
// return multiaddr if it is not resolvable
|
|
23
|
-
if (!resolvable) {
|
|
24
|
-
return [ma]
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
const output = await ma.resolve(options)
|
|
28
|
-
|
|
29
|
-
options.log('resolved %s to', ma, output.map(ma => ma.toString()))
|
|
30
|
-
|
|
31
|
-
return output
|
|
32
|
-
}
|
|
4
|
+
import type { Multiaddr } from '@multiformats/multiaddr'
|
|
33
5
|
|
|
34
6
|
/**
|
|
35
7
|
* Converts a multiaddr string or object to an IpNet object.
|
|
@@ -50,9 +22,11 @@ export function multiaddrToIpNet (ma: string | Multiaddr): IpNet {
|
|
|
50
22
|
parsedMa = ma
|
|
51
23
|
}
|
|
52
24
|
|
|
25
|
+
const protoNames = new Set([...parsedMa.getComponents().map(component => component.name)])
|
|
26
|
+
|
|
53
27
|
// Check if /ipcidr is already present
|
|
54
|
-
if (!
|
|
55
|
-
const isIPv6 =
|
|
28
|
+
if (!protoNames.has('ipcidr')) {
|
|
29
|
+
const isIPv6 = protoNames.has('ip6')
|
|
56
30
|
const cidr = isIPv6 ? '/ipcidr/128' : '/ipcidr/32'
|
|
57
31
|
parsedMa = parsedMa.encapsulate(cidr)
|
|
58
32
|
}
|
package/src/errors.ts
CHANGED
|
@@ -114,3 +114,10 @@ export class TransportUnavailableError extends Error {
|
|
|
114
114
|
this.name = 'TransportUnavailableError'
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
|
+
|
|
118
|
+
export class RecursionLimitError extends Error {
|
|
119
|
+
constructor (message = 'Max recursive depth reached') {
|
|
120
|
+
super(message)
|
|
121
|
+
this.name = 'RecursionLimitError'
|
|
122
|
+
}
|
|
123
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -34,6 +34,8 @@ export type ServiceFactoryMap<T extends ServiceMap = ServiceMap> = {
|
|
|
34
34
|
|
|
35
35
|
export type { AddressManagerInit, AddressFilter }
|
|
36
36
|
|
|
37
|
+
export { dnsaddrResolver } from './connection-manager/resolvers/index.ts'
|
|
38
|
+
|
|
37
39
|
/**
|
|
38
40
|
* For Libp2p configurations and modules details read the [Configuration Document](https://github.com/libp2p/js-libp2p/tree/main/doc/CONFIGURATION.md).
|
|
39
41
|
*/
|
package/src/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = '2.8.
|
|
1
|
+
export const version = '2.8.12-cfe2be4c9'
|
|
2
2
|
export const name = 'js-libp2p'
|
package/dist/typedoc-urls.json
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"AddressFilter": "https://libp2p.github.io/js-libp2p/interfaces/libp2p.index.AddressFilter.html",
|
|
3
|
-
"AddressManagerInit": "https://libp2p.github.io/js-libp2p/interfaces/libp2p.index.AddressManagerInit.html",
|
|
4
|
-
"ConnectionManagerInit": "https://libp2p.github.io/js-libp2p/interfaces/libp2p.index.ConnectionManagerInit.html",
|
|
5
|
-
"ConnectionMonitorInit": "https://libp2p.github.io/js-libp2p/interfaces/libp2p.index.ConnectionMonitorInit.html",
|
|
6
|
-
"Libp2pInit": "https://libp2p.github.io/js-libp2p/interfaces/libp2p.index.Libp2pInit.html",
|
|
7
|
-
".:Libp2pInit": "https://libp2p.github.io/js-libp2p/interfaces/libp2p.index.Libp2pInit.html",
|
|
8
|
-
"TransportManagerInit": "https://libp2p.github.io/js-libp2p/interfaces/libp2p.index.TransportManagerInit.html",
|
|
9
|
-
"Libp2pOptions": "https://libp2p.github.io/js-libp2p/types/libp2p.index.Libp2pOptions.html",
|
|
10
|
-
".:Libp2pOptions": "https://libp2p.github.io/js-libp2p/types/libp2p.index.Libp2pOptions.html",
|
|
11
|
-
"ServiceFactoryMap": "https://libp2p.github.io/js-libp2p/types/libp2p.index.ServiceFactoryMap.html",
|
|
12
|
-
".:ServiceFactoryMap": "https://libp2p.github.io/js-libp2p/types/libp2p.index.ServiceFactoryMap.html",
|
|
13
|
-
"createLibp2p": "https://libp2p.github.io/js-libp2p/functions/libp2p.index.createLibp2p.html",
|
|
14
|
-
".:createLibp2p": "https://libp2p.github.io/js-libp2p/functions/libp2p.index.createLibp2p.html",
|
|
15
|
-
"userAgent": "https://libp2p.github.io/js-libp2p/functions/libp2p.user-agent.userAgent.html",
|
|
16
|
-
"./user-agent:userAgent": "https://libp2p.github.io/js-libp2p/functions/libp2p.user-agent.userAgent.html",
|
|
17
|
-
"name": "https://libp2p.github.io/js-libp2p/variables/libp2p.version.name.html",
|
|
18
|
-
"./version:name": "https://libp2p.github.io/js-libp2p/variables/libp2p.version.name.html",
|
|
19
|
-
"version": "https://libp2p.github.io/js-libp2p/variables/libp2p.version.version.html",
|
|
20
|
-
"./version:version": "https://libp2p.github.io/js-libp2p/variables/libp2p.version.version.html"
|
|
21
|
-
}
|