@streamr/dht 100.0.0-testnet-one.4 → 100.0.0-testnet-two.1

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 (321) hide show
  1. package/dist/package.json +66 -0
  2. package/dist/src/connection/ConnectionLockHandler.d.ts +11 -11
  3. package/dist/src/connection/ConnectionLockHandler.js.map +1 -1
  4. package/dist/src/connection/ConnectionLockRpcLocal.d.ts +3 -3
  5. package/dist/src/connection/ConnectionLockRpcLocal.js +4 -4
  6. package/dist/src/connection/ConnectionLockRpcLocal.js.map +1 -1
  7. package/dist/src/connection/ConnectionLockRpcRemote.d.ts +3 -5
  8. package/dist/src/connection/ConnectionLockRpcRemote.js +4 -7
  9. package/dist/src/connection/ConnectionLockRpcRemote.js.map +1 -1
  10. package/dist/src/connection/ConnectionManager.d.ts +4 -6
  11. package/dist/src/connection/ConnectionManager.js +48 -46
  12. package/dist/src/connection/ConnectionManager.js.map +1 -1
  13. package/dist/src/connection/ConnectorFacade.d.ts +2 -2
  14. package/dist/src/connection/ConnectorFacade.js +2 -1
  15. package/dist/src/connection/ConnectorFacade.js.map +1 -1
  16. package/dist/src/connection/Handshaker.d.ts +1 -1
  17. package/dist/src/connection/Handshaker.js +14 -5
  18. package/dist/src/connection/Handshaker.js.map +1 -1
  19. package/dist/src/connection/ManagedConnection.d.ts +4 -7
  20. package/dist/src/connection/ManagedConnection.js +9 -13
  21. package/dist/src/connection/ManagedConnection.js.map +1 -1
  22. package/dist/src/connection/connectivityChecker.js +1 -0
  23. package/dist/src/connection/connectivityChecker.js.map +1 -1
  24. package/dist/src/connection/simulator/Simulator.d.ts +0 -3
  25. package/dist/src/connection/simulator/Simulator.js +3 -51
  26. package/dist/src/connection/simulator/Simulator.js.map +1 -1
  27. package/dist/src/connection/simulator/SimulatorConnector.js +5 -5
  28. package/dist/src/connection/simulator/SimulatorConnector.js.map +1 -1
  29. package/dist/src/connection/webrtc/NodeWebrtcConnection.js +2 -2
  30. package/dist/src/connection/webrtc/NodeWebrtcConnection.js.map +1 -1
  31. package/dist/src/connection/webrtc/WebrtcConnector.d.ts +0 -1
  32. package/dist/src/connection/webrtc/WebrtcConnector.js +7 -9
  33. package/dist/src/connection/webrtc/WebrtcConnector.js.map +1 -1
  34. package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.d.ts +2 -2
  35. package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js +21 -14
  36. package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js.map +1 -1
  37. package/dist/src/connection/webrtc/WebrtcConnectorRpcRemote.d.ts +2 -5
  38. package/dist/src/connection/webrtc/WebrtcConnectorRpcRemote.js +1 -4
  39. package/dist/src/connection/webrtc/WebrtcConnectorRpcRemote.js.map +1 -1
  40. package/dist/src/connection/websocket/AutoCertifierClientFacade.d.ts +1 -2
  41. package/dist/src/connection/websocket/AutoCertifierClientFacade.js +3 -4
  42. package/dist/src/connection/websocket/AutoCertifierClientFacade.js.map +1 -1
  43. package/dist/src/connection/websocket/ClientWebsocket.js.map +1 -1
  44. package/dist/src/connection/websocket/WebsocketConnector.d.ts +2 -7
  45. package/dist/src/connection/websocket/WebsocketConnector.js +48 -44
  46. package/dist/src/connection/websocket/WebsocketConnector.js.map +1 -1
  47. package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.d.ts +3 -2
  48. package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.js +8 -10
  49. package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.js.map +1 -1
  50. package/dist/src/connection/websocket/WebsocketConnectorRpcRemote.d.ts +3 -6
  51. package/dist/src/connection/websocket/WebsocketConnectorRpcRemote.js +0 -3
  52. package/dist/src/connection/websocket/WebsocketConnectorRpcRemote.js.map +1 -1
  53. package/dist/src/connection/websocket/WebsocketServer.d.ts +1 -4
  54. package/dist/src/connection/websocket/WebsocketServer.js +11 -12
  55. package/dist/src/connection/websocket/WebsocketServer.js.map +1 -1
  56. package/dist/src/dht/DhtNode.d.ts +10 -13
  57. package/dist/src/dht/DhtNode.js +41 -54
  58. package/dist/src/dht/DhtNode.js.map +1 -1
  59. package/dist/src/dht/DhtNodeRpcLocal.d.ts +2 -3
  60. package/dist/src/dht/DhtNodeRpcLocal.js +1 -1
  61. package/dist/src/dht/DhtNodeRpcLocal.js.map +1 -1
  62. package/dist/src/dht/DhtNodeRpcRemote.d.ts +7 -7
  63. package/dist/src/dht/DhtNodeRpcRemote.js +9 -11
  64. package/dist/src/dht/DhtNodeRpcRemote.js.map +1 -1
  65. package/dist/src/dht/ExternalApiRpcLocal.d.ts +5 -4
  66. package/dist/src/dht/ExternalApiRpcLocal.js +3 -2
  67. package/dist/src/dht/ExternalApiRpcLocal.js.map +1 -1
  68. package/dist/src/dht/ExternalApiRpcRemote.d.ts +2 -2
  69. package/dist/src/dht/ExternalApiRpcRemote.js +2 -0
  70. package/dist/src/dht/ExternalApiRpcRemote.js.map +1 -1
  71. package/dist/src/dht/PeerManager.d.ts +13 -14
  72. package/dist/src/dht/PeerManager.js +45 -60
  73. package/dist/src/dht/PeerManager.js.map +1 -1
  74. package/dist/src/dht/contact/Contact.d.ts +2 -2
  75. package/dist/src/dht/contact/Contact.js +2 -2
  76. package/dist/src/dht/contact/Contact.js.map +1 -1
  77. package/dist/src/dht/contact/ContactList.d.ts +7 -7
  78. package/dist/src/dht/contact/ContactList.js +3 -3
  79. package/dist/src/dht/contact/ContactList.js.map +1 -1
  80. package/dist/src/dht/contact/RandomContactList.d.ts +4 -4
  81. package/dist/src/dht/contact/RandomContactList.js +12 -11
  82. package/dist/src/dht/contact/RandomContactList.js.map +1 -1
  83. package/dist/src/dht/contact/RpcRemote.d.ts +7 -4
  84. package/dist/src/dht/contact/RpcRemote.js +5 -2
  85. package/dist/src/dht/contact/RpcRemote.js.map +1 -1
  86. package/dist/src/dht/contact/SortedContactList.d.ts +13 -13
  87. package/dist/src/dht/contact/SortedContactList.js +33 -29
  88. package/dist/src/dht/contact/SortedContactList.js.map +1 -1
  89. package/dist/src/dht/discovery/DiscoverySession.d.ts +2 -4
  90. package/dist/src/dht/discovery/DiscoverySession.js +19 -23
  91. package/dist/src/dht/discovery/DiscoverySession.js.map +1 -1
  92. package/dist/src/dht/discovery/PeerDiscovery.d.ts +2 -5
  93. package/dist/src/dht/discovery/PeerDiscovery.js +12 -20
  94. package/dist/src/dht/discovery/PeerDiscovery.js.map +1 -1
  95. package/dist/src/dht/recursive-operation/RecursiveOperationManager.d.ts +36 -0
  96. package/dist/src/dht/recursive-operation/RecursiveOperationManager.js +165 -0
  97. package/dist/src/dht/recursive-operation/RecursiveOperationManager.js.map +1 -0
  98. package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.d.ts +14 -0
  99. package/dist/src/dht/{find/FindRpcLocal.js → recursive-operation/RecursiveOperationRpcLocal.js} +7 -7
  100. package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.js.map +1 -0
  101. package/dist/src/dht/recursive-operation/RecursiveOperationRpcRemote.d.ts +6 -0
  102. package/dist/src/dht/{routing/FindRpcRemote.js → recursive-operation/RecursiveOperationRpcRemote.js} +11 -11
  103. package/dist/src/dht/recursive-operation/RecursiveOperationRpcRemote.js.map +1 -0
  104. package/dist/src/dht/recursive-operation/RecursiveOperationSession.d.ts +42 -0
  105. package/dist/src/dht/recursive-operation/RecursiveOperationSession.js +182 -0
  106. package/dist/src/dht/recursive-operation/RecursiveOperationSession.js.map +1 -0
  107. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.d.ts +12 -0
  108. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.js +17 -0
  109. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.js.map +1 -0
  110. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcRemote.d.ts +6 -0
  111. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcRemote.js +21 -0
  112. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcRemote.js.map +1 -0
  113. package/dist/src/dht/routing/Router.d.ts +4 -19
  114. package/dist/src/dht/routing/Router.js +41 -33
  115. package/dist/src/dht/routing/Router.js.map +1 -1
  116. package/dist/src/dht/routing/RouterRpcLocal.js +6 -5
  117. package/dist/src/dht/routing/RouterRpcLocal.js.map +1 -1
  118. package/dist/src/dht/routing/RouterRpcRemote.d.ts +2 -2
  119. package/dist/src/dht/routing/RouterRpcRemote.js +7 -7
  120. package/dist/src/dht/routing/RouterRpcRemote.js.map +1 -1
  121. package/dist/src/dht/routing/RoutingSession.d.ts +20 -16
  122. package/dist/src/dht/routing/RoutingSession.js +37 -45
  123. package/dist/src/dht/routing/RoutingSession.js.map +1 -1
  124. package/dist/src/dht/store/LocalDataStore.d.ts +11 -13
  125. package/dist/src/dht/store/LocalDataStore.js +36 -56
  126. package/dist/src/dht/store/LocalDataStore.js.map +1 -1
  127. package/dist/src/dht/store/StoreManager.d.ts +33 -0
  128. package/dist/src/dht/store/StoreManager.js +186 -0
  129. package/dist/src/dht/store/StoreManager.js.map +1 -0
  130. package/dist/src/dht/store/StoreRpcLocal.d.ts +8 -40
  131. package/dist/src/dht/store/StoreRpcLocal.js +13 -229
  132. package/dist/src/dht/store/StoreRpcLocal.js.map +1 -1
  133. package/dist/src/dht/store/StoreRpcRemote.d.ts +5 -5
  134. package/dist/src/dht/store/StoreRpcRemote.js +4 -5
  135. package/dist/src/dht/store/StoreRpcRemote.js.map +1 -1
  136. package/dist/src/exports.d.ts +2 -0
  137. package/dist/src/exports.js.map +1 -1
  138. package/dist/src/helpers/MapWithTtl.d.ts +14 -0
  139. package/dist/src/helpers/MapWithTtl.js +59 -0
  140. package/dist/src/helpers/MapWithTtl.js.map +1 -0
  141. package/dist/src/helpers/PeerID.d.ts +2 -0
  142. package/dist/src/helpers/PeerID.js +4 -0
  143. package/dist/src/helpers/PeerID.js.map +1 -1
  144. package/dist/src/helpers/nodeId.d.ts +5 -0
  145. package/dist/src/helpers/nodeId.js +18 -1
  146. package/dist/src/helpers/nodeId.js.map +1 -1
  147. package/dist/src/helpers/peerIdFromPeerDescriptor.d.ts +2 -1
  148. package/dist/src/helpers/peerIdFromPeerDescriptor.js +2 -1
  149. package/dist/src/helpers/peerIdFromPeerDescriptor.js.map +1 -1
  150. package/dist/src/helpers/protoClasses.js +2 -3
  151. package/dist/src/helpers/protoClasses.js.map +1 -1
  152. package/dist/src/helpers/versionCompatibility.d.ts +2 -0
  153. package/dist/src/helpers/versionCompatibility.js +18 -0
  154. package/dist/src/helpers/versionCompatibility.js.map +1 -0
  155. package/dist/src/proto/packages/dht/protos/DhtRpc.client.d.ts +21 -22
  156. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js +18 -18
  157. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js.map +1 -1
  158. package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +49 -65
  159. package/dist/src/proto/packages/dht/protos/DhtRpc.js +43 -58
  160. package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
  161. package/dist/src/proto/packages/dht/protos/DhtRpc.server.d.ts +11 -12
  162. package/dist/src/rpc-protocol/DhtCallContext.d.ts +2 -1
  163. package/dist/src/rpc-protocol/DhtCallContext.js.map +1 -1
  164. package/dist/src/rpc-protocol/DhtRpcOptions.d.ts +2 -1
  165. package/dist/src/transport/ITransport.d.ts +9 -1
  166. package/dist/src/transport/ITransport.js +5 -0
  167. package/dist/src/transport/ITransport.js.map +1 -1
  168. package/dist/src/transport/ListeningRpcCommunicator.js +1 -1
  169. package/dist/src/transport/ListeningRpcCommunicator.js.map +1 -1
  170. package/dist/src/transport/RoutingRpcCommunicator.d.ts +2 -1
  171. package/dist/src/transport/RoutingRpcCommunicator.js +16 -11
  172. package/dist/src/transport/RoutingRpcCommunicator.js.map +1 -1
  173. package/jest.config.js +4 -1
  174. package/karma-setup.js +2 -0
  175. package/karma.config.js +11 -7
  176. package/package.json +6 -7
  177. package/protos/DhtRpc.proto +20 -24
  178. package/src/connection/ConnectionLockHandler.ts +15 -15
  179. package/src/connection/ConnectionLockRpcLocal.ts +8 -9
  180. package/src/connection/ConnectionLockRpcRemote.ts +7 -16
  181. package/src/connection/ConnectionManager.ts +58 -55
  182. package/src/connection/ConnectorFacade.ts +3 -0
  183. package/src/connection/Handshaker.ts +21 -6
  184. package/src/connection/ManagedConnection.ts +20 -34
  185. package/src/connection/connectivityChecker.ts +1 -0
  186. package/src/connection/simulator/Simulator.ts +5 -36
  187. package/src/connection/simulator/SimulatorConnector.ts +8 -8
  188. package/src/connection/webrtc/BrowserWebrtcConnection.ts +0 -3
  189. package/src/connection/webrtc/NodeWebrtcConnection.ts +3 -4
  190. package/src/connection/webrtc/WebrtcConnector.ts +11 -13
  191. package/src/connection/webrtc/WebrtcConnectorRpcLocal.ts +25 -18
  192. package/src/connection/webrtc/WebrtcConnectorRpcRemote.ts +3 -13
  193. package/src/connection/websocket/AutoCertifierClientFacade.ts +4 -6
  194. package/src/connection/websocket/ClientWebsocket.ts +1 -0
  195. package/src/connection/websocket/WebsocketConnector.ts +57 -61
  196. package/src/connection/websocket/WebsocketConnectorRpcLocal.ts +11 -13
  197. package/src/connection/websocket/WebsocketConnectorRpcRemote.ts +4 -15
  198. package/src/connection/websocket/WebsocketServer.ts +14 -17
  199. package/src/dht/DhtNode.ts +69 -71
  200. package/src/dht/DhtNodeRpcLocal.ts +1 -3
  201. package/src/dht/DhtNodeRpcRemote.ts +14 -18
  202. package/src/dht/ExternalApiRpcLocal.ts +16 -6
  203. package/src/dht/ExternalApiRpcRemote.ts +5 -3
  204. package/src/dht/PeerManager.ts +73 -90
  205. package/src/dht/contact/Contact.ts +5 -4
  206. package/src/dht/contact/ContactList.ts +9 -9
  207. package/src/dht/contact/RandomContactList.ts +14 -14
  208. package/src/dht/contact/RpcRemote.ts +10 -7
  209. package/src/dht/contact/SortedContactList.ts +48 -45
  210. package/src/dht/discovery/DiscoverySession.ts +25 -27
  211. package/src/dht/discovery/PeerDiscovery.ts +16 -37
  212. package/src/dht/recursive-operation/RecursiveOperationManager.ts +240 -0
  213. package/src/dht/{find/FindRpcLocal.ts → recursive-operation/RecursiveOperationRpcLocal.ts} +9 -9
  214. package/src/dht/{routing/FindRpcRemote.ts → recursive-operation/RecursiveOperationRpcRemote.ts} +10 -10
  215. package/src/dht/recursive-operation/RecursiveOperationSession.ts +224 -0
  216. package/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.ts +25 -0
  217. package/src/dht/{find/FindSessionRpcRemote.ts → recursive-operation/RecursiveOperationSessionRpcRemote.ts} +8 -8
  218. package/src/dht/routing/Router.ts +45 -64
  219. package/src/dht/routing/RouterRpcLocal.ts +7 -6
  220. package/src/dht/routing/RouterRpcRemote.ts +9 -10
  221. package/src/dht/routing/RoutingSession.ts +59 -68
  222. package/src/dht/store/LocalDataStore.ts +47 -66
  223. package/src/dht/store/StoreManager.ts +217 -0
  224. package/src/dht/store/StoreRpcLocal.ts +26 -302
  225. package/src/dht/store/StoreRpcRemote.ts +9 -11
  226. package/src/exports.ts +2 -0
  227. package/src/helpers/MapWithTtl.ts +71 -0
  228. package/src/helpers/PeerID.ts +5 -0
  229. package/src/helpers/nodeId.ts +20 -0
  230. package/src/helpers/peerIdFromPeerDescriptor.ts +5 -3
  231. package/src/helpers/protoClasses.ts +4 -6
  232. package/src/helpers/versionCompatibility.ts +13 -0
  233. package/src/proto/packages/dht/protos/DhtRpc.client.ts +31 -32
  234. package/src/proto/packages/dht/protos/DhtRpc.server.ts +11 -12
  235. package/src/proto/packages/dht/protos/DhtRpc.ts +67 -90
  236. package/src/rpc-protocol/DhtCallContext.ts +2 -1
  237. package/src/rpc-protocol/DhtRpcOptions.ts +2 -1
  238. package/src/transport/ITransport.ts +10 -1
  239. package/src/transport/ListeningRpcCommunicator.ts +1 -1
  240. package/src/transport/RoutingRpcCommunicator.ts +18 -12
  241. package/test/benchmark/Find.test.ts +8 -21
  242. package/test/benchmark/KademliaCorrectness.test.ts +11 -20
  243. package/test/benchmark/SortedContactListBenchmark.test.ts +9 -9
  244. package/test/benchmark/kademlia-simulation/Contact.ts +9 -8
  245. package/test/benchmark/kademlia-simulation/KademliaSimulation.ts +2 -2
  246. package/test/benchmark/kademlia-simulation/SimulationNode.ts +17 -17
  247. package/test/end-to-end/Layer0-Layer1.test.ts +10 -14
  248. package/test/end-to-end/Layer0.test.ts +15 -18
  249. package/test/end-to-end/Layer0MixedConnectionTypes.test.ts +7 -9
  250. package/test/end-to-end/Layer0Webrtc-Layer1.test.ts +4 -10
  251. package/test/end-to-end/Layer0Webrtc.test.ts +5 -6
  252. package/test/end-to-end/Layer1-Scale-WebSocket.test.ts +8 -16
  253. package/test/end-to-end/Layer1-Scale-Webrtc.test.ts +6 -13
  254. package/test/end-to-end/WebsocketConnectionRequest.test.ts +5 -6
  255. package/test/end-to-end/memory-leak.test.ts +6 -8
  256. package/test/integration/ConnectionLocking.test.ts +6 -13
  257. package/test/integration/ConnectionManager.test.ts +26 -43
  258. package/test/integration/DhtJoinPeerDiscovery.test.ts +5 -10
  259. package/test/integration/DhtNodeExternalAPI.test.ts +16 -22
  260. package/test/integration/DhtNodeRpcRemote.test.ts +13 -22
  261. package/test/integration/DhtRpc.test.ts +13 -18
  262. package/test/integration/Find.test.ts +10 -10
  263. package/test/integration/Layer1-scale.test.ts +17 -28
  264. package/test/integration/Mock-Layer1-Layer0.test.ts +25 -43
  265. package/test/integration/MultipleEntryPointJoining.test.ts +7 -7
  266. package/test/integration/ReplicateData.test.ts +28 -30
  267. package/test/integration/RouteMessage.test.ts +30 -27
  268. package/test/integration/RouterRpcRemote.test.ts +12 -18
  269. package/test/integration/RpcErrors.test.ts +8 -21
  270. package/test/integration/ScaleDownDht.test.ts +11 -10
  271. package/test/integration/SimultaneousConnections.test.ts +43 -67
  272. package/test/integration/Store.test.ts +23 -36
  273. package/test/integration/StoreAndDelete.test.ts +30 -50
  274. package/test/integration/StoreOnDhtWithTwoNodes.test.ts +16 -37
  275. package/test/integration/StoreRpcRemote.test.ts +20 -30
  276. package/test/integration/WebrtcConnectionManagement.test.ts +3 -13
  277. package/test/integration/WebrtcConnectorRpc.test.ts +3 -9
  278. package/test/integration/WebsocketConnectionManagement.test.ts +7 -10
  279. package/test/integration/WebsocketConnectorRpc.test.ts +8 -17
  280. package/test/unit/ConnectivityHelpers.test.ts +9 -17
  281. package/test/unit/DuplicateDetector.test.ts +7 -4
  282. package/test/unit/LocalDataStore.test.ts +66 -77
  283. package/test/unit/PeerManager.test.ts +31 -0
  284. package/test/unit/RandomContactList.test.ts +13 -8
  285. package/test/unit/{Finder.test.ts → RecursiveOperationManager.test.ts} +38 -43
  286. package/test/unit/RecursiveOperationSession.test.ts +68 -0
  287. package/test/unit/Router.test.ts +15 -22
  288. package/test/unit/RoutingSession.test.ts +23 -25
  289. package/test/unit/SortedContactList.test.ts +41 -26
  290. package/test/unit/StoreManager.test.ts +132 -0
  291. package/test/unit/WebsocketConnector.test.ts +27 -35
  292. package/test/unit/customMatchers.test.ts +16 -0
  293. package/test/unit/versionCompatibility.test.ts +16 -0
  294. package/test/utils/FakeTransport.ts +44 -0
  295. package/test/utils/customMatchers.ts +70 -0
  296. package/test/utils/mock/MockRpcCommunicator.ts +7 -0
  297. package/test/utils/mock/Router.ts +3 -2
  298. package/test/utils/mock/mockDataEntry.ts +36 -0
  299. package/test/utils/utils.ts +49 -87
  300. package/tsconfig.browser.json +2 -1
  301. package/tsconfig.jest.json +2 -1
  302. package/tsconfig.node.json +2 -1
  303. package/dist/src/dht/find/FindRpcLocal.d.ts +0 -14
  304. package/dist/src/dht/find/FindRpcLocal.js.map +0 -1
  305. package/dist/src/dht/find/FindSession.d.ts +0 -44
  306. package/dist/src/dht/find/FindSession.js +0 -150
  307. package/dist/src/dht/find/FindSession.js.map +0 -1
  308. package/dist/src/dht/find/FindSessionRpcLocal.d.ts +0 -12
  309. package/dist/src/dht/find/FindSessionRpcLocal.js +0 -17
  310. package/dist/src/dht/find/FindSessionRpcLocal.js.map +0 -1
  311. package/dist/src/dht/find/FindSessionRpcRemote.d.ts +0 -6
  312. package/dist/src/dht/find/FindSessionRpcRemote.js +0 -21
  313. package/dist/src/dht/find/FindSessionRpcRemote.js.map +0 -1
  314. package/dist/src/dht/find/Finder.d.ts +0 -49
  315. package/dist/src/dht/find/Finder.js +0 -197
  316. package/dist/src/dht/find/Finder.js.map +0 -1
  317. package/dist/src/dht/routing/FindRpcRemote.d.ts +0 -6
  318. package/dist/src/dht/routing/FindRpcRemote.js.map +0 -1
  319. package/src/dht/find/FindSession.ts +0 -183
  320. package/src/dht/find/FindSessionRpcLocal.ts +0 -25
  321. package/src/dht/find/Finder.ts +0 -295
