@streamr/dht 101.1.1 → 102.0.0-beta.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 (346) hide show
  1. package/.eslintignore +1 -1
  2. package/dist/{src/proto → generated}/google/protobuf/any.d.ts +11 -4
  3. package/dist/generated/google/protobuf/any.js.map +1 -0
  4. package/dist/{src/proto → generated}/google/protobuf/empty.d.ts +0 -1
  5. package/dist/generated/google/protobuf/empty.js.map +1 -0
  6. package/dist/{src/proto → generated}/google/protobuf/timestamp.d.ts +9 -3
  7. package/dist/generated/google/protobuf/timestamp.js.map +1 -0
  8. package/dist/{src/proto → generated}/packages/dht/protos/DhtRpc.client.d.ts +9 -0
  9. package/dist/{src/proto → generated}/packages/dht/protos/DhtRpc.client.js +7 -0
  10. package/dist/generated/packages/dht/protos/DhtRpc.client.js.map +1 -0
  11. package/dist/{src/proto → generated}/packages/dht/protos/DhtRpc.d.ts +16 -0
  12. package/dist/{src/proto → generated}/packages/dht/protos/DhtRpc.js +16 -2
  13. package/dist/generated/packages/dht/protos/DhtRpc.js.map +1 -0
  14. package/dist/{src/proto → generated}/packages/dht/protos/DhtRpc.server.d.ts +5 -0
  15. package/dist/generated/packages/dht/protos/DhtRpc.server.js.map +1 -0
  16. package/dist/generated/packages/proto-rpc/protos/ProtoRpc.js.map +1 -0
  17. package/dist/package.json +11 -11
  18. package/dist/src/connection/Connection.d.ts +1 -1
  19. package/dist/src/connection/ConnectionLockRpcLocal.d.ts +5 -3
  20. package/dist/src/connection/ConnectionLockRpcLocal.js +9 -3
  21. package/dist/src/connection/ConnectionLockRpcLocal.js.map +1 -1
  22. package/dist/src/connection/ConnectionLockRpcRemote.d.ts +3 -2
  23. package/dist/src/connection/ConnectionLockRpcRemote.js +14 -3
  24. package/dist/src/connection/ConnectionLockRpcRemote.js.map +1 -1
  25. package/dist/src/connection/ConnectionLockStates.d.ts +5 -0
  26. package/dist/src/connection/ConnectionLockStates.js +14 -0
  27. package/dist/src/connection/ConnectionLockStates.js.map +1 -1
  28. package/dist/src/connection/ConnectionManager.d.ts +8 -1
  29. package/dist/src/connection/ConnectionManager.js +78 -24
  30. package/dist/src/connection/ConnectionManager.js.map +1 -1
  31. package/dist/src/connection/ConnectionsView.d.ts +1 -1
  32. package/dist/src/connection/ConnectorFacade.d.ts +1 -1
  33. package/dist/src/connection/Handshaker.d.ts +1 -1
  34. package/dist/src/connection/Handshaker.js +2 -2
  35. package/dist/src/connection/Handshaker.js.map +1 -1
  36. package/dist/src/connection/ManagedConnection.d.ts +7 -1
  37. package/dist/src/connection/ManagedConnection.js +24 -1
  38. package/dist/src/connection/ManagedConnection.js.map +1 -1
  39. package/dist/src/connection/PendingConnection.d.ts +1 -1
  40. package/dist/src/connection/connectivityChecker.d.ts +1 -1
  41. package/dist/src/connection/connectivityChecker.js +2 -1
  42. package/dist/src/connection/connectivityChecker.js.map +1 -1
  43. package/dist/src/connection/connectivityRequestHandler.js +1 -1
  44. package/dist/src/connection/connectivityRequestHandler.js.map +1 -1
  45. package/dist/src/connection/simulator/Simulator.d.ts +1 -1
  46. package/dist/src/connection/simulator/Simulator.js +2 -2
  47. package/dist/src/connection/simulator/Simulator.js.map +1 -1
  48. package/dist/src/connection/simulator/SimulatorConnection.d.ts +1 -1
  49. package/dist/src/connection/simulator/SimulatorConnection.js +9 -9
  50. package/dist/src/connection/simulator/SimulatorConnection.js.map +1 -1
  51. package/dist/src/connection/simulator/SimulatorConnector.d.ts +1 -1
  52. package/dist/src/connection/simulator/SimulatorConnector.js +4 -4
  53. package/dist/src/connection/simulator/SimulatorConnector.js.map +1 -1
  54. package/dist/src/connection/simulator/SimulatorTransport.d.ts +1 -1
  55. package/dist/src/connection/simulator/SimulatorTransport.js +2 -1
  56. package/dist/src/connection/simulator/SimulatorTransport.js.map +1 -1
  57. package/dist/src/connection/webrtc/NodeWebrtcConnection.d.ts +2 -1
  58. package/dist/src/connection/webrtc/NodeWebrtcConnection.js +13 -6
  59. package/dist/src/connection/webrtc/NodeWebrtcConnection.js.map +1 -1
  60. package/dist/src/connection/webrtc/WebrtcConnector.d.ts +2 -1
  61. package/dist/src/connection/webrtc/WebrtcConnector.js +9 -8
  62. package/dist/src/connection/webrtc/WebrtcConnector.js.map +1 -1
  63. package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.d.ts +3 -3
  64. package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js +4 -4
  65. package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js.map +1 -1
  66. package/dist/src/connection/webrtc/WebrtcConnectorRpcRemote.d.ts +1 -1
  67. package/dist/src/connection/websocket/AbstractWebsocketClientConnection.d.ts +1 -0
  68. package/dist/src/connection/websocket/WebsocketClientConnector.d.ts +1 -1
  69. package/dist/src/connection/websocket/WebsocketClientConnector.js +3 -3
  70. package/dist/src/connection/websocket/WebsocketClientConnector.js.map +1 -1
  71. package/dist/src/connection/websocket/WebsocketClientConnectorRpcLocal.d.ts +3 -3
  72. package/dist/src/connection/websocket/WebsocketClientConnectorRpcLocal.js +1 -1
  73. package/dist/src/connection/websocket/WebsocketClientConnectorRpcLocal.js.map +1 -1
  74. package/dist/src/connection/websocket/WebsocketClientConnectorRpcRemote.d.ts +1 -1
  75. package/dist/src/connection/websocket/WebsocketClientConnectorRpcRemote.js +1 -1
  76. package/dist/src/connection/websocket/WebsocketClientConnectorRpcRemote.js.map +1 -1
  77. package/dist/src/connection/websocket/WebsocketServerConnector.d.ts +1 -1
  78. package/dist/src/connection/websocket/WebsocketServerConnector.js +7 -7
  79. package/dist/src/connection/websocket/WebsocketServerConnector.js.map +1 -1
  80. package/dist/src/dht/DhtNode.d.ts +4 -2
  81. package/dist/src/dht/DhtNode.js +17 -6
  82. package/dist/src/dht/DhtNode.js.map +1 -1
  83. package/dist/src/dht/DhtNodeRpcLocal.d.ts +3 -3
  84. package/dist/src/dht/DhtNodeRpcLocal.js +3 -3
  85. package/dist/src/dht/DhtNodeRpcLocal.js.map +1 -1
  86. package/dist/src/dht/DhtNodeRpcRemote.d.ts +2 -2
  87. package/dist/src/dht/DhtNodeRpcRemote.js +3 -3
  88. package/dist/src/dht/DhtNodeRpcRemote.js.map +1 -1
  89. package/dist/src/dht/ExternalApiRpcLocal.d.ts +3 -3
  90. package/dist/src/dht/ExternalApiRpcLocal.js +3 -3
  91. package/dist/src/dht/ExternalApiRpcLocal.js.map +1 -1
  92. package/dist/src/dht/ExternalApiRpcRemote.d.ts +3 -3
  93. package/dist/src/dht/ExternalApiRpcRemote.js +2 -2
  94. package/dist/src/dht/ExternalApiRpcRemote.js.map +1 -1
  95. package/dist/src/dht/PeerManager.d.ts +1 -1
  96. package/dist/src/dht/PeerManager.js +10 -10
  97. package/dist/src/dht/PeerManager.js.map +1 -1
  98. package/dist/src/dht/contact/Contact.d.ts +1 -1
  99. package/dist/src/dht/contact/Contact.js +1 -1
  100. package/dist/src/dht/contact/Contact.js.map +1 -1
  101. package/dist/src/dht/contact/RingContactList.d.ts +1 -1
  102. package/dist/src/dht/contact/RingContactList.js +1 -1
  103. package/dist/src/dht/contact/RingContactList.js.map +1 -1
  104. package/dist/src/dht/contact/RpcRemote.d.ts +1 -1
  105. package/dist/src/dht/contact/SortedContactList.js +1 -1
  106. package/dist/src/dht/contact/SortedContactList.js.map +1 -1
  107. package/dist/src/dht/contact/ringIdentifiers.d.ts +1 -1
  108. package/dist/src/dht/discovery/DiscoverySession.d.ts +1 -1
  109. package/dist/src/dht/discovery/DiscoverySession.js +3 -3
  110. package/dist/src/dht/discovery/DiscoverySession.js.map +1 -1
  111. package/dist/src/dht/discovery/PeerDiscovery.d.ts +1 -1
  112. package/dist/src/dht/discovery/PeerDiscovery.js +7 -7
  113. package/dist/src/dht/discovery/PeerDiscovery.js.map +1 -1
  114. package/dist/src/dht/discovery/RingDiscoverySession.js +1 -1
  115. package/dist/src/dht/discovery/RingDiscoverySession.js.map +1 -1
  116. package/dist/src/dht/recursive-operation/RecursiveOperationManager.d.ts +1 -1
  117. package/dist/src/dht/recursive-operation/RecursiveOperationManager.js +8 -8
  118. package/dist/src/dht/recursive-operation/RecursiveOperationManager.js.map +1 -1
  119. package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.d.ts +2 -2
  120. package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.js +2 -2
  121. package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.js.map +1 -1
  122. package/dist/src/dht/recursive-operation/RecursiveOperationRpcRemote.d.ts +2 -2
  123. package/dist/src/dht/recursive-operation/RecursiveOperationRpcRemote.js +3 -3
  124. package/dist/src/dht/recursive-operation/RecursiveOperationRpcRemote.js.map +1 -1
  125. package/dist/src/dht/recursive-operation/RecursiveOperationSession.d.ts +1 -1
  126. package/dist/src/dht/recursive-operation/RecursiveOperationSession.js +7 -7
  127. package/dist/src/dht/recursive-operation/RecursiveOperationSession.js.map +1 -1
  128. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.d.ts +3 -3
  129. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.js +1 -1
  130. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.js.map +1 -1
  131. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcRemote.d.ts +2 -2
  132. package/dist/src/dht/routing/Router.d.ts +4 -1
  133. package/dist/src/dht/routing/Router.js +17 -9
  134. package/dist/src/dht/routing/Router.js.map +1 -1
  135. package/dist/src/dht/routing/RouterRpcLocal.d.ts +2 -2
  136. package/dist/src/dht/routing/RouterRpcLocal.js +5 -5
  137. package/dist/src/dht/routing/RouterRpcLocal.js.map +1 -1
  138. package/dist/src/dht/routing/RouterRpcRemote.d.ts +2 -2
  139. package/dist/src/dht/routing/RouterRpcRemote.js +7 -7
  140. package/dist/src/dht/routing/RouterRpcRemote.js.map +1 -1
  141. package/dist/src/dht/routing/RoutingSession.d.ts +1 -1
  142. package/dist/src/dht/routing/RoutingSession.js +5 -6
  143. package/dist/src/dht/routing/RoutingSession.js.map +1 -1
  144. package/dist/src/dht/routing/getPreviousPeer.d.ts +1 -1
  145. package/dist/src/dht/store/LocalDataStore.d.ts +1 -1
  146. package/dist/src/dht/store/LocalDataStore.js +2 -2
  147. package/dist/src/dht/store/LocalDataStore.js.map +1 -1
  148. package/dist/src/dht/store/StoreManager.d.ts +2 -2
  149. package/dist/src/dht/store/StoreManager.js +8 -8
  150. package/dist/src/dht/store/StoreManager.js.map +1 -1
  151. package/dist/src/dht/store/StoreRpcLocal.d.ts +3 -3
  152. package/dist/src/dht/store/StoreRpcLocal.js +4 -4
  153. package/dist/src/dht/store/StoreRpcLocal.js.map +1 -1
  154. package/dist/src/dht/store/StoreRpcRemote.d.ts +3 -3
  155. package/dist/src/dht/store/StoreRpcRemote.js +7 -4
  156. package/dist/src/dht/store/StoreRpcRemote.js.map +1 -1
  157. package/dist/src/exports.d.ts +2 -2
  158. package/dist/src/exports.js +6 -6
  159. package/dist/src/exports.js.map +1 -1
  160. package/dist/src/helpers/Connectivity.d.ts +1 -1
  161. package/dist/src/helpers/Connectivity.js +1 -1
  162. package/dist/src/helpers/Connectivity.js.map +1 -1
  163. package/dist/src/helpers/createPeerDescriptor.d.ts +1 -1
  164. package/dist/src/helpers/createPeerDescriptor.js +2 -2
  165. package/dist/src/helpers/createPeerDescriptor.js.map +1 -1
  166. package/dist/src/helpers/createPeerDescriptorSignaturePayload.d.ts +1 -1
  167. package/dist/src/helpers/createPeerDescriptorSignaturePayload.js +1 -1
  168. package/dist/src/helpers/createPeerDescriptorSignaturePayload.js.map +1 -1
  169. package/dist/src/helpers/protoClasses.js +1 -1
  170. package/dist/src/helpers/protoClasses.js.map +1 -1
  171. package/dist/src/identifiers.d.ts +5 -5
  172. package/dist/src/identifiers.js +11 -11
  173. package/dist/src/identifiers.js.map +1 -1
  174. package/dist/src/rpc-protocol/DhtCallContext.d.ts +1 -1
  175. package/dist/src/rpc-protocol/DhtRpcOptions.d.ts +1 -1
  176. package/dist/src/transport/ITransport.d.ts +2 -1
  177. package/dist/src/transport/ListeningRpcCommunicator.d.ts +2 -1
  178. package/dist/src/transport/ListeningRpcCommunicator.js +13 -4
  179. package/dist/src/transport/ListeningRpcCommunicator.js.map +1 -1
  180. package/dist/src/transport/RoutingRpcCommunicator.d.ts +1 -1
  181. package/{src/proto → generated}/google/protobuf/any.ts +11 -4
  182. package/{src/proto → generated}/google/protobuf/empty.ts +0 -1
  183. package/{src/proto → generated}/google/protobuf/timestamp.ts +9 -3
  184. package/{src/proto → generated}/packages/dht/protos/DhtRpc.client.ts +12 -0
  185. package/{src/proto → generated}/packages/dht/protos/DhtRpc.server.ts +5 -0
  186. package/{src/proto → generated}/packages/dht/protos/DhtRpc.ts +23 -1
  187. package/package.json +11 -11
  188. package/proto.sh +2 -3
  189. package/protos/DhtRpc.proto +5 -0
  190. package/src/connection/Connection.ts +1 -1
  191. package/src/connection/ConnectionLockRpcLocal.ts +16 -7
  192. package/src/connection/ConnectionLockRpcRemote.ts +18 -6
  193. package/src/connection/ConnectionLockStates.ts +18 -0
  194. package/src/connection/ConnectionManager.ts +92 -26
  195. package/src/connection/ConnectionsView.ts +1 -1
  196. package/src/connection/ConnectorFacade.ts +1 -1
  197. package/src/connection/Handshaker.ts +3 -3
  198. package/src/connection/ManagedConnection.ts +28 -3
  199. package/src/connection/PendingConnection.ts +1 -1
  200. package/src/connection/connectivityChecker.ts +2 -1
  201. package/src/connection/connectivityRequestHandler.ts +1 -1
  202. package/src/connection/simulator/Simulator.ts +4 -4
  203. package/src/connection/simulator/SimulatorConnection.ts +10 -10
  204. package/src/connection/simulator/SimulatorConnector.ts +5 -5
  205. package/src/connection/simulator/SimulatorTransport.ts +3 -2
  206. package/src/connection/webrtc/BrowserWebrtcConnection.ts +10 -1
  207. package/src/connection/webrtc/NodeWebrtcConnection.ts +15 -9
  208. package/src/connection/webrtc/WebrtcConnector.ts +10 -8
  209. package/src/connection/webrtc/WebrtcConnectorRpcLocal.ts +8 -8
  210. package/src/connection/webrtc/WebrtcConnectorRpcRemote.ts +2 -2
  211. package/src/connection/websocket/WebsocketClientConnector.ts +5 -5
  212. package/src/connection/websocket/WebsocketClientConnectorRpcLocal.ts +5 -5
  213. package/src/connection/websocket/WebsocketClientConnectorRpcRemote.ts +4 -4
  214. package/src/connection/websocket/WebsocketServerConnector.ts +8 -8
  215. package/src/dht/DhtNode.ts +21 -8
  216. package/src/dht/DhtNodeRpcLocal.ts +7 -7
  217. package/src/dht/DhtNodeRpcRemote.ts +5 -5
  218. package/src/dht/ExternalApiRpcLocal.ts +8 -8
  219. package/src/dht/ExternalApiRpcRemote.ts +6 -6
  220. package/src/dht/PeerManager.ts +12 -12
  221. package/src/dht/contact/Contact.ts +3 -3
  222. package/src/dht/contact/RingContactList.ts +3 -3
  223. package/src/dht/contact/RpcRemote.ts +1 -1
  224. package/src/dht/contact/SortedContactList.ts +2 -2
  225. package/src/dht/contact/ringIdentifiers.ts +1 -1
  226. package/src/dht/discovery/DiscoverySession.ts +5 -5
  227. package/src/dht/discovery/PeerDiscovery.ts +12 -12
  228. package/src/dht/discovery/RingDiscoverySession.ts +3 -3
  229. package/src/dht/recursive-operation/RecursiveOperationManager.ts +9 -9
  230. package/src/dht/recursive-operation/RecursiveOperationRpcLocal.ts +4 -4
  231. package/src/dht/recursive-operation/RecursiveOperationRpcRemote.ts +6 -6
  232. package/src/dht/recursive-operation/RecursiveOperationSession.ts +8 -8
  233. package/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.ts +5 -5
  234. package/src/dht/recursive-operation/RecursiveOperationSessionRpcRemote.ts +2 -2
  235. package/src/dht/routing/Router.ts +19 -10
  236. package/src/dht/routing/RouterRpcLocal.ts +7 -7
  237. package/src/dht/routing/RouterRpcRemote.ts +9 -9
  238. package/src/dht/routing/RoutingSession.ts +7 -8
  239. package/src/dht/routing/getPreviousPeer.ts +1 -1
  240. package/src/dht/store/LocalDataStore.ts +4 -4
  241. package/src/dht/store/StoreManager.ts +12 -12
  242. package/src/dht/store/StoreRpcLocal.ts +8 -8
  243. package/src/dht/store/StoreRpcRemote.ts +10 -7
  244. package/src/exports.ts +5 -5
  245. package/src/helpers/Connectivity.ts +1 -1
  246. package/src/helpers/createPeerDescriptor.ts +3 -3
  247. package/src/helpers/createPeerDescriptorSignaturePayload.ts +1 -1
  248. package/src/helpers/protoClasses.ts +1 -1
  249. package/src/identifiers.ts +7 -7
  250. package/src/rpc-protocol/DhtCallContext.ts +1 -1
  251. package/src/rpc-protocol/DhtRpcOptions.ts +1 -1
  252. package/src/transport/ITransport.ts +2 -1
  253. package/src/transport/ListeningRpcCommunicator.ts +14 -6
  254. package/src/transport/RoutingRpcCommunicator.ts +2 -2
  255. package/test/benchmark/Find.test.ts +6 -6
  256. package/test/benchmark/KademliaCorrectness.test.ts +5 -5
  257. package/test/benchmark/RingCorrectness.test.ts +5 -5
  258. package/test/benchmark/SortedContactListBenchmark.test.ts +10 -10
  259. package/test/benchmark/hybrid-network-simulation/RingContactList.test.ts +1 -1
  260. package/test/end-to-end/Layer0Webrtc-Layer1.test.ts +6 -6
  261. package/test/end-to-end/Layer0Webrtc.test.ts +6 -6
  262. package/test/end-to-end/RecoveryFromFailedAutoCertification.test.ts +1 -1
  263. package/test/end-to-end/WebsocketConnectionRequest.test.ts +1 -1
  264. package/test/end-to-end/memory-leak.test.ts +4 -4
  265. package/test/integration/ConnectionLocking.test.ts +16 -15
  266. package/test/integration/ConnectionManager.test.ts +62 -6
  267. package/test/integration/ConnectivityChecking.test.ts +2 -1
  268. package/test/integration/DhtJoinPeerDiscovery.test.ts +2 -2
  269. package/test/integration/DhtNode.test.ts +4 -4
  270. package/test/integration/DhtNodeExternalAPI.test.ts +7 -7
  271. package/test/integration/DhtNodeRpcRemote.test.ts +9 -9
  272. package/test/integration/DhtRpc.test.ts +12 -13
  273. package/test/integration/Find.test.ts +5 -5
  274. package/test/integration/GeoIpConnectivityChecking.test.ts +2 -1
  275. package/test/integration/Layer1-scale.test.ts +2 -2
  276. package/test/integration/Mock-Layer1-Layer0.test.ts +6 -6
  277. package/test/integration/MultipleEntryPointJoining.test.ts +1 -1
  278. package/test/integration/ReplicateData.test.ts +10 -11
  279. package/test/integration/RouteMessage.test.ts +9 -9
  280. package/test/integration/RouterRpcRemote.test.ts +7 -7
  281. package/test/integration/SimultaneousConnections.test.ts +13 -12
  282. package/test/integration/Store.test.ts +9 -9
  283. package/test/integration/StoreAndDelete.test.ts +10 -10
  284. package/test/integration/StoreOnDhtWithThreeNodes.test.ts +9 -9
  285. package/test/integration/StoreOnDhtWithTwoNodes.test.ts +7 -7
  286. package/test/integration/StoreRpcRemote.test.ts +10 -10
  287. package/test/integration/WebrtcConnectionManagement.test.ts +4 -3
  288. package/test/integration/WebrtcConnectorRpc.test.ts +9 -9
  289. package/test/integration/Websocket.test.ts +0 -2
  290. package/test/integration/WebsocketClientConnectorRpc.test.ts +8 -8
  291. package/test/integration/WebsocketConnectionManagement.test.ts +8 -9
  292. package/test/integration/{rpc-connections-over-webrpc.test.ts → rpc-connections-over-webrtc.test.ts} +4 -3
  293. package/test/unit/ConnectionManager.test.ts +4 -3
  294. package/test/unit/ConnectivityHelpers.test.ts +1 -1
  295. package/test/unit/DiscoverySession.test.ts +6 -6
  296. package/test/unit/Handshaker.test.ts +1 -1
  297. package/test/unit/ListeningRpcCommunicator.test.ts +52 -0
  298. package/test/unit/LocalDataStore.test.ts +21 -21
  299. package/test/unit/PeerManager.test.ts +13 -13
  300. package/test/unit/PendingConnection.test.ts +1 -1
  301. package/test/unit/ProtobufMessage.test.ts +1 -1
  302. package/test/unit/RandomContactList.test.ts +2 -2
  303. package/test/unit/RecursiveOperationManager.test.ts +3 -3
  304. package/test/unit/RecursiveOperationSession.test.ts +4 -4
  305. package/test/unit/Router.test.ts +6 -6
  306. package/test/unit/RoutingSession.test.ts +6 -6
  307. package/test/unit/SortedContactList.test.ts +5 -5
  308. package/test/unit/StoreManager.test.ts +10 -10
  309. package/test/unit/StoreRpcLocal.test.ts +9 -9
  310. package/test/unit/WebrtcConnection.test.ts +29 -0
  311. package/test/unit/WebsocketClientConnector.test.ts +1 -1
  312. package/test/unit/WebsocketServerConnector.test.ts +1 -1
  313. package/test/unit/connectivityRequestHandler.test.ts +1 -1
  314. package/test/unit/createPeerDescriptor.test.ts +4 -4
  315. package/test/unit/getClosestNodes.test.ts +5 -5
  316. package/test/utils/FakeConnectorFacade.ts +1 -1
  317. package/test/utils/FakeTransport.ts +12 -9
  318. package/test/utils/customMatchers.ts +3 -3
  319. package/test/utils/mock/MockConnectionsView.ts +1 -1
  320. package/test/utils/mock/MockRouter.ts +5 -1
  321. package/test/utils/mock/MockTransport.ts +6 -1
  322. package/test/utils/mock/mockDataEntry.ts +6 -6
  323. package/test/utils/topology.ts +3 -3
  324. package/test/utils/utils.ts +9 -9
  325. package/tsconfig.jest.json +2 -1
  326. package/tsconfig.node.json +1 -0
  327. package/dist/src/proto/google/protobuf/any.js.map +0 -1
  328. package/dist/src/proto/google/protobuf/empty.js.map +0 -1
  329. package/dist/src/proto/google/protobuf/timestamp.js.map +0 -1
  330. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js.map +0 -1
  331. package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +0 -1
  332. package/dist/src/proto/packages/dht/protos/DhtRpc.server.js.map +0 -1
  333. package/dist/src/proto/packages/proto-rpc/protos/ProtoRpc.js.map +0 -1
  334. package/dist/src/proto/tests.d.ts +0 -39
  335. package/dist/src/proto/tests.js +0 -34
  336. package/dist/src/proto/tests.js.map +0 -1
  337. package/src/proto/tests.ts +0 -52
  338. package/test/benchmark/any.test.ts +0 -28
  339. /package/dist/{src/proto → generated}/google/protobuf/any.js +0 -0
  340. /package/dist/{src/proto → generated}/google/protobuf/empty.js +0 -0
  341. /package/dist/{src/proto → generated}/google/protobuf/timestamp.js +0 -0
  342. /package/dist/{src/proto → generated}/packages/dht/protos/DhtRpc.server.js +0 -0
  343. /package/dist/{src/proto → generated}/packages/proto-rpc/protos/ProtoRpc.d.ts +0 -0
  344. /package/dist/{src/proto → generated}/packages/proto-rpc/protos/ProtoRpc.js +0 -0
  345. /package/{src/proto → generated}/packages/proto-rpc/protos/ProtoRpc.ts +0 -0
  346. /package/{src/types/glogal.d.ts → test/types/global.d.ts} +0 -0
