@streamr/dht 100.0.0-pretestnet.2 → 100.0.0-pretestnet.3

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 (316) hide show
  1. package/dist/src/connection/ConnectionLockHandler.d.ts +7 -8
  2. package/dist/src/connection/ConnectionLockHandler.js +16 -14
  3. package/dist/src/connection/ConnectionLockHandler.js.map +1 -1
  4. package/dist/src/connection/ConnectionLockRpcLocal.d.ts +20 -0
  5. package/dist/src/connection/ConnectionLockRpcLocal.js +47 -0
  6. package/dist/src/connection/ConnectionLockRpcLocal.js.map +1 -0
  7. package/dist/src/connection/ConnectionLockRpcRemote.d.ts +4 -3
  8. package/dist/src/connection/ConnectionLockRpcRemote.js +6 -6
  9. package/dist/src/connection/ConnectionLockRpcRemote.js.map +1 -1
  10. package/dist/src/connection/ConnectionManager.d.ts +5 -8
  11. package/dist/src/connection/ConnectionManager.js +77 -107
  12. package/dist/src/connection/ConnectionManager.js.map +1 -1
  13. package/dist/src/connection/ConnectivityChecker.d.ts +7 -6
  14. package/dist/src/connection/ConnectivityChecker.js +23 -20
  15. package/dist/src/connection/ConnectivityChecker.js.map +1 -1
  16. package/dist/src/connection/ConnectorFacade.d.ts +15 -12
  17. package/dist/src/connection/ConnectorFacade.js +61 -26
  18. package/dist/src/connection/ConnectorFacade.js.map +1 -1
  19. package/dist/src/connection/Handshaker.d.ts +2 -2
  20. package/dist/src/connection/Handshaker.js +28 -28
  21. package/dist/src/connection/Handshaker.js.map +1 -1
  22. package/dist/src/connection/IConnection.d.ts +5 -6
  23. package/dist/src/connection/IConnection.js.map +1 -1
  24. package/dist/src/connection/ManagedConnection.d.ts +3 -4
  25. package/dist/src/connection/ManagedConnection.js +30 -30
  26. package/dist/src/connection/ManagedConnection.js.map +1 -1
  27. package/dist/src/connection/ManagedWebrtcConnection.d.ts +7 -0
  28. package/dist/src/connection/ManagedWebrtcConnection.js +20 -0
  29. package/dist/src/connection/ManagedWebrtcConnection.js.map +1 -0
  30. package/dist/src/connection/{Simulator → simulator}/Simulator.js +3 -3
  31. package/dist/src/connection/{Simulator → simulator}/Simulator.js.map +1 -1
  32. package/dist/src/connection/{Simulator → simulator}/SimulatorConnection.d.ts +3 -4
  33. package/dist/src/connection/{Simulator → simulator}/SimulatorConnection.js +22 -22
  34. package/dist/src/connection/simulator/SimulatorConnection.js.map +1 -0
  35. package/dist/src/connection/{Simulator → simulator}/SimulatorConnector.d.ts +2 -2
  36. package/dist/src/connection/{Simulator → simulator}/SimulatorConnector.js +11 -11
  37. package/dist/src/connection/{Simulator → simulator}/SimulatorConnector.js.map +1 -1
  38. package/dist/src/connection/{Simulator → simulator}/SimulatorTransport.d.ts +1 -1
  39. package/dist/src/connection/{Simulator → simulator}/SimulatorTransport.js +2 -2
  40. package/dist/src/connection/simulator/SimulatorTransport.js.map +1 -0
  41. package/dist/src/connection/{Simulator → simulator}/pings.js.map +1 -1
  42. package/dist/src/connection/{WebRTC/IWebRtcConnection.d.ts → webrtc/IWebrtcConnection.d.ts} +2 -2
  43. package/dist/src/connection/{WebRTC/IWebRtcConnection.js → webrtc/IWebrtcConnection.js} +1 -1
  44. package/dist/src/connection/webrtc/IWebrtcConnection.js.map +1 -0
  45. package/dist/src/connection/{WebRTC/NodeWebRtcConnection.d.ts → webrtc/NodeWebrtcConnection.d.ts} +6 -7
  46. package/dist/src/connection/{WebRTC/NodeWebRtcConnection.js → webrtc/NodeWebrtcConnection.js} +36 -36
  47. package/dist/src/connection/webrtc/NodeWebrtcConnection.js.map +1 -0
  48. package/dist/src/connection/webrtc/WebrtcConnector.d.ts +38 -0
  49. package/dist/src/connection/webrtc/WebrtcConnector.js +178 -0
  50. package/dist/src/connection/webrtc/WebrtcConnector.js.map +1 -0
  51. package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.d.ts +26 -0
  52. package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js +99 -0
  53. package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js.map +1 -0
  54. package/dist/src/connection/{WebRTC/WebRtcConnectorRpcRemote.d.ts → webrtc/WebrtcConnectorRpcRemote.d.ts} +4 -4
  55. package/dist/src/connection/{WebRTC/WebRtcConnectorRpcRemote.js → webrtc/WebrtcConnectorRpcRemote.js} +6 -8
  56. package/dist/src/connection/webrtc/WebrtcConnectorRpcRemote.js.map +1 -0
  57. package/dist/src/connection/{WebRTC → webrtc}/iceServerAsString.d.ts +1 -1
  58. package/dist/src/connection/{WebRTC → webrtc}/iceServerAsString.js.map +1 -1
  59. package/dist/src/connection/websocket/AutoCertifierClientFacade.d.ts +26 -0
  60. package/dist/src/connection/websocket/AutoCertifierClientFacade.js +37 -0
  61. package/dist/src/connection/websocket/AutoCertifierClientFacade.js.map +1 -0
  62. package/dist/src/connection/{WebSocket/ClientWebSocket.d.ts → websocket/ClientWebsocket.d.ts} +5 -4
  63. package/dist/src/connection/{WebSocket/ClientWebSocket.js → websocket/ClientWebsocket.js} +20 -16
  64. package/dist/src/connection/websocket/ClientWebsocket.js.map +1 -0
  65. package/dist/src/connection/{WebSocket/ServerWebSocket.d.ts → websocket/ServerWebsocket.d.ts} +2 -2
  66. package/dist/src/connection/{WebSocket/ServerWebSocket.js → websocket/ServerWebsocket.js} +23 -27
  67. package/dist/src/connection/websocket/ServerWebsocket.js.map +1 -0
  68. package/dist/src/connection/{WebSocket/WebSocketConnectorRpcLocal.d.ts → websocket/WebsocketConnector.d.ts} +23 -15
  69. package/dist/src/connection/{WebSocket/WebSocketConnectorRpcLocal.js → websocket/WebsocketConnector.js} +107 -101
  70. package/dist/src/connection/websocket/WebsocketConnector.js.map +1 -0
  71. package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.d.ts +17 -0
  72. package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.js +26 -0
  73. package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.js.map +1 -0
  74. package/dist/src/connection/{WebSocket/WebSocketConnectorRpcRemote.d.ts → websocket/WebsocketConnectorRpcRemote.d.ts} +3 -3
  75. package/dist/src/connection/{WebSocket/WebSocketConnectorRpcRemote.js → websocket/WebsocketConnectorRpcRemote.js} +5 -10
  76. package/dist/src/connection/{WebSocket/WebSocketConnectorRpcRemote.js.map → websocket/WebsocketConnectorRpcRemote.js.map} +1 -1
  77. package/dist/src/connection/{WebSocket/WebSocketServer.d.ts → websocket/WebsocketServer.d.ts} +6 -3
  78. package/dist/src/connection/{WebSocket/WebSocketServer.js → websocket/WebsocketServer.js} +39 -19
  79. package/dist/src/connection/websocket/WebsocketServer.js.map +1 -0
  80. package/dist/src/dht/DhtNode.d.ts +11 -19
  81. package/dist/src/dht/DhtNode.js +119 -150
  82. package/dist/src/dht/DhtNode.js.map +1 -1
  83. package/dist/src/dht/DhtNodeRpcLocal.d.ts +22 -0
  84. package/dist/src/dht/DhtNodeRpcLocal.js +42 -0
  85. package/dist/src/dht/DhtNodeRpcLocal.js.map +1 -0
  86. package/dist/src/dht/{RemoteDhtNode.d.ts → DhtNodeRpcRemote.d.ts} +5 -3
  87. package/dist/src/dht/{RemoteDhtNode.js → DhtNodeRpcRemote.js} +17 -21
  88. package/dist/src/dht/DhtNodeRpcRemote.js.map +1 -0
  89. package/dist/src/dht/ExternalApiRpcLocal.d.ts +16 -0
  90. package/dist/src/dht/ExternalApiRpcLocal.js +30 -0
  91. package/dist/src/dht/ExternalApiRpcLocal.js.map +1 -0
  92. package/dist/src/dht/ExternalApiRpcRemote.d.ts +1 -1
  93. package/dist/src/dht/ExternalApiRpcRemote.js +2 -2
  94. package/dist/src/dht/ExternalApiRpcRemote.js.map +1 -1
  95. package/dist/src/dht/contact/Remote.d.ts +4 -1
  96. package/dist/src/dht/contact/Remote.js +28 -2
  97. package/dist/src/dht/contact/Remote.js.map +1 -1
  98. package/dist/src/dht/contact/SortedContactList.d.ts +2 -2
  99. package/dist/src/dht/contact/SortedContactList.js +3 -3
  100. package/dist/src/dht/contact/SortedContactList.js.map +1 -1
  101. package/dist/src/dht/discovery/DiscoverySession.d.ts +9 -7
  102. package/dist/src/dht/discovery/DiscoverySession.js +8 -8
  103. package/dist/src/dht/discovery/DiscoverySession.js.map +1 -1
  104. package/dist/src/dht/discovery/PeerDiscovery.d.ts +7 -10
  105. package/dist/src/dht/discovery/PeerDiscovery.js +5 -5
  106. package/dist/src/dht/discovery/PeerDiscovery.js.map +1 -1
  107. package/dist/src/dht/find/FindRpcLocal.d.ts +14 -0
  108. package/dist/src/dht/find/FindRpcLocal.js +25 -0
  109. package/dist/src/dht/find/FindRpcLocal.js.map +1 -0
  110. package/dist/src/dht/find/{RecursiveFindSession.d.ts → FindSession.d.ts} +12 -13
  111. package/dist/src/dht/find/{RecursiveFindSession.js → FindSession.js} +17 -15
  112. package/dist/src/dht/find/FindSession.js.map +1 -0
  113. package/dist/src/dht/find/FindSessionRpcLocal.d.ts +12 -0
  114. package/dist/src/dht/find/FindSessionRpcLocal.js +17 -0
  115. package/dist/src/dht/find/FindSessionRpcLocal.js.map +1 -0
  116. package/dist/src/dht/find/{RemoteRecursiveFindSession.d.ts → FindSessionRpcRemote.d.ts} +2 -2
  117. package/dist/src/dht/find/{RemoteRecursiveFindSession.js → FindSessionRpcRemote.js} +5 -5
  118. package/dist/src/dht/find/FindSessionRpcRemote.js.map +1 -0
  119. package/dist/src/dht/find/{RecursiveFinder.d.ts → Finder.d.ts} +16 -19
  120. package/dist/src/dht/find/{RecursiveFinder.js → Finder.js} +50 -46
  121. package/dist/src/dht/find/Finder.js.map +1 -0
  122. package/dist/src/dht/routing/FindRpcRemote.d.ts +6 -0
  123. package/dist/src/dht/routing/FindRpcRemote.js +41 -0
  124. package/dist/src/dht/routing/FindRpcRemote.js.map +1 -0
  125. package/dist/src/dht/routing/Router.d.ts +10 -17
  126. package/dist/src/dht/routing/Router.js +47 -90
  127. package/dist/src/dht/routing/Router.js.map +1 -1
  128. package/dist/src/dht/routing/RouterRpcLocal.d.ts +22 -0
  129. package/dist/src/dht/routing/RouterRpcLocal.js +66 -0
  130. package/dist/src/dht/routing/RouterRpcLocal.js.map +1 -0
  131. package/dist/src/dht/routing/RouterRpcRemote.d.ts +0 -1
  132. package/dist/src/dht/routing/RouterRpcRemote.js +15 -43
  133. package/dist/src/dht/routing/RouterRpcRemote.js.map +1 -1
  134. package/dist/src/dht/routing/RoutingSession.d.ts +17 -8
  135. package/dist/src/dht/routing/RoutingSession.js +124 -131
  136. package/dist/src/dht/routing/RoutingSession.js.map +1 -1
  137. package/dist/src/dht/routing/getPreviousPeer.d.ts +2 -0
  138. package/dist/src/dht/routing/getPreviousPeer.js +9 -0
  139. package/dist/src/dht/routing/getPreviousPeer.js.map +1 -0
  140. package/dist/src/dht/store/StoreRpcLocal.d.ts +11 -8
  141. package/dist/src/dht/store/StoreRpcLocal.js +25 -24
  142. package/dist/src/dht/store/StoreRpcLocal.js.map +1 -1
  143. package/dist/src/dht/store/StoreRpcRemote.js +3 -7
  144. package/dist/src/dht/store/StoreRpcRemote.js.map +1 -1
  145. package/dist/src/exports.d.ts +11 -5
  146. package/dist/src/exports.js +17 -4
  147. package/dist/src/exports.js.map +1 -1
  148. package/dist/src/helpers/Connectivity.d.ts +4 -0
  149. package/dist/src/helpers/Connectivity.js +24 -0
  150. package/dist/src/helpers/Connectivity.js.map +1 -0
  151. package/dist/src/helpers/errors.d.ts +3 -3
  152. package/dist/src/helpers/errors.js +7 -7
  153. package/dist/src/helpers/protoClasses.js +3 -3
  154. package/dist/src/proto/packages/dht/protos/DhtRpc.client.d.ts +56 -39
  155. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js +49 -36
  156. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js.map +1 -1
  157. package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +64 -84
  158. package/dist/src/proto/packages/dht/protos/DhtRpc.js +64 -66
  159. package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
  160. package/dist/src/proto/packages/dht/protos/DhtRpc.server.d.ts +26 -21
  161. package/dist/src/rpc-protocol/DhtCallContext.d.ts +0 -1
  162. package/dist/src/rpc-protocol/DhtCallContext.js.map +1 -1
  163. package/dist/src/transport/ITransport.d.ts +5 -6
  164. package/dist/src/transport/ListeningRpcCommunicator.d.ts +2 -1
  165. package/dist/src/transport/ListeningRpcCommunicator.js.map +1 -1
  166. package/dist/src/transport/RoutingRpcCommunicator.d.ts +2 -1
  167. package/dist/src/transport/RoutingRpcCommunicator.js +0 -1
  168. package/dist/src/transport/RoutingRpcCommunicator.js.map +1 -1
  169. package/dist/src/types/ServiceID.d.ts +1 -0
  170. package/dist/src/types/ServiceID.js +3 -0
  171. package/dist/src/types/ServiceID.js.map +1 -0
  172. package/karma.config.js +4 -4
  173. package/package.json +10 -8
  174. package/protos/DhtRpc.proto +32 -35
  175. package/src/connection/ConnectionLockHandler.ts +19 -17
  176. package/src/connection/ConnectionLockRpcLocal.ts +74 -0
  177. package/src/connection/ConnectionLockRpcRemote.ts +7 -6
  178. package/src/connection/ConnectionManager.ts +59 -95
  179. package/src/connection/ConnectivityChecker.ts +30 -26
  180. package/src/connection/ConnectorFacade.ts +74 -34
  181. package/src/connection/Handshaker.ts +9 -9
  182. package/src/connection/IConnection.ts +5 -6
  183. package/src/connection/ManagedConnection.ts +21 -22
  184. package/src/connection/{ManagedWebRtcConnection.ts → ManagedWebrtcConnection.ts} +9 -9
  185. package/src/connection/{Simulator → simulator}/Simulator.ts +4 -4
  186. package/src/connection/{Simulator → simulator}/SimulatorConnection.ts +23 -24
  187. package/src/connection/{Simulator → simulator}/SimulatorConnector.ts +13 -13
  188. package/src/connection/{Simulator → simulator}/SimulatorTransport.ts +2 -2
  189. package/src/connection/{WebRTC/BrowserWebRtcConnection.ts → webrtc/BrowserWebrtcConnection.ts} +12 -13
  190. package/src/connection/{WebRTC/IWebRtcConnection.ts → webrtc/IWebrtcConnection.ts} +2 -2
  191. package/src/connection/{WebRTC/NodeWebRtcConnection.ts → webrtc/NodeWebrtcConnection.ts} +32 -33
  192. package/src/connection/webrtc/WebrtcConnector.ts +225 -0
  193. package/src/connection/webrtc/WebrtcConnectorRpcLocal.ts +132 -0
  194. package/src/connection/{WebRTC/WebRtcConnectorRpcRemote.ts → webrtc/WebrtcConnectorRpcRemote.ts} +6 -7
  195. package/src/connection/{WebRTC → webrtc}/iceServerAsString.ts +1 -1
  196. package/src/connection/websocket/AutoCertifierClientFacade.ts +91 -0
  197. package/src/connection/{WebSocket/ClientWebSocket.ts → websocket/ClientWebsocket.ts} +19 -17
  198. package/src/connection/{WebSocket/ServerWebSocket.ts → websocket/ServerWebsocket.ts} +21 -27
  199. package/src/connection/{WebSocket/WebSocketConnectorRpcLocal.ts → websocket/WebsocketConnector.ts} +109 -100
  200. package/src/connection/websocket/WebsocketConnectorRpcLocal.ts +41 -0
  201. package/src/connection/{WebSocket/WebSocketConnectorRpcRemote.ts → websocket/WebsocketConnectorRpcRemote.ts} +6 -12
  202. package/src/connection/{WebSocket/WebSocketServer.ts → websocket/WebsocketServer.ts} +40 -22
  203. package/src/dht/DhtNode.ts +144 -179
  204. package/src/dht/DhtNodeRpcLocal.ts +68 -0
  205. package/src/dht/{RemoteDhtNode.ts → DhtNodeRpcRemote.ts} +12 -13
  206. package/src/dht/ExternalApiRpcLocal.ts +46 -0
  207. package/src/dht/ExternalApiRpcRemote.ts +4 -4
  208. package/src/dht/contact/Remote.ts +32 -4
  209. package/src/dht/contact/SortedContactList.ts +4 -4
  210. package/src/dht/discovery/DiscoverySession.ts +23 -20
  211. package/src/dht/discovery/PeerDiscovery.ts +14 -17
  212. package/src/dht/find/FindRpcLocal.ts +35 -0
  213. package/src/dht/find/{RecursiveFindSession.ts → FindSession.ts} +25 -25
  214. package/src/dht/find/FindSessionRpcLocal.ts +25 -0
  215. package/src/dht/find/{RemoteRecursiveFindSession.ts → FindSessionRpcRemote.ts} +9 -5
  216. package/src/dht/find/{RecursiveFinder.ts → Finder.ts} +77 -71
  217. package/src/dht/routing/FindRpcRemote.ts +40 -0
  218. package/src/dht/routing/Router.ts +69 -105
  219. package/src/dht/routing/RouterRpcLocal.ts +81 -0
  220. package/src/dht/routing/RouterRpcRemote.ts +15 -45
  221. package/src/dht/routing/RoutingSession.ts +56 -61
  222. package/src/dht/routing/getPreviousPeer.ts +6 -0
  223. package/src/dht/store/StoreRpcLocal.ts +44 -37
  224. package/src/dht/store/StoreRpcRemote.ts +4 -8
  225. package/src/exports.ts +11 -5
  226. package/src/helpers/Connectivity.ts +19 -0
  227. package/src/helpers/errors.ts +3 -3
  228. package/src/helpers/protoClasses.ts +6 -6
  229. package/src/proto/packages/dht/protos/DhtRpc.client.ts +75 -59
  230. package/src/proto/packages/dht/protos/DhtRpc.server.ts +26 -21
  231. package/src/proto/packages/dht/protos/DhtRpc.ts +87 -114
  232. package/src/rpc-protocol/DhtCallContext.ts +0 -1
  233. package/src/transport/ITransport.ts +5 -8
  234. package/src/transport/ListeningRpcCommunicator.ts +2 -1
  235. package/src/transport/RoutingRpcCommunicator.ts +3 -4
  236. package/src/types/ServiceID.ts +1 -0
  237. package/test/benchmark/{RecursiveFind.test.ts → Find.test.ts} +6 -6
  238. package/test/benchmark/KademliaCorrectness.test.ts +2 -2
  239. package/test/benchmark/kademlia-simulation/SimulationNode.ts +3 -3
  240. package/test/end-to-end/Layer0-Layer1.test.ts +13 -5
  241. package/test/end-to-end/Layer0.test.ts +35 -17
  242. package/test/end-to-end/Layer0MixedConnectionTypes.test.ts +24 -6
  243. package/test/end-to-end/{Layer0WebRTC-Layer1.test.ts → Layer0Webrtc-Layer1.test.ts} +1 -1
  244. package/test/end-to-end/{Layer0WebRTC.test.ts → Layer0Webrtc.test.ts} +14 -10
  245. package/test/end-to-end/Layer1-Scale-WebSocket.test.ts +8 -4
  246. package/test/end-to-end/{Layer1-Scale-WebRTC.test.ts → Layer1-Scale-Webrtc.test.ts} +2 -2
  247. package/test/end-to-end/RecoveryFromFailedAutoCertification.test.ts +52 -0
  248. package/test/end-to-end/{WebSocketConnectionRequest.test.ts → WebsocketConnectionRequest.test.ts} +16 -8
  249. package/test/end-to-end/memory-leak.test.ts +85 -0
  250. package/test/integration/ConnectionLocking.test.ts +4 -4
  251. package/test/integration/ConnectionManager.test.ts +37 -28
  252. package/test/integration/DhtJoinPeerDiscovery.test.ts +2 -2
  253. package/test/integration/DhtNodeExternalAPI.test.ts +10 -10
  254. package/test/integration/{RemoteDhtNode.test.ts → DhtNodeRpcRemote.test.ts} +10 -10
  255. package/test/integration/DhtRpc.test.ts +5 -5
  256. package/test/integration/{RecursiveFind.test.ts → Find.test.ts} +3 -3
  257. package/test/integration/Layer1-scale.test.ts +1 -1
  258. package/test/integration/MigrateData.test.ts +6 -5
  259. package/test/integration/Mock-Layer1-Layer0.test.ts +1 -1
  260. package/test/integration/MultipleEntryPointJoining.test.ts +6 -6
  261. package/test/integration/RouteMessage.test.ts +26 -26
  262. package/test/integration/RpcErrors.test.ts +10 -10
  263. package/test/integration/ScaleDownDht.test.ts +3 -3
  264. package/test/integration/SimultaneousConnections.test.ts +10 -7
  265. package/test/integration/Store.test.ts +1 -1
  266. package/test/integration/StoreAndDelete.test.ts +1 -1
  267. package/test/integration/StoreOnDhtWithTwoNodes.test.ts +12 -12
  268. package/test/integration/{WebRtcConnectionManagement.test.ts → WebrtcConnectionManagement.test.ts} +4 -4
  269. package/test/integration/{WebRtcConnectorRpc.test.ts → WebrtcConnectorRpc.test.ts} +7 -8
  270. package/test/integration/{WebSocket.test.ts → Websocket.test.ts} +14 -13
  271. package/test/integration/{WebSocketConnectionManagement.test.ts → WebsocketConnectionManagement.test.ts} +4 -4
  272. package/test/integration/{WebSocketConnectorRpc.test.ts → WebsocketConnectorRpc.test.ts} +15 -15
  273. package/test/unit/AutoCertifierClientFacade.test.ts +58 -0
  274. package/test/unit/ConnectivityHelpers.test.ts +69 -0
  275. package/test/unit/{RecursiveFinder.test.ts → Finder.test.ts} +19 -17
  276. package/test/unit/Router.test.ts +26 -26
  277. package/test/unit/UUID.test.ts +1 -1
  278. package/test/unit/{WebSocketConnectorRpcLocal.test.ts → WebsocketConnector.test.ts} +8 -8
  279. package/test/unit/{WebSocketServer.test.ts → WebsocketServer.test.ts} +20 -14
  280. package/test/unit/webrtcReplaceInternalIpWithExternalIp.test.ts +1 -1
  281. package/test/utils/FakeRpcCommunicator.ts +23 -0
  282. package/test/utils/mock/Transport.ts +1 -1
  283. package/test/utils/utils.ts +14 -24
  284. package/tsconfig.browser.json +1 -1
  285. package/tsconfig.jest.json +3 -2
  286. package/tsconfig.node.json +3 -2
  287. package/dist/src/connection/ManagedWebRtcConnection.d.ts +0 -7
  288. package/dist/src/connection/ManagedWebRtcConnection.js +0 -20
  289. package/dist/src/connection/ManagedWebRtcConnection.js.map +0 -1
  290. package/dist/src/connection/Simulator/SimulatorConnection.js.map +0 -1
  291. package/dist/src/connection/Simulator/SimulatorTransport.js.map +0 -1
  292. package/dist/src/connection/WebRTC/IWebRtcConnection.js.map +0 -1
  293. package/dist/src/connection/WebRTC/NodeWebRtcConnection.js.map +0 -1
  294. package/dist/src/connection/WebRTC/WebRtcConnectorRpcLocal.d.ts +0 -51
  295. package/dist/src/connection/WebRTC/WebRtcConnectorRpcLocal.js +0 -249
  296. package/dist/src/connection/WebRTC/WebRtcConnectorRpcLocal.js.map +0 -1
  297. package/dist/src/connection/WebRTC/WebRtcConnectorRpcRemote.js.map +0 -1
  298. package/dist/src/connection/WebSocket/ClientWebSocket.js.map +0 -1
  299. package/dist/src/connection/WebSocket/ServerWebSocket.js.map +0 -1
  300. package/dist/src/connection/WebSocket/WebSocketConnectorRpcLocal.js.map +0 -1
  301. package/dist/src/connection/WebSocket/WebSocketServer.js.map +0 -1
  302. package/dist/src/dht/RemoteDhtNode.js.map +0 -1
  303. package/dist/src/dht/find/RecursiveFindSession.js.map +0 -1
  304. package/dist/src/dht/find/RecursiveFinder.js.map +0 -1
  305. package/dist/src/dht/find/RemoteRecursiveFindSession.js.map +0 -1
  306. package/dist/src/dht/registerExternalApiRpcMethods.d.ts +0 -2
  307. package/dist/src/dht/registerExternalApiRpcMethods.js +0 -32
  308. package/dist/src/dht/registerExternalApiRpcMethods.js.map +0 -1
  309. package/src/connection/WebRTC/WebRtcConnectorRpcLocal.ts +0 -335
  310. package/src/dht/registerExternalApiRpcMethods.ts +0 -44
  311. package/test/utils/mock/RecursiveFinder.ts +0 -19
  312. /package/dist/src/connection/{Simulator → simulator}/Simulator.d.ts +0 -0
  313. /package/dist/src/connection/{Simulator → simulator}/pings.d.ts +0 -0
  314. /package/dist/src/connection/{Simulator → simulator}/pings.js +0 -0
  315. /package/dist/src/connection/{WebRTC → webrtc}/iceServerAsString.js +0 -0
  316. /package/src/connection/{Simulator → simulator}/pings.ts +0 -0