@@ -1,8 +1,9 @@
1
1
  /// <reference types="node" />
2
2
  import { ServerCallContext } from '@protobuf-ts/runtime-rpc';
3
- import { PeerDescriptor, WebsocketConnectionRequest, WebsocketConnectionResponse } from '../../proto/packages/dht/protos/DhtRpc';
3
+ import { PeerDescriptor, WebsocketConnectionRequest } from '../../proto/packages/dht/protos/DhtRpc';
4
4
  import { IWebsocketConnectorRpc } from '../../proto/packages/dht/protos/DhtRpc.server';
5
5
  import { ManagedConnection } from '../ManagedConnection';
6
+ import { Empty } from '../../proto/google/protobuf/empty';
6
7
  interface WebsocketConnectorRpcLocalConfig {
7
8
  connect: (targetPeerDescriptor: PeerDescriptor) => ManagedConnection;
8
9
  hasConnection: (targetPeerDescriptor: PeerDescriptor) => boolean;
@@ -12,6 +13,6 @@ interface WebsocketConnectorRpcLocalConfig {
12
13
  export declare class WebsocketConnectorRpcLocal implements IWebsocketConnectorRpc {
13
14
  private readonly config;
14
15
  constructor(config: WebsocketConnectorRpcLocalConfig);
15
- requestConnection(_request: WebsocketConnectionRequest, context: ServerCallContext): Promise<WebsocketConnectionResponse>;
16
+ requestConnection(_request: WebsocketConnectionRequest, context: ServerCallContext): Promise<Empty>;
16
17
  }
17
18
  export {};
@@ -6,17 +6,15 @@ class WebsocketConnectorRpcLocal {
6
6
  this.config = config;
7
7
  }
8
8
  async requestConnection(_request, context) {
9
+ if (this.config.abortSignal.aborted) {
10
+ return {};
11
+ }
9
12
  const senderPeerDescriptor = context.incomingSourceDescriptor;
10
- setImmediate(() => {
11
- if (this.config.abortSignal.aborted) {
12
- return;
13
- }
14
- if (!this.config.hasConnection(senderPeerDescriptor)) {
15
- const connection = this.config.connect(senderPeerDescriptor);
16
- this.config.onNewConnection(connection);
17
- }
18
- });
19
- return { accepted: true };
13
+ if (!this.config.hasConnection(senderPeerDescriptor)) {
14
+ const connection = this.config.connect(senderPeerDescriptor);
15
+ this.config.onNewConnection(connection);
16
+ }
17
+ return {};
20
18
  }
21
19
  }
22
20
  exports.WebsocketConnectorRpcLocal = WebsocketConnectorRpcLocal;
@@ -1 +1 @@
1
- {"version":3,"file":"WebsocketConnectorRpcLocal.js","sourceRoot":"","sources":["../../../../src/connection/websocket/WebsocketConnectorRpcLocal.ts"],"names":[],"mappings":";;;AAiBA,MAAa,0BAA0B;IAInC,YAAY,MAAwC;QAChD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,QAAoC,EAAE,OAA0B;QAC3F,MAAM,oBAAoB,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QAClF,YAAY,CAAC,GAAG,EAAE;YACd,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE;gBACjC,OAAM;aACT;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,oBAAoB,CAAC,EAAE;gBAClD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;gBAC5D,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAA;aAC1C;QACL,CAAC,CAAC,CAAA;QACF,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;IAC7B,CAAC;CACJ;AArBD,gEAqBC"}
1
+ {"version":3,"file":"WebsocketConnectorRpcLocal.js","sourceRoot":"","sources":["../../../../src/connection/websocket/WebsocketConnectorRpcLocal.ts"],"names":[],"mappings":";;;AAiBA,MAAa,0BAA0B;IAInC,YAAY,MAAwC;QAChD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,QAAoC,EAAE,OAA0B;QAC3F,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE;YACjC,OAAO,EAAE,CAAA;SACZ;QACD,MAAM,oBAAoB,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QAClF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,oBAAoB,CAAC,EAAE;YAClD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;YAC5D,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAA;SAC1C;QACD,OAAO,EAAE,CAAA;IACb,CAAC;CACJ;AAnBD,gEAmBC"}
@@ -1,8 +1,5 @@
1
- import { PeerDescriptor, WebsocketConnectionResponse } from '../../proto/packages/dht/protos/DhtRpc';
2
- import { IWebsocketConnectorRpcClient } from '../../proto/packages/dht/protos/DhtRpc.client';
3
- import { ProtoRpcClient } from '@streamr/proto-rpc';
4
1
  import { RpcRemote } from '../../dht/contact/RpcRemote';
5
- export declare class WebsocketConnectorRpcRemote extends RpcRemote<IWebsocketConnectorRpcClient> {
6
- constructor(localPeerDescriptor: PeerDescriptor, remotePeerDescriptor: PeerDescriptor, client: ProtoRpcClient<IWebsocketConnectorRpcClient>);
7
- requestConnection(): Promise<WebsocketConnectionResponse>;
2
+ import { WebsocketConnectorRpcClient } from '../../proto/packages/dht/protos/DhtRpc.client';
3
+ export declare class WebsocketConnectorRpcRemote extends RpcRemote<WebsocketConnectorRpcClient> {
4
+ requestConnection(): Promise<void>;
8
5
  }
@@ -6,9 +6,6 @@ const peerIdFromPeerDescriptor_1 = require("../../helpers/peerIdFromPeerDescript
6
6
  const RpcRemote_1 = require("../../dht/contact/RpcRemote");
7
7
  const logger = new utils_1.Logger(module);
8
8
  class WebsocketConnectorRpcRemote extends RpcRemote_1.RpcRemote {
9
- constructor(localPeerDescriptor, remotePeerDescriptor, client) {
10
- super(localPeerDescriptor, remotePeerDescriptor, 'DUMMY', client);
11
- }
12
9
  async requestConnection() {
13
10
  logger.trace(`Requesting WebSocket connection from ${(0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(this.getLocalPeerDescriptor())}`);
14
11
  const request = {};
@@ -1 +1 @@
1
- {"version":3,"file":"WebsocketConnectorRpcRemote.js","sourceRoot":"","sources":["../../../../src/connection/websocket/WebsocketConnectorRpcRemote.ts"],"names":[],"mappings":";;;AAMA,0CAAuC;AAEvC,qFAAoF;AACpF,2DAAuD;AAEvD,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,2BAA4B,SAAQ,qBAAuC;IAEpF,YACI,mBAAmC,EACnC,oBAAoC,EACpC,MAAoD;QAEpD,KAAK,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;IACrE,CAAC;IAED,KAAK,CAAC,iBAAiB;QACnB,MAAM,CAAC,KAAK,CAAC,wCAAwC,IAAA,sDAA2B,EAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,EAAE,CAAC,CAAA;QAClH,MAAM,OAAO,GAA+B,EAAE,CAAA;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxC,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC/D,CAAC;CACJ;AAhBD,kEAgBC"}
1
+ {"version":3,"file":"WebsocketConnectorRpcRemote.js","sourceRoot":"","sources":["../../../../src/connection/websocket/WebsocketConnectorRpcRemote.ts"],"names":[],"mappings":";;;AAGA,0CAAuC;AACvC,qFAAoF;AACpF,2DAAuD;AAGvD,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,2BAA4B,SAAQ,qBAAsC;IAEnF,KAAK,CAAC,iBAAiB;QACnB,MAAM,CAAC,KAAK,CAAC,wCAAwC,IAAA,sDAA2B,EAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,EAAE,CAAC,CAAA;QAClH,MAAM,OAAO,GAA+B,EAAE,CAAA;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxC,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC/D,CAAC;CACJ;AARD,kEAQC"}
@@ -11,10 +11,7 @@ export declare class WebsocketServer extends EventEmitter<ConnectionSourceEvents
11
11
  private httpServer?;
12
12
  private wsServer?;
13
13
  private readonly abortController;
14
- private readonly portRange;
15
- private readonly tlsCertificate?;
16
- private readonly enableTls;
17
- private readonly maxMessageSize;
14
+ private readonly config;
18
15
  constructor(config: WebsocketServerConfig);
19
16
  start(): Promise<number>;
20
17
  private startServer;
@@ -20,16 +20,13 @@ class WebsocketServer extends eventemitter3_1.default {
20
20
  constructor(config) {
21
21
  super();
22
22
  this.abortController = new AbortController();
23
- this.portRange = config.portRange;
24
- this.enableTls = config.enableTls;
25
- this.tlsCertificate = config.tlsCertificate;
26
- this.maxMessageSize = config.maxMessageSize ?? 1048576;
23
+ this.config = config;
27
24
  }
28
25
  async start() {
29
- const ports = (0, lodash_1.range)(this.portRange.min, this.portRange.max + 1);
26
+ const ports = (0, lodash_1.range)(this.config.portRange.min, this.config.portRange.max + 1);
30
27
  for (const port of ports) {
31
28
  try {
32
- await (0, utils_1.asAbortable)(this.startServer(port, this.enableTls), this.abortController.signal);
29
+ await (0, utils_1.asAbortable)(this.startServer(port, this.config.enableTls), this.abortController.signal);
33
30
  return port;
34
31
  }
35
32
  catch (err) {
@@ -41,7 +38,7 @@ class WebsocketServer extends eventemitter3_1.default {
41
38
  }
42
39
  }
43
40
  }
44
- throw new errors_1.WebsocketServerStartError(`Failed to start WebSocket server on any port in range: ${this.portRange.min}-${this.portRange.min}`);
41
+ throw new errors_1.WebsocketServerStartError(`Failed to start WebSocket server on any port in range: ${this.config.portRange.min}-${this.config.portRange.min}`);
45
42
  }
46
43
  // If tlsCertificate has been given the tls boolean is ignored
47
44
  // TODO: could be simplified?
@@ -52,16 +49,17 @@ class WebsocketServer extends eventemitter3_1.default {
52
49
  response.end();
53
50
  };
54
51
  return new Promise((resolve, reject) => {
55
- if (this.tlsCertificate) {
52
+ if (this.config.tlsCertificate) {
56
53
  this.httpServer = (0, https_1.createServer)({
57
- key: fs_1.default.readFileSync(this.tlsCertificate.privateKeyFileName),
58
- cert: fs_1.default.readFileSync(this.tlsCertificate.certFileName)
54
+ key: fs_1.default.readFileSync(this.config.tlsCertificate.privateKeyFileName),
55
+ cert: fs_1.default.readFileSync(this.config.tlsCertificate.certFileName)
59
56
  }, requestListener);
60
57
  }
61
58
  else if (!tls) {
62
59
  this.httpServer = (0, http_1.createServer)(requestListener);
63
60
  }
64
61
  else {
62
+ // TODO use config option or named constant?
65
63
  const certificate = (0, autocertifier_client_1.createSelfSignedCertificate)('streamr-self-signed-' + new UUID_1.UUID().toString(), 1000);
66
64
  this.httpServer = (0, https_1.createServer)({
67
65
  key: certificate.serverKey,
@@ -133,19 +131,20 @@ class WebsocketServer extends eventemitter3_1.default {
133
131
  });
134
132
  }
135
133
  createWsServer(httpServer) {
134
+ const maxReceivedMessageSize = this.config.maxMessageSize ?? 1048576;
136
135
  // Use the real nodejs WebSocket server in Electron tests
137
136
  if (typeof NodeJsWsServer !== 'undefined') {
138
137
  return new NodeJsWsServer({
139
138
  httpServer,
140
139
  autoAcceptConnections: false,
141
- maxReceivedMessageSize: this.maxMessageSize
140
+ maxReceivedMessageSize
142
141
  });
143
142
  }
144
143
  else {
145
144
  return this.wsServer = new websocket_1.server({
146
145
  httpServer,
147
146
  autoAcceptConnections: false,
148
- maxReceivedMessageSize: this.maxMessageSize
147
+ maxReceivedMessageSize
149
148
  });
150
149
  }
151
150
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WebsocketServer.js","sourceRoot":"","sources":["../../../../src/connection/websocket/WebsocketServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebsocketServer.js","sourceRoot":"","sources":["../../../../src/connection/websocket/WebsocketServer.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,22 @@
1
1
  import { EventEmitter } from 'eventemitter3';
2
- import { PeerID } from '../helpers/PeerID';
3
- import { ConnectivityResponse, Message, PeerDescriptor, DataEntry, FindAction } from '../proto/packages/dht/protos/DhtRpc';
2
+ import { ConnectivityResponse, Message, PeerDescriptor, DataEntry, RecursiveOperation } from '../proto/packages/dht/protos/DhtRpc';
4
3
  import { ITransport, TransportEvents } from '../transport/ITransport';
5
4
  import { ConnectionManager, PortRange, TlsCertificate } from '../connection/ConnectionManager';
6
5
  import { MetricsContext } from '@streamr/utils';
7
6
  import { Any } from '../proto/google/protobuf/any';
8
7
  import { Router } from './routing/Router';
9
- import { FindResult } from './find/Finder';
8
+ import { RecursiveOperationResult } from './recursive-operation/RecursiveOperationManager';
10
9
  import { IceServer } from '../connection/webrtc/WebrtcConnector';
10
+ import { ServiceID } from '../types/ServiceID';
11
+ import { NodeID } from '../helpers/nodeId';
11
12
  export interface DhtNodeEvents {
12
13
  newContact: (peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => void;
13
14
  contactRemoved: (peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => void;
14
- joinCompleted: () => void;
15
15
  newRandomContact: (peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => void;
16
16
  randomContactRemoved: (peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => void;
17
17
  }
18
18
  export interface DhtNodeOptions {
19
- serviceId?: string;
19
+ serviceId?: ServiceID;
20
20
  joinParallelism?: number;
21
21
  maxNeighborListSize?: number;
22
22
  numberOfNodesPerKBucket?: number;
@@ -57,31 +57,28 @@ export declare class DhtNode extends EventEmitter<Events> implements ITransport
57
57
  private transport?;
58
58
  private localPeerDescriptor?;
59
59
  router?: Router;
60
- private storeRpcLocal?;
60
+ private storeManager?;
61
61
  private localDataStore;
62
- private finder?;
62
+ private recursiveOperationManager?;
63
63
  private peerDiscovery?;
64
64
  private peerManager?;
65
65
  connectionManager?: ConnectionManager;
66
66
  private started;
67
67
  private abortController;
68
- private entryPointDisconnectTimeout?;
69
68
  constructor(conf: DhtNodeOptions);
70
69
  start(): Promise<void>;
71
70
  private initPeerManager;
72
71
  private bindRpcLocalMethods;
73
- private isPeerCloserToIdThanSelf;
74
72
  private handleMessage;
75
73
  private generatePeerDescriptorCallBack;
76
74
  getClosestContacts(limit?: number): PeerDescriptor[];
77
- getNodeId(): PeerID;
75
+ getNodeId(): NodeID;
78
76
  getNumberOfNeighbors(): number;
79
- private connectToEntryPoint;
80
77
  removeContact(contact: PeerDescriptor): void;
81
78
  send(msg: Message): Promise<void>;
82
79
  joinDht(entryPointDescriptors: PeerDescriptor[], doAdditionalRandomPeerDiscovery?: boolean, retry?: boolean): Promise<void>;
83
- startFind(key: Uint8Array, action?: FindAction, excludedPeer?: PeerDescriptor): Promise<FindResult>;
84
- storeDataToDht(key: Uint8Array, data: Any, creator?: PeerDescriptor): Promise<PeerDescriptor[]>;
80
+ executeRecursiveOperation(key: Uint8Array, operation: RecursiveOperation, excludedPeer?: PeerDescriptor): Promise<RecursiveOperationResult>;
81
+ storeDataToDht(key: Uint8Array, data: Any, creator?: NodeID): Promise<PeerDescriptor[]>;
85
82
  storeDataViaPeer(key: Uint8Array, data: Any, peer: PeerDescriptor): Promise<PeerDescriptor[]>;
86
83
  getDataFromDht(key: Uint8Array): Promise<DataEntry[]>;
87
84
  deleteDataFromDht(key: Uint8Array, waitForCompletion: boolean): Promise<void>;
@@ -9,11 +9,10 @@ const DhtRpc_1 = require("../proto/packages/dht/protos/DhtRpc");
9
9
  const ConnectionManager_1 = require("../connection/ConnectionManager");
10
10
  const DhtRpc_client_1 = require("../proto/packages/dht/protos/DhtRpc.client");
11
11
  const utils_1 = require("@streamr/utils");
12
- const proto_rpc_1 = require("@streamr/proto-rpc");
13
12
  const peerIdFromPeerDescriptor_1 = require("../helpers/peerIdFromPeerDescriptor");
14
13
  const Router_1 = require("./routing/Router");
15
- const Finder_1 = require("./find/Finder");
16
- const StoreRpcLocal_1 = require("./store/StoreRpcLocal");
14
+ const RecursiveOperationManager_1 = require("./recursive-operation/RecursiveOperationManager");
15
+ const StoreManager_1 = require("./store/StoreManager");
17
16
  const PeerDiscovery_1 = require("./discovery/PeerDiscovery");
18
17
  const LocalDataStore_1 = require("./store/LocalDataStore");
19
18
  const ExternalApiRpcRemote_1 = require("./ExternalApiRpcRemote");
@@ -24,6 +23,8 @@ const ConnectorFacade_1 = require("../connection/ConnectorFacade");
24
23
  const DhtNodeRpcLocal_1 = require("./DhtNodeRpcLocal");
25
24
  const ExternalApiRpcLocal_1 = require("./ExternalApiRpcLocal");
26
25
  const PeerManager_1 = require("./PeerManager");
26
+ const nodeId_1 = require("../helpers/nodeId");
27
+ const StoreRpcRemote_1 = require("./store/StoreRpcRemote");
27
28
  const logger = new utils_1.Logger(module);
28
29
  const createPeerDescriptor = (msg, peerId) => {
29
30
  let nodeId;
@@ -44,7 +45,6 @@ exports.createPeerDescriptor = createPeerDescriptor;
44
45
  class DhtNode extends eventemitter3_1.EventEmitter {
45
46
  constructor(conf) {
46
47
  super();
47
- this.localDataStore = new LocalDataStore_1.LocalDataStore();
48
48
  this.started = false;
49
49
  this.abortController = new AbortController();
50
50
  this.config = (0, utils_1.merge)({
@@ -52,7 +52,7 @@ class DhtNode extends eventemitter3_1.EventEmitter {
52
52
  joinParallelism: 3,
53
53
  maxNeighborListSize: 200,
54
54
  numberOfNodesPerKBucket: 8,
55
- joinNoProgressLimit: 4,
55
+ joinNoProgressLimit: 5,
56
56
  dhtJoinTimeout: 60000,
57
57
  peerDiscoveryQueryBatchSize: 5,
58
58
  maxConnections: 80,
@@ -63,6 +63,7 @@ class DhtNode extends eventemitter3_1.EventEmitter {
63
63
  metricsContext: new utils_1.MetricsContext(),
64
64
  peerId: new UUID_1.UUID().toHex()
65
65
  }, conf);
66
+ this.localDataStore = new LocalDataStore_1.LocalDataStore(this.config.storeMaxTtl);
66
67
  this.send = this.send.bind(this);
67
68
  }
68
69
  async start() {
@@ -143,10 +144,9 @@ class DhtNode extends eventemitter3_1.EventEmitter {
143
144
  connections: this.peerManager.connections,
144
145
  localPeerDescriptor: this.localPeerDescriptor,
145
146
  addContact: (contact, setActive) => this.peerManager.handleNewPeers([contact], setActive),
146
- serviceId: this.config.serviceId,
147
147
  connectionManager: this.connectionManager
148
148
  });
149
- this.finder = new Finder_1.Finder({
149
+ this.recursiveOperationManager = new RecursiveOperationManager_1.RecursiveOperationManager({
150
150
  rpcCommunicator: this.rpcCommunicator,
151
151
  router: this.router,
152
152
  sessionTransport: this,
@@ -154,35 +154,33 @@ class DhtNode extends eventemitter3_1.EventEmitter {
154
154
  localPeerDescriptor: this.localPeerDescriptor,
155
155
  serviceId: this.config.serviceId,
156
156
  addContact: (contact) => this.peerManager.handleNewPeers([contact]),
157
- isPeerCloserToIdThanSelf: this.isPeerCloserToIdThanSelf.bind(this),
158
157
  localDataStore: this.localDataStore
159
158
  });
160
- this.storeRpcLocal = new StoreRpcLocal_1.StoreRpcLocal({
159
+ this.storeManager = new StoreManager_1.StoreManager({
161
160
  rpcCommunicator: this.rpcCommunicator,
162
- finder: this.finder,
161
+ recursiveOperationManager: this.recursiveOperationManager,
163
162
  localPeerDescriptor: this.localPeerDescriptor,
164
163
  serviceId: this.config.serviceId,
165
164
  highestTtl: this.config.storeHighestTtl,
166
- maxTtl: this.config.storeMaxTtl,
167
165
  redundancyFactor: this.config.storageRedundancyFactor,
168
166
  localDataStore: this.localDataStore,
169
- dhtNodeEmitter: this,
170
- getNodesClosestToIdFromBucket: (id, n) => {
171
- return this.peerManager.getClosestNeighborsTo(id, n);
167
+ getClosestNeighborsTo: (id, n) => {
168
+ return this.peerManager.getClosestNeighborsTo((0, nodeId_1.getNodeIdFromBinary)(id), n).map((n) => n.getPeerDescriptor());
172
169
  },
173
- rpcRequestTimeout: this.config.rpcRequestTimeout
170
+ createRpcRemote: (contact) => {
171
+ return new StoreRpcRemote_1.StoreRpcRemote(this.localPeerDescriptor, contact, this.config.serviceId, this.rpcCommunicator, DhtRpc_client_1.StoreRpcClient, this.config.rpcRequestTimeout);
172
+ }
173
+ });
174
+ this.on('newContact', (peerDescriptor) => {
175
+ this.storeManager.onNewContact(peerDescriptor);
174
176
  });
175
177
  this.bindRpcLocalMethods();
176
- if ((this.connectionManager !== undefined) && (this.config.entryPoints !== undefined) && this.config.entryPoints.length > 0
177
- && !(0, peerIdFromPeerDescriptor_1.areEqualPeerDescriptors)(this.config.entryPoints[0], this.localPeerDescriptor)) {
178
- this.connectToEntryPoint(this.config.entryPoints[0]);
179
- }
180
178
  }
181
179
  initPeerManager() {
182
180
  this.peerManager = new PeerManager_1.PeerManager({
183
181
  numberOfNodesPerKBucket: this.config.numberOfNodesPerKBucket,
184
182
  maxContactListSize: this.config.maxNeighborListSize,
185
- ownPeerId: this.getNodeId(),
183
+ localNodeId: this.getNodeId(),
186
184
  connectionManager: this.connectionManager,
187
185
  peerDiscoveryQueryBatchSize: this.config.peerDiscoveryQueryBatchSize,
188
186
  isLayer0: (this.connectionManager !== undefined),
@@ -221,10 +219,9 @@ class DhtNode extends eventemitter3_1.EventEmitter {
221
219
  return;
222
220
  }
223
221
  const dhtNodeRpcLocal = new DhtNodeRpcLocal_1.DhtNodeRpcLocal({
224
- serviceId: this.config.serviceId,
225
222
  peerDiscoveryQueryBatchSize: this.config.peerDiscoveryQueryBatchSize,
226
223
  getClosestPeersTo: (kademliaId, limit) => {
227
- return this.peerManager.getClosestNeighborsTo(kademliaId, limit)
224
+ return this.peerManager.getClosestNeighborsTo((0, nodeId_1.getNodeIdFromBinary)(kademliaId), limit)
228
225
  .map((dhtPeer) => dhtPeer.getPeerDescriptor());
229
226
  },
230
227
  addNewContact: (contact) => this.peerManager.handleNewPeers([contact]),
@@ -232,20 +229,17 @@ class DhtNode extends eventemitter3_1.EventEmitter {
232
229
  });
233
230
  this.rpcCommunicator.registerRpcMethod(DhtRpc_1.ClosestPeersRequest, DhtRpc_1.ClosestPeersResponse, 'getClosestPeers', (req, context) => dhtNodeRpcLocal.getClosestPeers(req, context));
234
231
  this.rpcCommunicator.registerRpcMethod(DhtRpc_1.PingRequest, DhtRpc_1.PingResponse, 'ping', (req, context) => dhtNodeRpcLocal.ping(req, context));
235
- this.rpcCommunicator.registerRpcNotification(DhtRpc_1.LeaveNotice, 'leaveNotice', (req, context) => dhtNodeRpcLocal.leaveNotice(req, context));
232
+ this.rpcCommunicator.registerRpcNotification(DhtRpc_1.LeaveNotice, 'leaveNotice', (_req, context) => dhtNodeRpcLocal.leaveNotice(context));
236
233
  const externalApiRpcLocal = new ExternalApiRpcLocal_1.ExternalApiRpcLocal({
237
- startFind: (key, action, excludedPeer) => {
238
- return this.startFind(key, action, excludedPeer);
234
+ executeRecursiveOperation: (key, operation, excludedPeer) => {
235
+ return this.executeRecursiveOperation(key, operation, excludedPeer);
239
236
  },
240
237
  storeDataToDht: (key, data, creator) => this.storeDataToDht(key, data, creator)
241
238
  });
242
- this.rpcCommunicator.registerRpcMethod(DhtRpc_1.ExternalFindDataRequest, DhtRpc_1.ExternalFindDataResponse, 'externalFindData', (req, context) => externalApiRpcLocal.externalFindData(req, context), { timeout: 10000 });
243
- this.rpcCommunicator.registerRpcMethod(DhtRpc_1.ExternalStoreDataRequest, DhtRpc_1.ExternalStoreDataResponse, 'externalStoreData', (req, context) => externalApiRpcLocal.externalStoreData(req, context), { timeout: 10000 });
244
- }
245
- isPeerCloserToIdThanSelf(peer1, compareToId) {
246
- const distance1 = (0, PeerManager_1.getDistance)(peer1.nodeId, compareToId.value);
247
- const distance2 = (0, PeerManager_1.getDistance)(this.localPeerDescriptor.nodeId, compareToId.value);
248
- return distance1 < distance2;
239
+ this.rpcCommunicator.registerRpcMethod(DhtRpc_1.ExternalFindDataRequest, DhtRpc_1.ExternalFindDataResponse, 'externalFindData', (req, context) => externalApiRpcLocal.externalFindData(req, context), { timeout: 10000 } // TODO use config option or named constant?
240
+ );
241
+ this.rpcCommunicator.registerRpcMethod(DhtRpc_1.ExternalStoreDataRequest, DhtRpc_1.ExternalStoreDataResponse, 'externalStoreData', (req, context) => externalApiRpcLocal.externalStoreData(req, context), { timeout: 10000 } // TODO use config option or named constant?
242
+ );
249
243
  }
250
244
  handleMessage(message) {
251
245
  if (message.serviceId === this.config.serviceId) {
@@ -269,20 +263,14 @@ class DhtNode extends eventemitter3_1.EventEmitter {
269
263
  return this.localPeerDescriptor;
270
264
  }
271
265
  getClosestContacts(limit) {
272
- return this.peerManager.getClosestContactsTo(this.localPeerDescriptor.nodeId, limit).map((peer) => peer.getPeerDescriptor());
266
+ return this.peerManager.getClosestContactsTo((0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(this.localPeerDescriptor), limit).map((peer) => peer.getPeerDescriptor());
273
267
  }
274
268
  getNodeId() {
275
- return (0, peerIdFromPeerDescriptor_1.peerIdFromPeerDescriptor)(this.localPeerDescriptor);
269
+ return (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(this.localPeerDescriptor);
276
270
  }
277
271
  getNumberOfNeighbors() {
278
272
  return this.peerManager.getNumberOfNeighbors();
279
273
  }
280
- connectToEntryPoint(entryPoint) {
281
- this.connectionManager.lockConnection(entryPoint, 'temporary-layer0-connection');
282
- this.entryPointDisconnectTimeout = setTimeout(() => {
283
- this.connectionManager.unlockConnection(entryPoint, 'temporary-layer0-connection');
284
- }, 10 * 1000);
285
- }
286
274
  removeContact(contact) {
287
275
  if (!this.started) { // the stopped state is checked in PeerManager
288
276
  return;
@@ -300,35 +288,37 @@ class DhtNode extends eventemitter3_1.EventEmitter {
300
288
  if (!this.started) {
301
289
  throw new Error('Cannot join DHT before calling start() on DhtNode');
302
290
  }
303
- await this.peerDiscovery.joinDht(entryPointDescriptors, doAdditionalRandomPeerDiscovery, retry);
291
+ await Promise.all(entryPointDescriptors.map((entryPoint) => this.peerDiscovery.joinDht(entryPoint, doAdditionalRandomPeerDiscovery, retry)));
304
292
  }
305
- async startFind(key, action, excludedPeer) {
306
- return this.finder.startFind(key, action, excludedPeer);
293
+ // TODO make this private and unify the public API of find/fetch/store/delete methods
294
+ // (we already have storeDataToDht etc. here)
295
+ async executeRecursiveOperation(key, operation, excludedPeer) {
296
+ return this.recursiveOperationManager.execute(key, operation, excludedPeer);
307
297
  }
308
298
  async storeDataToDht(key, data, creator) {
309
299
  if (this.peerDiscovery.isJoinOngoing() && this.config.entryPoints && this.config.entryPoints.length > 0) {
310
300
  return this.storeDataViaPeer(key, data, (0, lodash_1.sample)(this.config.entryPoints));
311
301
  }
312
- return this.storeRpcLocal.storeDataToDht(key, data, creator ?? this.localPeerDescriptor);
302
+ return this.storeManager.storeDataToDht(key, data, creator ?? (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(this.localPeerDescriptor));
313
303
  }
314
304
  async storeDataViaPeer(key, data, peer) {
315
- const rpcRemote = new ExternalApiRpcRemote_1.ExternalApiRpcRemote(this.localPeerDescriptor, peer, this.config.serviceId, (0, proto_rpc_1.toProtoRpcClient)(new DhtRpc_client_1.ExternalApiRpcClient(this.rpcCommunicator.getRpcClientTransport())));
305
+ const rpcRemote = new ExternalApiRpcRemote_1.ExternalApiRpcRemote(this.localPeerDescriptor, peer, this.config.serviceId, this.rpcCommunicator, DhtRpc_client_1.ExternalApiRpcClient);
316
306
  return await rpcRemote.storeData(key, data);
317
307
  }
318
308
  async getDataFromDht(key) {
319
309
  if (this.peerDiscovery.isJoinOngoing() && this.config.entryPoints && this.config.entryPoints.length > 0) {
320
310
  return this.findDataViaPeer(key, (0, lodash_1.sample)(this.config.entryPoints));
321
311
  }
322
- const result = await this.finder.startFind(key, DhtRpc_1.FindAction.FETCH_DATA);
312
+ const result = await this.recursiveOperationManager.execute(key, DhtRpc_1.RecursiveOperation.FETCH_DATA);
323
313
  return result.dataEntries ?? []; // TODO is this fallback needed?
324
314
  }
325
315
  async deleteDataFromDht(key, waitForCompletion) {
326
316
  if (!this.abortController.signal.aborted) {
327
- await this.finder.startFind(key, DhtRpc_1.FindAction.DELETE_DATA, undefined, waitForCompletion);
317
+ await this.recursiveOperationManager.execute(key, DhtRpc_1.RecursiveOperation.DELETE_DATA, undefined, waitForCompletion);
328
318
  }
329
319
  }
330
320
  async findDataViaPeer(key, peer) {
331
- const rpcRemote = new ExternalApiRpcRemote_1.ExternalApiRpcRemote(this.localPeerDescriptor, peer, this.config.serviceId, (0, proto_rpc_1.toProtoRpcClient)(new DhtRpc_client_1.ExternalApiRpcClient(this.rpcCommunicator.getRpcClientTransport())));
321
+ const rpcRemote = new ExternalApiRpcRemote_1.ExternalApiRpcRemote(this.localPeerDescriptor, peer, this.config.serviceId, this.rpcCommunicator, DhtRpc_client_1.ExternalApiRpcClient);
332
322
  return await rpcRemote.externalFindData(key);
333
323
  }
334
324
  getTransport() {
@@ -375,15 +365,12 @@ class DhtNode extends eventemitter3_1.EventEmitter {
375
365
  }
376
366
  logger.trace('stop()');
377
367
  this.abortController.abort();
378
- await this.storeRpcLocal.destroy();
379
- if (this.entryPointDisconnectTimeout) {
380
- clearTimeout(this.entryPointDisconnectTimeout);
381
- }
368
+ await this.storeManager.destroy();
382
369
  this.localDataStore.clear();
383
370
  this.peerManager?.stop();
384
371
  this.rpcCommunicator.stop();
385
372
  this.router.stop();
386
- this.finder.stop();
373
+ this.recursiveOperationManager.stop();
387
374
  this.peerDiscovery.stop();
388
375
  if (this.config.transport === undefined) {
389
376
  // if the transport was not given in config, the instance was created in start() and
@@ -395,7 +382,7 @@ class DhtNode extends eventemitter3_1.EventEmitter {
395
382
  this.removeAllListeners();
396
383
  }
397
384
  createDhtNodeRpcRemote(peerDescriptor) {
398
- return new DhtNodeRpcRemote_1.DhtNodeRpcRemote(this.localPeerDescriptor, peerDescriptor, (0, proto_rpc_1.toProtoRpcClient)(new DhtRpc_client_1.DhtNodeRpcClient(this.rpcCommunicator.getRpcClientTransport())), this.config.serviceId, this.config.rpcRequestTimeout);
385
+ return new DhtNodeRpcRemote_1.DhtNodeRpcRemote(this.localPeerDescriptor, peerDescriptor, this.config.serviceId, this.rpcCommunicator, this.config.rpcRequestTimeout);
399
386
  }
400
387
  }
401
388
  exports.DhtNode = DhtNode;
@@ -1 +1 @@
1
- {"version":3,"file":"DhtNode.js","sourceRoot":"","sources":["../../../src/dht/DhtNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DhtNode.js","sourceRoot":"","sources":["../../../src/dht/DhtNode.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,8 @@
1
1
  import { ServerCallContext } from '@protobuf-ts/runtime-rpc';
2
2
  import { Empty } from '../proto/google/protobuf/empty';
3
- import { ClosestPeersRequest, ClosestPeersResponse, LeaveNotice, PeerDescriptor, PingRequest, PingResponse } from '../proto/packages/dht/protos/DhtRpc';
3
+ import { ClosestPeersRequest, ClosestPeersResponse, PeerDescriptor, PingRequest, PingResponse } from '../proto/packages/dht/protos/DhtRpc';
4
4
  import { IDhtNodeRpc } from '../proto/packages/dht/protos/DhtRpc.server';
5
5
  interface DhtNodeRpcLocalConfig {
6
- serviceId: string;
7
6
  peerDiscoveryQueryBatchSize: number;
8
7
  getClosestPeersTo: (nodeId: Uint8Array, limit: number) => PeerDescriptor[];
9
8
  addNewContact: (contact: PeerDescriptor) => void;
@@ -14,6 +13,6 @@ export declare class DhtNodeRpcLocal implements IDhtNodeRpc {
14
13
  constructor(config: DhtNodeRpcLocalConfig);
15
14
  getClosestPeers(request: ClosestPeersRequest, context: ServerCallContext): Promise<ClosestPeersResponse>;
16
15
  ping(request: PingRequest, context: ServerCallContext): Promise<PingResponse>;
17
- leaveNotice(_request: LeaveNotice, context: ServerCallContext): Promise<Empty>;
16
+ leaveNotice(context: ServerCallContext): Promise<Empty>;
18
17
  }
19
18
  export {};
@@ -26,7 +26,7 @@ class DhtNodeRpcLocal {
26
26
  };
27
27
  return response;
28
28
  }
29
- async leaveNotice(_request, context) {
29
+ async leaveNotice(context) {
30
30
  // TODO check signature??
31
31
  const sender = context.incomingSourceDescriptor;
32
32
  logger.trace('received leave notice: ' + (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(sender));
@@ -1 +1 @@
1
- {"version":3,"file":"DhtNodeRpcLocal.js","sourceRoot":"","sources":["../../../src/dht/DhtNodeRpcLocal.ts"],"names":[],"mappings":";;;AACA,0CAAuC;AACvC,kFAAiF;AAqBjF,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,eAAe;IAIxB,YAAY,MAA6B;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAA4B,EAAE,OAA0B;QAC1E,IAAI,CAAC,MAAM,CAAC,aAAa,CAAE,OAA0B,CAAC,wBAAyB,CAAC,CAAA;QAChF,MAAM,QAAQ,GAAG;YACb,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC;YAC7F,SAAS,EAAE,OAAO,CAAC,SAAS;SAC/B,CAAA;QACD,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAoB,EAAE,OAA0B;QACvD,MAAM,CAAC,KAAK,CAAC,yBAAyB,GAAG,IAAA,sDAA2B,EAAE,OAA0B,CAAC,wBAAyB,CAAC,CAAC,CAAA;QAC5H,YAAY,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,aAAa,CAAE,OAA0B,CAAC,wBAAyB,CAAC,CAAA;QACpF,CAAC,CAAC,CAAA;QACF,MAAM,QAAQ,GAAiB;YAC3B,SAAS,EAAE,OAAO,CAAC,SAAS;SAC/B,CAAA;QACD,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAqB,EAAE,OAA0B;QAC/D,yBAAyB;QACzB,MAAM,MAAM,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QACpE,MAAM,CAAC,KAAK,CAAC,yBAAyB,GAAG,IAAA,sDAA2B,EAAC,MAAM,CAAC,CAAC,CAAA;QAC7E,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QACjC,OAAO,EAAE,CAAA;IACb,CAAC;CACJ;AAnCD,0CAmCC"}
1
+ {"version":3,"file":"DhtNodeRpcLocal.js","sourceRoot":"","sources":["../../../src/dht/DhtNodeRpcLocal.ts"],"names":[],"mappings":";;;AACA,0CAAuC;AACvC,kFAAiF;AAmBjF,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,eAAe;IAIxB,YAAY,MAA6B;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAA4B,EAAE,OAA0B;QAC1E,IAAI,CAAC,MAAM,CAAC,aAAa,CAAE,OAA0B,CAAC,wBAAyB,CAAC,CAAA;QAChF,MAAM,QAAQ,GAAG;YACb,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC;YAC7F,SAAS,EAAE,OAAO,CAAC,SAAS;SAC/B,CAAA;QACD,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAoB,EAAE,OAA0B;QACvD,MAAM,CAAC,KAAK,CAAC,yBAAyB,GAAG,IAAA,sDAA2B,EAAE,OAA0B,CAAC,wBAAyB,CAAC,CAAC,CAAA;QAC5H,YAAY,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,aAAa,CAAE,OAA0B,CAAC,wBAAyB,CAAC,CAAA;QACpF,CAAC,CAAC,CAAA;QACF,MAAM,QAAQ,GAAiB;YAC3B,SAAS,EAAE,OAAO,CAAC,SAAS;SAC/B,CAAA;QACD,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAA0B;QACxC,yBAAyB;QACzB,MAAM,MAAM,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QACpE,MAAM,CAAC,KAAK,CAAC,yBAAyB,GAAG,IAAA,sDAA2B,EAAC,MAAM,CAAC,CAAC,CAAA;QAC7E,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QACjC,OAAO,EAAE,CAAA;IACb,CAAC;CACJ;AAnCD,0CAmCC"}