@libp2p/autonat-v2 2.0.23-cec2b1f34 → 2.0.23-fb9e8a76e
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/README.md +0 -5
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +3 -3
- package/dist/src/autonat.d.ts +2 -3
- package/dist/src/autonat.d.ts.map +1 -1
- package/dist/src/autonat.js +2 -5
- package/dist/src/autonat.js.map +1 -1
- package/dist/src/client.d.ts +1 -6
- package/dist/src/client.d.ts.map +1 -1
- package/dist/src/client.js +6 -19
- package/dist/src/client.js.map +1 -1
- package/dist/src/index.d.ts +2 -48
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +0 -5
- package/dist/src/index.js.map +1 -1
- package/package.json +8 -8
- package/src/autonat.ts +3 -7
- package/src/client.ts +8 -27
- package/src/index.ts +2 -56
package/dist/src/autonat.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { serviceCapabilities, serviceDependencies } from '@libp2p/interface';
|
|
2
|
-
import {
|
|
3
|
-
import type { AutoNATv2Components, AutoNATv2Events, AutoNATv2ServiceInit } from './index.ts';
|
|
2
|
+
import type { AutoNATv2Components, AutoNATv2ServiceInit } from './index.ts';
|
|
4
3
|
import type { Startable } from '@libp2p/interface';
|
|
5
|
-
export declare class AutoNATv2Service
|
|
4
|
+
export declare class AutoNATv2Service implements Startable {
|
|
6
5
|
private readonly client;
|
|
7
6
|
private readonly server;
|
|
8
7
|
constructor(components: AutoNATv2Components, init: AutoNATv2ServiceInit);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autonat.d.ts","sourceRoot":"","sources":["../../src/autonat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAe,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"autonat.d.ts","sourceRoot":"","sources":["../../src/autonat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAe,MAAM,mBAAmB,CAAA;AAIzF,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAC3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAElD,qBAAa,gBAAiB,YAAW,SAAS;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;gBAE3B,UAAU,EAAE,mBAAmB,EAAE,IAAI,EAAE,oBAAoB;IAgBxE,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,wBAAuB;IAEpD,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAEvC;IAED,IAAI,CAAC,mBAAmB,CAAC,IAAK,MAAM,EAAE,CAIrC;IAEK,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAIvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;CAG7B"}
|
package/dist/src/autonat.js
CHANGED
|
@@ -1,20 +1,17 @@
|
|
|
1
1
|
import { serviceCapabilities, serviceDependencies, start, stop } from '@libp2p/interface';
|
|
2
|
-
import { TypedEventEmitter } from 'main-event';
|
|
3
2
|
import { AutoNATv2Client } from "./client.js";
|
|
4
3
|
import { DIAL_BACK, DIAL_REQUEST, PROTOCOL_NAME, PROTOCOL_PREFIX, PROTOCOL_VERSION } from "./constants.js";
|
|
5
4
|
import { AutoNATv2Server } from "./server.js";
|
|
6
|
-
export class AutoNATv2Service
|
|
5
|
+
export class AutoNATv2Service {
|
|
7
6
|
client;
|
|
8
7
|
server;
|
|
9
8
|
constructor(components, init) {
|
|
10
|
-
super();
|
|
11
9
|
const dialRequestProtocol = `/${init.protocolPrefix ?? PROTOCOL_PREFIX}/${PROTOCOL_NAME}/${PROTOCOL_VERSION}/${DIAL_REQUEST}`;
|
|
12
10
|
const dialBackProtocol = `/${init.protocolPrefix ?? PROTOCOL_PREFIX}/${PROTOCOL_NAME}/${PROTOCOL_VERSION}/${DIAL_BACK}`;
|
|
13
11
|
this.client = new AutoNATv2Client(components, {
|
|
14
12
|
...init,
|
|
15
13
|
dialRequestProtocol,
|
|
16
|
-
dialBackProtocol
|
|
17
|
-
safeDispatchEvent: this.safeDispatchEvent.bind(this)
|
|
14
|
+
dialBackProtocol
|
|
18
15
|
});
|
|
19
16
|
this.server = new AutoNATv2Server(components, {
|
|
20
17
|
...init,
|
package/dist/src/autonat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autonat.js","sourceRoot":"","sources":["../../src/autonat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACzF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"autonat.js","sourceRoot":"","sources":["../../src/autonat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACzF,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAC1G,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAI7C,MAAM,OAAO,gBAAgB;IACV,MAAM,CAAiB;IACvB,MAAM,CAAiB;IAExC,YAAa,UAA+B,EAAE,IAA0B;QACtE,MAAM,mBAAmB,GAAG,IAAI,IAAI,CAAC,cAAc,IAAI,eAAe,IAAI,aAAa,IAAI,gBAAgB,IAAI,YAAY,EAAE,CAAA;QAC7H,MAAM,gBAAgB,GAAG,IAAI,IAAI,CAAC,cAAc,IAAI,eAAe,IAAI,aAAa,IAAI,gBAAgB,IAAI,SAAS,EAAE,CAAA;QAEvH,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,UAAU,EAAE;YAC5C,GAAG,IAAI;YACP,mBAAmB;YACnB,gBAAgB;SACjB,CAAC,CAAA;QACF,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,UAAU,EAAE;YAC5C,GAAG,IAAI;YACP,mBAAmB;YACnB,gBAAgB;SACjB,CAAC,CAAA;IACJ,CAAC;IAEQ,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,oBAAoB,CAAA;IAE3C,CAAC,mBAAmB,CAAC,GAAa;QACzC,iBAAiB;KAClB,CAAA;IAED,IAAI,CAAC,mBAAmB,CAAC;QACvB,OAAO;YACL,kBAAkB;SACnB,CAAA;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IACvC,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IACtC,CAAC;CACF"}
|
package/dist/src/client.d.ts
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import { serviceCapabilities, serviceDependencies } from '@libp2p/interface';
|
|
2
|
-
import type { AutoNATv2Components,
|
|
2
|
+
import type { AutoNATv2Components, AutoNATv2ServiceInit } from './index.ts';
|
|
3
3
|
import type { Connection, Startable, AbortOptions, Stream } from '@libp2p/interface';
|
|
4
|
-
import type { TypedEventEmitter } from 'main-event';
|
|
5
|
-
export type DispatchAutoNATv2Event = TypedEventEmitter<AutoNATv2Events>['safeDispatchEvent'];
|
|
6
4
|
export interface AutoNATv2ClientInit extends AutoNATv2ServiceInit {
|
|
7
5
|
dialRequestProtocol: string;
|
|
8
6
|
dialBackProtocol: string;
|
|
9
7
|
maxDialDataBytes?: bigint;
|
|
10
8
|
dialDataChunkSize?: number;
|
|
11
|
-
safeDispatchEvent: DispatchAutoNATv2Event;
|
|
12
9
|
}
|
|
13
10
|
export declare class AutoNATv2Client implements Startable {
|
|
14
11
|
private readonly components;
|
|
@@ -29,7 +26,6 @@ export declare class AutoNATv2Client implements Startable {
|
|
|
29
26
|
private readonly connectionThreshold;
|
|
30
27
|
private readonly queue;
|
|
31
28
|
private readonly nonces;
|
|
32
|
-
private readonly safeDispatchEvent;
|
|
33
29
|
constructor(components: AutoNATv2Components, init: AutoNATv2ClientInit);
|
|
34
30
|
readonly [Symbol.toStringTag] = "@libp2p/autonat-v2";
|
|
35
31
|
readonly [serviceCapabilities]: string[];
|
|
@@ -57,7 +53,6 @@ export declare class AutoNATv2Client implements Startable {
|
|
|
57
53
|
private hasConnectionCapacity;
|
|
58
54
|
private confirmAddress;
|
|
59
55
|
private unconfirmAddress;
|
|
60
|
-
private emitReachabilityEvent;
|
|
61
56
|
private getNetworkSegment;
|
|
62
57
|
}
|
|
63
58
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/src/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAQnH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAQnH,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAC3E,OAAO,KAAK,EAAU,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAwD5F,MAAM,WAAW,mBAAoB,SAAQ,oBAAoB;IAC/D,mBAAmB,EAAE,MAAM,CAAA;IAC3B,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,qBAAa,eAAgB,YAAW,SAAS;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAChD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAQ;IAC5C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAQ;IAC1C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAQ;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAQ;IAC1C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,UAAU,CAAC,CAAQ;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0B;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;IACtC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAQ;IAC5C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;gBAEvB,UAAU,EAAE,mBAAmB,EAAE,IAAI,EAAE,mBAAmB;IA2BvE,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,wBAAuB;IAEpD,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAEvC;IAED,IAAI,CAAC,mBAAmB,CAAC,IAAK,MAAM,EAAE,CAIrC;IAED,SAAS,IAAK,OAAO;IAIf,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IA4BvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAa5B,OAAO,CAAC,uBAAuB;IAWzB,eAAe,CAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA4C7D;;OAEG;IACG,oBAAoB,CAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAkClF,OAAO,CAAC,uBAAuB;IAoG/B;;;OAGG;IACH,OAAO,CAAC,8BAA8B;IAoBtC;;OAEG;IACG,uBAAuB,CAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;YAiEvD,eAAe;IAmI7B,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,iBAAiB;CAkB1B"}
|
package/dist/src/client.js
CHANGED
|
@@ -30,10 +30,8 @@ export class AutoNATv2Client {
|
|
|
30
30
|
connectionThreshold;
|
|
31
31
|
queue;
|
|
32
32
|
nonces;
|
|
33
|
-
safeDispatchEvent;
|
|
34
33
|
constructor(components, init) {
|
|
35
34
|
this.components = components;
|
|
36
|
-
this.safeDispatchEvent = init.safeDispatchEvent;
|
|
37
35
|
this.log = components.logger.forComponent('libp2p:auto-nat-v2:client');
|
|
38
36
|
this.started = false;
|
|
39
37
|
this.dialRequestProtocol = init.dialRequestProtocol;
|
|
@@ -266,7 +264,12 @@ export class AutoNATv2Client {
|
|
|
266
264
|
*/
|
|
267
265
|
removeOutdatedMultiaddrResults() {
|
|
268
266
|
const unverifiedMultiaddrs = new Set(this.components.addressManager.getAddressesWithMetadata()
|
|
269
|
-
.filter(({ expires }) =>
|
|
267
|
+
.filter(({ expires }) => {
|
|
268
|
+
if (expires < Date.now()) {
|
|
269
|
+
return true;
|
|
270
|
+
}
|
|
271
|
+
return false;
|
|
272
|
+
})
|
|
270
273
|
.map(({ multiaddr }) => multiaddr.toString()));
|
|
271
274
|
for (const multiaddr of this.dialResults.keys()) {
|
|
272
275
|
if (!unverifiedMultiaddrs.has(multiaddr)) {
|
|
@@ -405,9 +408,6 @@ export class AutoNATv2Client {
|
|
|
405
408
|
results.networkSegments.push(segment);
|
|
406
409
|
if (response.dialResponse.dialStatus === DialStatus.OK) {
|
|
407
410
|
this.log.trace('%p dialed %a successfully', connection.remotePeer, results.multiaddr);
|
|
408
|
-
// surface progress as this new-segment peer contributes, before its
|
|
409
|
-
// result is counted
|
|
410
|
-
this.emitReachabilityEvent(results, 'verifying');
|
|
411
411
|
results.success++;
|
|
412
412
|
// observed addresses require more confirmations
|
|
413
413
|
if (results.type !== 'observed') {
|
|
@@ -418,7 +418,6 @@ export class AutoNATv2Client {
|
|
|
418
418
|
else if (response.dialResponse.dialStatus === DialStatus.E_DIAL_ERROR) {
|
|
419
419
|
this.log.trace('%p could not dial %a', connection.remotePeer, results.multiaddr);
|
|
420
420
|
// the address was not dialable (e.g. not public)
|
|
421
|
-
this.emitReachabilityEvent(results, 'verifying');
|
|
422
421
|
results.failure++;
|
|
423
422
|
}
|
|
424
423
|
else if (response.dialResponse.dialStatus === DialStatus.E_DIAL_BACK_ERROR) {
|
|
@@ -457,7 +456,6 @@ export class AutoNATv2Client {
|
|
|
457
456
|
this.dialResults.delete(results.multiaddr.toString());
|
|
458
457
|
// abort & remove any outstanding verification jobs for this multiaddr
|
|
459
458
|
results.result = true;
|
|
460
|
-
this.emitReachabilityEvent(results, 'reachable');
|
|
461
459
|
}
|
|
462
460
|
unconfirmAddress(results) {
|
|
463
461
|
// we are now unconvinced
|
|
@@ -466,17 +464,6 @@ export class AutoNATv2Client {
|
|
|
466
464
|
this.dialResults.delete(results.multiaddr.toString());
|
|
467
465
|
// abort & remove any outstanding verification jobs for this multiaddr
|
|
468
466
|
results.result = false;
|
|
469
|
-
this.emitReachabilityEvent(results, 'unreachable');
|
|
470
|
-
}
|
|
471
|
-
emitReachabilityEvent(results, state) {
|
|
472
|
-
this.safeDispatchEvent(`address:${state}`, {
|
|
473
|
-
detail: {
|
|
474
|
-
addr: results.multiaddr,
|
|
475
|
-
type: results.type,
|
|
476
|
-
success: results.success,
|
|
477
|
-
failure: results.failure
|
|
478
|
-
}
|
|
479
|
-
});
|
|
480
467
|
}
|
|
481
468
|
getNetworkSegment(ma) {
|
|
482
469
|
// make sure we use different network segments
|
package/dist/src/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -19,56 +19,10 @@
|
|
|
19
19
|
* autoNAT: autoNATv2()
|
|
20
20
|
* }
|
|
21
21
|
* })
|
|
22
|
-
*
|
|
23
|
-
* // observe per-address reachability changes as they are probed
|
|
24
|
-
* node.services.autoNAT.addEventListener('address:reachable', (evt) => {
|
|
25
|
-
* console.info(evt.detail.addr, 'is externally dialable')
|
|
26
|
-
* })
|
|
27
22
|
* ```
|
|
28
23
|
*/
|
|
29
24
|
import type { ComponentLogger, Metrics, PeerStore } from '@libp2p/interface';
|
|
30
|
-
import type { AddressManager,
|
|
31
|
-
import type { Multiaddr } from '@multiformats/multiaddr';
|
|
32
|
-
import type { TypedEventEmitter } from 'main-event';
|
|
33
|
-
export interface AddressReachabilityChange {
|
|
34
|
-
/**
|
|
35
|
-
* The address a probe result relates to
|
|
36
|
-
*/
|
|
37
|
-
readonly addr: Multiaddr;
|
|
38
|
-
/**
|
|
39
|
-
* The type of address being probed (e.g. observed or transport)
|
|
40
|
-
*/
|
|
41
|
-
readonly type: AddressType;
|
|
42
|
-
/**
|
|
43
|
-
* How many peers have successfully dialled this address so far this round
|
|
44
|
-
*/
|
|
45
|
-
readonly success: number;
|
|
46
|
-
/**
|
|
47
|
-
* How many peers have failed to dial this address so far this round
|
|
48
|
-
*/
|
|
49
|
-
readonly failure: number;
|
|
50
|
-
}
|
|
51
|
-
export interface AutoNATv2Events {
|
|
52
|
-
/**
|
|
53
|
-
* Emitted as each peer contributes a dial result for an address, carrying the
|
|
54
|
-
* running success/failure tally for the current round. A verdict
|
|
55
|
-
* (reachable/unreachable) is not guaranteed to follow.
|
|
56
|
-
*/
|
|
57
|
-
'address:verifying': CustomEvent<AddressReachabilityChange>;
|
|
58
|
-
/**
|
|
59
|
-
* An address was confirmed to be externally dialable. Carries the tally for
|
|
60
|
-
* the current round, which is zero when an address is re-affirmed under
|
|
61
|
-
* connection pressure without probing.
|
|
62
|
-
*/
|
|
63
|
-
'address:reachable': CustomEvent<AddressReachabilityChange>;
|
|
64
|
-
/**
|
|
65
|
-
* An address was confirmed not to be externally dialable, carrying the tally
|
|
66
|
-
* for the round that reached the failure threshold.
|
|
67
|
-
*/
|
|
68
|
-
'address:unreachable': CustomEvent<AddressReachabilityChange>;
|
|
69
|
-
}
|
|
70
|
-
export interface AutoNATv2 extends TypedEventEmitter<AutoNATv2Events> {
|
|
71
|
-
}
|
|
25
|
+
import type { AddressManager, ConnectionManager, RandomWalk, Registrar } from '@libp2p/interface-internal';
|
|
72
26
|
export interface AutoNATv2ServiceInit {
|
|
73
27
|
/**
|
|
74
28
|
* Allows overriding the protocol prefix used
|
|
@@ -135,5 +89,5 @@ export interface AutoNATv2Components {
|
|
|
135
89
|
peerStore: PeerStore;
|
|
136
90
|
metrics?: Metrics;
|
|
137
91
|
}
|
|
138
|
-
export declare function autoNATv2(init?: AutoNATv2ServiceInit): (components: AutoNATv2Components) =>
|
|
92
|
+
export declare function autoNATv2(init?: AutoNATv2ServiceInit): (components: AutoNATv2Components) => unknown;
|
|
139
93
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAE1G,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAE1B;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAE3B;;;;;;;;OAQG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAE5B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,SAAS,CAAA;IACpB,cAAc,EAAE,cAAc,CAAA;IAC9B,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,MAAM,EAAE,eAAe,CAAA;IACvB,UAAU,EAAE,UAAU,CAAA;IACtB,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,wBAAgB,SAAS,CAAE,IAAI,GAAE,oBAAyB,GAAG,CAAC,UAAU,EAAE,mBAAmB,KAAK,OAAO,CAIxG"}
|
package/dist/src/index.js
CHANGED
|
@@ -19,11 +19,6 @@
|
|
|
19
19
|
* autoNAT: autoNATv2()
|
|
20
20
|
* }
|
|
21
21
|
* })
|
|
22
|
-
*
|
|
23
|
-
* // observe per-address reachability changes as they are probed
|
|
24
|
-
* node.services.autoNAT.addEventListener('address:reachable', (evt) => {
|
|
25
|
-
* console.info(evt.detail.addr, 'is externally dialable')
|
|
26
|
-
* })
|
|
27
22
|
* ```
|
|
28
23
|
*/
|
|
29
24
|
import { AutoNATv2Service } from "./autonat.js";
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAiF/C,MAAM,UAAU,SAAS,CAAE,OAA6B,EAAE;IACxD,OAAO,CAAC,UAAU,EAAE,EAAE;QACpB,OAAO,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;IAC/C,CAAC,CAAA;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/autonat-v2",
|
|
3
|
-
"version": "2.0.23-
|
|
3
|
+
"version": "2.0.23-fb9e8a76e",
|
|
4
4
|
"description": "Implementation of the AutoNAT Protocol v2",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/protocol-autonat-v2#readme",
|
|
@@ -46,10 +46,10 @@
|
|
|
46
46
|
"doc-check": "aegir doc-check"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@libp2p/interface": "3.2.5-
|
|
50
|
-
"@libp2p/interface-internal": "3.1.8-
|
|
51
|
-
"@libp2p/peer-collections": "7.0.23-
|
|
52
|
-
"@libp2p/utils": "7.2.4-
|
|
49
|
+
"@libp2p/interface": "3.2.5-fb9e8a76e",
|
|
50
|
+
"@libp2p/interface-internal": "3.1.8-fb9e8a76e",
|
|
51
|
+
"@libp2p/peer-collections": "7.0.23-fb9e8a76e",
|
|
52
|
+
"@libp2p/utils": "7.2.4-fb9e8a76e",
|
|
53
53
|
"@multiformats/multiaddr": "^13.0.3",
|
|
54
54
|
"any-signal": "^4.1.1",
|
|
55
55
|
"main-event": "^1.0.1",
|
|
@@ -58,9 +58,9 @@
|
|
|
58
58
|
"uint8arrays": "^6.1.1"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
|
-
"@libp2p/crypto": "5.1.21-
|
|
62
|
-
"@libp2p/logger": "6.2.10-
|
|
63
|
-
"@libp2p/peer-id": "6.0.12-
|
|
61
|
+
"@libp2p/crypto": "5.1.21-fb9e8a76e",
|
|
62
|
+
"@libp2p/logger": "6.2.10-fb9e8a76e",
|
|
63
|
+
"@libp2p/peer-id": "6.0.12-fb9e8a76e",
|
|
64
64
|
"aegir": "^48.1.1",
|
|
65
65
|
"delay": "^7.0.0",
|
|
66
66
|
"it-all": "^3.0.9",
|
package/src/autonat.ts
CHANGED
|
@@ -1,26 +1,22 @@
|
|
|
1
1
|
import { serviceCapabilities, serviceDependencies, start, stop } from '@libp2p/interface'
|
|
2
|
-
import { TypedEventEmitter } from 'main-event'
|
|
3
2
|
import { AutoNATv2Client } from './client.ts'
|
|
4
3
|
import { DIAL_BACK, DIAL_REQUEST, PROTOCOL_NAME, PROTOCOL_PREFIX, PROTOCOL_VERSION } from './constants.ts'
|
|
5
4
|
import { AutoNATv2Server } from './server.ts'
|
|
6
|
-
import type { AutoNATv2Components,
|
|
5
|
+
import type { AutoNATv2Components, AutoNATv2ServiceInit } from './index.ts'
|
|
7
6
|
import type { Startable } from '@libp2p/interface'
|
|
8
7
|
|
|
9
|
-
export class AutoNATv2Service
|
|
8
|
+
export class AutoNATv2Service implements Startable {
|
|
10
9
|
private readonly client: AutoNATv2Client
|
|
11
10
|
private readonly server: AutoNATv2Server
|
|
12
11
|
|
|
13
12
|
constructor (components: AutoNATv2Components, init: AutoNATv2ServiceInit) {
|
|
14
|
-
super()
|
|
15
|
-
|
|
16
13
|
const dialRequestProtocol = `/${init.protocolPrefix ?? PROTOCOL_PREFIX}/${PROTOCOL_NAME}/${PROTOCOL_VERSION}/${DIAL_REQUEST}`
|
|
17
14
|
const dialBackProtocol = `/${init.protocolPrefix ?? PROTOCOL_PREFIX}/${PROTOCOL_NAME}/${PROTOCOL_VERSION}/${DIAL_BACK}`
|
|
18
15
|
|
|
19
16
|
this.client = new AutoNATv2Client(components, {
|
|
20
17
|
...init,
|
|
21
18
|
dialRequestProtocol,
|
|
22
|
-
dialBackProtocol
|
|
23
|
-
safeDispatchEvent: this.safeDispatchEvent.bind(this)
|
|
19
|
+
dialBackProtocol
|
|
24
20
|
})
|
|
25
21
|
this.server = new AutoNATv2Server(components, {
|
|
26
22
|
...init,
|
package/src/client.ts
CHANGED
|
@@ -6,15 +6,12 @@ import { setMaxListeners } from 'main-event'
|
|
|
6
6
|
import { DEFAULT_CONNECTION_THRESHOLD, DIAL_DATA_CHUNK_SIZE, MAX_DIAL_DATA_BYTES, MAX_INBOUND_STREAMS, MAX_MESSAGE_SIZE, MAX_OUTBOUND_STREAMS, TIMEOUT } from './constants.ts'
|
|
7
7
|
import { DialBack, DialBackResponse, DialResponse, DialStatus, Message } from './pb/index.ts'
|
|
8
8
|
import { randomNumber } from './utils.ts'
|
|
9
|
-
import type {
|
|
9
|
+
import type { AutoNATv2Components, AutoNATv2ServiceInit } from './index.ts'
|
|
10
10
|
import type { Logger, Connection, Startable, AbortOptions, Stream } from '@libp2p/interface'
|
|
11
11
|
import type { AddressType } from '@libp2p/interface-internal'
|
|
12
12
|
import type { PeerSet } from '@libp2p/peer-collections'
|
|
13
13
|
import type { Filter, RepeatingTask } from '@libp2p/utils'
|
|
14
14
|
import type { Multiaddr } from '@multiformats/multiaddr'
|
|
15
|
-
import type { TypedEventEmitter } from 'main-event'
|
|
16
|
-
|
|
17
|
-
export type DispatchAutoNATv2Event = TypedEventEmitter<AutoNATv2Events>['safeDispatchEvent']
|
|
18
15
|
|
|
19
16
|
// if more than 3 peers manage to dial us on what we believe to be our external
|
|
20
17
|
// IP then we are convinced that it is, in fact, our external IP
|
|
@@ -71,7 +68,6 @@ export interface AutoNATv2ClientInit extends AutoNATv2ServiceInit {
|
|
|
71
68
|
dialBackProtocol: string
|
|
72
69
|
maxDialDataBytes?: bigint
|
|
73
70
|
dialDataChunkSize?: number
|
|
74
|
-
safeDispatchEvent: DispatchAutoNATv2Event
|
|
75
71
|
}
|
|
76
72
|
|
|
77
73
|
export class AutoNATv2Client implements Startable {
|
|
@@ -93,11 +89,9 @@ export class AutoNATv2Client implements Startable {
|
|
|
93
89
|
private readonly connectionThreshold: number
|
|
94
90
|
private readonly queue: PeerQueue
|
|
95
91
|
private readonly nonces: Set<bigint>
|
|
96
|
-
private readonly safeDispatchEvent: DispatchAutoNATv2Event
|
|
97
92
|
|
|
98
93
|
constructor (components: AutoNATv2Components, init: AutoNATv2ClientInit) {
|
|
99
94
|
this.components = components
|
|
100
|
-
this.safeDispatchEvent = init.safeDispatchEvent
|
|
101
95
|
this.log = components.logger.forComponent('libp2p:auto-nat-v2:client')
|
|
102
96
|
this.started = false
|
|
103
97
|
this.dialRequestProtocol = init.dialRequestProtocol
|
|
@@ -378,7 +372,13 @@ export class AutoNATv2Client implements Startable {
|
|
|
378
372
|
*/
|
|
379
373
|
private removeOutdatedMultiaddrResults (): void {
|
|
380
374
|
const unverifiedMultiaddrs = new Set(this.components.addressManager.getAddressesWithMetadata()
|
|
381
|
-
.filter(({ expires }) =>
|
|
375
|
+
.filter(({ expires }) => {
|
|
376
|
+
if (expires < Date.now()) {
|
|
377
|
+
return true
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
return false
|
|
381
|
+
})
|
|
382
382
|
.map(({ multiaddr }) => multiaddr.toString())
|
|
383
383
|
)
|
|
384
384
|
|
|
@@ -553,9 +553,6 @@ export class AutoNATv2Client implements Startable {
|
|
|
553
553
|
if (response.dialResponse.dialStatus === DialStatus.OK) {
|
|
554
554
|
this.log.trace('%p dialed %a successfully', connection.remotePeer, results.multiaddr)
|
|
555
555
|
|
|
556
|
-
// surface progress as this new-segment peer contributes, before its
|
|
557
|
-
// result is counted
|
|
558
|
-
this.emitReachabilityEvent(results, 'verifying')
|
|
559
556
|
results.success++
|
|
560
557
|
|
|
561
558
|
// observed addresses require more confirmations
|
|
@@ -566,7 +563,6 @@ export class AutoNATv2Client implements Startable {
|
|
|
566
563
|
} else if (response.dialResponse.dialStatus === DialStatus.E_DIAL_ERROR) {
|
|
567
564
|
this.log.trace('%p could not dial %a', connection.remotePeer, results.multiaddr)
|
|
568
565
|
// the address was not dialable (e.g. not public)
|
|
569
|
-
this.emitReachabilityEvent(results, 'verifying')
|
|
570
566
|
results.failure++
|
|
571
567
|
} else if (response.dialResponse.dialStatus === DialStatus.E_DIAL_BACK_ERROR) {
|
|
572
568
|
this.log.trace('%p saw error while dialing %a', connection.remotePeer, results.multiaddr)
|
|
@@ -609,8 +605,6 @@ export class AutoNATv2Client implements Startable {
|
|
|
609
605
|
|
|
610
606
|
// abort & remove any outstanding verification jobs for this multiaddr
|
|
611
607
|
results.result = true
|
|
612
|
-
|
|
613
|
-
this.emitReachabilityEvent(results, 'reachable')
|
|
614
608
|
}
|
|
615
609
|
|
|
616
610
|
private unconfirmAddress (results: DialResults): void {
|
|
@@ -621,19 +615,6 @@ export class AutoNATv2Client implements Startable {
|
|
|
621
615
|
|
|
622
616
|
// abort & remove any outstanding verification jobs for this multiaddr
|
|
623
617
|
results.result = false
|
|
624
|
-
|
|
625
|
-
this.emitReachabilityEvent(results, 'unreachable')
|
|
626
|
-
}
|
|
627
|
-
|
|
628
|
-
private emitReachabilityEvent (results: DialResults, state: 'verifying' | 'reachable' | 'unreachable'): void {
|
|
629
|
-
this.safeDispatchEvent<AddressReachabilityChange>(`address:${state}`, {
|
|
630
|
-
detail: {
|
|
631
|
-
addr: results.multiaddr,
|
|
632
|
-
type: results.type,
|
|
633
|
-
success: results.success,
|
|
634
|
-
failure: results.failure
|
|
635
|
-
}
|
|
636
|
-
})
|
|
637
618
|
}
|
|
638
619
|
|
|
639
620
|
private getNetworkSegment (ma: Multiaddr): string {
|
package/src/index.ts
CHANGED
|
@@ -19,66 +19,12 @@
|
|
|
19
19
|
* autoNAT: autoNATv2()
|
|
20
20
|
* }
|
|
21
21
|
* })
|
|
22
|
-
*
|
|
23
|
-
* // observe per-address reachability changes as they are probed
|
|
24
|
-
* node.services.autoNAT.addEventListener('address:reachable', (evt) => {
|
|
25
|
-
* console.info(evt.detail.addr, 'is externally dialable')
|
|
26
|
-
* })
|
|
27
22
|
* ```
|
|
28
23
|
*/
|
|
29
24
|
|
|
30
25
|
import { AutoNATv2Service } from './autonat.ts'
|
|
31
26
|
import type { ComponentLogger, Metrics, PeerStore } from '@libp2p/interface'
|
|
32
|
-
import type { AddressManager,
|
|
33
|
-
import type { Multiaddr } from '@multiformats/multiaddr'
|
|
34
|
-
import type { TypedEventEmitter } from 'main-event'
|
|
35
|
-
|
|
36
|
-
export interface AddressReachabilityChange {
|
|
37
|
-
/**
|
|
38
|
-
* The address a probe result relates to
|
|
39
|
-
*/
|
|
40
|
-
readonly addr: Multiaddr
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* The type of address being probed (e.g. observed or transport)
|
|
44
|
-
*/
|
|
45
|
-
readonly type: AddressType
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* How many peers have successfully dialled this address so far this round
|
|
49
|
-
*/
|
|
50
|
-
readonly success: number
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* How many peers have failed to dial this address so far this round
|
|
54
|
-
*/
|
|
55
|
-
readonly failure: number
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
export interface AutoNATv2Events {
|
|
59
|
-
/**
|
|
60
|
-
* Emitted as each peer contributes a dial result for an address, carrying the
|
|
61
|
-
* running success/failure tally for the current round. A verdict
|
|
62
|
-
* (reachable/unreachable) is not guaranteed to follow.
|
|
63
|
-
*/
|
|
64
|
-
'address:verifying': CustomEvent<AddressReachabilityChange>
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* An address was confirmed to be externally dialable. Carries the tally for
|
|
68
|
-
* the current round, which is zero when an address is re-affirmed under
|
|
69
|
-
* connection pressure without probing.
|
|
70
|
-
*/
|
|
71
|
-
'address:reachable': CustomEvent<AddressReachabilityChange>
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* An address was confirmed not to be externally dialable, carrying the tally
|
|
75
|
-
* for the round that reached the failure threshold.
|
|
76
|
-
*/
|
|
77
|
-
'address:unreachable': CustomEvent<AddressReachabilityChange>
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
export interface AutoNATv2 extends TypedEventEmitter<AutoNATv2Events> {
|
|
81
|
-
}
|
|
27
|
+
import type { AddressManager, ConnectionManager, RandomWalk, Registrar } from '@libp2p/interface-internal'
|
|
82
28
|
|
|
83
29
|
export interface AutoNATv2ServiceInit {
|
|
84
30
|
/**
|
|
@@ -157,7 +103,7 @@ export interface AutoNATv2Components {
|
|
|
157
103
|
metrics?: Metrics
|
|
158
104
|
}
|
|
159
105
|
|
|
160
|
-
export function autoNATv2 (init: AutoNATv2ServiceInit = {}): (components: AutoNATv2Components) =>
|
|
106
|
+
export function autoNATv2 (init: AutoNATv2ServiceInit = {}): (components: AutoNATv2Components) => unknown {
|
|
161
107
|
return (components) => {
|
|
162
108
|
return new AutoNATv2Service(components, init)
|
|
163
109
|
}
|