@streamr/dht 100.0.0-testnet-two.3 → 100.0.0-testnet-three.0

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 (304) hide show
  1. package/dist/package.json +8 -8
  2. package/dist/src/connection/Connection.d.ts +1 -0
  3. package/dist/src/connection/Connection.js +10 -3
  4. package/dist/src/connection/Connection.js.map +1 -1
  5. package/dist/src/connection/ConnectionLockHandler.d.ts +3 -3
  6. package/dist/src/connection/ConnectionLockHandler.js +8 -10
  7. package/dist/src/connection/ConnectionLockHandler.js.map +1 -1
  8. package/dist/src/connection/ConnectionLockRpcLocal.js +5 -4
  9. package/dist/src/connection/ConnectionLockRpcLocal.js.map +1 -1
  10. package/dist/src/connection/ConnectionLockRpcRemote.js +4 -4
  11. package/dist/src/connection/ConnectionLockRpcRemote.js.map +1 -1
  12. package/dist/src/connection/ConnectionManager.d.ts +8 -8
  13. package/dist/src/connection/ConnectionManager.js +54 -57
  14. package/dist/src/connection/ConnectionManager.js.map +1 -1
  15. package/dist/src/connection/ConnectorFacade.d.ts +3 -2
  16. package/dist/src/connection/ConnectorFacade.js +7 -0
  17. package/dist/src/connection/ConnectorFacade.js.map +1 -1
  18. package/dist/src/connection/Handshaker.js +3 -1
  19. package/dist/src/connection/Handshaker.js.map +1 -1
  20. package/dist/src/connection/IConnection.d.ts +2 -7
  21. package/dist/src/connection/IConnection.js +1 -8
  22. package/dist/src/connection/IConnection.js.map +1 -1
  23. package/dist/src/connection/ManagedConnection.js +23 -15
  24. package/dist/src/connection/ManagedConnection.js.map +1 -1
  25. package/dist/src/connection/ManagedWebrtcConnection.js.map +1 -1
  26. package/dist/src/connection/connectivityChecker.js.map +1 -1
  27. package/dist/src/connection/connectivityRequestHandler.js +5 -2
  28. package/dist/src/connection/connectivityRequestHandler.js.map +1 -1
  29. package/dist/src/connection/simulator/Simulator.js +32 -20
  30. package/dist/src/connection/simulator/Simulator.js.map +1 -1
  31. package/dist/src/connection/simulator/SimulatorConnection.js +13 -10
  32. package/dist/src/connection/simulator/SimulatorConnection.js.map +1 -1
  33. package/dist/src/connection/simulator/SimulatorConnector.js +9 -6
  34. package/dist/src/connection/simulator/SimulatorConnector.js.map +1 -1
  35. package/dist/src/connection/simulator/pings.js.map +1 -1
  36. package/dist/src/connection/webrtc/NodeWebrtcConnection.d.ts +1 -1
  37. package/dist/src/connection/webrtc/NodeWebrtcConnection.js +26 -14
  38. package/dist/src/connection/webrtc/NodeWebrtcConnection.js.map +1 -1
  39. package/dist/src/connection/webrtc/WebrtcConnector.d.ts +0 -1
  40. package/dist/src/connection/webrtc/WebrtcConnector.js +18 -17
  41. package/dist/src/connection/webrtc/WebrtcConnector.js.map +1 -1
  42. package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js +10 -9
  43. package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js.map +1 -1
  44. package/dist/src/connection/webrtc/iceServerAsString.js.map +1 -1
  45. package/dist/src/connection/websocket/AutoCertifierClientFacade.js +3 -0
  46. package/dist/src/connection/websocket/AutoCertifierClientFacade.js.map +1 -1
  47. package/dist/src/connection/websocket/ClientWebsocket.js +7 -4
  48. package/dist/src/connection/websocket/ClientWebsocket.js.map +1 -1
  49. package/dist/src/connection/websocket/ServerWebsocket.d.ts +1 -0
  50. package/dist/src/connection/websocket/ServerWebsocket.js +22 -3
  51. package/dist/src/connection/websocket/ServerWebsocket.js.map +1 -1
  52. package/dist/src/connection/websocket/WebsocketConnector.d.ts +2 -1
  53. package/dist/src/connection/websocket/WebsocketConnector.js +24 -15
  54. package/dist/src/connection/websocket/WebsocketConnector.js.map +1 -1
  55. package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.d.ts +2 -1
  56. package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.js +3 -1
  57. package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.js.map +1 -1
  58. package/dist/src/connection/websocket/WebsocketConnectorRpcRemote.js +2 -2
  59. package/dist/src/connection/websocket/WebsocketConnectorRpcRemote.js.map +1 -1
  60. package/dist/src/connection/websocket/WebsocketServer.js +6 -3
  61. package/dist/src/connection/websocket/WebsocketServer.js.map +1 -1
  62. package/dist/src/dht/DhtNode.d.ts +18 -19
  63. package/dist/src/dht/DhtNode.js +56 -65
  64. package/dist/src/dht/DhtNode.js.map +1 -1
  65. package/dist/src/dht/DhtNodeRpcLocal.d.ts +1 -1
  66. package/dist/src/dht/DhtNodeRpcLocal.js +5 -4
  67. package/dist/src/dht/DhtNodeRpcLocal.js.map +1 -1
  68. package/dist/src/dht/DhtNodeRpcRemote.d.ts +2 -1
  69. package/dist/src/dht/DhtNodeRpcRemote.js +5 -3
  70. package/dist/src/dht/DhtNodeRpcRemote.js.map +1 -1
  71. package/dist/src/dht/ExternalApiRpcLocal.d.ts +1 -1
  72. package/dist/src/dht/ExternalApiRpcLocal.js +4 -3
  73. package/dist/src/dht/ExternalApiRpcLocal.js.map +1 -1
  74. package/dist/src/dht/ExternalApiRpcRemote.js.map +1 -1
  75. package/dist/src/dht/PeerManager.d.ts +5 -5
  76. package/dist/src/dht/PeerManager.js +31 -24
  77. package/dist/src/dht/PeerManager.js.map +1 -1
  78. package/dist/src/dht/contact/Contact.js +3 -2
  79. package/dist/src/dht/contact/Contact.js.map +1 -1
  80. package/dist/src/dht/contact/ContactList.js +9 -5
  81. package/dist/src/dht/contact/ContactList.js.map +1 -1
  82. package/dist/src/dht/contact/RandomContactList.js +1 -0
  83. package/dist/src/dht/contact/RandomContactList.js.map +1 -1
  84. package/dist/src/dht/contact/RpcRemote.d.ts +2 -1
  85. package/dist/src/dht/contact/RpcRemote.js +4 -0
  86. package/dist/src/dht/contact/RpcRemote.js.map +1 -1
  87. package/dist/src/dht/contact/SortedContactList.js +3 -2
  88. package/dist/src/dht/contact/SortedContactList.js.map +1 -1
  89. package/dist/src/dht/discovery/DiscoverySession.js +8 -8
  90. package/dist/src/dht/discovery/DiscoverySession.js.map +1 -1
  91. package/dist/src/dht/discovery/PeerDiscovery.d.ts +8 -2
  92. package/dist/src/dht/discovery/PeerDiscovery.js +26 -17
  93. package/dist/src/dht/discovery/PeerDiscovery.js.map +1 -1
  94. package/dist/src/dht/recursive-operation/RecursiveOperationManager.d.ts +1 -1
  95. package/dist/src/dht/recursive-operation/RecursiveOperationManager.js +9 -9
  96. package/dist/src/dht/recursive-operation/RecursiveOperationManager.js.map +1 -1
  97. package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.js +3 -2
  98. package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.js.map +1 -1
  99. package/dist/src/dht/recursive-operation/RecursiveOperationRpcRemote.js +6 -5
  100. package/dist/src/dht/recursive-operation/RecursiveOperationRpcRemote.js.map +1 -1
  101. package/dist/src/dht/recursive-operation/RecursiveOperationSession.d.ts +2 -1
  102. package/dist/src/dht/recursive-operation/RecursiveOperationSession.js +26 -20
  103. package/dist/src/dht/recursive-operation/RecursiveOperationSession.js.map +1 -1
  104. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.d.ts +4 -2
  105. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.js +5 -2
  106. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.js.map +1 -1
  107. package/dist/src/dht/routing/DuplicateDetector.d.ts +2 -4
  108. package/dist/src/dht/routing/DuplicateDetector.js +10 -15
  109. package/dist/src/dht/routing/DuplicateDetector.js.map +1 -1
  110. package/dist/src/dht/routing/Router.d.ts +1 -1
  111. package/dist/src/dht/routing/Router.js +20 -15
  112. package/dist/src/dht/routing/Router.js.map +1 -1
  113. package/dist/src/dht/routing/RouterRpcLocal.js +4 -4
  114. package/dist/src/dht/routing/RouterRpcLocal.js.map +1 -1
  115. package/dist/src/dht/routing/RouterRpcRemote.js +11 -9
  116. package/dist/src/dht/routing/RouterRpcRemote.js.map +1 -1
  117. package/dist/src/dht/routing/RoutingSession.d.ts +2 -0
  118. package/dist/src/dht/routing/RoutingSession.js +27 -9
  119. package/dist/src/dht/routing/RoutingSession.js.map +1 -1
  120. package/dist/src/dht/store/LocalDataStore.js +5 -4
  121. package/dist/src/dht/store/LocalDataStore.js.map +1 -1
  122. package/dist/src/dht/store/StoreManager.js +8 -8
  123. package/dist/src/dht/store/StoreManager.js.map +1 -1
  124. package/dist/src/dht/store/StoreRpcLocal.js +1 -0
  125. package/dist/src/dht/store/StoreRpcLocal.js.map +1 -1
  126. package/dist/src/dht/store/StoreRpcRemote.js +3 -3
  127. package/dist/src/dht/store/StoreRpcRemote.js.map +1 -1
  128. package/dist/src/exports.d.ts +1 -4
  129. package/dist/src/exports.js +4 -7
  130. package/dist/src/exports.js.map +1 -1
  131. package/dist/src/helpers/AddressTools.js.map +1 -1
  132. package/dist/src/helpers/Connectivity.js.map +1 -1
  133. package/dist/src/helpers/MapWithTtl.js +2 -1
  134. package/dist/src/helpers/MapWithTtl.js.map +1 -1
  135. package/dist/src/helpers/createPeerDescriptor.d.ts +3 -0
  136. package/dist/src/helpers/createPeerDescriptor.js +56 -0
  137. package/dist/src/helpers/createPeerDescriptor.js.map +1 -0
  138. package/dist/src/helpers/createPeerDescriptorSignaturePayload.d.ts +2 -0
  139. package/dist/src/helpers/createPeerDescriptorSignaturePayload.js +30 -0
  140. package/dist/src/helpers/createPeerDescriptorSignaturePayload.js.map +1 -0
  141. package/dist/src/helpers/debugHelpers.js.map +1 -1
  142. package/dist/src/helpers/errors.js +2 -0
  143. package/dist/src/helpers/errors.js.map +1 -1
  144. package/dist/src/helpers/offering.d.ts +4 -0
  145. package/dist/src/helpers/offering.js +18 -0
  146. package/dist/src/helpers/offering.js.map +1 -0
  147. package/dist/src/helpers/protoToString.js.map +1 -1
  148. package/dist/src/identifiers.d.ts +3 -0
  149. package/dist/src/identifiers.js +9 -1
  150. package/dist/src/identifiers.js.map +1 -1
  151. package/dist/src/proto/google/protobuf/any.d.ts +8 -5
  152. package/dist/src/proto/google/protobuf/any.js +8 -8
  153. package/dist/src/proto/google/protobuf/any.js.map +1 -1
  154. package/dist/src/proto/google/protobuf/empty.d.ts +0 -1
  155. package/dist/src/proto/google/protobuf/empty.js +2 -4
  156. package/dist/src/proto/google/protobuf/empty.js.map +1 -1
  157. package/dist/src/proto/google/protobuf/timestamp.d.ts +10 -1
  158. package/dist/src/proto/google/protobuf/timestamp.js +10 -10
  159. package/dist/src/proto/google/protobuf/timestamp.js.map +1 -1
  160. package/dist/src/proto/packages/dht/protos/DhtRpc.client.d.ts +4 -5
  161. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js +38 -29
  162. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js.map +1 -1
  163. package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +22 -12
  164. package/dist/src/proto/packages/dht/protos/DhtRpc.js +11 -16
  165. package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
  166. package/dist/src/proto/packages/dht/protos/DhtRpc.server.d.ts +2 -3
  167. package/dist/src/proto/packages/proto-rpc/protos/ProtoRpc.js +1 -1
  168. package/dist/src/rpc-protocol/DhtCallContext.d.ts +0 -1
  169. package/dist/src/rpc-protocol/DhtCallContext.js +8 -0
  170. package/dist/src/rpc-protocol/DhtCallContext.js.map +1 -1
  171. package/dist/src/transport/ITransport.d.ts +1 -1
  172. package/dist/src/transport/ListeningRpcCommunicator.js +2 -0
  173. package/dist/src/transport/ListeningRpcCommunicator.js.map +1 -1
  174. package/dist/src/transport/RoutingRpcCommunicator.d.ts +2 -1
  175. package/dist/src/transport/RoutingRpcCommunicator.js +2 -0
  176. package/dist/src/transport/RoutingRpcCommunicator.js.map +1 -1
  177. package/package.json +8 -8
  178. package/protos/DhtRpc.proto +7 -4
  179. package/src/connection/Connection.ts +6 -1
  180. package/src/connection/ConnectionLockHandler.ts +3 -3
  181. package/src/connection/ConnectionLockRpcLocal.ts +1 -5
  182. package/src/connection/ConnectionLockRpcRemote.ts +1 -1
  183. package/src/connection/ConnectionManager.ts +24 -40
  184. package/src/connection/ConnectorFacade.ts +3 -2
  185. package/src/connection/IConnection.ts +2 -8
  186. package/src/connection/ManagedConnection.ts +3 -3
  187. package/src/connection/connectivityRequestHandler.ts +7 -3
  188. package/src/connection/simulator/Simulator.ts +1 -2
  189. package/src/connection/simulator/SimulatorConnection.ts +1 -1
  190. package/src/connection/simulator/SimulatorConnector.ts +1 -2
  191. package/src/connection/webrtc/BrowserWebrtcConnection.ts +4 -3
  192. package/src/connection/webrtc/NodeWebrtcConnection.ts +5 -4
  193. package/src/connection/webrtc/WebrtcConnector.ts +9 -17
  194. package/src/connection/webrtc/WebrtcConnectorRpcLocal.ts +7 -7
  195. package/src/connection/websocket/ClientWebsocket.ts +3 -2
  196. package/src/connection/websocket/ServerWebsocket.ts +17 -1
  197. package/src/connection/websocket/WebsocketConnector.ts +10 -9
  198. package/src/connection/websocket/WebsocketConnectorRpcLocal.ts +4 -2
  199. package/src/connection/websocket/WebsocketConnectorRpcRemote.ts +1 -1
  200. package/src/connection/websocket/WebsocketServer.ts +2 -2
  201. package/src/dht/DhtNode.ts +63 -86
  202. package/src/dht/DhtNodeRpcLocal.ts +5 -5
  203. package/src/dht/DhtNodeRpcRemote.ts +3 -3
  204. package/src/dht/ExternalApiRpcLocal.ts +3 -4
  205. package/src/dht/PeerManager.ts +14 -20
  206. package/src/dht/contact/Contact.ts +1 -2
  207. package/src/dht/contact/RpcRemote.ts +2 -1
  208. package/src/dht/discovery/DiscoverySession.ts +2 -3
  209. package/src/dht/discovery/PeerDiscovery.ts +16 -9
  210. package/src/dht/recursive-operation/RecursiveOperationManager.ts +12 -6
  211. package/src/dht/recursive-operation/RecursiveOperationRpcLocal.ts +1 -1
  212. package/src/dht/recursive-operation/RecursiveOperationRpcRemote.ts +3 -2
  213. package/src/dht/recursive-operation/RecursiveOperationSession.ts +19 -9
  214. package/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.ts +13 -3
  215. package/src/dht/routing/DuplicateDetector.ts +9 -21
  216. package/src/dht/routing/Router.ts +12 -11
  217. package/src/dht/routing/RouterRpcLocal.ts +1 -2
  218. package/src/dht/routing/RouterRpcRemote.ts +5 -5
  219. package/src/dht/routing/RoutingSession.ts +22 -2
  220. package/src/dht/store/StoreManager.ts +1 -2
  221. package/src/dht/store/StoreRpcRemote.ts +1 -1
  222. package/src/exports.ts +9 -4
  223. package/src/helpers/createPeerDescriptor.ts +56 -0
  224. package/src/helpers/createPeerDescriptorSignaturePayload.ts +28 -0
  225. package/src/helpers/offering.ts +15 -0
  226. package/src/identifiers.ts +10 -1
  227. package/src/proto/google/protobuf/any.ts +12 -9
  228. package/src/proto/google/protobuf/empty.ts +2 -5
  229. package/src/proto/google/protobuf/timestamp.ts +14 -5
  230. package/src/proto/packages/dht/protos/DhtRpc.client.ts +6 -7
  231. package/src/proto/packages/dht/protos/DhtRpc.server.ts +3 -4
  232. package/src/proto/packages/dht/protos/DhtRpc.ts +32 -20
  233. package/src/proto/packages/proto-rpc/protos/ProtoRpc.ts +1 -1
  234. package/src/rpc-protocol/DhtCallContext.ts +0 -1
  235. package/src/transport/ITransport.ts +1 -1
  236. package/src/transport/RoutingRpcCommunicator.ts +1 -1
  237. package/test/benchmark/Find.test.ts +6 -8
  238. package/test/benchmark/KademliaCorrectness.test.ts +2 -3
  239. package/test/benchmark/SortedContactListBenchmark.test.ts +16 -16
  240. package/test/benchmark/WebsocketServerMemoryLeak.test.ts +1 -1
  241. package/test/benchmark/kademlia-simulation/KademliaSimulation.ts +8 -8
  242. package/test/benchmark/kademlia-simulation/SimulationNode.ts +8 -8
  243. package/test/end-to-end/Layer0-Layer1.test.ts +1 -1
  244. package/test/end-to-end/Layer0.test.ts +4 -4
  245. package/test/end-to-end/Layer0MixedConnectionTypes.test.ts +12 -12
  246. package/test/end-to-end/Layer0Webrtc-Layer1.test.ts +18 -18
  247. package/test/end-to-end/Layer0Webrtc.test.ts +13 -10
  248. package/test/end-to-end/Layer1-Scale-WebSocket.test.ts +2 -2
  249. package/test/end-to-end/Layer1-Scale-Webrtc.test.ts +2 -2
  250. package/test/end-to-end/RecoveryFromFailedAutoCertification.test.ts +1 -1
  251. package/test/end-to-end/WebsocketConnectionRequest.test.ts +3 -3
  252. package/test/end-to-end/memory-leak.test.ts +2 -2
  253. package/test/integration/ConnectionLocking.test.ts +60 -47
  254. package/test/integration/ConnectionManager.test.ts +8 -7
  255. package/test/integration/DhtJoinPeerDiscovery.test.ts +2 -2
  256. package/test/integration/DhtNodeExternalAPI.test.ts +1 -2
  257. package/test/integration/DhtNodeRpcRemote.test.ts +4 -3
  258. package/test/integration/DhtRpc.test.ts +4 -3
  259. package/test/integration/Find.test.ts +4 -6
  260. package/test/integration/Layer1-scale.test.ts +7 -7
  261. package/test/integration/Mock-Layer1-Layer0.test.ts +21 -24
  262. package/test/integration/MultipleEntryPointJoining.test.ts +7 -7
  263. package/test/integration/ReplicateData.test.ts +52 -161
  264. package/test/integration/RouteMessage.test.ts +24 -47
  265. package/test/integration/RouterRpcRemote.test.ts +7 -4
  266. package/test/integration/ScaleDownDht.test.ts +2 -3
  267. package/test/integration/SimultaneousConnections.test.ts +9 -8
  268. package/test/integration/Store.test.ts +1 -2
  269. package/test/integration/StoreAndDelete.test.ts +5 -0
  270. package/test/integration/StoreOnDhtWithThreeNodes.test.ts +59 -0
  271. package/test/integration/StoreOnDhtWithTwoNodes.test.ts +1 -1
  272. package/test/integration/StoreRpcRemote.test.ts +4 -4
  273. package/test/integration/WebrtcConnectionManagement.test.ts +6 -5
  274. package/test/integration/WebrtcConnectorRpc.test.ts +3 -2
  275. package/test/integration/WebsocketConnectionManagement.test.ts +27 -15
  276. package/test/integration/WebsocketConnectorRpc.test.ts +3 -2
  277. package/test/integration/{RpcErrors.test.ts → rpc-connections-over-webrpc.test.ts} +6 -3
  278. package/test/unit/DuplicateDetector.test.ts +2 -2
  279. package/test/unit/LocalDataStore.test.ts +1 -4
  280. package/test/unit/RandomContactList.test.ts +2 -4
  281. package/test/unit/RecursiveOperationManager.test.ts +5 -6
  282. package/test/unit/RecursiveOperationSession.test.ts +5 -4
  283. package/test/unit/Router.test.ts +25 -8
  284. package/test/unit/RoutingSession.test.ts +3 -3
  285. package/test/unit/SortedContactList.test.ts +2 -4
  286. package/test/unit/connectivityRequestHandler.test.ts +5 -3
  287. package/test/unit/createPeerDescriptor.test.ts +63 -0
  288. package/test/utils/FakeTransport.ts +7 -4
  289. package/test/utils/mock/Transport.ts +1 -1
  290. package/test/utils/utils.ts +6 -6
  291. package/dist/src/helpers/PeerID.d.ts +0 -27
  292. package/dist/src/helpers/PeerID.js +0 -87
  293. package/dist/src/helpers/PeerID.js.map +0 -1
  294. package/dist/src/helpers/UUID.d.ts +0 -8
  295. package/dist/src/helpers/UUID.js +0 -36
  296. package/dist/src/helpers/UUID.js.map +0 -1
  297. package/dist/src/helpers/peerIdFromPeerDescriptor.d.ts +0 -7
  298. package/dist/src/helpers/peerIdFromPeerDescriptor.js +0 -23
  299. package/dist/src/helpers/peerIdFromPeerDescriptor.js.map +0 -1
  300. package/src/helpers/PeerID.ts +0 -97
  301. package/src/helpers/UUID.ts +0 -35
  302. package/src/helpers/peerIdFromPeerDescriptor.ts +0 -20
  303. package/test/unit/PeerID.test.ts +0 -22
  304. package/test/unit/UUID.test.ts +0 -55
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@streamr/dht",
3
- "version": "100.0.0-testnet-two.3",
3
+ "version": "100.0.0-testnet-three.0",
4
4
  "description": "Streamr Network DHT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -31,9 +31,9 @@