@@ -1,13 +1,9 @@
1
- import { NodeType, PeerDescriptor } from '../../src/proto/packages/dht/protos/DhtRpc'
1
+ import { PeerDescriptor } from '../../src/proto/packages/dht/protos/DhtRpc'
2
2
  import { DhtNode } from '../../src/dht/DhtNode'
3
3
 
4
4
  describe('Layer0', () => {
5
5
 
6
- const epPeerDescriptor: PeerDescriptor = {
7
- kademliaId: Uint8Array.from([1, 2, 3]),
8
- type: NodeType.NODEJS,
9
- websocket: { host: '127.0.0.1', port: 10011, tls: false }
10
- }
6
+ let epPeerDescriptor: PeerDescriptor
11
7
 
12
8
  let epDhtNode: DhtNode
13
9
  let node1: DhtNode
@@ -18,22 +14,44 @@ describe('Layer0', () => {
18
14
  const websocketPortRange = { min: 10012, max: 10015 }
19
15
  beforeEach(async () => {
20
16
 
21
- epDhtNode = new DhtNode({ peerDescriptor: epPeerDescriptor })
17
+ epDhtNode = new DhtNode({ websocketHost: '127.0.0.1', websocketPortRange: { min: 10011, max: 10011 }, websocketServerEnableTls: false })
22
18
  await epDhtNode.start()
23
-
19
+ epPeerDescriptor = epDhtNode.getLocalPeerDescriptor()
24
20
  await epDhtNode.joinDht([epPeerDescriptor])
25
21
 
26
- node1 = new DhtNode({ websocketPortRange, entryPoints: [epPeerDescriptor] })
27
- node2 = new DhtNode({ websocketPortRange, entryPoints: [epPeerDescriptor] })
28
- node3 = new DhtNode({ websocketPortRange, entryPoints: [epPeerDescriptor] })
29
- node4 = new DhtNode({ websocketPortRange, entryPoints: [epPeerDescriptor] })
22
+ node1 = new DhtNode({
23
+ websocketPortRange,
24
+ websocketHost: '127.0.0.1',
25
+ entryPoints: [epPeerDescriptor],
26
+ websocketServerEnableTls: false
27
+ })
28
+ node2 = new DhtNode({
29
+ websocketPortRange,
30
+ websocketHost: '127.0.0.1',
31
+ entryPoints: [epPeerDescriptor],
32
+ websocketServerEnableTls: false
33
+ })
34
+ node3 = new DhtNode({
35
+ websocketPortRange,
36
+ websocketHost: '127.0.0.1',
37
+ entryPoints: [epPeerDescriptor],
38
+ websocketServerEnableTls: false
39
+ })
40
+ node4 = new DhtNode({
41
+ websocketPortRange,
42
+ websocketHost: '127.0.0.1',
43
+ entryPoints: [epPeerDescriptor],
44
+ websocketServerEnableTls: false
45
+ })
30
46
 
31
- await node1.start()
32
- await node2.start()
33
- await node3.start()
34
- await node4.start()
47
+ await Promise.all([
48
+ node1.start(),
49
+ node2.start(),
50
+ node3.start(),
51
+ node4.start()
52
+ ])
35
53
 
36
- })
54
+ }, 10000)
37
55
 
38
56
  afterEach(async () => {
39
57
  await Promise.all([
@@ -21,15 +21,33 @@ describe('Layer0MixedConnectionTypes', () => {
21
21
  const websocketPortRange = { min: 11222, max: 11223 }
22
22
  beforeEach(async () => {
23
23
 
24
- epDhtNode = new DhtNode({ peerDescriptor: epPeerDescriptor, numberOfNodesPerKBucket: 2 })
24
+ epDhtNode = new DhtNode({
25
+ peerDescriptor: epPeerDescriptor,
26
+ numberOfNodesPerKBucket: 2,
27
+ websocketServerEnableTls: false
28
+ })
25
29
  await epDhtNode.start()
26
30
 
27
31
  await epDhtNode.joinDht([epPeerDescriptor])
28
- node1 = new DhtNode({ websocketPortRange, entryPoints: [epPeerDescriptor] })
29
- node2 = new DhtNode({ websocketPortRange, entryPoints: [epPeerDescriptor] })
30
- node3 = new DhtNode({ entryPoints: [epPeerDescriptor] })
31
- node4 = new DhtNode({ entryPoints: [epPeerDescriptor] })
32
- node5 = new DhtNode({ entryPoints: [epPeerDescriptor] })
32
+ node1 = new DhtNode({
33
+ websocketPortRange,
34
+ entryPoints: [epPeerDescriptor],
35
+ websocketServerEnableTls: false
36
+ })
37
+ node2 = new DhtNode({
38
+ websocketPortRange,
39
+ entryPoints: [epPeerDescriptor],
40
+ websocketServerEnableTls: false
41
+ })
42
+ node3 = new DhtNode({
43
+ entryPoints: [epPeerDescriptor]
44
+ })
45
+ node4 = new DhtNode({
46
+ entryPoints: [epPeerDescriptor]
47
+ })
48
+ node5 = new DhtNode({
49
+ entryPoints: [epPeerDescriptor]
50
+ })
33
51
 
34
52
  await Promise.all([
35
53
  node1.start(),
@@ -30,7 +30,7 @@ describe('Layer 1 on Layer 0 with mocked connections', () => {
30
30
 
31
31
  beforeEach(async () => {
32
32
 
33
- layer0EntryPoint = new DhtNode({ peerDescriptor: entrypointDescriptor })
33
+ layer0EntryPoint = new DhtNode({ peerDescriptor: entrypointDescriptor, websocketServerEnableTls: false })
34
34
 
35
35
  const layer0Node1Id = '11'
36
36
  layer0Node1 = new DhtNode({
@@ -19,7 +19,11 @@ describe('Layer0 with WebRTC connections', () => {
19
19
 
20
20
  beforeEach(async () => {
21
21
 
22
- epDhtNode = new DhtNode({ peerDescriptor: epPeerDescriptor, numberOfNodesPerKBucket: 8 })
22
+ epDhtNode = new DhtNode({
23
+ peerDescriptor: epPeerDescriptor,
24
+ numberOfNodesPerKBucket: 8,
25
+ websocketServerEnableTls: false
26
+ })
23
27
  await epDhtNode.start()
24
28
 
25
29
  await epDhtNode.joinDht([epPeerDescriptor])
@@ -57,18 +61,18 @@ describe('Layer0 with WebRTC connections', () => {
57
61
  'connected',
58
62
  20000,
59
63
  (peerDescriptor: PeerDescriptor) => {
60
- return areEqualBinaries(peerDescriptor.kademliaId, node1.getPeerDescriptor().kademliaId)
64
+ return areEqualBinaries(peerDescriptor.kademliaId, node1.getLocalPeerDescriptor().kademliaId)
61
65
  }
62
66
  ),
63
67
  node2.joinDht([epPeerDescriptor]),
64
68
  node1.joinDht([epPeerDescriptor])
65
69
  ])
66
70
 
67
- expect((node1.getTransport() as ConnectionManager).hasConnection(node2.getPeerDescriptor())).toEqual(true)
68
- expect((node2.getTransport() as ConnectionManager).hasConnection(node1.getPeerDescriptor())).toEqual(true)
69
- expect((node1.getTransport() as ConnectionManager).getConnection(node2.getPeerDescriptor())!.connectionType)
71
+ expect((node1.getTransport() as ConnectionManager).hasConnection(node2.getLocalPeerDescriptor())).toEqual(true)
72
+ expect((node2.getTransport() as ConnectionManager).hasConnection(node1.getLocalPeerDescriptor())).toEqual(true)
73
+ expect((node1.getTransport() as ConnectionManager).getConnection(node2.getLocalPeerDescriptor())!.connectionType)
70
74
  .toEqual(ConnectionType.WEBRTC)
71
- expect((node2.getTransport() as ConnectionManager).getConnection(node1.getPeerDescriptor())!.connectionType)
75
+ expect((node2.getTransport() as ConnectionManager).getConnection(node1.getLocalPeerDescriptor())!.connectionType)
72
76
  .toEqual(ConnectionType.WEBRTC)
73
77
 
74
78
  }, 60000)
@@ -81,11 +85,11 @@ describe('Layer0 with WebRTC connections', () => {
81
85
  node4.joinDht([epPeerDescriptor])
82
86
  ])
83
87
 
84
- expect((node1.getTransport() as ConnectionManager).hasConnection(node2.getPeerDescriptor())).toEqual(true)
85
- expect((node2.getTransport() as ConnectionManager).hasConnection(node1.getPeerDescriptor())).toEqual(true)
86
- expect((node1.getTransport() as ConnectionManager).getConnection(node2.getPeerDescriptor())!.connectionType)
88
+ expect((node1.getTransport() as ConnectionManager).hasConnection(node2.getLocalPeerDescriptor())).toEqual(true)
89
+ expect((node2.getTransport() as ConnectionManager).hasConnection(node1.getLocalPeerDescriptor())).toEqual(true)
90
+ expect((node1.getTransport() as ConnectionManager).getConnection(node2.getLocalPeerDescriptor())!.connectionType)
87
91
  .toEqual(ConnectionType.WEBRTC)
88
- expect((node2.getTransport() as ConnectionManager).getConnection(node1.getPeerDescriptor())!.connectionType)
92
+ expect((node2.getTransport() as ConnectionManager).getConnection(node1.getLocalPeerDescriptor())!.connectionType)
89
93
  .toEqual(ConnectionType.WEBRTC)
90
94
  })
91
95
  })
@@ -25,7 +25,10 @@ describe('Layer1 Scale', () => {
25
25
  const websocketPortRange = { min: 62200, max: 62200 + NUM_OF_NODES }
26
26
 
27
27
  beforeEach(async () => {
28
- epLayer0Node = new DhtNode({ peerDescriptor: epPeerDescriptor })
28
+ epLayer0Node = new DhtNode({
29
+ peerDescriptor: epPeerDescriptor,
30
+ websocketServerEnableTls: false
31
+ })
29
32
  await epLayer0Node.start()
30
33
  await epLayer0Node.joinDht([epPeerDescriptor])
31
34
 
@@ -38,8 +41,9 @@ describe('Layer1 Scale', () => {
38
41
 
39
42
  for (let i = 0; i < NUM_OF_NODES; i++) {
40
43
  const node = new DhtNode({
41
- websocketPortRange,
44
+ websocketPortRange,
42
45
  entryPoints: [epPeerDescriptor],
46
+ websocketServerEnableTls: false,
43
47
  numberOfNodesPerKBucket: NUM_OF_NODES_PER_KBUCKET
44
48
  })
45
49
  await node.start()
@@ -47,7 +51,7 @@ describe('Layer1 Scale', () => {
47
51
  const layer1 = new DhtNode({
48
52
  transport: node,
49
53
  entryPoints: [epPeerDescriptor],
50
- peerDescriptor: node.getPeerDescriptor(),
54
+ peerDescriptor: node.getLocalPeerDescriptor(),
51
55
  serviceId: STREAM_ID,
52
56
  numberOfNodesPerKBucket: NUM_OF_NODES_PER_KBUCKET
53
57
  })
@@ -59,7 +63,7 @@ describe('Layer1 Scale', () => {
59
63
 
60
64
  await Promise.all(layer1Nodes.map((node) => node.joinDht([epPeerDescriptor])))
61
65
 
62
- }, 60000)
66
+ }, 120000)
63
67
 
64
68
  afterEach(async () => {
65
69
  await Promise.all(layer1Nodes.map((node) => node.stop()))
@@ -23,7 +23,7 @@ describe('Layer1 Scale', () => {
23
23
  let epLayer1Node: DhtNode
24
24
 
25
25
  beforeEach(async () => {
26
- epLayer0Node = new DhtNode({ peerDescriptor: epPeerDescriptor })
26
+ epLayer0Node = new DhtNode({ peerDescriptor: epPeerDescriptor, websocketServerEnableTls: false })
27
27
  await epLayer0Node.start()
28
28
  await epLayer0Node.joinDht([epPeerDescriptor])
29
29
 
@@ -44,7 +44,7 @@ describe('Layer1 Scale', () => {
44
44
  const layer1 = new DhtNode({
45
45
  transport: node,
46
46
  entryPoints: [epPeerDescriptor],
47
- peerDescriptor: node.getPeerDescriptor(),
47
+ peerDescriptor: node.getLocalPeerDescriptor(),
48
48
  serviceId: STREAM_ID,
49
49
  rpcRequestTimeout: 5000,
50
50
  numberOfNodesPerKBucket: NUM_OF_NODES_PER_KBUCKET
@@ -0,0 +1,52 @@
1
+ import { DhtNode } from '../../src/dht/DhtNode'
2
+ import { PeerDescriptor } from '../../src/proto/packages/dht/protos/DhtRpc'
3
+ import os from 'os'
4
+
5
+ describe('Failed autocertification', () => {
6
+
7
+ let entryPoint: DhtNode
8
+ let failedAutocertificationNode: DhtNode
9
+ let node: DhtNode
10
+ let entryPointPeerDescriptor: PeerDescriptor
11
+
12
+ beforeEach(async () => {
13
+ entryPoint = new DhtNode({ websocketHost: '127.0.0.1', websocketPortRange: { min: 11112, max: 11112 }, websocketServerEnableTls: false })
14
+ await entryPoint.start()
15
+ entryPointPeerDescriptor = entryPoint.getLocalPeerDescriptor()
16
+ await entryPoint.joinDht([entryPointPeerDescriptor])
17
+
18
+ failedAutocertificationNode = new DhtNode({
19
+ websocketPortRange: { min: 11113, max: 11113 },
20
+ websocketHost: '127.0.0.1',
21
+ entryPoints: [entryPointPeerDescriptor],
22
+ websocketServerEnableTls: true,
23
+ autoCertifierConfigFile: os.tmpdir() + '/failedAutoCertificationConfigFile.json',
24
+ autoCertifierUrl: 'http://localhost:44444'
25
+ })
26
+
27
+ node = new DhtNode({
28
+ websocketPortRange: { min: 11114, max: 11114 },
29
+ websocketHost: '127.0.0.1',
30
+ entryPoints: [entryPointPeerDescriptor],
31
+ websocketServerEnableTls: false
32
+ })
33
+
34
+ await node.start()
35
+ await node.joinDht([entryPointPeerDescriptor])
36
+ })
37
+
38
+ afterEach(async () => {
39
+ await failedAutocertificationNode.stop()
40
+ await entryPoint.stop()
41
+ await node.stop()
42
+ })
43
+
44
+ it('failed auto certification should default to no tls', async () => {
45
+ await failedAutocertificationNode.start()
46
+ const failedAutocertificationPeerDescriptor = failedAutocertificationNode.getLocalPeerDescriptor()
47
+ expect(failedAutocertificationPeerDescriptor.websocket!.tls).toBe(false)
48
+ await failedAutocertificationNode.joinDht([entryPointPeerDescriptor])
49
+ expect(failedAutocertificationNode.getBucketSize()).toEqual(2)
50
+ })
51
+
52
+ })
@@ -5,7 +5,7 @@ import { PeerID } from '../../src/helpers/PeerID'
5
5
  import { waitForCondition } from '@streamr/utils'
6
6
  import { areEqualPeerDescriptors } from '../../src/helpers/peerIdFromPeerDescriptor'
7
7
 
8
- describe('WebSocket IConnection Requests', () => {
8
+ describe('Websocket IConnection Requests', () => {
9
9
  const epPeerDescriptor: PeerDescriptor = {
10
10
  kademliaId: PeerID.fromString('3').value,
11
11
  type: NodeType.NODEJS,
@@ -17,13 +17,21 @@ describe('WebSocket IConnection Requests', () => {
17
17
 
18
18
  beforeEach(async () => {
19
19
 
20
- epDhtNode = new DhtNode({ peerDescriptor: epPeerDescriptor })
20
+ epDhtNode = new DhtNode({ peerDescriptor: epPeerDescriptor, websocketServerEnableTls: false })
21
21
  await epDhtNode.start()
22
22
 
23
23
  await epDhtNode.joinDht([epPeerDescriptor])
24
24
 
25
- node1 = new DhtNode({ websocketPortRange: { min: 10022, max: 10022 }, entryPoints: [epPeerDescriptor] })
26
- node2 = new DhtNode({ entryPoints: [epPeerDescriptor] })
25
+ node1 = new DhtNode({
26
+ websocketPortRange: { min: 10022, max: 10022 },
27
+ entryPoints: [epPeerDescriptor],
28
+ websocketServerEnableTls: false
29
+ })
30
+ node2 = new DhtNode({
31
+ entryPoints: [epPeerDescriptor],
32
+ websocketServerEnableTls: false
33
+ })
34
+
27
35
  await node1.start()
28
36
  await node2.start()
29
37
  })
@@ -40,12 +48,12 @@ describe('WebSocket IConnection Requests', () => {
40
48
  let connected2 = false
41
49
 
42
50
  node1.on('connected', (peerDescriptor: PeerDescriptor) => {
43
- if (areEqualPeerDescriptors(peerDescriptor, node2.getPeerDescriptor())) {
51
+ if (areEqualPeerDescriptors(peerDescriptor, node2.getLocalPeerDescriptor())) {
44
52
  connected1 = true
45
53
  }
46
54
  })
47
55
  node2.on('connected', (peerDescriptor: PeerDescriptor) => {
48
- if (areEqualPeerDescriptors(peerDescriptor, node1.getPeerDescriptor())) {
56
+ if (areEqualPeerDescriptors(peerDescriptor, node1.getLocalPeerDescriptor())) {
49
57
  connected2 = true
50
58
  }
51
59
  })
@@ -55,8 +63,8 @@ describe('WebSocket IConnection Requests', () => {
55
63
 
56
64
  await waitForCondition(() => { return (connected1 && connected2) })
57
65
 
58
- expect((node1.getTransport() as ConnectionManager).hasConnection(node2.getPeerDescriptor())).toEqual(true)
59
- expect((node2.getTransport() as ConnectionManager).hasConnection(node1.getPeerDescriptor())).toEqual(true)
66
+ expect((node1.getTransport() as ConnectionManager).hasConnection(node2.getLocalPeerDescriptor())).toEqual(true)
67
+ expect((node2.getTransport() as ConnectionManager).hasConnection(node1.getLocalPeerDescriptor())).toEqual(true)
60
68
 
61
69
  }, 10000)
62
70
  })
@@ -0,0 +1,85 @@
1
+ import LeakDetector from 'jest-leak-detector'
2
+ import { binaryToHex, waitForCondition } from '@streamr/utils'
3
+ import { randomBytes } from 'crypto'
4
+ import { DhtNode } from '../../src/dht/DhtNode'
5
+ import { Message, MessageType, NodeType } from '../../src/proto/packages/dht/protos/DhtRpc'
6
+ import { RpcMessage } from '../../src/proto/packages/proto-rpc/protos/ProtoRpc'
7
+
8
+ const MESSAGE_ID = 'mock-message-id'
9
+
10
+ describe('memory leak', () => {
11
+
12
+ it('send message', async () => {
13
+ const entryPointDescriptor = {
14
+ kademliaId: randomBytes(10),
15
+ type: NodeType.NODEJS,
16
+ websocket: {
17
+ host: '127.0.0.1',
18
+ port: 11224,
19
+ tls: false
20
+ }
21
+ }
22
+ let entryPoint: DhtNode | undefined = new DhtNode({
23
+ peerId: binaryToHex(entryPointDescriptor.kademliaId),
24
+ websocketHost: entryPointDescriptor.websocket!.host,
25
+ websocketPortRange: {
26
+ min: entryPointDescriptor.websocket.port,
27
+ max: entryPointDescriptor.websocket.port
28
+ },
29
+ entryPoints: [entryPointDescriptor],
30
+ websocketServerEnableTls: false
31
+ })
32
+ await entryPoint.start()
33
+ await entryPoint.joinDht([entryPointDescriptor])
34
+ let sender: DhtNode | undefined = new DhtNode({})
35
+ let receiver: DhtNode | undefined = new DhtNode({})
36
+ /*TODO should this work? await Promise.all([
37
+ async () => {
38
+ await sender.start()
39
+ await sender.joinDht([entryPointDescriptor])
40
+ },
41
+ async () => {
42
+ await receiver.start()
43
+ await receiver.joinDht([entryPointDescriptor])
44
+ }
45
+ ])*/
46
+ await sender.start()
47
+ await sender.joinDht([entryPointDescriptor])
48
+ await receiver.start()
49
+ await receiver.joinDht([entryPointDescriptor])
50
+
51
+ let receivedMessage: Message | undefined = undefined
52
+ receiver.on('message', (msg: Message) => receivedMessage = msg)
53
+ const msg: Message = {
54
+ serviceId: 'mock-service-id',
55
+ targetDescriptor: receiver.getLocalPeerDescriptor(),
56
+ messageType: MessageType.RPC,
57
+ messageId: 'mock-message-id',
58
+ body: {
59
+ oneofKind: 'rpcMessage',
60
+ rpcMessage: RpcMessage.create()
61
+ }
62
+ }
63
+ await sender.send(msg)
64
+ await waitForCondition(() => receivedMessage !== undefined)
65
+ expect(receivedMessage!.messageId).toEqual(MESSAGE_ID)
66
+
67
+ await Promise.all([
68
+ entryPoint.stop(),
69
+ sender.stop(),
70
+ receiver.stop()
71
+ ])
72
+
73
+ const detector1 = new LeakDetector(entryPoint)
74
+ entryPoint = undefined
75
+ expect(await detector1.isLeaking()).toBe(false)
76
+
77
+ const detector2 = new LeakDetector(sender)
78
+ sender = undefined
79
+ expect(await detector2.isLeaking()).toBe(false)
80
+
81
+ const detector3 = new LeakDetector(receiver)
82
+ receiver = undefined
83
+ expect(await detector3.isLeaking()).toBe(false)
84
+ })
85
+ })
@@ -1,17 +1,17 @@
1
1
  import { MetricsContext, waitForCondition } from '@streamr/utils'
2
2
  import { ConnectionManager } from '../../src/connection/ConnectionManager'
3
3
  import { DefaultConnectorFacade } from '../../src/connection/ConnectorFacade'
4
- import { Simulator } from '../../src/connection/Simulator/Simulator'
5
- import { SimulatorTransport } from '../../src/connection/Simulator/SimulatorTransport'
4
+ import { Simulator } from '../../src/connection/simulator/Simulator'
5
+ import { SimulatorTransport } from '../../src/connection/simulator/SimulatorTransport'
6
6
  import { ITransport } from '../../src/exports'
7
7
  import { PeerID } from '../../src/helpers/PeerID'
8
8
  import { NodeType, PeerDescriptor } from '../../src/proto/packages/dht/protos/DhtRpc'
9
9
 
10
- const createConnectionManager = (ownPeerDescriptor: PeerDescriptor, transport: ITransport) => {
10
+ const createConnectionManager = (localPeerDescriptor: PeerDescriptor, transport: ITransport) => {
11
11
  return new ConnectionManager({
12
12
  createConnectorFacade: () => new DefaultConnectorFacade({
13
13
  transport,
14
- createOwnPeerDescriptor: () => ownPeerDescriptor
14
+ createLocalPeerDescriptor: () => localPeerDescriptor
15
15
  }),
16
16
  metricsContext: new MetricsContext()
17
17
  })
@@ -1,7 +1,7 @@
1
1
  import { ConnectionManager } from '../../src/connection/ConnectionManager'
2
2
  import { ConnectivityResponse, Message, MessageType, NodeType, PeerDescriptor } from '../../src/proto/packages/dht/protos/DhtRpc'
3
3
  import { PeerID } from '../../src/helpers/PeerID'
4
- import { Simulator } from '../../src/connection/Simulator/Simulator'
4
+ import { Simulator } from '../../src/connection/simulator/Simulator'
5
5
  import { createPeerDescriptor } from '../../src/dht/DhtNode'
6
6
  import { RpcMessage } from '../../src/proto/packages/proto-rpc/protos/ProtoRpc'
7
7
  import { Logger, MetricsContext } from '@streamr/utils'
@@ -37,12 +37,13 @@ describe('ConnectionManager', () => {
37
37
  const mockConnectorTransport1 = new SimulatorTransport(mockPeerDescriptor1, simulator)
38
38
  const mockConnectorTransport2 = new SimulatorTransport(mockPeerDescriptor2, simulator)
39
39
 
40
- let createOwnPeerDescriptor: jest.Mock<PeerDescriptor, [ConnectivityResponse]>
40
+ let createLocalPeerDescriptor: jest.Mock<PeerDescriptor, [ConnectivityResponse]>
41
41
 
42
- const createConnectionManager = (opts: Omit<DefaultConnectorFacadeConfig, 'createOwnPeerDescriptor'>) => {
42
+ const createConnectionManager = (opts: Omit<DefaultConnectorFacadeConfig, 'createLocalPeerDescriptor'>) => {
43
43
  return new ConnectionManager({
44
44
  createConnectorFacade: () => new DefaultConnectorFacade({
45
- createOwnPeerDescriptor,
45
+ createLocalPeerDescriptor,
46
+ websocketServerEnableTls: false,
46
47
  ...opts
47
48
  }),
48
49
  metricsContext: new MetricsContext()
@@ -50,7 +51,7 @@ describe('ConnectionManager', () => {
50
51
  }
51
52
 
52
53
  beforeEach(() => {
53
- createOwnPeerDescriptor = jest.fn().mockImplementation((response) => createPeerDescriptor(response))
54
+ createLocalPeerDescriptor = jest.fn().mockImplementation((response) => createPeerDescriptor(response))
54
55
  })
55
56
 
56
57
  beforeAll(async () => {
@@ -59,7 +60,7 @@ describe('ConnectionManager', () => {
59
60
  await mockConnectorTransport2.start()
60
61
  })
61
62
 
62
- afterAll(async ()=> {
63
+ afterAll(async () => {
63
64
  await mockTransport.stop()
64
65
  await mockConnectorTransport1.stop()
65
66
  await mockConnectorTransport2.stop()
@@ -70,12 +71,11 @@ describe('ConnectionManager', () => {
70
71
  const connectionManager = createConnectionManager({
71
72
  transport: mockTransport,
72
73
  websocketHost: '127.0.0.1',
73
- websocketPortRange: { min: 9991, max: 9991 },
74
+ websocketPortRange: { min: 9991, max: 9991 }
74
75
  })
75
76
 
76
77
  await connectionManager.start()
77
- expect(createOwnPeerDescriptor.mock.calls[0][0].host).toEqual('127.0.0.1')
78
- expect(createOwnPeerDescriptor.mock.calls[0][0].openInternet).toEqual(true)
78
+ expect(createLocalPeerDescriptor.mock.calls[0][0].host).toEqual('127.0.0.1')
79
79
 
80
80
  await connectionManager.stop()
81
81
  })
@@ -103,8 +103,7 @@ describe('ConnectionManager', () => {
103
103
  })
104
104
 
105
105
  await connectionManager1.start()
106
- expect(createOwnPeerDescriptor.mock.calls[0][0].host).toEqual('127.0.0.1')
107
- expect(createOwnPeerDescriptor.mock.calls[0][0].openInternet).toEqual(true)
106
+ expect(createLocalPeerDescriptor.mock.calls[0][0].host).toEqual('127.0.0.1')
108
107
 
109
108
  const connectionManager2 = createConnectionManager({
110
109
  transport: mockConnectorTransport2,
@@ -115,8 +114,7 @@ describe('ConnectionManager', () => {
115
114
  })
116
115
 
117
116
  await connectionManager2.start()
118
- expect(createOwnPeerDescriptor.mock.calls[1][0].host).toEqual('127.0.0.1')
119
- expect(createOwnPeerDescriptor.mock.calls[1][0].openInternet).toEqual(true)
117
+ expect(createLocalPeerDescriptor.mock.calls[1][0].host).toEqual('127.0.0.1')
120
118
 
121
119
  await connectionManager1.stop()
122
120
  await connectionManager2.stop()
@@ -130,20 +128,18 @@ describe('ConnectionManager', () => {
130
128
  })
131
129
 
132
130
  await connectionManager1.start()
133
- expect(createOwnPeerDescriptor.mock.calls[0][0].host).toEqual('127.0.0.1')
134
- expect(createOwnPeerDescriptor.mock.calls[0][0].openInternet).toEqual(true)
131
+ expect(createLocalPeerDescriptor.mock.calls[0][0].host).toEqual('127.0.0.1')
135
132
 
136
133
  const connectionManager2 = createConnectionManager({
137
134
  transport: mockConnectorTransport2,
138
135
  websocketPortRange: { min: 9996, max: 9996 },
139
136
  entryPoints: [
140
- connectionManager1.getPeerDescriptor()
137
+ connectionManager1.getLocalPeerDescriptor()
141
138
  ]
142
139
  })
143
140
 
144
141
  await connectionManager2.start()
145
- expect(createOwnPeerDescriptor.mock.calls[1][0].host).toEqual('127.0.0.1')
146
- expect(createOwnPeerDescriptor.mock.calls[1][0].openInternet).toEqual(true)
142
+ expect(createLocalPeerDescriptor.mock.calls[1][0].host).toEqual('127.0.0.1')
147
143
 
148
144
  const msg: Message = {
149
145
  serviceId,
@@ -174,7 +170,7 @@ describe('ConnectionManager', () => {
174
170
  })
175
171
  })
176
172
 
177
- msg.targetDescriptor = connectionManager2.getPeerDescriptor()
173
+ msg.targetDescriptor = connectionManager2.getLocalPeerDescriptor()
178
174
  connectionManager1.send(msg)
179
175
 
180
176
  await Promise.all([promise, connectedPromise1, connectedPromise2])
@@ -191,14 +187,14 @@ describe('ConnectionManager', () => {
191
187
  })
192
188
 
193
189
  await connectionManager1.start()
194
- expect(createOwnPeerDescriptor.mock.calls[0][0].host).toEqual('127.0.0.1')
195
- expect(createOwnPeerDescriptor.mock.calls[0][0].openInternet).toEqual(true)
190
+ expect(createLocalPeerDescriptor.mock.calls[0][0].host).toEqual('127.0.0.1')
196
191
 
197
192
  const connectionManager2 = createConnectionManager({
198
193
  transport: mockConnectorTransport2,
199
194
  websocketPortRange: { min: 9999, max: 9999 },
195
+ websocketServerEnableTls: false,
200
196
  entryPoints: [
201
- connectionManager1.getPeerDescriptor()
197
+ connectionManager1.getLocalPeerDescriptor()
202
198
  ]
203
199
  })
204
200
 
@@ -234,13 +230,13 @@ describe('ConnectionManager', () => {
234
230
  resolve()
235
231
  })
236
232
  })
237
- msg.targetDescriptor = connectionManager2.getPeerDescriptor()
233
+ msg.targetDescriptor = connectionManager2.getLocalPeerDescriptor()
238
234
  connectionManager1.send(msg)
239
235
 
240
236
  await promise
241
237
 
242
238
  // @ts-expect-error private field
243
- connectionManager1.closeConnection(connectionManager2.getPeerDescriptor())
239
+ connectionManager1.closeConnection(connectionManager2.getLocalPeerDescriptor())
244
240
 
245
241
  await Promise.all([disconnectedPromise1, disconnectedPromise2])
246
242
 
@@ -307,7 +303,7 @@ describe('ConnectionManager', () => {
307
303
  await connectionManager4.stop()
308
304
  })
309
305
 
310
- it('Cannot send to own WebSocketServer if kademliaIds do not match', async () => {
306
+ it('Cannot send to own WebsocketServer if kademliaIds do not match', async () => {
311
307
  const connectionManager1 = createConnectionManager({
312
308
  transport: mockTransport,
313
309
  websocketHost: '127.0.0.1',
@@ -315,10 +311,9 @@ describe('ConnectionManager', () => {
315
311
  })
316
312
 
317
313
  await connectionManager1.start()
318
- expect(createOwnPeerDescriptor.mock.calls[0][0].host).toEqual('127.0.0.1')
319
- expect(createOwnPeerDescriptor.mock.calls[0][0].openInternet).toEqual(true)
314
+ expect(createLocalPeerDescriptor.mock.calls[0][0].host).toEqual('127.0.0.1')
320
315
 
321
- const peerDescriptor = connectionManager1.getPeerDescriptor()
316
+ const peerDescriptor = connectionManager1.getLocalPeerDescriptor()
322
317
  peerDescriptor.kademliaId = new Uint8Array([12, 12, 12, 12])
323
318
  const msg: Message = {
324
319
  serviceId,
@@ -336,4 +331,18 @@ describe('ConnectionManager', () => {
336
331
 
337
332
  await connectionManager1.stop()
338
333
  })
334
+
335
+ it('Failed autocertification', async () => {
336
+ const connectionManager1 = createConnectionManager({
337
+ transport: mockTransport,
338
+ websocketHost: '127.0.0.1',
339
+ autoCertifierUrl: 'https://localhost:12333',
340
+ websocketServerEnableTls: true,
341
+ websocketPortRange: { min: 10003, max: 10003 }
342
+ })
343
+
344
+ await connectionManager1.start()
345
+ expect(connectionManager1.getLocalPeerDescriptor().websocket!.tls).toEqual(false)
346
+ await connectionManager1.stop()
347
+ })
339
348
  })
@@ -1,5 +1,5 @@
1
- import { LatencyType, Simulator } from '../../src/connection/Simulator/Simulator'
2
- import { getRandomRegion } from '../../src/connection/Simulator/pings'
1
+ import { LatencyType, Simulator } from '../../src/connection/simulator/Simulator'
2
+ import { getRandomRegion } from '../../src/connection/simulator/pings'
3
3
  import { DhtNode } from '../../src/dht/DhtNode'
4
4
  import { NodeType } from '../../src/proto/packages/dht/protos/DhtRpc'
5
5
  import { createMockConnectionDhtNode } from '../utils/utils'