libp2p 2.9.0 → 2.10.0-a02cb0461

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.
Files changed (112) hide show
  1. package/dist/index.min.js +13 -17
  2. package/dist/index.min.js.map +4 -4
  3. package/dist/src/address-manager/dns-mappings.d.ts.map +1 -1
  4. package/dist/src/address-manager/dns-mappings.js +2 -3
  5. package/dist/src/address-manager/dns-mappings.js.map +1 -1
  6. package/dist/src/address-manager/index.d.ts.map +1 -1
  7. package/dist/src/address-manager/index.js +1 -3
  8. package/dist/src/address-manager/index.js.map +1 -1
  9. package/dist/src/address-manager/ip-mappings.js +1 -1
  10. package/dist/src/address-manager/ip-mappings.js.map +1 -1
  11. package/dist/src/address-manager/observed-addresses.d.ts.map +1 -1
  12. package/dist/src/address-manager/observed-addresses.js +1 -3
  13. package/dist/src/address-manager/observed-addresses.js.map +1 -1
  14. package/dist/src/address-manager/transport-addresses.d.ts.map +1 -1
  15. package/dist/src/address-manager/transport-addresses.js +1 -3
  16. package/dist/src/address-manager/transport-addresses.js.map +1 -1
  17. package/dist/src/config/connection-gater.browser.js +1 -1
  18. package/dist/src/config/connection-gater.browser.js.map +1 -1
  19. package/dist/src/config.js +1 -1
  20. package/dist/src/config.js.map +1 -1
  21. package/dist/src/connection-manager/address-sorter.d.ts.map +1 -1
  22. package/dist/src/connection-manager/address-sorter.js +1 -2
  23. package/dist/src/connection-manager/address-sorter.js.map +1 -1
  24. package/dist/src/connection-manager/connection-pruner.d.ts.map +1 -1
  25. package/dist/src/connection-manager/connection-pruner.js +1 -2
  26. package/dist/src/connection-manager/connection-pruner.js.map +1 -1
  27. package/dist/src/connection-manager/constants.defaults.d.ts +4 -0
  28. package/dist/src/connection-manager/constants.defaults.d.ts.map +1 -1
  29. package/dist/src/connection-manager/constants.defaults.js +4 -0
  30. package/dist/src/connection-manager/constants.defaults.js.map +1 -1
  31. package/dist/src/connection-manager/dial-queue.d.ts +2 -2
  32. package/dist/src/connection-manager/dial-queue.d.ts.map +1 -1
  33. package/dist/src/connection-manager/dial-queue.js +11 -23
  34. package/dist/src/connection-manager/dial-queue.js.map +1 -1
  35. package/dist/src/connection-manager/index.d.ts +10 -2
  36. package/dist/src/connection-manager/index.d.ts.map +1 -1
  37. package/dist/src/connection-manager/index.js +29 -19
  38. package/dist/src/connection-manager/index.js.map +1 -1
  39. package/dist/src/connection-manager/reconnect-queue.js +1 -1
  40. package/dist/src/connection-manager/reconnect-queue.js.map +1 -1
  41. package/dist/src/connection-manager/utils.d.ts +28 -0
  42. package/dist/src/connection-manager/utils.d.ts.map +1 -1
  43. package/dist/src/connection-manager/utils.js +78 -0
  44. package/dist/src/connection-manager/utils.js.map +1 -1
  45. package/dist/src/connection-monitor.d.ts +1 -1
  46. package/dist/src/connection-monitor.d.ts.map +1 -1
  47. package/dist/src/connection-monitor.js +2 -3
  48. package/dist/src/connection-monitor.js.map +1 -1
  49. package/dist/src/connection.d.ts +62 -0
  50. package/dist/src/connection.d.ts.map +1 -0
  51. package/dist/src/connection.js +239 -0
  52. package/dist/src/connection.js.map +1 -0
  53. package/dist/src/index.d.ts +2 -2
  54. package/dist/src/index.js +2 -2
  55. package/dist/src/libp2p.d.ts.map +1 -1
  56. package/dist/src/libp2p.js +3 -3
  57. package/dist/src/libp2p.js.map +1 -1
  58. package/dist/src/peer-routing.js +1 -1
  59. package/dist/src/peer-routing.js.map +1 -1
  60. package/dist/src/random-walk.d.ts.map +1 -1
  61. package/dist/src/random-walk.js +13 -3
  62. package/dist/src/random-walk.js.map +1 -1
  63. package/dist/src/registrar.d.ts +3 -3
  64. package/dist/src/registrar.d.ts.map +1 -1
  65. package/dist/src/registrar.js +50 -41
  66. package/dist/src/registrar.js.map +1 -1
  67. package/dist/src/transport-manager.js +15 -2
  68. package/dist/src/transport-manager.js.map +1 -1
  69. package/dist/src/upgrader.d.ts +27 -25
  70. package/dist/src/upgrader.d.ts.map +1 -1
  71. package/dist/src/upgrader.js +95 -335
  72. package/dist/src/upgrader.js.map +1 -1
  73. package/dist/src/utils.d.ts +3 -0
  74. package/dist/src/utils.d.ts.map +1 -0
  75. package/dist/src/utils.js +25 -0
  76. package/dist/src/utils.js.map +1 -0
  77. package/dist/src/version.d.ts +1 -1
  78. package/dist/src/version.d.ts.map +1 -1
  79. package/dist/src/version.js +1 -1
  80. package/dist/src/version.js.map +1 -1
  81. package/package.json +26 -30
  82. package/src/address-manager/dns-mappings.ts +2 -3
  83. package/src/address-manager/index.ts +2 -4
  84. package/src/address-manager/ip-mappings.ts +1 -1
  85. package/src/address-manager/observed-addresses.ts +1 -3
  86. package/src/address-manager/transport-addresses.ts +1 -3
  87. package/src/config/connection-gater.browser.ts +1 -1
  88. package/src/config.ts +1 -1
  89. package/src/connection-manager/address-sorter.ts +1 -2
  90. package/src/connection-manager/connection-pruner.ts +1 -2
  91. package/src/connection-manager/constants.defaults.ts +5 -0
  92. package/src/connection-manager/dial-queue.ts +12 -27
  93. package/src/connection-manager/index.ts +44 -21
  94. package/src/connection-manager/reconnect-queue.ts +1 -1
  95. package/src/connection-manager/utils.ts +104 -0
  96. package/src/connection-monitor.ts +3 -4
  97. package/src/connection.ts +316 -0
  98. package/src/index.ts +2 -2
  99. package/src/libp2p.ts +3 -4
  100. package/src/peer-routing.ts +1 -1
  101. package/src/random-walk.ts +13 -3
  102. package/src/registrar.ts +67 -54
  103. package/src/transport-manager.ts +18 -2
  104. package/src/upgrader.ts +141 -420
  105. package/src/utils.ts +31 -0
  106. package/src/version.ts +1 -1
  107. package/dist/src/connection/index.d.ts +0 -84
  108. package/dist/src/connection/index.d.ts.map +0 -1
  109. package/dist/src/connection/index.js +0 -144
  110. package/dist/src/connection/index.js.map +0 -1
  111. package/dist/typedoc-urls.json +0 -24
  112. package/src/connection/index.ts +0 -199