@@ -4,10 +4,10 @@ import { DefaultConnectorFacade } from '../../src/connection/ConnectorFacade'
4
4
  import { LatencyType, Simulator } from '../../src/connection/simulator/Simulator'
5
5
  import { SimulatorTransport } from '../../src/connection/simulator/SimulatorTransport'
6
6
  import { ITransport } from '../../src/transport/ITransport'
7
- import { PeerDescriptor } from '../../src/proto/packages/dht/protos/DhtRpc'
7
+ import { PeerDescriptor } from '../../generated/packages/dht/protos/DhtRpc'
8
8
  import { getRandomRegion } from '../../dist/src/connection/simulator/pings'
9
9
  import { createMockPeerDescriptor } from '../utils/utils'
10
- import { getNodeIdFromPeerDescriptor } from '../../src/identifiers'
10
+ import { toNodeId } from '../../src/identifiers'
11
11
 
12
12
  const createConnectionManager = (localPeerDescriptor: PeerDescriptor, transport: ITransport) => {
13
13
  return new ConnectionManager({
@@ -15,7 +15,8 @@ const createConnectionManager = (localPeerDescriptor: PeerDescriptor, transport:
15
15
  transport,
16
16
  createLocalPeerDescriptor: async () => localPeerDescriptor
17
17
  }),
18
- metricsContext: new MetricsContext()
18
+ metricsContext: new MetricsContext(),
19
+ allowIncomingPrivateConnections: true
19
20
  })