31
31
  "dependencies": {
32
32
  "@protobuf-ts/runtime": "^2.8.2",
33
33
  "@protobuf-ts/runtime-rpc": "^2.8.2",
34
- "@streamr/autocertifier-client": "100.0.0-testnet-two.3",
35
- "@streamr/proto-rpc": "100.0.0-testnet-two.3",
36
- "@streamr/utils": "100.0.0-testnet-two.3",
34
+ "@streamr/autocertifier-client": "100.0.0-testnet-three.0",
35
+ "@streamr/proto-rpc": "100.0.0-testnet-three.0",
36
+ "@streamr/utils": "100.0.0-testnet-three.0",
37
37
  "eventemitter3": "^5.0.0",
38
38
  "heap": "^0.2.6",
39
39
  "ipaddr.js": "^2.0.1",
@@ -45,19 +45,19 @@
45
45
  },
46
46
  "devDependencies": {
47
47
  "@streamr/browser-test-runner": "^0.0.1",
48
- "@streamr/test-utils": "100.0.0-testnet-two.3",
48
+ "@streamr/test-utils": "100.0.0-testnet-three.0",
49
49
  "@types/express": "^4.17.21",
50
50
  "@types/heap": "^0.2.34",
51
51
  "@types/k-bucket": "^5.0.1",
52
52
  "@types/lodash": "^4.14.202",
53
- "@types/sinon": "^10.0.15",
53
+ "@types/sinon": "^17.0.3",
54
54
  "@types/uuid": "^9.0.7",
55
- "@types/websocket": "^1.0.3",
55
+ "@types/websocket": "^1.0.10",
56
56
  "express": "^4.17.1",
57
57
  "jest-leak-detector": "^27.3.1",
58
58
  "patch-package": "^8.0.0",
59
59
  "ts-essentials": "^9.4.1",
60
- "ts-node": "^10.9.1"
60
+ "ts-node": "^10.9.2"
61
61
  },