@@ -1 +1 @@
1
- {"version":3,"file":"upgrader.js","sourceRoot":"","sources":["../../src/upgrader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upgrader.js","sourceRoot":"","sources":["../../src/upgrader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { MessageStream } from '@libp2p/interface';
2
+ export declare function redirect(channelA: MessageStream, channelB: MessageStream): void;
3
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEtD,wBAAgB,QAAQ,CAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CA4BhF"}
@@ -0,0 +1,25 @@
1
+ export function redirect(channelA, channelB) {
2
+ channelA.addEventListener('message', (evt) => {
3
+ const sendMore = channelB.send(evt.data);
4
+ if (sendMore === false) {
5
+ channelA.pause();
6
+ channelA.addEventListener('drain', () => {
7
+ channelA.resume();
8
+ }, {
9
+ once: true
10
+ });
11
+ }
12
+ });
13
+ channelB.addEventListener('message', (evt) => {
14
+ const sendMore = channelA.send(evt.data);
15
+ if (sendMore === false) {
16
+ channelB.pause();
17
+ channelB.addEventListener('drain', () => {
18
+ channelB.resume();
19
+ }, {
20
+ once: true
21
+ });
22
+ }
23
+ });
24
+ }
25
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,QAAQ,CAAE,QAAuB,EAAE,QAAuB;IACxE,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;QAC3C,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAExC,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACvB,QAAQ,CAAC,KAAK,EAAE,CAAA;YAEhB,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBACtC,QAAQ,CAAC,MAAM,EAAE,CAAA;YACnB,CAAC,EAAE;gBACD,IAAI,EAAE,IAAI;aACX,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;QAC3C,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAExC,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACvB,QAAQ,CAAC,KAAK,EAAE,CAAA;YAEhB,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBACtC,QAAQ,CAAC,MAAM,EAAE,CAAA;YACnB,CAAC,EAAE;gBACD,IAAI,EAAE,IAAI;aACX,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -1,3 +1,3 @@
1
- export declare const version = "2.9.0";
1
+ export declare const version = "2.10.0-a02cb0461";
2
2
  export declare const name = "js-libp2p";
3
3
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAA;AAC9B,eAAO,MAAM,IAAI,cAAc,CAAA"}
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"}
@@ -1,3 +1,3 @@
1
- export const version = '2.9.0';
1
+ export const version = '2.10.0-a02cb0461';
2
2
  export const name = 'js-libp2p';
3
3
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAA;AAC9B,MAAM,CAAC,MAAM,IAAI,GAAG,WAAW,CAAA"}
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.9.0",
3
+ "version": "2.10.0-a02cb0461",
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,46 +80,42 @@
80
80
  "dependencies": {
81
81
  "@chainsafe/is-ip": "^2.1.0",
82
82
  "@chainsafe/netmask": "^2.0.0",
83
- "@libp2p/crypto": "^5.1.7",
84
- "@libp2p/interface": "^2.10.5",
85
- "@libp2p/interface-internal": "^2.3.18",
86
- "@libp2p/logger": "^5.1.21",
87
- "@libp2p/multistream-select": "^6.0.28",
88
- "@libp2p/peer-collections": "^6.0.34",
89
- "@libp2p/peer-id": "^5.1.8",
90
- "@libp2p/peer-store": "^11.2.6",
91
- "@libp2p/utils": "^6.7.1",
83
+ "@libp2p/crypto": "5.1.8-a02cb0461",
84
+ "@libp2p/interface": "2.11.0-a02cb0461",
85
+ "@libp2p/interface-internal": "2.3.19-a02cb0461",
86
+ "@libp2p/logger": "5.2.0-a02cb0461",
87
+ "@libp2p/multistream-select": "6.0.29-a02cb0461",
88
+ "@libp2p/peer-collections": "6.0.35-a02cb0461",
89
+ "@libp2p/peer-id": "5.1.9-a02cb0461",
90
+ "@libp2p/peer-store": "11.2.7-a02cb0461",
91
+ "@libp2p/utils": "6.7.2-a02cb0461",
92
92
  "@multiformats/dns": "^1.0.6",
93
- "@multiformats/multiaddr": "^12.4.4",
94
- "@multiformats/multiaddr-matcher": "^2.0.0",
93
+ "@multiformats/multiaddr": "^12.5.1",
94
+ "@multiformats/multiaddr-matcher": "^2.0.2",
95
95
  "any-signal": "^4.1.1",
96
- "datastore-core": "^10.0.2",
97
- "interface-datastore": "^8.3.1",
98
- "it-byte-stream": "^2.0.2",
99
- "it-merge": "^3.0.11",
100
- "it-parallel": "^3.0.11",
96
+ "datastore-core": "^10.0.4",
97
+ "interface-datastore": "^8.3.2",
98
+ "it-merge": "^3.0.12",
99
+ "it-parallel": "^3.0.13",
101
100
  "main-event": "^1.0.1",
102
- "multiformats": "^13.3.6",
101
+ "multiformats": "^13.4.0",
103
102
  "p-defer": "^4.0.1",
104
- "p-retry": "^6.2.1",
103
+ "p-event": "^6.0.1",
104
+ "p-retry": "^7.0.0",
105
105
  "progress-events": "^1.0.1",
106
- "race-event": "^1.3.0",
107
- "race-signal": "^1.1.3",
106
+ "race-signal": "^2.0.0",
108
107
  "uint8arrays": "^5.1.0"
109
108
  },
110
109
  "devDependencies": {
111
- "aegir": "^47.0.14",
110
+ "aegir": "^47.0.21",
112
111
  "delay": "^6.0.0",
113
- "it-all": "^3.0.8",
114
- "it-drain": "^3.0.9",
112
+ "it-all": "^3.0.9",
113
+ "it-drain": "^3.0.10",
115
114
  "it-length-prefixed": "^10.0.1",
116
- "it-map": "^3.1.3",
117
- "it-pair": "^2.0.6",
118
- "it-stream-types": "^2.0.2",
119
- "it-take": "^3.0.8",
120
- "p-event": "^6.0.1",
115
+ "it-map": "^3.1.4",
116
+ "it-take": "^3.0.9",
121
117
  "p-wait-for": "^5.0.2",
122
- "sinon": "^20.0.0",
118
+ "sinon": "^21.0.0",
123
119
  "sinon-ts": "^2.0.0",
124
120
  "uint8arraylist": "^2.4.8",
125
121
  "wherearewe": "^2.0.1"
@@ -1,5 +1,4 @@
1
- import { isPrivateIp } from '@libp2p/utils/private-ip'
2
- import { trackedMap } from '@libp2p/utils/tracked-map'
1
+ import { isPrivateIp, trackedMap } from '@libp2p/utils'
3
2
  import { multiaddr, protocols } from '@multiformats/multiaddr'
4
3
  import type { AddressManagerComponents, AddressManagerInit } from './index.js'
5
4
  import type { Logger } from '@libp2p/interface'
@@ -72,7 +71,7 @@ export class DNSMappings {
72
71
 
73
72
  for (const [ip, mapping] of this.mappings.entries()) {
74
73
  if (mapping.domain === host) {
75
- this.log('removing %s to %s DNS mapping %e', ip, mapping.domain, new Error('where'))
74
+ this.log('removing %s to %s DNS mapping %e', ip, mapping.domain)
76
75
  this.mappings.delete(ip)
77
76
  wasConfident = wasConfident || mapping.verified
78
77
  }
@@ -1,9 +1,7 @@
1
1
  /* eslint-disable complexity */
2
2
  import { isIPv4 } from '@chainsafe/is-ip'
3
3
  import { peerIdFromString } from '@libp2p/peer-id'
4
- import { debounce } from '@libp2p/utils/debounce'
5
- import { createScalableCuckooFilter } from '@libp2p/utils/filters'
6
- import { isPrivateIp } from '@libp2p/utils/private-ip'
4
+ import { debounce, createScalableCuckooFilter, isPrivateIp } from '@libp2p/utils'
7
5
  import { multiaddr } from '@multiformats/multiaddr'
8
6
  import { QUIC_V1, TCP, WebSockets, WebSocketsSecure } from '@multiformats/multiaddr-matcher'
9
7
  import { DNSMappings } from './dns-mappings.js'
@@ -12,7 +10,7 @@ import { ObservedAddresses } from './observed-addresses.js'
12
10
  import { TransportAddresses } from './transport-addresses.js'
13
11
  import type { ComponentLogger, Libp2pEvents, Logger, PeerId, PeerStore, Metrics } from '@libp2p/interface'
14
12
  import type { AddressManager as AddressManagerInterface, TransportManager, NodeAddress, ConfirmAddressOptions } from '@libp2p/interface-internal'
15
- import type { Filter } from '@libp2p/utils/filters'
13
+ import type { Filter } from '@libp2p/utils'
16
14
  import type { Multiaddr } from '@multiformats/multiaddr'
17
15
  import type { TypedEventTarget } from 'main-event'
18
16
 
@@ -1,5 +1,5 @@
1
1
  import { isIPv4 } from '@chainsafe/is-ip'
2
- import { trackedMap } from '@libp2p/utils/tracked-map'
2
+ import { trackedMap } from '@libp2p/utils'
3
3
  import { multiaddr, protocols } from '@multiformats/multiaddr'
4
4
  import type { AddressManagerComponents, AddressManagerInit } from './index.js'
5
5
  import type { Logger } from '@libp2p/interface'
@@ -1,6 +1,4 @@
1
- import { isLinkLocal } from '@libp2p/utils/multiaddr/is-link-local'
2
- import { isPrivate } from '@libp2p/utils/multiaddr/is-private'
3
- import { trackedMap } from '@libp2p/utils/tracked-map'
1
+ import { isLinkLocal, isPrivate, trackedMap } from '@libp2p/utils'
4
2
  import { multiaddr } from '@multiformats/multiaddr'
5
3
  import type { AddressManagerComponents, AddressManagerInit } from './index.js'
6
4
  import type { Logger } from '@libp2p/interface'
@@ -1,6 +1,4 @@
1
- import { isNetworkAddress } from '@libp2p/utils/multiaddr/is-network-address'
2
- import { isPrivate } from '@libp2p/utils/multiaddr/is-private'
3
- import { trackedMap } from '@libp2p/utils/tracked-map'
1
+ import { isNetworkAddress, isPrivate, trackedMap } from '@libp2p/utils'
4
2
  import type { AddressManagerComponents, AddressManagerInit } from './index.js'
5
3
  import type { Logger } from '@libp2p/interface'
6
4
  import type { NodeAddress } from '@libp2p/interface-internal'
@@ -1,4 +1,4 @@
1
- import { isPrivateIp } from '@libp2p/utils/private-ip'
1
+ import { isPrivateIp } from '@libp2p/utils'
2
2
  import { WebSockets } from '@multiformats/multiaddr-matcher'
3
3
  import type { ConnectionGater } from '@libp2p/interface'
4
4
  import type { Multiaddr } from '@multiformats/multiaddr'
package/src/config.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { FaultTolerance, InvalidParametersError } from '@libp2p/interface'
2
- import { mergeOptions } from '@libp2p/utils/merge-options'
2
+ import { mergeOptions } from '@libp2p/utils'
3
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'
@@ -1,5 +1,4 @@
1
- import { isLoopback } from '@libp2p/utils/multiaddr/is-loopback'
2
- import { isPrivate } from '@libp2p/utils/multiaddr/is-private'
1
+ import { isLoopback, isPrivate } from '@libp2p/utils'
3
2
  import { Circuit, WebSockets, WebSocketsSecure, WebRTC, WebRTCDirect, WebTransport, TCP } from '@multiformats/multiaddr-matcher'
4
3
  import type { Address } from '@libp2p/interface'
5
4
 
@@ -1,6 +1,5 @@
1
1
  import { PeerMap } from '@libp2p/peer-collections'
2
- import { safelyCloseConnectionIfUnused } from '@libp2p/utils/close'
3
- import { multiaddrToIpNet } from './utils.js'
2
+ import { multiaddrToIpNet, safelyCloseConnectionIfUnused } from './utils.js'
4
3
  import type { IpNet } from '@chainsafe/netmask'
5
4
  import type { Libp2pEvents, Logger, ComponentLogger, PeerStore, Connection } from '@libp2p/interface'
6
5
  import type { ConnectionManager } from '@libp2p/interface-internal'
@@ -3,6 +3,11 @@
3
3
  */
4
4
  export const DIAL_TIMEOUT = 10_000
5
5
 
6
+ /**
7
+ * @see https://libp2p.github.io/js-libp2p/interfaces/index._internal_.ConnectionManagerConfig.html#connectionCloseTimeout
8
+ */
9
+ export const CONNECTION_CLOSE_TIMEOUT = 1_000
10
+
6
11
  /**
7
12
  * @see https://libp2p.github.io/js-libp2p/interfaces/index._internal_.ConnectionManagerConfig.html#inboundUpgradeTimeout
8
13
  */
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable max-depth */
2
2
  import { TimeoutError, DialError, AbortError } from '@libp2p/interface'
3
3
  import { PeerMap } from '@libp2p/peer-collections'
4
- import { PriorityQueue } from '@libp2p/utils/priority-queue'
4
+ import { PriorityQueue } from '@libp2p/utils'
5
5
  import { multiaddr } from '@multiformats/multiaddr'
6
6
  import { Circuit } from '@multiformats/multiaddr-matcher'
7
7
  import { anySignal } from 'any-signal'
@@ -20,10 +20,11 @@ import {
20
20
  LAST_DIAL_SUCCESS_KEY
21
21
  } from './constants.js'
22
22
  import { resolveMultiaddr, dnsaddrResolver } from './resolvers/index.js'
23
+ import { findExistingConnection } from './utils.ts'
23
24
  import { DEFAULT_DIAL_PRIORITY } from './index.js'
24
25
  import type { AddressSorter, ComponentLogger, Logger, Connection, ConnectionGater, Metrics, PeerId, Address, PeerStore, PeerRouting, IsDialableOptions, OpenConnectionProgressEvents, MultiaddrResolver } from '@libp2p/interface'
25
26
  import type { OpenConnectionOptions, TransportManager } from '@libp2p/interface-internal'
26
- import type { PriorityQueueJobOptions } from '@libp2p/utils/priority-queue'
27
+ import type { PriorityQueueJobOptions } from '@libp2p/utils'
27
28
  import type { DNS } from '@multiformats/dns'
28
29
  import type { Multiaddr } from '@multiformats/multiaddr'
29
30
  import type { ProgressOptions } from 'progress-events'
@@ -101,9 +102,9 @@ export class DialQueue {
101
102
  metrics: components.metrics
102
103
  })
103
104
  // a started job errored
104
- this.queue.addEventListener('error', (event) => {
105
- if (event.detail?.name !== AbortError.name) {
106
- this.log.error('error in dial queue - %e', event.detail)
105
+ this.queue.addEventListener('failure', (event) => {
106
+ if (event.detail?.error.name !== AbortError.name) {
107
+ this.log.error('error in dial queue - %e', event.detail.error)
107
108
  }
108
109
  })
109
110
  }
@@ -136,30 +137,14 @@ export class DialQueue {
136
137
  async dial (peerIdOrMultiaddr: PeerId | Multiaddr | Multiaddr[], options: OpenConnectionOptions = {}): Promise<Connection> {
137
138
  const { peerId, multiaddrs } = getPeerAddress(peerIdOrMultiaddr)
138
139
 
139
- // make sure we don't have an existing non-limited connection to any of the
140
- // addresses we are about to dial
141
- const existingConnection = Array.from(this.connections.values()).flat().find(conn => {
142
- if (options.force === true) {
143
- return false
144
- }
145
-
146
- if (conn.limits != null) {
147
- return false
148
- }
140
+ if (peerId != null && options.force !== true) {
141
+ const existingConnection = findExistingConnection(peerId, this.connections.get(peerId), multiaddrs)
149
142
 
150
- if (conn.remotePeer.equals(peerId)) {
151
- return true
143
+ if (existingConnection != null) {
144
+ this.log('already connected to %a', existingConnection.remoteAddr)
145
+ options.onProgress?.(new CustomProgressEvent('dial-queue:already-connected'))
146
+ return existingConnection
152
147
  }
153
-
154
- return multiaddrs.find(addr => {
155
- return addr.equals(conn.remoteAddr)
156
- })
157
- })
158
-
159
- if (existingConnection?.status === 'open') {
160
- this.log('already connected to %a', existingConnection.remoteAddr)
161
- options.onProgress?.(new CustomProgressEvent('dial-queue:already-connected'))
162
- return existingConnection
163
148
  }
164
149
 
165
150
  // ready to dial, all async work finished - make sure we don't have any
@@ -1,7 +1,8 @@
1
1
  import { ConnectionClosedError, InvalidMultiaddrError, InvalidParametersError, InvalidPeerIdError, NotStartedError, start, stop } from '@libp2p/interface'
2
2
  import { PeerMap } from '@libp2p/peer-collections'
3
- import { RateLimiter } from '@libp2p/utils/rate-limiter'
3
+ import { RateLimiter } from '@libp2p/utils'
4
4
  import { multiaddr } from '@multiformats/multiaddr'
5
+ import { pEvent } from 'p-event'
5
6
  import { CustomProgressEvent } from 'progress-events'
6
7
  import { getPeerAddress } from '../get-peer.js'
7
8
  import { ConnectionPruner } from './connection-pruner.js'
@@ -9,11 +10,11 @@ import { DIAL_TIMEOUT, INBOUND_CONNECTION_THRESHOLD, MAX_CONNECTIONS, MAX_DIAL_Q
9
10
  import { DialQueue } from './dial-queue.js'
10
11
  import { ReconnectQueue } from './reconnect-queue.js'
11
12
  import { dnsaddrResolver } from './resolvers/index.ts'
12
- import { multiaddrToIpNet } from './utils.js'
13
+ import { findExistingConnection, multiaddrToIpNet } from './utils.js'
13
14
  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, MultiaddrResolver } from '@libp2p/interface'
15
+ import type { PendingDial, AddressSorter, Libp2pEvents, AbortOptions, ComponentLogger, Logger, Connection, MultiaddrConnection, ConnectionGater, Metrics, PeerId, PeerStore, Startable, PendingDialStatus, PeerRouting, IsDialableOptions, MultiaddrResolver, Stream, NewStreamOptions } from '@libp2p/interface'
15
16
  import type { ConnectionManager, OpenConnectionOptions, TransportManager } from '@libp2p/interface-internal'
16
- import type { JobStatus } from '@libp2p/utils/queue'
17
+ import type { JobStatus } from '@libp2p/utils'
17
18
  import type { Multiaddr } from '@multiformats/multiaddr'
18
19
  import type { TypedEventTarget } from 'main-event'
19
20
 
@@ -65,6 +66,14 @@ export interface ConnectionManagerInit {
65
66
  */
66
67
  dialTimeout?: number
67
68
 
69
+ /**
70
+ * How many ms to wait when closing a connection if an abort signal is not
71
+ * passed
72
+ *
73
+ * @default 1_000
74
+ */
75
+ connectionCloseTimeout?: number
76
+
68
77
  /**
69
78
  * When a new incoming connection is opened, the upgrade process (e.g.
70
79
  * protect, encrypt, multiplex etc) must complete within this number of ms.
@@ -399,16 +408,22 @@ export class DefaultConnectionManager implements ConnectionManager, Startable {
399
408
  )
400
409
 
401
410
  // Close all connections we're tracking
402
- const tasks: Array<Promise<void>> = []
411
+ const tasks: Array<Promise<any>> = []
403
412
  for (const connectionList of this.connections.values()) {
404
413
  for (const connection of connectionList) {
405
- tasks.push((async () => {
406
- try {
407
- await connection.close()
408
- } catch (err) {
409
- this.log.error(err)
410
- }
411
- })())
414
+ tasks.push(
415
+ Promise.all([
416
+ pEvent(connection, 'close', {
417
+ signal: AbortSignal.timeout(500)
418
+ }),
419
+ connection.close({
420
+ signal: AbortSignal.timeout(500)
421
+ })
422
+ ])
423
+ .catch(err => {
424
+ connection.abort(err)
425
+ })
426
+ )
412
427
  }
413
428
  }
414
429
 
@@ -500,11 +515,11 @@ export class DefaultConnectionManager implements ConnectionManager, Startable {
500
515
 
501
516
  if (filteredPeerConns.length === 0) {
502
517
  // trigger disconnect event if no connections remain
503
- this.log('onDisconnect remove all connections for peer %p', peerId)
518
+ this.log.trace('peer %p disconnected, removing connection map entry', peerId)
504
519
  this.connections.delete(peerId)
505
520
 
506
521
  // broadcast disconnect event
507
- this.events.safeDispatchEvent('peer:disconnect', { detail: connection.remotePeer })
522
+ this.events.safeDispatchEvent('peer:disconnect', { detail: peerId })
508
523
  }
509
524
  }
510
525
 
@@ -536,7 +551,7 @@ export class DefaultConnectionManager implements ConnectionManager, Startable {
536
551
  try {
537
552
  options.signal?.throwIfAborted()
538
553
 
539
- const { peerId } = getPeerAddress(peerIdOrMultiaddr)
554
+ const { peerId, multiaddrs } = getPeerAddress(peerIdOrMultiaddr)
540
555
 
541
556
  if (this.peerId.equals(peerId)) {
542
557
  throw new InvalidPeerIdError('Can not dial self')
@@ -544,11 +559,10 @@ export class DefaultConnectionManager implements ConnectionManager, Startable {
544
559
 
545
560
  if (peerId != null && options.force !== true) {
546
561
  this.log('dial %p', peerId)
547
- const existingConnection = this.getConnections(peerId)
548
- .find(conn => conn.limits == null)
562
+ const existingConnection = findExistingConnection(peerId, this.getConnections(peerId), multiaddrs)
549
563
 
550
564
  if (existingConnection != null) {
551
- this.log('had an existing non-limited connection to %p', peerId)
565
+ this.log('had an existing connection to %p as %a', peerId, existingConnection.remoteAddr)
552
566
 
553
567
  options.onProgress?.(new CustomProgressEvent('dial-queue:already-connected'))
554
568
  return existingConnection
@@ -600,13 +614,22 @@ export class DefaultConnectionManager implements ConnectionManager, Startable {
600
614
  }
601
615
  }
602
616
 
617
+ async openStream (peerIdOrMultiaddr: PeerId | Multiaddr | Multiaddr[], protocol: string | string[], options: OpenConnectionOptions & NewStreamOptions = {}): Promise<Stream> {
618
+ const connection = await this.openConnection(peerIdOrMultiaddr, options)
619
+
620
+ return connection.newStream(protocol, options)
621
+ }
622
+
603
623
  async closeConnections (peerId: PeerId, options: AbortOptions = {}): Promise<void> {
604
624
  const connections = this.connections.get(peerId) ?? []
605
625
 
606
626
  await Promise.all(
607
627
  connections.map(async connection => {
608
628
  try {
609
- await connection.close(options)
629
+ await Promise.all([
630
+ pEvent(connection, 'close', options),
631
+ connection.close(options)
632
+ ])
610
633
  } catch (err: any) {
611
634
  connection.abort(err)
612
635
  }
@@ -614,7 +637,7 @@ export class DefaultConnectionManager implements ConnectionManager, Startable {
614
637
  )
615
638
  }
616
639
 
617
- async acceptIncomingConnection (maConn: MultiaddrConnection): Promise<boolean> {
640
+ acceptIncomingConnection (maConn: MultiaddrConnection): boolean {
618
641
  // check deny list
619
642
  const denyConnection = this.deny.some(ma => {
620
643
  return ma.contains(maConn.remoteAddr.nodeAddress().address)
@@ -646,7 +669,7 @@ export class DefaultConnectionManager implements ConnectionManager, Startable {
646
669
  const host = maConn.remoteAddr.nodeAddress().address
647
670
 
648
671
  try {
649
- await this.inboundConnectionRateLimiter.consume(host, 1)
672
+ this.inboundConnectionRateLimiter.consume(host, 1)
650
673
  } catch {
651
674
  this.log('connection from %a refused - inboundConnectionThreshold exceeded by host %s', maConn.remoteAddr, host)
652
675
  return false
@@ -1,5 +1,5 @@
1
1
  import { KEEP_ALIVE } from '@libp2p/interface'
2
- import { PeerQueue } from '@libp2p/utils/peer-queue'
2
+ import { PeerQueue } from '@libp2p/utils'
3
3
  import pRetry from 'p-retry'
4
4
  import { MAX_PARALLEL_RECONNECTS } from './constants.js'
5
5
  import type { ComponentLogger, Libp2pEvents, Logger, Metrics, Peer, PeerId, PeerStore, Startable } from '@libp2p/interface'