20
21
  }
21
22
 
@@ -56,8 +57,8 @@ describe('Connection Locking', () => {
56
57
  })
57
58
 
58
59
  it('can lock connections', async () => {
59
- const nodeId1 = getNodeIdFromPeerDescriptor(mockPeerDescriptor1)
60
- const nodeId2 = getNodeIdFromPeerDescriptor(mockPeerDescriptor2)
60
+ const nodeId1 = toNodeId(mockPeerDescriptor1)
61
+ const nodeId2 = toNodeId(mockPeerDescriptor2)
61
62
  await Promise.all([
62
63
  waitForCondition(() => connectionManager2.hasRemoteLockedConnection(nodeId1)),
63
64
  connectionManager1.lockConnection(mockPeerDescriptor2, 'testLock')
@@ -68,8 +69,8 @@ describe('Connection Locking', () => {
68
69
  })
69
70
 
70
71
  it('Multiple services on the same peer', async () => {
71
- const nodeId1 = getNodeIdFromPeerDescriptor(mockPeerDescriptor1)
72
- const nodeId2 = getNodeIdFromPeerDescriptor(mockPeerDescriptor2)
72
+ const nodeId1 = toNodeId(mockPeerDescriptor1)
73
+ const nodeId2 = toNodeId(mockPeerDescriptor2)
73
74
  await Promise.all([
74
75
  waitForCondition(() => connectionManager2.hasRemoteLockedConnection(nodeId1)),
75
76
  connectionManager1.lockConnection(mockPeerDescriptor2, 'testLock1')
@@ -84,8 +85,8 @@ describe('Connection Locking', () => {
84
85
  })
85
86
 
86
87
  it('can unlock connections', async () => {
87
- const nodeId1 = getNodeIdFromPeerDescriptor(mockPeerDescriptor1)
88
- const nodeId2 = getNodeIdFromPeerDescriptor(mockPeerDescriptor2)
88
+ const nodeId1 = toNodeId(mockPeerDescriptor1)
89
+ const nodeId2 = toNodeId(mockPeerDescriptor2)
89
90
  await Promise.all([
90
91
  waitForCondition(() => connectionManager2.hasRemoteLockedConnection(nodeId1)),
91
92
  connectionManager1.lockConnection(mockPeerDescriptor2, 'testLock')
@@ -101,8 +102,8 @@ describe('Connection Locking', () => {
101
102
  })
102
103
 
103
104
  it('unlocking multiple services', async () => {
104
- const nodeId1 = getNodeIdFromPeerDescriptor(mockPeerDescriptor1)
105
- const nodeId2 = getNodeIdFromPeerDescriptor(mockPeerDescriptor2)
105
+ const nodeId1 = toNodeId(mockPeerDescriptor1)
106
+ const nodeId2 = toNodeId(mockPeerDescriptor2)
106
107
  await Promise.all([
107
108
  waitForCondition(() => connectionManager2.hasRemoteLockedConnection(nodeId1)),
108
109
  connectionManager1.lockConnection(mockPeerDescriptor2, 'testLock1')
@@ -124,8 +125,8 @@ describe('Connection Locking', () => {
124
125
  })
125
126
 
126
127
  it('maintains connection if both sides initially lock and then one end unlocks', async () => {
127
- const nodeId1 = getNodeIdFromPeerDescriptor(mockPeerDescriptor1)
128
- const nodeId2 = getNodeIdFromPeerDescriptor(mockPeerDescriptor2)
128
+ const nodeId1 = toNodeId(mockPeerDescriptor1)
129
+ const nodeId2 = toNodeId(mockPeerDescriptor2)
129
130
  await Promise.all([
130
131
  waitForCondition(() => connectionManager2.hasRemoteLockedConnection(nodeId1)),
131
132
  waitForCondition(() => connectionManager1.hasRemoteLockedConnection(nodeId2)),
@@ -149,8 +150,8 @@ describe('Connection Locking', () => {
149
150
  })
150
151
 
151
152
  it('unlocks after graceful disconnect', async () => {
152
- const nodeId1 = getNodeIdFromPeerDescriptor(mockPeerDescriptor1)
153
- const nodeId2 = getNodeIdFromPeerDescriptor(mockPeerDescriptor2)
153
+ const nodeId1 = toNodeId(mockPeerDescriptor1)
154
+ const nodeId2 = toNodeId(mockPeerDescriptor2)
154
155
  await Promise.all([
155
156
  waitForCondition(() => connectionManager2.hasRemoteLockedConnection(nodeId1)),
156
157
  waitForCondition(() => connectionManager1.hasRemoteLockedConnection(nodeId2)),
@@ -1,13 +1,13 @@
1
- import { Logger, MetricsContext, waitForEvent3 } from '@streamr/utils'
1
+ import { Logger, MetricsContext, waitForCondition, waitForEvent3 } from '@streamr/utils'
2
2
  import { MarkOptional } from 'ts-essentials'
3
3
  import { ConnectionManager } from '../../src/connection/ConnectionManager'
4
4
  import { DefaultConnectorFacade, DefaultConnectorFacadeOptions } from '../../src/connection/ConnectorFacade'
5
5
  import { Simulator } from '../../src/connection/simulator/Simulator'
6
6
  import { SimulatorTransport } from '../../src/connection/simulator/SimulatorTransport'
7
7
  import { createPeerDescriptor } from '../../src/helpers/createPeerDescriptor'
8
- import { createRandomDhtAddress, getRawFromDhtAddress } from '../../src/identifiers'
9
- import { ConnectivityResponse, Message, NodeType, PeerDescriptor } from '../../src/proto/packages/dht/protos/DhtRpc'
10
- import { RpcMessage } from '../../src/proto/packages/proto-rpc/protos/ProtoRpc'
8
+ import { randomDhtAddress, toDhtAddressRaw } from '../../src/identifiers'
9
+ import { ConnectivityResponse, Message, NodeType, PeerDescriptor } from '../../generated/packages/dht/protos/DhtRpc'
10
+ import { RpcMessage } from '../../generated/packages/proto-rpc/protos/ProtoRpc'
11
11
  import { TransportEvents } from '../../src/transport/ITransport'
12
12
  import { createMockPeerDescriptor } from '../utils/utils'
13
13
  import { getRandomRegion } from '../../src/connection/simulator/pings'
@@ -37,7 +37,8 @@ describe('ConnectionManager', () => {
37
37
  websocketServerEnableTls: false,
38
38
  ...opts
39
39
  }),
40
- metricsContext: new MetricsContext()
40
+ metricsContext: new MetricsContext(),
41
+ allowIncomingPrivateConnections: true
41
42
  })
42
43
  }
43
44
 
@@ -383,7 +384,7 @@ describe('ConnectionManager', () => {
383
384
  messageId: '1',
384
385
  targetDescriptor: {
385
386
  // This is not the correct nodeId of peerDescriptor2
386
- nodeId: getRawFromDhtAddress(createRandomDhtAddress()),
387
+ nodeId: toDhtAddressRaw(randomDhtAddress()),
387
388
  type: NodeType.NODEJS,
388
389
  websocket: peerDescriptor2.websocket
389
390
  },
@@ -469,4 +470,59 @@ describe('ConnectionManager', () => {
469
470
  await connectionManager2.stop()
470
471
  })
471
472
 
473
+ it('private connections', async () => {
474
+ const connectionManager1 = createConnectionManager({
475
+ transport: mockTransport,
476
+ websocketHost: '127.0.0.1',
477
+ websocketServerEnableTls: false,
478
+ websocketPortRange: { min: 10009, max: 10009 }
479
+ })
480
+
481
+ await connectionManager1.start()
482
+
483
+ const connectionManager2 = createConnectionManager({
484
+ transport: mockTransport,
485
+ websocketHost: '127.0.0.1',
486
+ websocketServerEnableTls: false,
487
+ websocketPortRange: { min: 10010, max: 100010 }
488
+ })
489
+
490
+ await connectionManager2.start()
491
+
492
+ const msg: Message = {
493
+ serviceId: SERVICE_ID,
494
+ messageId: '1',
495
+ body: {
496
+ oneofKind: 'rpcMessage',
497
+ rpcMessage: RpcMessage.create()
498
+ },
499
+ targetDescriptor: connectionManager1.getLocalPeerDescriptor()
500
+ }
501
+
502
+ const connectedPromise1 = new Promise<void>((resolve, _reject) => {
503
+ connectionManager1.on('connected', () => {
504
+ resolve()
505
+ })
506
+ })
507
+
508
+ const connectedPromise2 = new Promise<void>((resolve, _reject) => {
509
+ connectionManager2.on('connected', () => {
510
+ resolve()
511
+ })
512
+ })
513
+ await Promise.all([connectedPromise1, connectedPromise2, connectionManager2.send(msg)])
514
+
515
+ await connectionManager1.enablePrivateClientMode()
516
+ await waitForCondition(() => connectionManager2.getConnections().length === 0)
517
+ expect(connectionManager1.getConnections().length).toEqual(1)
518
+
519
+ await connectionManager1.disablePrivateClientMode()
520
+ await waitForCondition(() => connectionManager2.getConnections().length === 1)
521
+ expect(connectionManager1.getConnections().length).toEqual(1)
522
+
523
+ await connectionManager1.stop()
524
+ await connectionManager2.stop()
525
+
526
+ })
527
+
472
528
  })
@@ -30,7 +30,8 @@ describe('ConnectivityChecking', () => {
30
30
  websocketServerEnableTls: false,
31
31
  transport: new MockTransport()
32
32
  }),
33
- metricsContext: new MetricsContext()
33
+ metricsContext: new MetricsContext(),
34
+ allowIncomingPrivateConnections: false
34
35
  })
35
36
  await server.start()
36
37
  })
@@ -1,7 +1,7 @@
1
1
  import { LatencyType, Simulator } from '../../src/connection/simulator/Simulator'
2
2
  import { getRandomRegion } from '../../src/connection/simulator/pings'
3
3
  import { DhtNode } from '../../src/dht/DhtNode'
4
- import { getDhtAddressFromRaw } from '../../src/identifiers'
4
+ import { toDhtAddress } from '../../src/identifiers'
5
5
  import { createMockConnectionDhtNode, createMockPeerDescriptor } from '../utils/utils'
6
6
 
7
7
  const NUM_OF_NODES_PER_KBUCKET = 8
@@ -11,7 +11,7 @@ const runTest = async (latencyType: LatencyType) => {
11
11
  const entrypointDescriptor = createMockPeerDescriptor({
12
12
  region: getRandomRegion()
13
13
  })
14
- const entryPoint = await createMockConnectionDhtNode(simulator, getDhtAddressFromRaw(entrypointDescriptor.nodeId), NUM_OF_NODES_PER_KBUCKET)
14
+ const entryPoint = await createMockConnectionDhtNode(simulator, toDhtAddress(entrypointDescriptor.nodeId), NUM_OF_NODES_PER_KBUCKET)
15
15
  const nodes: DhtNode[] = []
16
16
  for (let i = 1; i < 100; i++) {
17
17
  const node = await createMockConnectionDhtNode(simulator, undefined, NUM_OF_NODES_PER_KBUCKET)
@@ -1,8 +1,8 @@
1
1
  import { waitForCondition } from '@streamr/utils'
2
2
  import { range, without } from 'lodash'
3
3
  import { DhtNodeRpcLocal } from '../../src/dht/DhtNodeRpcLocal'
4
- import { DhtNode, ListeningRpcCommunicator, getNodeIdFromPeerDescriptor } from '../../src/exports'
5
- import { ClosestPeersRequest, ClosestPeersResponse, PeerDescriptor, PingRequest, PingResponse } from '../../src/proto/packages/dht/protos/DhtRpc'
4
+ import { DhtNode, ListeningRpcCommunicator, toNodeId } from '../../src/exports'
5
+ import { ClosestPeersRequest, ClosestPeersResponse, PeerDescriptor, PingRequest, PingResponse } from '../../generated/packages/dht/protos/DhtRpc'
6
6
  import { FakeEnvironment } from '../utils/FakeTransport'
7
7
  import { createMockPeerDescriptor } from '../utils/utils'
8
8
 
@@ -59,8 +59,8 @@ describe('DhtNode', () => {
59
59
  await localNode.waitForNetworkConnectivity()
60
60
 
61
61
  await waitForCondition(() => localNode.getNeighborCount() === otherPeerDescriptors.length + 1)
62
- const expectedNodeIds = without(getAllPeerDescriptors(), localPeerDescriptor).map((n) => getNodeIdFromPeerDescriptor(n))
63
- const actualNodeIds = localNode.getClosestContacts().map((n) => getNodeIdFromPeerDescriptor(n))
62
+ const expectedNodeIds = without(getAllPeerDescriptors(), localPeerDescriptor).map((n) => toNodeId(n))
63
+ const actualNodeIds = localNode.getClosestContacts().map((n) => toNodeId(n))
64
64
  expect(actualNodeIds).toIncludeSameMembers(expectedNodeIds)
65
65
  })
66
66
  })
@@ -1,6 +1,6 @@
1
1
  import { LatencyType, Simulator } from '../../src/connection/simulator/Simulator'
2
2
  import { DhtNode } from '../../src/dht/DhtNode'
3
- import { createRandomDhtAddress, getDhtAddressFromRaw, getNodeIdFromPeerDescriptor } from '../../src/identifiers'
3
+ import { randomDhtAddress, toDhtAddress, toNodeId } from '../../src/identifiers'
4
4
  import { createMockDataEntry, expectEqualData } from '../utils/mock/mockDataEntry'
5
5
  import { createMockConnectionDhtNode } from '../utils/utils'
6
6
 
@@ -27,22 +27,22 @@ describe('DhtNodeExternalApi', () => {
27
27
 
28
28
  it('fetch data happy path', async () => {
29
29
  const entry = createMockDataEntry()
30
- await dhtNode1.storeDataToDht(getDhtAddressFromRaw(entry.key), entry.data!)
31
- const foundData = await remote.fetchDataFromDhtViaPeer(getDhtAddressFromRaw(entry.key), dhtNode1.getLocalPeerDescriptor())
30
+ await dhtNode1.storeDataToDht(toDhtAddress(entry.key), entry.data!)
31
+ const foundData = await remote.fetchDataFromDhtViaPeer(toDhtAddress(entry.key), dhtNode1.getLocalPeerDescriptor())
32
32
  expectEqualData(foundData[0], entry)
33
33
  })
34
34
 
35
35
  it('fetch data returns empty array if no data found', async () => {
36
- const foundData = await remote.fetchDataFromDhtViaPeer(createRandomDhtAddress(), dhtNode1.getLocalPeerDescriptor())
36
+ const foundData = await remote.fetchDataFromDhtViaPeer(randomDhtAddress(), dhtNode1.getLocalPeerDescriptor())
37
37
  expect(foundData).toEqual([])
38
38
  })
39
39
 
40
40
  it('external store data happy path', async () => {
41
41
  const entry = createMockDataEntry()
42
- await remote.storeDataToDhtViaPeer(getDhtAddressFromRaw(entry.key), entry.data!, dhtNode1.getLocalPeerDescriptor())
43
- const foundData = await remote.fetchDataFromDhtViaPeer(getDhtAddressFromRaw(entry.key), dhtNode1.getLocalPeerDescriptor())
42
+ await remote.storeDataToDhtViaPeer(toDhtAddress(entry.key), entry.data!, dhtNode1.getLocalPeerDescriptor())
43
+ const foundData = await remote.fetchDataFromDhtViaPeer(toDhtAddress(entry.key), dhtNode1.getLocalPeerDescriptor())
44
44
  expectEqualData(foundData[0], entry)
45
- expect(getDhtAddressFromRaw(foundData[0].creator)).toEqual(getNodeIdFromPeerDescriptor(remote.getLocalPeerDescriptor()))
45
+ expect(toDhtAddress(foundData[0].creator)).toEqual(toNodeId(remote.getLocalPeerDescriptor()))
46
46
  })
47
47
 
48
48
  })
@@ -6,10 +6,10 @@ import {
6
6
  ClosestPeersResponse,
7
7
  PingRequest,
8
8
  PingResponse
9
- } from '../../src/proto/packages/dht/protos/DhtRpc'
10
- import { RpcMessage } from '../../src/proto/packages/proto-rpc/protos/ProtoRpc'
9
+ } from '../../generated/packages/dht/protos/DhtRpc'
10
+ import { RpcMessage } from '../../generated/packages/proto-rpc/protos/ProtoRpc'
11
11
  import { DhtCallContext } from '../../src/rpc-protocol/DhtCallContext'
12
- import { getNodeIdFromPeerDescriptor } from '../../src/identifiers'
12
+ import { toNodeId } from '../../src/identifiers'
13
13
 
14
14
  const SERVICE_ID = 'test'
15
15
 
@@ -27,11 +27,11 @@ describe('DhtNodeRpcRemote', () => {
27
27
  serverRpcCommunicator = new RpcCommunicator()
28
28
  serverRpcCommunicator.registerRpcMethod(ClosestPeersRequest, ClosestPeersResponse, 'getClosestPeers', mockDhtRpc.getClosestPeers)
29
29
  serverRpcCommunicator.registerRpcMethod(PingRequest, PingResponse, 'ping', mockDhtRpc.ping)
30
- clientRpcCommunicator.on('outgoingMessage', (message: RpcMessage) => {
31
- serverRpcCommunicator.handleIncomingMessage(message)
30
+ clientRpcCommunicator.setOutgoingMessageListener(async (message: RpcMessage) => {
31
+ serverRpcCommunicator.handleIncomingMessage(message, new DhtCallContext())
32
32
  })
33
- serverRpcCommunicator.on('outgoingMessage', (message: RpcMessage) => {
34
- clientRpcCommunicator.handleIncomingMessage(message)
33
+ serverRpcCommunicator.setOutgoingMessageListener(async (message: RpcMessage) => {
34
+ clientRpcCommunicator.handleIncomingMessage(message, new DhtCallContext())
35
35
  })
36
36
  rpcRemote = new DhtNodeRpcRemote(clientPeerDescriptor, serverPeerDescriptor, SERVICE_ID, clientRpcCommunicator)
37
37
  })
@@ -47,7 +47,7 @@ describe('DhtNodeRpcRemote', () => {
47
47
  })
48
48
 
49
49
  it('getClosestPeers happy path', async () => {
50
- const neighbors = await rpcRemote.getClosestPeers(getNodeIdFromPeerDescriptor(clientPeerDescriptor))
50
+ const neighbors = await rpcRemote.getClosestPeers(toNodeId(clientPeerDescriptor))
51
51
  expect(neighbors.length).toEqual(createMockPeers().length)
52
52
  })
53
53
 
@@ -59,7 +59,7 @@ describe('DhtNodeRpcRemote', () => {
59
59
 
60
60
  it('getClosestPeers error path', async () => {
61
61
  serverRpcCommunicator.registerRpcMethod(ClosestPeersRequest, ClosestPeersResponse, 'getClosestPeers', mockDhtRpc.throwGetClosestPeersError)
62
- await expect(rpcRemote.getClosestPeers(getNodeIdFromPeerDescriptor(clientPeerDescriptor)))
62
+ await expect(rpcRemote.getClosestPeers(toNodeId(clientPeerDescriptor)))
63
63
  .rejects.toThrow('Closest peers error')
64
64
  })
65
65
 
@@ -1,10 +1,10 @@
1
1
  import { createMockDhtRpc, createMockPeerDescriptor, createMockPeers } from '../utils/utils'
2
2
  import { ProtoRpcClient, RpcCommunicator, RpcError, toProtoRpcClient } from '@streamr/proto-rpc'
3
- import { DhtNodeRpcClient } from '../../src/proto/packages/dht/protos/DhtRpc.client'
4
- import { ClosestPeersRequest, ClosestPeersResponse } from '../../src/proto/packages/dht/protos/DhtRpc'
3
+ import { DhtNodeRpcClient } from '../../generated/packages/dht/protos/DhtRpc.client'
4
+ import { ClosestPeersRequest, ClosestPeersResponse } from '../../generated/packages/dht/protos/DhtRpc'
5
5
  import { wait } from '@streamr/utils'
6
- import { RpcMessage } from '../../src/proto/packages/proto-rpc/protos/ProtoRpc'
7
- import { getNodeIdFromPeerDescriptor } from '../../src/identifiers'
6
+ import { RpcMessage } from '../../generated/packages/proto-rpc/protos/ProtoRpc'
7
+ import { toNodeId } from '../../src/identifiers'
8
8
  import { DhtCallContext } from '../../src/rpc-protocol/DhtCallContext'
9
9
 
10
10
  describe('DhtRpc', () => {
@@ -18,8 +18,8 @@ describe('DhtRpc', () => {
18
18
  const neighbors = createMockPeers()
19
19
  const mockDhtRpc = createMockDhtRpc(neighbors)
20
20
 
21
- const outgoingListener2 = (message: RpcMessage) => {
22
- rpcCommunicator1.handleIncomingMessage(message)
21
+ const outgoingListener2 = async (message: RpcMessage) => {
22
+ rpcCommunicator1.handleIncomingMessage(message, new DhtCallContext())
23
23
  }
24
24
 
25
25
  beforeEach(() => {
@@ -29,11 +29,11 @@ describe('DhtRpc', () => {
29
29
  rpcCommunicator2 = new RpcCommunicator()
30
30
  rpcCommunicator2.registerRpcMethod(ClosestPeersRequest, ClosestPeersResponse, 'getClosestPeers', mockDhtRpc.getClosestPeers)
31
31
 
32
- rpcCommunicator1.on('outgoingMessage', (message: RpcMessage) => {
33
- rpcCommunicator2.handleIncomingMessage(message)
32
+ rpcCommunicator1.setOutgoingMessageListener(async (message: RpcMessage) => {
33
+ rpcCommunicator2.handleIncomingMessage(message, new DhtCallContext())
34
34
  })
35
35
 
36
- rpcCommunicator2.on('outgoingMessage', outgoingListener2)
36
+ rpcCommunicator2.setOutgoingMessageListener(outgoingListener2)
37
37
 
38
38
  client1 = toProtoRpcClient(new DhtNodeRpcClient(rpcCommunicator1.getRpcClientTransport()))
39
39
  client2 = toProtoRpcClient(new DhtNodeRpcClient(rpcCommunicator1.getRpcClientTransport()))
@@ -53,7 +53,7 @@ describe('DhtRpc', () => {
53
53
  }
54
54
  )
55
55
  const res1 = await response1
56
- expect(res1.peers.map((p) => getNodeIdFromPeerDescriptor(p))).toEqual(neighbors.map((n) => getNodeIdFromPeerDescriptor(n)))
56
+ expect(res1.peers.map((p) => toNodeId(p))).toEqual(neighbors.map((n) => toNodeId(n)))
57
57
 
58
58
  const response2 = client2.getClosestPeers(
59
59
  { nodeId: peerDescriptor2.nodeId, requestId: '1' },
@@ -63,12 +63,11 @@ describe('DhtRpc', () => {
63
63
  }
64
64
  )
65
65
  const res2 = await response2
66
- expect(res2.peers.map((p) => getNodeIdFromPeerDescriptor(p))).toEqual(neighbors.map((n) => getNodeIdFromPeerDescriptor(n)))
66
+ expect(res2.peers.map((p) => toNodeId(p))).toEqual(neighbors.map((n) => toNodeId(n)))
67
67
  })
68
68
 
69
69
  it('Default RPC timeout, client side', async () => {
70
- rpcCommunicator2.off('outgoingMessage', outgoingListener2)
71
- rpcCommunicator2.on('outgoingMessage', async () => {
70
+ rpcCommunicator2.setOutgoingMessageListener(async () => {
72
71
  await wait(3000)
73
72
  })
74
73
  const response2 = client2.getClosestPeers(
@@ -1,8 +1,8 @@
1
1
  import { LatencyType, Simulator } from '../../src/connection/simulator/Simulator'
2
2
  import { DhtNode } from '../../src/dht/DhtNode'
3
- import { PeerDescriptor } from '../../src/proto/packages/dht/protos/DhtRpc'
3
+ import { PeerDescriptor } from '../../generated/packages/dht/protos/DhtRpc'
4
4
  import { createMockConnectionDhtNode, waitForStableTopology } from '../utils/utils'
5
- import { getDhtAddressFromRaw, getNodeIdFromPeerDescriptor, getRawFromDhtAddress } from '../../src/identifiers'
5
+ import { toDhtAddress, toNodeId, toDhtAddressRaw } from '../../src/identifiers'
6
6
 
7
7
  const NUM_NODES = 100
8
8
  const K = 8
@@ -36,10 +36,10 @@ describe('Find correctness', () => {
36
36
  })
37
37
 
38
38
  it('Entrypoint can find a node from the network (exact match)', async () => {
39
- const targetId = getRawFromDhtAddress(nodes[45].getNodeId())
40
- const closestNodes = await entryPoint.findClosestNodesFromDht(getDhtAddressFromRaw(targetId))
39
+ const targetId = toDhtAddressRaw(nodes[45].getNodeId())
40
+ const closestNodes = await entryPoint.findClosestNodesFromDht(toDhtAddress(targetId))
41
41
  expect(closestNodes.length).toBeGreaterThanOrEqual(5)
42
- expect(getDhtAddressFromRaw(targetId)).toEqual(getNodeIdFromPeerDescriptor(closestNodes[0]))
42
+ expect(toDhtAddress(targetId)).toEqual(toNodeId(closestNodes[0]))
43
43
  }, 90000)
44
44
 
45
45
  })
@@ -43,7 +43,8 @@ describe('ConnectivityChecking', () => {
43
43
  transport: new MockTransport(),
44
44
  geoIpDatabaseFolder: dbPath
45
45
  }),
46
- metricsContext: new MetricsContext()
46
+ metricsContext: new MetricsContext(),
47
+ allowIncomingPrivateConnections: false
47
48
  })
48
49
  await server.start()
49
50
  mock = jest.spyOn(WebsocketServerConnection.prototype, 'getRemoteIpAddress').mockImplementation(() => testIp)
@@ -1,6 +1,6 @@
1
1
  import { Simulator } from '../../src/connection/simulator/Simulator'
2
2
  import { DhtNode } from '../../src/dht/DhtNode'
3
- import { getDhtAddressFromRaw } from '../../src/identifiers'
3
+ import { toDhtAddress } from '../../src/identifiers'
4
4
  import { createMockConnectionDhtNode, createMockConnectionLayer1Node, createMockPeerDescriptor } from '../utils/utils'
5
5
 
6
6
  const NODE_COUNT = 48
@@ -16,7 +16,7 @@ describe('Layer1', () => {
16
16
 
17
17
  beforeEach(async () => {
18
18
  simulator = new Simulator()
19
- layer0EntryPoint = await createMockConnectionDhtNode(simulator, getDhtAddressFromRaw(entryPoint0Descriptor.nodeId))
19
+ layer0EntryPoint = await createMockConnectionDhtNode(simulator, toDhtAddress(entryPoint0Descriptor.nodeId))
20
20
  await layer0EntryPoint.joinDht([entryPoint0Descriptor])
21
21
 
22
22
  nodes = []
@@ -2,7 +2,7 @@ import { Logger } from '@streamr/utils'
2
2
  import { Simulator } from '../../src/connection/simulator/Simulator'
3
3
  import { DhtNode } from '../../src/dht/DhtNode'
4
4
  import { createMockConnectionDhtNode, createMockConnectionLayer1Node } from '../utils/utils'
5
- import { createRandomDhtAddress } from '../../src/identifiers'
5
+ import { randomDhtAddress } from '../../src/identifiers'
6
6
 
7
7
  const logger = new Logger(module)
8
8
 
@@ -22,11 +22,11 @@ describe('Layer 1 on Layer 0 with mocked connections', () => {
22
22
 
23
23
  beforeEach(async () => {
24
24
 
25
- layer0EntryPoint = await createMockConnectionDhtNode(simulator, createRandomDhtAddress())
26
- layer0Node1 = await createMockConnectionDhtNode(simulator, createRandomDhtAddress())
27
- layer0Node2 = await createMockConnectionDhtNode(simulator, createRandomDhtAddress())
28
- layer0Node3 = await createMockConnectionDhtNode(simulator, createRandomDhtAddress())
29
- layer0Node4 = await createMockConnectionDhtNode(simulator, createRandomDhtAddress())
25
+ layer0EntryPoint = await createMockConnectionDhtNode(simulator, randomDhtAddress())
26
+ layer0Node1 = await createMockConnectionDhtNode(simulator, randomDhtAddress())
27
+ layer0Node2 = await createMockConnectionDhtNode(simulator, randomDhtAddress())
28
+ layer0Node3 = await createMockConnectionDhtNode(simulator, randomDhtAddress())
29
+ layer0Node4 = await createMockConnectionDhtNode(simulator, randomDhtAddress())
30
30
 
31
31
  layer1EntryPoint = await createMockConnectionLayer1Node(layer0EntryPoint)
32
32
 
@@ -1,6 +1,6 @@
1
1
  import { LatencyType, Simulator } from '../../src/connection/simulator/Simulator'
2
2
  import { DhtNode } from '../../src/dht/DhtNode'
3
- import { PeerDescriptor } from '../../src/proto/packages/dht/protos/DhtRpc'
3
+ import { PeerDescriptor } from '../../generated/packages/dht/protos/DhtRpc'
4
4
  import { createMockConnectionDhtNode } from '../utils/utils'
5
5
 
6
6
  describe('multiple entry point joining', () => {
@@ -1,12 +1,11 @@
1
- /* eslint-disable no-console */
2
1
  import { LatencyType, Simulator } from '../../src/connection/simulator/Simulator'
3
2
  import { DhtNode } from '../../src/dht/DhtNode'
4
3
  import { createMockConnectionDhtNode, waitForStableTopology } from '../utils/utils'
5
4
  import { SortedContactList } from '../../src/dht/contact/SortedContactList'
6
5
  import { createMockDataEntry, expectEqualData } from '../utils/mock/mockDataEntry'
7
- import { DhtAddress, createRandomDhtAddress, getDhtAddressFromRaw, getNodeIdFromPeerDescriptor } from '../../src/identifiers'
6
+ import { DhtAddress, randomDhtAddress, toDhtAddress, toNodeId } from '../../src/identifiers'
8
7
  import { sample } from 'lodash'
9
- import { DataEntry, PeerDescriptor } from '../../src/proto/packages/dht/protos/DhtRpc'
8
+ import { DataEntry, PeerDescriptor } from '../../generated/packages/dht/protos/DhtRpc'
10
9
 
11
10
  const DATA = createMockDataEntry()
12
11
  const NUM_NODES = 100
@@ -17,7 +16,7 @@ const ENTRY_POINT_INDEX = 0
17
16
  const getDataEntries = (node: DhtNode): DataEntry[] => {
18
17
  // @ts-expect-error private field
19
18
  const store = node.localDataStore
20
- return Array.from(store.values(getDhtAddressFromRaw(DATA.key)))
19
+ return Array.from(store.values(toDhtAddress(DATA.key)))
21
20
  }
22
21
 
23
22
  describe('Replicate data from node to node in DHT', () => {
@@ -27,7 +26,7 @@ describe('Replicate data from node to node in DHT', () => {
27
26
  const simulator = new Simulator(LatencyType.FIXED, 20)
28
27
 
29
28
  beforeEach(async () => {
30
- const entryPoint = await createMockConnectionDhtNode(simulator, createRandomDhtAddress(), K, MAX_CONNECTIONS)
29
+ const entryPoint = await createMockConnectionDhtNode(simulator, randomDhtAddress(), K, MAX_CONNECTIONS)
31
30
  entryPointDescriptor = entryPoint.getLocalPeerDescriptor()
32
31
  await entryPoint.joinDht([entryPointDescriptor])
33
32
  nodes = []
@@ -35,7 +34,7 @@ describe('Replicate data from node to node in DHT', () => {
35
34
  for (let i = 1; i < NUM_NODES; i++) {
36
35
  const node = await createMockConnectionDhtNode(
37
36
  simulator,
38
- createRandomDhtAddress(),
37
+ randomDhtAddress(),
39
38
  K,
40
39
  MAX_CONNECTIONS
41
40
  )
@@ -54,14 +53,14 @@ describe('Replicate data from node to node in DHT', () => {
54
53
  it('Data replicates to the closest node no matter where it is stored', async () => {
55
54
  // calculate offline which node is closest to the data
56
55
  const sortedList = new SortedContactList<DhtNode>({
57
- referenceId: getDhtAddressFromRaw(DATA.key),
56
+ referenceId: toDhtAddress(DATA.key),
58
57
  maxSize: 10000,
59
58
  allowToContainReferenceId: true
60
59
  })
61
60
  nodes.forEach((node) => sortedList.addContact(node))
62
61
 
63
62
  const closest = sortedList.getClosestContacts()
64
- const successfulStorers = await nodes[0].storeDataToDht(getDhtAddressFromRaw(DATA.key), DATA.data!)
63
+ const successfulStorers = await nodes[0].storeDataToDht(toDhtAddress(DATA.key), DATA.data!)
65
64
  expect(successfulStorers.length).toBe(1)
66
65
 
67
66
  await Promise.all(
@@ -89,16 +88,16 @@ describe('Replicate data from node to node in DHT', () => {
89
88
  await waitForStableTopology(nodes)
90
89
 
91
90
  const randomIndex = Math.floor(Math.random() * nodes.length)
92
- const storerDescriptors = await nodes[randomIndex].storeDataToDht(getDhtAddressFromRaw(DATA.key), DATA.data!)
91
+ const storerDescriptors = await nodes[randomIndex].storeDataToDht(toDhtAddress(DATA.key), DATA.data!)
93
92
  const stoppedNodeIds: DhtAddress[] = []
94
93
  await Promise.all(storerDescriptors.map(async (storerDescriptor) => {
95
- const storer = nodes.find((n) => n.getNodeId() === getNodeIdFromPeerDescriptor(storerDescriptor))!
94
+ const storer = nodes.find((n) => n.getNodeId() === toNodeId(storerDescriptor))!
96
95
  await storer.stop()
97
96
  stoppedNodeIds.push(storer.getNodeId())
98
97
  }))
99
98
 
100
99
  const randomNonStoppedNode = sample(nodes.filter((n) => !stoppedNodeIds.includes(n.getNodeId())))!
101
- const data = await randomNonStoppedNode.fetchDataFromDht(getDhtAddressFromRaw(DATA.key))
100
+ const data = await randomNonStoppedNode.fetchDataFromDht(toDhtAddress(DATA.key))
102
101
  expect(data).toHaveLength(1)
103
102
  expectEqualData(data[0], DATA)
104
103
  }, 180000)
@@ -1,13 +1,13 @@
1
1
  import { DhtNode, Events as DhtNodeEvents } from '../../src/dht/DhtNode'
2
- import { Message, NodeType, PeerDescriptor, RouteMessageWrapper } from '../../src/proto/packages/dht/protos/DhtRpc'
3
- import { RpcMessage } from '../../src/proto/packages/proto-rpc/protos/ProtoRpc'
2
+ import { Message, NodeType, PeerDescriptor, RouteMessageWrapper } from '../../generated/packages/dht/protos/DhtRpc'
3
+ import { RpcMessage } from '../../generated/packages/proto-rpc/protos/ProtoRpc'
4
4
  import { Logger, runAndWaitForEvents3, waitForCondition } from '@streamr/utils'
5
5
  import { createMockConnectionDhtNode, createWrappedClosestPeersRequest } from '../utils/utils'
6
6
  import { Simulator } from '../../src/connection/simulator/Simulator'
7
7
  import { v4 } from 'uuid'
8
- import { Any } from '../../src/proto/google/protobuf/any'
8
+ import { Any } from '../../generated/google/protobuf/any'
9
9
  import { RoutingMode } from '../../src/dht/routing/RoutingSession'
10
- import { DhtAddress, createRandomDhtAddress, getRawFromDhtAddress } from '../../src/identifiers'
10
+ import { DhtAddress, randomDhtAddress, toDhtAddressRaw } from '../../src/identifiers'
11
11
 
12
12
  const logger = new Logger(module)
13
13
 
@@ -25,18 +25,18 @@ describe('Route Message With Mock Connections', () => {
25
25
  beforeEach(async () => {
26
26
  routerNodes = []
27
27
  simulator = new Simulator()
28
- entryPoint = await createMockConnectionDhtNode(simulator, createRandomDhtAddress())
28
+ entryPoint = await createMockConnectionDhtNode(simulator, randomDhtAddress())
29
29
 
30
30
  entryPointDescriptor = {
31
- nodeId: getRawFromDhtAddress(entryPoint.getNodeId()),
31
+ nodeId: toDhtAddressRaw(entryPoint.getNodeId()),
32
32
  type: NodeType.NODEJS
33
33
  }
34
34
 
35
- sourceNode = await createMockConnectionDhtNode(simulator, createRandomDhtAddress())
36
- destinationNode = await createMockConnectionDhtNode(simulator, createRandomDhtAddress())
35
+ sourceNode = await createMockConnectionDhtNode(simulator, randomDhtAddress())
36
+ destinationNode = await createMockConnectionDhtNode(simulator, randomDhtAddress())
37
37
 
38
38
  for (let i = 1; i < NUM_NODES; i++) {
39
- const node = await createMockConnectionDhtNode(simulator, createRandomDhtAddress())
39
+ const node = await createMockConnectionDhtNode(simulator, randomDhtAddress())
40
40
  routerNodes.push(node)
41
41
  }
42
42
 
@@ -1,8 +1,8 @@
1
1
  import { RpcCommunicator } from '@streamr/proto-rpc'
2
2
  import { RouterRpcRemote } from '../../src/dht/routing/RouterRpcRemote'
3
- import { Message, RouteMessageAck, RouteMessageWrapper } from '../../src/proto/packages/dht/protos/DhtRpc'
4
- import { RouterRpcClient } from '../../src/proto/packages/dht/protos/DhtRpc.client'
5
- import { RpcMessage } from '../../src/proto/packages/proto-rpc/protos/ProtoRpc'
3
+ import { Message, RouteMessageAck, RouteMessageWrapper } from '../../generated/packages/dht/protos/DhtRpc'
4
+ import { RouterRpcClient } from '../../generated/packages/dht/protos/DhtRpc.client'
5
+ import { RpcMessage } from '../../generated/packages/proto-rpc/protos/ProtoRpc'
6
6
  import { createMockPeerDescriptor, createWrappedClosestPeersRequest, mockRouterRpc } from '../utils/utils'
7
7
  import { DhtCallContext } from '../../src/rpc-protocol/DhtCallContext'
8
8
 
@@ -20,11 +20,11 @@ describe('RemoteRouter', () => {
20
20
  clientRpcCommunicator = new RpcCommunicator()
21
21
  serverRpcCommunicator = new RpcCommunicator()
22
22
  serverRpcCommunicator.registerRpcMethod(RouteMessageWrapper, RouteMessageAck, 'routeMessage', mockRouterRpc.routeMessage)
23
- clientRpcCommunicator.on('outgoingMessage', (message: RpcMessage) => {
24
- serverRpcCommunicator.handleIncomingMessage(message)
23
+ clientRpcCommunicator.setOutgoingMessageListener(async (message: RpcMessage) => {
24
+ serverRpcCommunicator.handleIncomingMessage(message, new DhtCallContext())
25
25
  })
26
- serverRpcCommunicator.on('outgoingMessage', (message: RpcMessage) => {
27
- clientRpcCommunicator.handleIncomingMessage(message)
26
+ serverRpcCommunicator.setOutgoingMessageListener(async (message: RpcMessage) => {
27
+ clientRpcCommunicator.handleIncomingMessage(message, new DhtCallContext())
28
28
  })
29
29
  remoteRouter = new RouterRpcRemote(clientPeerDescriptor, serverPeerDescriptor, clientRpcCommunicator, RouterRpcClient)
30
30
  })