62
62
  "optionalDependencies": {
63
63
  "bufferutil": "^4.0.8",
@@ -9,3 +9,4 @@ export declare class Connection extends EventEmitter<ConnectionEvents> {
9
9
  setPeerDescriptor(peerDescriptor: PeerDescriptor): void;
10
10
  getPeerDescriptor(): PeerDescriptor | undefined;
11
11
  }
12
+ export declare const createRandomConnectionId: () => ConnectionID;
@@ -3,13 +3,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Connection = void 0;
6
+ exports.createRandomConnectionId = exports.Connection = void 0;
7
7
  const eventemitter3_1 = __importDefault(require("eventemitter3"));
8
- const IConnection_1 = require("./IConnection");
8
+ const uuid_1 = require("uuid");
9
9
  class Connection extends eventemitter3_1.default {
10
+ connectionId;
11
+ connectionType;
12
+ peerDescriptor;
10
13
  constructor(connectionType) {
11
14
  super();
12
- this.connectionId = new IConnection_1.ConnectionID();
15
+ this.connectionId = (0, exports.createRandomConnectionId)();
13
16
  this.connectionType = connectionType;
14
17
  }
15
18
  setPeerDescriptor(peerDescriptor) {
@@ -20,4 +23,8 @@ class Connection extends eventemitter3_1.default {
20
23
  }
21
24
  }
22
25
  exports.Connection = Connection;
26
+ const createRandomConnectionId = () => {
27
+ return (0, uuid_1.v4)();
28
+ };
29
+ exports.createRandomConnectionId = createRandomConnectionId;
23
30
  //# sourceMappingURL=Connection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Connection.js","sourceRoot":"","sources":["../../../src/connection/Connection.ts"],"names":[],"mappings":";;;;;;AAAA,kEAAwC;AAExC,+CAA8E;AAE9E,MAAa,UAAW,SAAQ,uBAA8B;IAK1D,YAAY,cAA8B;QACtC,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,YAAY,GAAG,IAAI,0BAAY,EAAE,CAAA;QACtC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;IACxC,CAAC;IAED,iBAAiB,CAAC,cAA8B;QAC5C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;IACxC,CAAC;IAED,iBAAiB;QACb,OAAO,IAAI,CAAC,cAAc,CAAA;IAC9B,CAAC;CACJ;AAlBD,gCAkBC"}
1
+ {"version":3,"file":"Connection.js","sourceRoot":"","sources":["../../../src/connection/Connection.ts"],"names":[],"mappings":";;;;;;AAAA,kEAAwC;AAGxC,+BAAiC;AAEjC,MAAa,UAAW,SAAQ,uBAA8B;IACnD,YAAY,CAAc;IAC1B,cAAc,CAAgB;IAC7B,cAAc,CAAiB;IAEvC,YAAY,cAA8B;QACtC,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,YAAY,GAAG,IAAA,gCAAwB,GAAE,CAAA;QAC9C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;IACxC,CAAC;IAED,iBAAiB,CAAC,cAA8B;QAC5C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;IACxC,CAAC;IAED,iBAAiB;QACb,OAAO,IAAI,CAAC,cAAc,CAAA;IAC9B,CAAC;CACJ;AAlBD,gCAkBC;AAEM,MAAM,wBAAwB,GAAG,GAAiB,EAAE;IACvD,OAAO,IAAA,SAAI,GAAkB,CAAA;AACjC,CAAC,CAAA;AAFY,QAAA,wBAAwB,4BAEpC"}
@@ -4,9 +4,9 @@ export declare class ConnectionLockHandler {
4
4
  private localLocks;
5
5
  private remoteLocks;
6
6
  private weakLocks;
7
- getNumberOfLocalLockedConnections(): number;
8
- getNumberOfRemoteLockedConnections(): number;
9
- getNumberOfWeakLockedConnections(): number;
7
+ getLocalLockedConnectionCount(): number;
8
+ getRemoteLockedConnectionCount(): number;
9
+ getWeakLockedConnectionCount(): number;
10
10
  isLocalLocked(id: DhtAddress, lockId?: LockID): boolean;
11
11
  isRemoteLocked(id: DhtAddress, lockId?: LockID): boolean;
12
12
  private isWeakLocked;
@@ -4,20 +4,18 @@
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.ConnectionLockHandler = void 0;
6
6
  class ConnectionLockHandler {
7
- constructor() {
8
- this.localLocks = new Map();
9
- this.remoteLocks = new Map();
10
- // TODO: remove weakLocks use localLocks instead. When opening weakLocks from the ConnectioManager,
11
- // simply do not send lock requests.
12
- this.weakLocks = new Set();
13
- }
14
- getNumberOfLocalLockedConnections() {
7
+ localLocks = new Map();
8
+ remoteLocks = new Map();
9
+ // TODO: remove weakLocks use localLocks instead. When opening weakLocks from the ConnectioManager,
10
+ // simply do not send lock requests.
11
+ weakLocks = new Set();
12
+ getLocalLockedConnectionCount() {
15
13
  return this.localLocks.size;
16
14
  }
17
- getNumberOfRemoteLockedConnections() {
15
+ getRemoteLockedConnectionCount() {
18
16
  return this.remoteLocks.size;
19
17
  }
20
- getNumberOfWeakLockedConnections() {
18
+ getWeakLockedConnectionCount() {
21
19
  return this.weakLocks.size;
22
20
  }
23
21
  isLocalLocked(id, lockId) {
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectionLockHandler.js","sourceRoot":"","sources":["../../../src/connection/ConnectionLockHandler.ts"],"names":[],"mappings":";AAAA,mEAAmE;AACnE,mCAAmC;;;AAMnC,MAAa,qBAAqB;IAAlC;QAEY,eAAU,GAAiC,IAAI,GAAG,EAAE,CAAA;QACpD,gBAAW,GAAiC,IAAI,GAAG,EAAE,CAAA;QAC7D,mGAAmG;QACnG,oCAAoC;QAC5B,cAAS,GAAoB,IAAI,GAAG,EAAE,CAAA;IA6FlD,CAAC;IA3FU,iCAAiC;QACpC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAA;IAC/B,CAAC;IAEM,kCAAkC;QACrC,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAChC,CAAC;IAEM,gCAAgC;QACnC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAA;IAC9B,CAAC;IAEM,aAAa,CAAC,EAAc,EAAE,MAAe;QAChD,IAAI,MAAM,KAAK,SAAS,EAAE;YACtB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;SACjC;aAAM;YACH,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;SACzE;IACL,CAAC;IAEM,cAAc,CAAC,EAAc,EAAE,MAAe;QACjD,IAAI,MAAM,KAAK,SAAS,EAAE;YACtB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;SAClC;aAAM;YACH,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBACnE,OAAO,IAAI,CAAA;aACd;iBAAM;gBACH,OAAO,KAAK,CAAA;aACf;SACJ;IACL,CAAC;IAEO,YAAY,CAAC,EAAc;QAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACjC,CAAC;IAEM,QAAQ,CAAC,EAAc;QAC1B,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAA;IACvF,CAAC;IAEM,cAAc,CAAC,EAAc,EAAE,MAAc;QAChD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAC1B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;SACrC;QACD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACxC,CAAC;IAEM,eAAe,CAAC,EAAc,EAAE,MAAc;QACjD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAC3B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;SACtC;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACzC,CAAC;IAEM,aAAa,CAAC,EAAc;QAC/B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAC1B,CAAC;IAEM,iBAAiB,CAAC,EAAc,EAAE,MAAc;QACnD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YACzB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;YACvC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE;gBACrC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;aAC7B;SACJ;IACL,CAAC;IAEM,kBAAkB,CAAC,EAAc,EAAE,MAAc;QACpD,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAC1B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;YACxC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE;gBACtC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;aAC9B;SACJ;IACL,CAAC;IAEM,gBAAgB,CAAC,EAAc;QAClC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAC7B,CAAC;IAEM,aAAa,CAAC,EAAc;QAC/B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAC1B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAC3B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAC7B,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;QACvB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;QACxB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;IAC1B,CAAC;CACJ;AAnGD,sDAmGC"}
1
+ {"version":3,"file":"ConnectionLockHandler.js","sourceRoot":"","sources":["../../../src/connection/ConnectionLockHandler.ts"],"names":[],"mappings":"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"}
@@ -2,23 +2,24 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ConnectionLockRpcLocal = void 0;
4
4
  const utils_1 = require("@streamr/utils");
5
- const peerIdFromPeerDescriptor_1 = require("../helpers/peerIdFromPeerDescriptor");
6
5
  const DhtRpc_1 = require("../proto/packages/dht/protos/DhtRpc");
7
6
  const ConnectionManager_1 = require("./ConnectionManager");
7
+ const identifiers_1 = require("../identifiers");
8
8
  const logger = new utils_1.Logger(module);
9
9
  class ConnectionLockRpcLocal {
10
+ config;
10
11
  constructor(config) {
11
12
  this.config = config;
12
13
  }
13
14
  async lockRequest(lockRequest, context) {
14
15
  const senderPeerDescriptor = context.incomingSourceDescriptor;
15
- if ((0, peerIdFromPeerDescriptor_1.areEqualPeerDescriptors)(senderPeerDescriptor, this.config.getLocalPeerDescriptor())) {
16
+ if ((0, identifiers_1.areEqualPeerDescriptors)(senderPeerDescriptor, this.config.getLocalPeerDescriptor())) {
16
17
  const response = {
17
18
  accepted: false
18
19
  };
19
20
  return response;
20
21
  }
21
- const remoteNodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(senderPeerDescriptor);
22
+ const remoteNodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(senderPeerDescriptor);
22
23
  this.config.addRemoteLocked(remoteNodeId, lockRequest.lockId);
23
24
  const response = {
24
25
  accepted: true
@@ -27,7 +28,7 @@ class ConnectionLockRpcLocal {
27
28
  }
28
29
  async unlockRequest(unlockRequest, context) {
29
30
  const senderPeerDescriptor = context.incomingSourceDescriptor;
30
- const nodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(senderPeerDescriptor);
31
+ const nodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(senderPeerDescriptor);
31
32
  this.config.removeRemoteLocked(nodeId, unlockRequest.lockId);
32
33
  return {};
33
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectionLockRpcLocal.js","sourceRoot":"","sources":["../../../src/connection/ConnectionLockRpcLocal.ts"],"names":[],"mappings":";;;AACA,0CAAuC;AACvC,kFAG4C;AAE5C,gEAO4C;AAG5C,2DAA0E;AAW1E,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,sBAAsB;IAI/B,YAAY,MAAoC;QAC5C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,WAAwB,EAAE,OAA0B;QAClE,MAAM,oBAAoB,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QAClF,IAAI,IAAA,kDAAuB,EAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC,EAAE;YACrF,MAAM,QAAQ,GAAiB;gBAC3B,QAAQ,EAAE,KAAK;aAClB,CAAA;YACD,OAAO,QAAQ,CAAA;SAClB;QACD,MAAM,YAAY,GAAG,IAAA,sDAA2B,EAAC,oBAAoB,CAAC,CAAA;QACtE,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;QAC7D,MAAM,QAAQ,GAAiB;YAC3B,QAAQ,EAAE,IAAI;SACjB,CAAA;QACD,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,aAA4B,EAAE,OAA0B;QACxE,MAAM,oBAAoB,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QAClF,MAAM,MAAM,GAAG,IAAA,sDAA2B,EAAC,oBAAoB,CAAC,CAAA;QAChE,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;QAC5D,OAAO,EAAE,CAAA;IACb,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,gBAAkC,EAAE,OAA0B;QACnF,MAAM,oBAAoB,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QAClF,MAAM,CAAC,KAAK,CAAC,IAAA,wDAAoC,EAAC,oBAAoB,CAAC,GAAG,qCAAqC,CAAC,CAAA;QAEhH,IAAI,gBAAgB,CAAC,cAAc,KAAK,uBAAc,CAAC,OAAO,EAAE;YAC5D,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,oBAAoB,EAAE,IAAI,EAAE,yBAAyB,CAAC,CAAA;SACrF;aAAM;YACH,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,oBAAoB,EAAE,KAAK,EAAE,8BAA8B,CAAC,CAAA;SAC3F;QACD,OAAO,EAAE,CAAA;IACb,CAAC;CACJ;AA1CD,wDA0CC"}
1
+ {"version":3,"file":"ConnectionLockRpcLocal.js","sourceRoot":"","sources":["../../../src/connection/ConnectionLockRpcLocal.ts"],"names":[],"mappings":";;;AACA,0CAAuC;AAEvC,gEAO4C;AAG5C,2DAA0E;AAE1E,gDAAiG;AASjG,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,sBAAsB;IAEd,MAAM,CAA8B;IAErD,YAAY,MAAoC;QAC5C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,WAAwB,EAAE,OAA0B;QAClE,MAAM,oBAAoB,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QAClF,IAAI,IAAA,qCAAuB,EAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC,EAAE,CAAC;YACtF,MAAM,QAAQ,GAAiB;gBAC3B,QAAQ,EAAE,KAAK;aAClB,CAAA;YACD,OAAO,QAAQ,CAAA;QACnB,CAAC;QACD,MAAM,YAAY,GAAG,IAAA,yCAA2B,EAAC,oBAAoB,CAAC,CAAA;QACtE,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;QAC7D,MAAM,QAAQ,GAAiB;YAC3B,QAAQ,EAAE,IAAI;SACjB,CAAA;QACD,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,aAA4B,EAAE,OAA0B;QACxE,MAAM,oBAAoB,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QAClF,MAAM,MAAM,GAAG,IAAA,yCAA2B,EAAC,oBAAoB,CAAC,CAAA;QAChE,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;QAC5D,OAAO,EAAE,CAAA;IACb,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,gBAAkC,EAAE,OAA0B;QACnF,MAAM,oBAAoB,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QAClF,MAAM,CAAC,KAAK,CAAC,IAAA,wDAAoC,EAAC,oBAAoB,CAAC,GAAG,qCAAqC,CAAC,CAAA;QAEhH,IAAI,gBAAgB,CAAC,cAAc,KAAK,uBAAc,CAAC,OAAO,EAAE,CAAC;YAC7D,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,oBAAoB,EAAE,IAAI,EAAE,yBAAyB,CAAC,CAAA;QACtF,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,oBAAoB,EAAE,KAAK,EAAE,8BAA8B,CAAC,CAAA;QAC5F,CAAC;QACD,OAAO,EAAE,CAAA;IACb,CAAC;CACJ;AA1CD,wDA0CC"}
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ConnectionLockRpcRemote = void 0;
4
4
  const utils_1 = require("@streamr/utils");
5
5
  const RpcRemote_1 = require("../dht/contact/RpcRemote");
6
- const peerIdFromPeerDescriptor_1 = require("../helpers/peerIdFromPeerDescriptor");
6
+ const identifiers_1 = require("../identifiers");
7
7
  const logger = new utils_1.Logger(module);
8
8
  class ConnectionLockRpcRemote extends RpcRemote_1.RpcRemote {
9
9
  async lockRequest(lockId) {
10
- logger.trace(`Requesting locked connection to ${(0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(this.getPeerDescriptor())}`);
10
+ logger.trace(`Requesting locked connection to ${(0, identifiers_1.getNodeIdFromPeerDescriptor)(this.getPeerDescriptor())}`);
11
11
  const request = {
12
12
  lockId
13
13
  };
@@ -22,7 +22,7 @@ class ConnectionLockRpcRemote extends RpcRemote_1.RpcRemote {
22
22
  }
23
23
  }
24
24
  unlockRequest(lockId) {
25
- logger.trace(`Requesting connection to be unlocked from ${(0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(this.getPeerDescriptor())}`);
25
+ logger.trace(`Requesting connection to be unlocked from ${(0, identifiers_1.getNodeIdFromPeerDescriptor)(this.getPeerDescriptor())}`);
26
26
  const request = {
27
27
  lockId
28
28
  };
@@ -34,7 +34,7 @@ class ConnectionLockRpcRemote extends RpcRemote_1.RpcRemote {
34
34
  });
35
35
  }
36
36
  async gracefulDisconnect(disconnectMode) {
37
- logger.trace(`Notifying a graceful disconnect to ${(0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(this.getPeerDescriptor())}`);
37
+ logger.trace(`Notifying a graceful disconnect to ${(0, identifiers_1.getNodeIdFromPeerDescriptor)(this.getPeerDescriptor())}`);
38
38
  const request = {
39
39
  disconnectMode
40
40
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectionLockRpcRemote.js","sourceRoot":"","sources":["../../../src/connection/ConnectionLockRpcRemote.ts"],"names":[],"mappings":";;;AAAA,0CAAuC;AACvC,wDAAoD;AACpD,kFAAiF;AAKjF,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,uBAAwB,SAAQ,qBAAkC;IAEpE,KAAK,CAAC,WAAW,CAAC,MAAc;QACnC,MAAM,CAAC,KAAK,CAAC,mCAAmC,IAAA,sDAA2B,EAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAA;QACxG,MAAM,OAAO,GAAgB;YACzB,MAAM;SACT,CAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxC,IAAI;YACA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAChE,OAAO,GAAG,CAAC,QAAQ,CAAA;SACtB;QAAC,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;YACxD,OAAO,KAAK,CAAA;SACf;IACL,CAAC;IAEM,aAAa,CAAC,MAAc;QAC/B,MAAM,CAAC,KAAK,CAAC,6CAA6C,IAAA,sDAA2B,EAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAA;QAClH,MAAM,OAAO,GAAkB;YAC3B,MAAM;SACT,CAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACnC,YAAY,EAAE,IAAI;SACrB,CAAC,CAAA;QACF,IAAI,CAAC,SAAS,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE;YAC1D,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;IACN,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,cAA8B;QAC1D,MAAM,CAAC,KAAK,CAAC,sCAAsC,IAAA,sDAA2B,EAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAA;QAC3G,MAAM,OAAO,GAAqB;YAC9B,cAAc;SACjB,CAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACnC,OAAO,EAAE,KAAK;YACd,aAAa,EAAE,IAAI;YACnB,OAAO,EAAE,IAAI,CAAE,4CAA4C;SAC9D,CAAC,CAAA;QACF,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC/D,CAAC;CACJ;AA1CD,0DA0CC"}
1
+ {"version":3,"file":"ConnectionLockRpcRemote.js","sourceRoot":"","sources":["../../../src/connection/ConnectionLockRpcRemote.ts"],"names":[],"mappings":";;;AAAA,0CAAuC;AACvC,wDAAoD;AAIpD,gDAA4D;AAE5D,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,uBAAwB,SAAQ,qBAAkC;IAEpE,KAAK,CAAC,WAAW,CAAC,MAAc;QACnC,MAAM,CAAC,KAAK,CAAC,mCAAmC,IAAA,yCAA2B,EAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAA;QACxG,MAAM,OAAO,GAAgB;YACzB,MAAM;SACT,CAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxC,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAChE,OAAO,GAAG,CAAC,QAAQ,CAAA;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;YACxD,OAAO,KAAK,CAAA;QAChB,CAAC;IACL,CAAC;IAEM,aAAa,CAAC,MAAc;QAC/B,MAAM,CAAC,KAAK,CAAC,6CAA6C,IAAA,yCAA2B,EAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAA;QAClH,MAAM,OAAO,GAAkB;YAC3B,MAAM;SACT,CAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACnC,YAAY,EAAE,IAAI;SACrB,CAAC,CAAA;QACF,IAAI,CAAC,SAAS,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE;YAC1D,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;IACN,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,cAA8B;QAC1D,MAAM,CAAC,KAAK,CAAC,sCAAsC,IAAA,yCAA2B,EAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAA;QAC3G,MAAM,OAAO,GAAqB;YAC9B,cAAc;SACjB,CAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACnC,OAAO,EAAE,KAAK;YACd,aAAa,EAAE,IAAI;YACnB,OAAO,EAAE,IAAI,CAAE,4CAA4C;SAC9D,CAAC,CAAA;QACF,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC/D,CAAC;CACJ;AA1CD,0DA0CC"}
@@ -45,17 +45,17 @@ export declare class ConnectionManager extends EventEmitter<TransportEvents> imp
45
45
  garbageCollectConnections(maxConnections: number, lastUsedLimit: number): void;
46
46
  start(): Promise<void>;
47
47
  stop(): Promise<void>;
48
- getNumberOfLocalLockedConnections(): number;
49
- getNumberOfRemoteLockedConnections(): number;
50
- getNumberOfWeakLockedConnections(): number;
48
+ getLocalLockedConnectionCount(): number;
49
+ getRemoteLockedConnectionCount(): number;
50
+ getWeakLockedConnectionCount(): number;
51
51
  send(message: Message, opts?: SendOptions): Promise<void>;
52
52
  private isConnectionToSelf;
53
53
  private isOwnWebsocketServer;
54
- getConnection(peerDescriptor: PeerDescriptor): ManagedConnection | undefined;
54
+ getConnection(nodeId: DhtAddress): ManagedConnection | undefined;
55
55
  getLocalPeerDescriptor(): PeerDescriptor;
56
- hasConnection(peerDescriptor: PeerDescriptor): boolean;
57
- hasLocalLockedConnection(peerDescriptor: PeerDescriptor): boolean;
58
- hasRemoteLockedConnection(peerDescriptor: PeerDescriptor): boolean;
56
+ hasConnection(nodeId: DhtAddress): boolean;
57
+ hasLocalLockedConnection(nodeId: DhtAddress): boolean;
58
+ hasRemoteLockedConnection(nodeId: DhtAddress): boolean;
59
59
  handleMessage(message: Message): void;
60
60
  private onData;
61
61
  private onConnected;
@@ -69,6 +69,6 @@ export declare class ConnectionManager extends EventEmitter<TransportEvents> imp
69
69
  weakUnlockConnection(nodeId: DhtAddress): void;
70
70
  private gracefullyDisconnectAsync;
71
71
  private doGracefullyDisconnectAsync;
72
- getAllConnectionPeerDescriptors(): PeerDescriptor[];
72
+ getConnections(): PeerDescriptor[];
73
73
  private onConnectionCountChange;
74
74
  }
@@ -29,8 +29,6 @@ const eventemitter3_1 = require("eventemitter3");
29
29
  const SortedContactList_1 = require("../dht/contact/SortedContactList");
30
30
  const DuplicateDetector_1 = require("../dht/routing/DuplicateDetector");
31
31
  const Err = __importStar(require("../helpers/errors"));
32
- const peerIdFromPeerDescriptor_1 = require("../helpers/peerIdFromPeerDescriptor");
33
- const protoToString_1 = require("../helpers/protoToString");
34
32
  const DhtRpc_1 = require("../proto/packages/dht/protos/DhtRpc");
35
33
  const DhtRpc_client_1 = require("../proto/packages/dht/protos/DhtRpc.client");
36
34
  const ITransport_1 = require("../transport/ITransport");
@@ -39,6 +37,8 @@ const ConnectionLockHandler_1 = require("./ConnectionLockHandler");
39
37
  const ConnectionLockRpcRemote_1 = require("./ConnectionLockRpcRemote");
40
38
  const NodeWebrtcConnection_1 = require("./webrtc/NodeWebrtcConnection");
41
39
  const ConnectionLockRpcLocal_1 = require("./ConnectionLockRpcLocal");
40
+ const identifiers_1 = require("../identifiers");
41
+ const offering_1 = require("../helpers/offering");
42
42
  var NatType;
43
43
  (function (NatType) {
44
44
  NatType["OPEN_INTERNET"] = "open_internet";
@@ -64,7 +64,7 @@ const INTERNAL_SERVICE_ID = 'system/connection-manager';
64
64
  // - if ManagedConnection#peerDescriptor is never undefined
65
65
  const getNodeIdOrUnknownFromPeerDescriptor = (peerDescriptor) => {
66
66
  if (peerDescriptor !== undefined) {
67
- return (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
67
+ return (0, identifiers_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
68
68
  }
69
69
  else {
70
70
  return 'unknown';
@@ -72,13 +72,19 @@ const getNodeIdOrUnknownFromPeerDescriptor = (peerDescriptor) => {
72
72
  };
73
73
  exports.getNodeIdOrUnknownFromPeerDescriptor = getNodeIdOrUnknownFromPeerDescriptor;
74
74
  class ConnectionManager extends eventemitter3_1.EventEmitter {
75
+ config;
76
+ metricsContext;
77
+ // TODO use config option or named constant?
78
+ duplicateMessageDetector = new DuplicateDetector_1.DuplicateDetector(100000);
79
+ metrics;
80
+ locks = new ConnectionLockHandler_1.ConnectionLockHandler();
81
+ connections = new Map();
82
+ connectorFacade;
83
+ rpcCommunicator;
84
+ disconnectorIntervalRef;
85
+ state = ConnectionManagerState.IDLE;
75
86
  constructor(config) {
76
87
  super();
77
- // TODO use config option or named constant?
78
- this.duplicateMessageDetector = new DuplicateDetector_1.DuplicateDetector(100000, 100);
79
- this.locks = new ConnectionLockHandler_1.ConnectionLockHandler();
80
- this.connections = new Map();
81
- this.state = ConnectionManagerState.IDLE;
82
88
  this.config = config;
83
89
  this.onData = this.onData.bind(this);
84
90
  this.send = this.send.bind(this);
@@ -109,15 +115,15 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
109
115
  });
110
116
  this.rpcCommunicator.registerRpcMethod(DhtRpc_1.LockRequest, DhtRpc_1.LockResponse, 'lockRequest', (req, context) => lockRpcLocal.lockRequest(req, context));
111
117
  this.rpcCommunicator.registerRpcNotification(DhtRpc_1.UnlockRequest, 'unlockRequest', (req, context) => lockRpcLocal.unlockRequest(req, context));
112
- this.rpcCommunicator.registerRpcMethod(DhtRpc_1.DisconnectNotice, DhtRpc_1.DisconnectNoticeResponse, 'gracefulDisconnect', (req, context) => lockRpcLocal.gracefulDisconnect(req, context));
118
+ this.rpcCommunicator.registerRpcNotification(DhtRpc_1.DisconnectNotice, 'gracefulDisconnect', (req, context) => lockRpcLocal.gracefulDisconnect(req, context));
113
119
  }
114
120
  garbageCollectConnections(maxConnections, lastUsedLimit) {
115
121
  if (this.connections.size <= maxConnections) {
116
122
  return;
117
123
  }
118
124
  const disconnectionCandidates = new SortedContactList_1.SortedContactList({
119
- referenceId: (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(this.getLocalPeerDescriptor()),
120
- maxSize: 100000,
125
+ referenceId: (0, identifiers_1.getNodeIdFromPeerDescriptor)(this.getLocalPeerDescriptor()),
126
+ maxSize: 100000, // TODO use config option or named constant?
121
127
  allowToContainReferenceId: false,
122
128
  emitEvents: false
123
129
  });
@@ -131,7 +137,7 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
131
137
  const targetNum = this.connections.size - maxConnections;
132
138
  for (let i = 0; i < sortedCandidates.length && i < targetNum; i++) {
133
139
  const peerDescriptor = sortedCandidates[sortedCandidates.length - 1 - i].getPeerDescriptor();
134
- logger.trace('garbageCollecting ' + (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(peerDescriptor));
140
+ logger.trace('garbageCollecting ' + (0, identifiers_1.getNodeIdFromPeerDescriptor)(peerDescriptor));
135
141
  this.gracefullyDisconnectAsync(peerDescriptor, DhtRpc_1.DisconnectMode.NORMAL).catch((_e) => { });
136
142
  }
137
143
  }
@@ -141,7 +147,7 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
141
147
  }
142
148
  this.state = ConnectionManagerState.RUNNING;
143
149
  logger.trace(`Starting ConnectionManager...`);
144
- await this.connectorFacade.start((connection) => this.onNewConnection(connection), (peerDescriptor) => this.hasConnection(peerDescriptor), this);
150
+ await this.connectorFacade.start((connection) => this.onNewConnection(connection), (nodeId) => this.hasConnection(nodeId), this);
145
151
  // Garbage collection of connections
146
152
  this.disconnectorIntervalRef = setInterval(() => {
147
153
  logger.trace('disconnectorInterval');
@@ -193,24 +199,24 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
193
199
  // (i.e the this.gracefullyDisconnectAsync() calls above)
194
200
  NodeWebrtcConnection_1.WEBRTC_CLEANUP.cleanUp();
195
201
  }
196
- getNumberOfLocalLockedConnections() {
197
- return this.locks.getNumberOfLocalLockedConnections();
202
+ getLocalLockedConnectionCount() {
203
+ return this.locks.getLocalLockedConnectionCount();
198
204
  }
199
- getNumberOfRemoteLockedConnections() {
200
- return this.locks.getNumberOfRemoteLockedConnections();
205
+ getRemoteLockedConnectionCount() {
206
+ return this.locks.getRemoteLockedConnectionCount();
201
207
  }
202
- getNumberOfWeakLockedConnections() {
203
- return this.locks.getNumberOfWeakLockedConnections();
208
+ getWeakLockedConnectionCount() {
209
+ return this.locks.getWeakLockedConnectionCount();
204
210
  }
205
211
  async send(message, opts = ITransport_1.DEFAULT_SEND_OPTIONS) {
206
- if (this.state === ConnectionManagerState.STOPPED && !opts.sendIfStopped) {
212
+ if ((this.state === ConnectionManagerState.STOPPED || this.state === ConnectionManagerState.STOPPING) && !opts.sendIfStopped) {
207
213
  return;
208
214
  }
209
215
  const peerDescriptor = message.targetDescriptor;
210
216
  if (this.isConnectionToSelf(peerDescriptor)) {
211
217
  throw new Err.CannotConnectToSelf('Cannot send to self');
212
218
  }
213
- const nodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
219
+ const nodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
214
220
  logger.trace(`Sending message to: ${nodeId}`);
215
221
  message = {
216
222
  ...message,
@@ -230,7 +236,7 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
230
236
  return connection.send(binary, opts.connect);
231
237
  }
232
238
  isConnectionToSelf(peerDescriptor) {
233
- return (0, peerIdFromPeerDescriptor_1.areEqualPeerDescriptors)(peerDescriptor, this.getLocalPeerDescriptor()) || this.isOwnWebsocketServer(peerDescriptor);
239
+ return (0, identifiers_1.areEqualPeerDescriptors)(peerDescriptor, this.getLocalPeerDescriptor()) || this.isOwnWebsocketServer(peerDescriptor);
234
240
  }
235
241
  isOwnWebsocketServer(peerDescriptor) {
236
242
  const localPeerDescriptor = this.getLocalPeerDescriptor();
@@ -242,23 +248,19 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
242
248
  return false;
243
249
  }
244
250
  }
245
- getConnection(peerDescriptor) {
246
- const nodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
251
+ getConnection(nodeId) {
247
252
  return this.connections.get(nodeId);
248
253
  }
249
254
  getLocalPeerDescriptor() {
250
255
  return this.connectorFacade.getLocalPeerDescriptor();
251
256
  }
252
- hasConnection(peerDescriptor) {
253
- const nodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
257
+ hasConnection(nodeId) {
254
258
  return this.connections.has(nodeId);
255
259
  }
256
- hasLocalLockedConnection(peerDescriptor) {
257
- const nodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
260
+ hasLocalLockedConnection(nodeId) {
258
261
  return this.locks.isLocalLocked(nodeId);
259
262
  }
260
- hasRemoteLockedConnection(peerDescriptor) {
261
- const nodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
263
+ hasRemoteLockedConnection(nodeId) {
262
264
  return this.locks.isRemoteLocked(nodeId);
263
265
  }
264
266
  handleMessage(message) {
@@ -268,7 +270,7 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
268
270
  return;
269
271
  }
270
272
  if (this.duplicateMessageDetector.isMostLikelyDuplicate(message.messageId)) {
271
- logger.trace('handleMessage filtered duplicate ' + (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(message.sourceDescriptor)
273
+ logger.trace('handleMessage filtered duplicate ' + (0, identifiers_1.getNodeIdFromPeerDescriptor)(message.sourceDescriptor)
272
274
  + ' ' + message.serviceId + ' ' + message.messageId);
273
275
  return;
274
276
  }
@@ -277,7 +279,7 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
277
279
  this.rpcCommunicator?.handleMessageFromPeer(message);
278
280
  }
279
281
  else {
280
- logger.trace('emit "message" ' + (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(message.sourceDescriptor)
282
+ logger.trace('emit "message" ' + (0, identifiers_1.getNodeIdFromPeerDescriptor)(message.sourceDescriptor)
281
283
  + ' ' + message.serviceId + ' ' + message.messageId);
282
284
  this.emit('message', message);
283
285
  }
@@ -291,7 +293,6 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
291
293
  let message;
292
294
  try {
293
295
  message = DhtRpc_1.Message.fromBinary(data);
294
- logger.trace(`received protojson: ${(0, protoToString_1.protoToString)(message, DhtRpc_1.Message)}`);
295
296
  }
296
297
  catch (e) {
297
298
  logger.debug(`Parsing incoming data into Message failed: ${e}`);
@@ -308,14 +309,14 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
308
309
  onConnected(connection) {
309
310
  const peerDescriptor = connection.getPeerDescriptor();
310
311
  this.emit('connected', peerDescriptor);
311
- logger.trace((0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(peerDescriptor) + ' onConnected() ' + connection.connectionType);
312
+ logger.trace((0, identifiers_1.getNodeIdFromPeerDescriptor)(peerDescriptor) + ' onConnected() ' + connection.connectionType);
312
313
  this.onConnectionCountChange();
313
314
  }
314
315
  onDisconnected(connection, gracefulLeave) {
315
- const nodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(connection.getPeerDescriptor());
316
+ const nodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(connection.getPeerDescriptor());
316
317
  logger.trace(nodeId + ' onDisconnected() gracefulLeave: ' + gracefulLeave);
317
318
  const storedConnection = this.connections.get(nodeId);
318
- if (storedConnection && storedConnection.connectionId.equals(connection.connectionId)) {
319
+ if (storedConnection && (storedConnection.connectionId === connection.connectionId)) {
319
320
  this.locks.clearAllLocks(nodeId);
320
321
  this.connections.delete(nodeId);
321
322
  logger.trace(nodeId + ' deleted connection in onDisconnected() gracefulLeave: ' + gracefulLeave);
@@ -325,8 +326,7 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
325
326
  else {
326
327
  logger.trace(nodeId + ' onDisconnected() did nothing, no such connection in connectionManager');
327
328
  if (storedConnection) {
328
- const connectionId = storedConnection.connectionId.toString();
329
- logger.trace(nodeId + ' connectionIds do not match ' + connectionId + ' ' + connection.connectionId.toString());
329
+ logger.trace(nodeId + ' connectionIds do not match ' + storedConnection.connectionId + ' ' + connection.connectionId.toString());
330
330
  }
331
331
  }
332
332
  }
@@ -353,11 +353,10 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
353
353
  return true;
354
354
  }
355
355
  acceptNewConnection(newConnection) {
356
- const nodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(newConnection.getPeerDescriptor());
356
+ const nodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(newConnection.getPeerDescriptor());
357
357
  logger.trace(nodeId + ' acceptIncomingConnection()');
358
358
  if (this.connections.has(nodeId)) {
359
- const newPeerID = (0, peerIdFromPeerDescriptor_1.peerIdFromPeerDescriptor)(newConnection.getPeerDescriptor());
360
- if (newPeerID.hasSmallerHashThan((0, peerIdFromPeerDescriptor_1.peerIdFromPeerDescriptor)(this.getLocalPeerDescriptor()))) {
359
+ if ((0, offering_1.getOfferer)((0, identifiers_1.getNodeIdFromPeerDescriptor)(this.getLocalPeerDescriptor()), nodeId) === 'remote') {
361
360
  logger.trace(nodeId + ' acceptIncomingConnection() replace current connection');
362
361
  // replace the current connection
363
362
  const oldConnection = this.connections.get(nodeId);
@@ -378,7 +377,7 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
378
377
  return true;
379
378
  }
380
379
  async closeConnection(peerDescriptor, gracefulLeave, reason) {
381
- const nodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
380
+ const nodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
382
381
  logger.trace(nodeId + ' ' + 'closeConnection() ' + reason);
383
382
  this.locks.clearAllLocks(nodeId);
384
383
  if (this.connections.has(nodeId)) {
@@ -391,10 +390,10 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
391
390
  }
392
391
  }
393
392
  lockConnection(targetDescriptor, lockId) {
394
- if (this.state === ConnectionManagerState.STOPPED || (0, peerIdFromPeerDescriptor_1.areEqualPeerDescriptors)(targetDescriptor, this.getLocalPeerDescriptor())) {
393
+ if (this.state === ConnectionManagerState.STOPPED || (0, identifiers_1.areEqualPeerDescriptors)(targetDescriptor, this.getLocalPeerDescriptor())) {
395
394
  return;
396
395
  }
397
- const nodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(targetDescriptor);
396
+ const nodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(targetDescriptor);
398
397
  const rpcRemote = new ConnectionLockRpcRemote_1.ConnectionLockRpcRemote(this.getLocalPeerDescriptor(), targetDescriptor, this.rpcCommunicator, DhtRpc_client_1.ConnectionLockRpcClient);
399
398
  this.locks.addLocalLocked(nodeId, lockId);
400
399
  rpcRemote.lockRequest(lockId)
@@ -402,10 +401,10 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
402
401
  .catch((err) => { logger.debug(err); });
403
402
  }
404
403
  unlockConnection(targetDescriptor, lockId) {
405
- if (this.state === ConnectionManagerState.STOPPED || (0, peerIdFromPeerDescriptor_1.areEqualPeerDescriptors)(targetDescriptor, this.getLocalPeerDescriptor())) {
404
+ if (this.state === ConnectionManagerState.STOPPED || (0, identifiers_1.areEqualPeerDescriptors)(targetDescriptor, this.getLocalPeerDescriptor())) {
406
405
  return;
407
406
  }
408
- const nodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(targetDescriptor);
407
+ const nodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(targetDescriptor);
409
408
  this.locks.removeLocalLocked(nodeId, lockId);
410
409
  const rpcRemote = new ConnectionLockRpcRemote_1.ConnectionLockRpcRemote(this.getLocalPeerDescriptor(), targetDescriptor, this.rpcCommunicator, DhtRpc_client_1.ConnectionLockRpcClient);
411
410
  if (this.connections.has(nodeId)) {
@@ -413,19 +412,19 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
413
412
  }
414
413
  }
415
414
  weakLockConnection(nodeId) {
416
- if (this.state === ConnectionManagerState.STOPPED || (nodeId === (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(this.getLocalPeerDescriptor()))) {
415
+ if (this.state === ConnectionManagerState.STOPPED || (nodeId === (0, identifiers_1.getNodeIdFromPeerDescriptor)(this.getLocalPeerDescriptor()))) {
417
416
  return;
418
417
  }
419
418
  this.locks.addWeakLocked(nodeId);
420
419
  }
421
420
  weakUnlockConnection(nodeId) {
422
- if (this.state === ConnectionManagerState.STOPPED || (nodeId === (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(this.getLocalPeerDescriptor()))) {
421
+ if (this.state === ConnectionManagerState.STOPPED || (nodeId === (0, identifiers_1.getNodeIdFromPeerDescriptor)(this.getLocalPeerDescriptor()))) {
423
422
  return;
424
423
  }
425
424
  this.locks.removeWeakLocked(nodeId);
426
425
  }
427
426
  async gracefullyDisconnectAsync(targetDescriptor, disconnectMode) {
428
- const connection = this.connections.get((0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(targetDescriptor));
427
+ const connection = this.connections.get((0, identifiers_1.getNodeIdFromPeerDescriptor)(targetDescriptor));
429
428
  if (!connection) {
430
429
  logger.debug('gracefullyDisconnectedAsync() tried on a non-existing connection');
431
430
  return;
@@ -447,15 +446,13 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
447
446
  resolve();
448
447
  });
449
448
  });
450
- this.doGracefullyDisconnectAsync(targetDescriptor, disconnectMode)
451
- .then(() => { return; })
452
- .catch((e) => {
453
- logger.error(e);
454
- });
455
- await promise;
449
+ await Promise.all([
450
+ promise,
451
+ this.doGracefullyDisconnectAsync(targetDescriptor, disconnectMode)
452
+ ]);
456
453
  }
457
454
  async doGracefullyDisconnectAsync(targetDescriptor, disconnectMode) {
458
- const nodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(targetDescriptor);
455
+ const nodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(targetDescriptor);
459
456
  logger.trace(nodeId + ' gracefullyDisconnectAsync()');
460
457
  const rpcRemote = new ConnectionLockRpcRemote_1.ConnectionLockRpcRemote(this.getLocalPeerDescriptor(), targetDescriptor, this.rpcCommunicator, DhtRpc_client_1.ConnectionLockRpcClient);
461
458
  try {
@@ -465,7 +462,7 @@ class ConnectionManager extends eventemitter3_1.EventEmitter {
465
462
  logger.trace(nodeId + ' remote.gracefulDisconnect() failed' + ex);
466
463
  }
467
464
  }
468
- getAllConnectionPeerDescriptors() {
465
+ getConnections() {
469
466
  return Array.from(this.connections.values())
470
467
  .filter((managedConnection) => managedConnection.isHandshakeCompleted())
471
468
  .map((managedConnection) => managedConnection.getPeerDescriptor());