@libp2p/autonat 2.0.12 → 2.0.13

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.
@@ -1,33 +1,60 @@
1
- import { serviceCapabilities } from '@libp2p/interface';
1
+ import { serviceCapabilities, serviceDependencies } from '@libp2p/interface';
2
2
  import type { AutoNATComponents, AutoNATServiceInit } from './index.js';
3
- import type { Startable } from '@libp2p/interface';
3
+ import type { Connection, Startable, AbortOptions } from '@libp2p/interface';
4
4
  import type { IncomingStreamData } from '@libp2p/interface-internal';
5
5
  export declare class AutoNATService implements Startable {
6
6
  private readonly components;
7
- private readonly startupDelay;
8
- private readonly refreshInterval;
9
7
  private readonly protocol;
10
8
  private readonly timeout;
11
9
  private readonly maxInboundStreams;
12
10
  private readonly maxOutboundStreams;
13
- private verifyAddressTimeout?;
14
11
  private started;
15
12
  private readonly log;
13
+ private topologyId?;
14
+ private readonly dialResults;
15
+ private readonly findPeers;
16
+ private readonly addressFilter;
17
+ private readonly connectionThreshold;
16
18
  constructor(components: AutoNATComponents, init: AutoNATServiceInit);
17
19
  readonly [Symbol.toStringTag] = "@libp2p/autonat";
18
20
  readonly [serviceCapabilities]: string[];
21
+ get [serviceDependencies](): string[];
19
22
  isStarted(): boolean;
20
23
  start(): Promise<void>;
21
24
  stop(): Promise<void>;
25
+ private allAddressesAreVerified;
26
+ findRandomPeers(options?: AbortOptions): Promise<void>;
22
27
  /**
23
28
  * Handle an incoming AutoNAT request
24
29
  */
25
30
  handleIncomingAutonatStream(data: IncomingStreamData): Promise<void>;
26
- _verifyExternalAddresses(): void;
27
31
  private handleAutonatMessage;
32
+ /**
33
+ * The AutoNAT v1 server is not required to send us the address that it
34
+ * dialed successfully.
35
+ *
36
+ * When addresses fail, it can be because they are NATed, or because the peer
37
+ * did't support the transport, we have no way of knowing, so just send them
38
+ * one address so we can treat the response as:
39
+ *
40
+ * - OK - the dial request worked and the address is not NATed
41
+ * - E_DIAL_ERROR - the dial request failed and the address may be NATed
42
+ * - E_DIAL_REFUSED/E_BAD_REQUEST/E_INTERNAL_ERROR - the remote didn't dial the address
43
+ */
44
+ private getFirstUnverifiedMultiaddr;
45
+ /**
46
+ * Removes any multiaddr result objects created for old multiaddrs that we are
47
+ * no longer waiting on
48
+ */
49
+ private removeOutdatedMultiaddrResults;
28
50
  /**
29
51
  * Our multicodec topology noticed a new peer that supports autonat
30
52
  */
31
- verifyExternalAddresses(): Promise<void>;
53
+ verifyExternalAddresses(connection: Connection): Promise<void>;
54
+ private askPeerToVerify;
55
+ private hasConnectionCapacity;
56
+ private confirmAddress;
57
+ private unconfirmAddress;
58
+ private getNetworkSegment;
32
59
  }
33
60
  //# sourceMappingURL=autonat.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"autonat.d.ts","sourceRoot":"","sources":["../../src/autonat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,mBAAmB,EAAmB,MAAM,mBAAmB,CAAA;AAgBpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACvE,OAAO,KAAK,EAAwC,SAAS,EAAgB,MAAM,mBAAmB,CAAA;AACtG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAOpE,qBAAa,cAAe,YAAW,SAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAQ;IAC1C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAQ;IAC3C,OAAO,CAAC,oBAAoB,CAAC,CAA+B;IAC5D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;gBAEf,UAAU,EAAE,iBAAiB,EAAE,IAAI,EAAE,kBAAkB;IAapE,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,qBAAoB;IAEjD,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAEvC;IAED,SAAS,IAAK,OAAO;IAIf,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAoBvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAO5B;;OAEG;IACG,2BAA2B,CAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmE3E,wBAAwB,IAAK,IAAI;YAOnB,oBAAoB;IAoKlC;;OAEG;IACG,uBAAuB,IAAK,OAAO,CAAC,IAAI,CAAC;CAyLhD"}
1
+ {"version":3,"file":"autonat.d.ts","sourceRoot":"","sources":["../../src/autonat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAmB,MAAM,mBAAmB,CAAA;AAiB7F,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACvE,OAAO,KAAK,EAAU,UAAU,EAAU,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC5F,OAAO,KAAK,EAAe,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAkEjF,qBAAa,cAAe,YAAW,SAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAQ;IAC1C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAQ;IAC3C,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;gBAE/B,UAAU,EAAE,iBAAiB,EAAE,IAAI,EAAE,kBAAkB;IAcpE,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,qBAAoB;IAEjD,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;IAY5B,OAAO,CAAC,uBAAuB;IAWzB,eAAe,CAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA4C7D;;OAEG;IACG,2BAA2B,CAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;YAyB7D,oBAAoB;IAiKlC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,2BAA2B;IAsGnC;;;OAGG;IACH,OAAO,CAAC,8BAA8B;IAoBtC;;OAEG;IACG,uBAAuB,CAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;YAsDvD,eAAe;IAsG7B,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,iBAAiB;CAY1B"}