@streamr/dht 100.0.0-pretestnet.6 → 100.0.0-rc.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 (444) hide show
  1. package/README.md +90 -8
  2. package/dist/package.json +70 -0
  3. package/dist/src/connection/Connection.d.ts +1 -0
  4. package/dist/src/connection/Connection.js +10 -3
  5. package/dist/src/connection/Connection.js.map +1 -1
  6. package/dist/src/connection/ConnectionLockHandler.d.ts +14 -14
  7. package/dist/src/connection/ConnectionLockHandler.js +22 -16
  8. package/dist/src/connection/ConnectionLockHandler.js.map +1 -1
  9. package/dist/src/connection/ConnectionLockRpcLocal.d.ts +3 -3
  10. package/dist/src/connection/ConnectionLockRpcLocal.js +7 -6
  11. package/dist/src/connection/ConnectionLockRpcLocal.js.map +1 -1
  12. package/dist/src/connection/ConnectionLockRpcRemote.d.ts +4 -6
  13. package/dist/src/connection/ConnectionLockRpcRemote.js +10 -37
  14. package/dist/src/connection/ConnectionLockRpcRemote.js.map +1 -1
  15. package/dist/src/connection/ConnectionManager.d.ts +19 -20
  16. package/dist/src/connection/ConnectionManager.js +132 -117
  17. package/dist/src/connection/ConnectionManager.js.map +1 -1
  18. package/dist/src/connection/ConnectorFacade.d.ts +3 -2
  19. package/dist/src/connection/ConnectorFacade.js +10 -3
  20. package/dist/src/connection/ConnectorFacade.js.map +1 -1
  21. package/dist/src/connection/Handshaker.d.ts +3 -1
  22. package/dist/src/connection/Handshaker.js +18 -9
  23. package/dist/src/connection/Handshaker.js.map +1 -1
  24. package/dist/src/connection/IConnection.d.ts +2 -7
  25. package/dist/src/connection/IConnection.js +1 -8
  26. package/dist/src/connection/IConnection.js.map +1 -1
  27. package/dist/src/connection/ManagedConnection.d.ts +5 -7
  28. package/dist/src/connection/ManagedConnection.js +42 -26
  29. package/dist/src/connection/ManagedConnection.js.map +1 -1
  30. package/dist/src/connection/ManagedWebrtcConnection.js.map +1 -1
  31. package/dist/src/connection/connectivityChecker.d.ts +9 -0
  32. package/dist/src/connection/connectivityChecker.js +130 -0
  33. package/dist/src/connection/connectivityChecker.js.map +1 -0
  34. package/dist/src/connection/connectivityRequestHandler.d.ts +3 -0
  35. package/dist/src/connection/connectivityRequestHandler.js +101 -0
  36. package/dist/src/connection/connectivityRequestHandler.js.map +1 -0
  37. package/dist/src/connection/simulator/Simulator.d.ts +0 -3
  38. package/dist/src/connection/simulator/Simulator.js +34 -69
  39. package/dist/src/connection/simulator/Simulator.js.map +1 -1
  40. package/dist/src/connection/simulator/SimulatorConnection.js +27 -25
  41. package/dist/src/connection/simulator/SimulatorConnection.js.map +1 -1
  42. package/dist/src/connection/simulator/SimulatorConnector.js +16 -12
  43. package/dist/src/connection/simulator/SimulatorConnector.js.map +1 -1
  44. package/dist/src/connection/simulator/pings.js.map +1 -1
  45. package/dist/src/connection/webrtc/NodeWebrtcConnection.d.ts +2 -3
  46. package/dist/src/connection/webrtc/NodeWebrtcConnection.js +40 -27
  47. package/dist/src/connection/webrtc/NodeWebrtcConnection.js.map +1 -1
  48. package/dist/src/connection/webrtc/WebrtcConnector.d.ts +0 -2
  49. package/dist/src/connection/webrtc/WebrtcConnector.js +24 -25
  50. package/dist/src/connection/webrtc/WebrtcConnector.js.map +1 -1
  51. package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.d.ts +2 -2
  52. package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js +27 -20
  53. package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js.map +1 -1
  54. package/dist/src/connection/webrtc/WebrtcConnectorRpcRemote.d.ts +3 -6
  55. package/dist/src/connection/webrtc/WebrtcConnectorRpcRemote.js +2 -5
  56. package/dist/src/connection/webrtc/WebrtcConnectorRpcRemote.js.map +1 -1
  57. package/dist/src/connection/webrtc/iceServerAsString.js +1 -1
  58. package/dist/src/connection/webrtc/iceServerAsString.js.map +1 -1
  59. package/dist/src/connection/websocket/AutoCertifierClientFacade.d.ts +1 -2
  60. package/dist/src/connection/websocket/AutoCertifierClientFacade.js +6 -4
  61. package/dist/src/connection/websocket/AutoCertifierClientFacade.js.map +1 -1
  62. package/dist/src/connection/websocket/ClientWebsocket.d.ts +1 -0
  63. package/dist/src/connection/websocket/ClientWebsocket.js +14 -7
  64. package/dist/src/connection/websocket/ClientWebsocket.js.map +1 -1
  65. package/dist/src/connection/websocket/WebsocketConnector.d.ts +3 -9
  66. package/dist/src/connection/websocket/WebsocketConnector.js +142 -74
  67. package/dist/src/connection/websocket/WebsocketConnector.js.map +1 -1
  68. package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.d.ts +5 -3
  69. package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.js +9 -12
  70. package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.js.map +1 -1
  71. package/dist/src/connection/websocket/WebsocketConnectorRpcRemote.d.ts +4 -7
  72. package/dist/src/connection/websocket/WebsocketConnectorRpcRemote.js +7 -44
  73. package/dist/src/connection/websocket/WebsocketConnectorRpcRemote.js.map +1 -1
  74. package/dist/src/connection/websocket/WebsocketServer.d.ts +1 -4
  75. package/dist/src/connection/websocket/WebsocketServer.js +49 -40
  76. package/dist/src/connection/websocket/WebsocketServer.js.map +1 -1
  77. package/dist/src/connection/websocket/{ServerWebsocket.d.ts → WebsocketServerConnection.d.ts} +8 -4
  78. package/dist/src/connection/websocket/WebsocketServerConnection.js +97 -0
  79. package/dist/src/connection/websocket/WebsocketServerConnection.js.map +1 -0
  80. package/dist/src/dht/DhtNode.d.ts +45 -49
  81. package/dist/src/dht/DhtNode.js +229 -317
  82. package/dist/src/dht/DhtNode.js.map +1 -1
  83. package/dist/src/dht/DhtNodeRpcLocal.d.ts +10 -9
  84. package/dist/src/dht/DhtNodeRpcLocal.js +19 -11
  85. package/dist/src/dht/DhtNodeRpcLocal.js.map +1 -1
  86. package/dist/src/dht/DhtNodeRpcRemote.d.ts +15 -10
  87. package/dist/src/dht/DhtNodeRpcRemote.js +38 -21
  88. package/dist/src/dht/DhtNodeRpcRemote.js.map +1 -1
  89. package/dist/src/dht/ExternalApiRpcLocal.d.ts +7 -6
  90. package/dist/src/dht/ExternalApiRpcLocal.js +9 -13
  91. package/dist/src/dht/ExternalApiRpcLocal.js.map +1 -1
  92. package/dist/src/dht/ExternalApiRpcRemote.d.ts +6 -5
  93. package/dist/src/dht/ExternalApiRpcRemote.js +10 -7
  94. package/dist/src/dht/ExternalApiRpcRemote.js.map +1 -1
  95. package/dist/src/dht/PeerManager.d.ts +61 -0
  96. package/dist/src/dht/PeerManager.js +288 -0
  97. package/dist/src/dht/PeerManager.js.map +1 -0
  98. package/dist/src/dht/contact/Contact.d.ts +2 -2
  99. package/dist/src/dht/contact/Contact.js +4 -3
  100. package/dist/src/dht/contact/Contact.js.map +1 -1
  101. package/dist/src/dht/contact/ContactList.d.ts +8 -8
  102. package/dist/src/dht/contact/ContactList.js +12 -7
  103. package/dist/src/dht/contact/ContactList.js.map +1 -1
  104. package/dist/src/dht/contact/RandomContactList.d.ts +4 -4
  105. package/dist/src/dht/contact/RandomContactList.js +13 -12
  106. package/dist/src/dht/contact/RandomContactList.js.map +1 -1
  107. package/dist/src/dht/contact/RingContactList.d.ts +31 -0
  108. package/dist/src/dht/contact/RingContactList.js +133 -0
  109. package/dist/src/dht/contact/RingContactList.js.map +1 -0
  110. package/dist/src/dht/contact/{Remote.d.ts → RpcRemote.d.ts} +8 -7
  111. package/dist/src/dht/contact/{Remote.js → RpcRemote.js} +16 -13
  112. package/dist/src/dht/contact/RpcRemote.js.map +1 -0
  113. package/dist/src/dht/contact/SortedContactList.d.ts +29 -15
  114. package/dist/src/dht/contact/SortedContactList.js +79 -42
  115. package/dist/src/dht/contact/SortedContactList.js.map +1 -1
  116. package/dist/src/dht/contact/ringIdentifiers.d.ts +16 -0
  117. package/dist/src/dht/contact/ringIdentifiers.js +54 -0
  118. package/dist/src/dht/contact/ringIdentifiers.js.map +1 -0
  119. package/dist/src/dht/discovery/DiscoverySession.d.ts +8 -18
  120. package/dist/src/dht/discovery/DiscoverySession.js +32 -48
  121. package/dist/src/dht/discovery/DiscoverySession.js.map +1 -1
  122. package/dist/src/dht/discovery/PeerDiscovery.d.ts +16 -12
  123. package/dist/src/dht/discovery/PeerDiscovery.js +82 -39
  124. package/dist/src/dht/discovery/PeerDiscovery.js.map +1 -1
  125. package/dist/src/dht/discovery/RingDiscoverySession.d.ts +29 -0
  126. package/dist/src/dht/discovery/RingDiscoverySession.js +123 -0
  127. package/dist/src/dht/discovery/RingDiscoverySession.js.map +1 -0
  128. package/dist/src/dht/recursive-operation/RecursiveOperationManager.d.ts +36 -0
  129. package/dist/src/dht/recursive-operation/RecursiveOperationManager.js +166 -0
  130. package/dist/src/dht/recursive-operation/RecursiveOperationManager.js.map +1 -0
  131. package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.d.ts +14 -0
  132. package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.js +26 -0
  133. package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.js.map +1 -0
  134. package/dist/src/dht/recursive-operation/RecursiveOperationRpcRemote.d.ts +6 -0
  135. package/dist/src/dht/recursive-operation/RecursiveOperationRpcRemote.js +44 -0
  136. package/dist/src/dht/recursive-operation/RecursiveOperationRpcRemote.js.map +1 -0
  137. package/dist/src/dht/recursive-operation/RecursiveOperationSession.d.ts +44 -0
  138. package/dist/src/dht/recursive-operation/RecursiveOperationSession.js +187 -0
  139. package/dist/src/dht/recursive-operation/RecursiveOperationSession.js.map +1 -0
  140. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.d.ts +14 -0
  141. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.js +20 -0
  142. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.js.map +1 -0
  143. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcRemote.d.ts +6 -0
  144. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcRemote.js +21 -0
  145. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcRemote.js.map +1 -0
  146. package/dist/src/dht/routing/DuplicateDetector.d.ts +2 -4
  147. package/dist/src/dht/routing/DuplicateDetector.js +10 -15
  148. package/dist/src/dht/routing/DuplicateDetector.js.map +1 -1
  149. package/dist/src/dht/routing/Router.d.ts +11 -27
  150. package/dist/src/dht/routing/Router.js +92 -58
  151. package/dist/src/dht/routing/Router.js.map +1 -1
  152. package/dist/src/dht/routing/RouterRpcLocal.d.ts +3 -4
  153. package/dist/src/dht/routing/RouterRpcLocal.js +17 -16
  154. package/dist/src/dht/routing/RouterRpcLocal.js.map +1 -1
  155. package/dist/src/dht/routing/RouterRpcRemote.d.ts +3 -3
  156. package/dist/src/dht/routing/RouterRpcRemote.js +29 -20
  157. package/dist/src/dht/routing/RouterRpcRemote.js.map +1 -1
  158. package/dist/src/dht/routing/RoutingSession.d.ts +29 -21
  159. package/dist/src/dht/routing/RoutingSession.js +93 -68
  160. package/dist/src/dht/routing/RoutingSession.js.map +1 -1
  161. package/dist/src/dht/routing/RoutingTablesCache.d.ts +24 -0
  162. package/dist/src/dht/routing/RoutingTablesCache.js +46 -0
  163. package/dist/src/dht/routing/RoutingTablesCache.js.map +1 -0
  164. package/dist/src/dht/routing/getPreviousPeer.js.map +1 -1
  165. package/dist/src/dht/store/LocalDataStore.d.ts +9 -14
  166. package/dist/src/dht/store/LocalDataStore.js +46 -72
  167. package/dist/src/dht/store/LocalDataStore.js.map +1 -1
  168. package/dist/src/dht/store/StoreManager.d.ts +33 -0
  169. package/dist/src/dht/store/StoreManager.js +182 -0
  170. package/dist/src/dht/store/StoreManager.js.map +1 -0
  171. package/dist/src/dht/store/StoreRpcLocal.d.ts +11 -41
  172. package/dist/src/dht/store/StoreRpcLocal.js +27 -234
  173. package/dist/src/dht/store/StoreRpcLocal.js.map +1 -1
  174. package/dist/src/dht/store/StoreRpcRemote.d.ts +6 -7
  175. package/dist/src/dht/store/StoreRpcRemote.js +10 -20
  176. package/dist/src/dht/store/StoreRpcRemote.js.map +1 -1
  177. package/dist/src/exports.d.ts +5 -3
  178. package/dist/src/exports.js +10 -8
  179. package/dist/src/exports.js.map +1 -1
  180. package/dist/src/helpers/AddressTools.js +2 -0
  181. package/dist/src/helpers/AddressTools.js.map +1 -1
  182. package/dist/src/helpers/Connectivity.js.map +1 -1
  183. package/dist/src/helpers/MapWithTtl.d.ts +14 -0
  184. package/dist/src/helpers/MapWithTtl.js +60 -0
  185. package/dist/src/helpers/MapWithTtl.js.map +1 -0
  186. package/dist/src/helpers/createPeerDescriptor.d.ts +3 -0
  187. package/dist/src/helpers/createPeerDescriptor.js +57 -0
  188. package/dist/src/helpers/createPeerDescriptor.js.map +1 -0
  189. package/dist/src/helpers/createPeerDescriptorSignaturePayload.d.ts +2 -0
  190. package/dist/src/helpers/createPeerDescriptorSignaturePayload.js +30 -0
  191. package/dist/src/helpers/createPeerDescriptorSignaturePayload.js.map +1 -0
  192. package/dist/src/helpers/debugHelpers.js.map +1 -1
  193. package/dist/src/helpers/errors.js +2 -0
  194. package/dist/src/helpers/errors.js.map +1 -1
  195. package/dist/src/helpers/offering.d.ts +4 -0
  196. package/dist/src/helpers/offering.js +18 -0
  197. package/dist/src/helpers/offering.js.map +1 -0
  198. package/dist/src/helpers/protoClasses.js +2 -3
  199. package/dist/src/helpers/protoClasses.js.map +1 -1
  200. package/dist/src/helpers/protoToString.js.map +1 -1
  201. package/dist/src/helpers/version.d.ts +6 -0
  202. package/dist/src/helpers/version.js +38 -0
  203. package/dist/src/helpers/version.js.map +1 -0
  204. package/dist/src/identifiers.d.ts +10 -0
  205. package/dist/src/identifiers.js +31 -0
  206. package/dist/src/identifiers.js.map +1 -0
  207. package/dist/src/proto/google/protobuf/any.js +8 -8
  208. package/dist/src/proto/google/protobuf/any.js.map +1 -1
  209. package/dist/src/proto/google/protobuf/empty.js +2 -4
  210. package/dist/src/proto/google/protobuf/empty.js.map +1 -1
  211. package/dist/src/proto/google/protobuf/timestamp.js +10 -10
  212. package/dist/src/proto/google/protobuf/timestamp.js.map +1 -1
  213. package/dist/src/proto/packages/dht/protos/DhtRpc.client.d.ts +46 -49
  214. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js +63 -54
  215. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js.map +1 -1
  216. package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +226 -232
  217. package/dist/src/proto/packages/dht/protos/DhtRpc.js +146 -168
  218. package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
  219. package/dist/src/proto/packages/dht/protos/DhtRpc.server.d.ts +26 -29
  220. package/dist/src/proto/packages/proto-rpc/protos/ProtoRpc.js +1 -1
  221. package/dist/src/rpc-protocol/DhtCallContext.d.ts +2 -2
  222. package/dist/src/rpc-protocol/DhtCallContext.js +8 -0
  223. package/dist/src/rpc-protocol/DhtCallContext.js.map +1 -1
  224. package/dist/src/rpc-protocol/DhtRpcOptions.d.ts +2 -1
  225. package/dist/src/transport/ITransport.d.ts +10 -2
  226. package/dist/src/transport/ITransport.js +5 -0
  227. package/dist/src/transport/ITransport.js.map +1 -1
  228. package/dist/src/transport/ListeningRpcCommunicator.js +3 -1
  229. package/dist/src/transport/ListeningRpcCommunicator.js.map +1 -1
  230. package/dist/src/transport/RoutingRpcCommunicator.d.ts +4 -2
  231. package/dist/src/transport/RoutingRpcCommunicator.js +19 -12
  232. package/dist/src/transport/RoutingRpcCommunicator.js.map +1 -1
  233. package/jest.config.js +4 -1
  234. package/karma-setup.js +2 -0
  235. package/karma.config.js +13 -9
  236. package/package.json +16 -13
  237. package/protos/DhtRpc.proto +76 -76
  238. package/src/connection/Connection.ts +6 -1
  239. package/src/connection/ConnectionLockHandler.ts +30 -22
  240. package/src/connection/ConnectionLockRpcLocal.ts +7 -12
  241. package/src/connection/ConnectionLockRpcRemote.ts +9 -19
  242. package/src/connection/ConnectionManager.ts +132 -138
  243. package/src/connection/ConnectorFacade.ts +10 -9
  244. package/src/connection/Handshaker.ts +23 -11
  245. package/src/connection/IConnection.ts +2 -8
  246. package/src/connection/ManagedConnection.ts +34 -35
  247. package/src/connection/connectivityChecker.ts +109 -0
  248. package/src/connection/connectivityRequestHandler.ts +103 -0
  249. package/src/connection/simulator/Simulator.ts +6 -37
  250. package/src/connection/simulator/SimulatorConnection.ts +23 -25
  251. package/src/connection/simulator/SimulatorConnector.ts +11 -11
  252. package/src/connection/webrtc/BrowserWebrtcConnection.ts +17 -25
  253. package/src/connection/webrtc/NodeWebrtcConnection.ts +24 -26
  254. package/src/connection/webrtc/WebrtcConnector.ts +18 -29
  255. package/src/connection/webrtc/WebrtcConnectorRpcLocal.ts +29 -24
  256. package/src/connection/webrtc/WebrtcConnectorRpcRemote.ts +4 -14
  257. package/src/connection/webrtc/iceServerAsString.ts +1 -1
  258. package/src/connection/websocket/AutoCertifierClientFacade.ts +4 -6
  259. package/src/connection/websocket/ClientWebsocket.ts +10 -4
  260. package/src/connection/websocket/WebsocketConnector.ts +120 -97
  261. package/src/connection/websocket/WebsocketConnectorRpcLocal.ts +13 -15
  262. package/src/connection/websocket/WebsocketConnectorRpcRemote.ts +7 -27
  263. package/src/connection/websocket/WebsocketServer.ts +50 -53
  264. package/src/connection/websocket/WebsocketServerConnection.ts +104 -0
  265. package/src/dht/DhtNode.ts +289 -410
  266. package/src/dht/DhtNodeRpcLocal.ts +25 -17
  267. package/src/dht/DhtNodeRpcRemote.ts +43 -27
  268. package/src/dht/ExternalApiRpcLocal.ts +30 -17
  269. package/src/dht/ExternalApiRpcRemote.ts +14 -11
  270. package/src/dht/PeerManager.ts +339 -0
  271. package/src/dht/contact/Contact.ts +4 -4
  272. package/src/dht/contact/ContactList.ts +11 -10
  273. package/src/dht/contact/RandomContactList.ts +15 -15
  274. package/src/dht/contact/RingContactList.ts +151 -0
  275. package/src/dht/contact/{Remote.ts → RpcRemote.ts} +16 -19
  276. package/src/dht/contact/SortedContactList.ts +120 -72
  277. package/src/dht/contact/ringIdentifiers.ts +62 -0
  278. package/src/dht/discovery/DiscoverySession.ts +36 -61
  279. package/src/dht/discovery/PeerDiscovery.ts +98 -43
  280. package/src/dht/discovery/RingDiscoverySession.ts +160 -0
  281. package/src/dht/recursive-operation/RecursiveOperationManager.ts +246 -0
  282. package/src/dht/recursive-operation/RecursiveOperationRpcLocal.ts +34 -0
  283. package/src/dht/recursive-operation/RecursiveOperationRpcRemote.ts +43 -0
  284. package/src/dht/recursive-operation/RecursiveOperationSession.ts +232 -0
  285. package/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.ts +35 -0
  286. package/src/dht/recursive-operation/RecursiveOperationSessionRpcRemote.ts +30 -0
  287. package/src/dht/routing/DuplicateDetector.ts +9 -21
  288. package/src/dht/routing/Router.ts +95 -92
  289. package/src/dht/routing/RouterRpcLocal.ts +16 -18
  290. package/src/dht/routing/RouterRpcRemote.ts +26 -24
  291. package/src/dht/routing/RoutingSession.ts +119 -98
  292. package/src/dht/routing/RoutingTablesCache.ts +58 -0
  293. package/src/dht/routing/getPreviousPeer.ts +1 -1
  294. package/src/dht/store/LocalDataStore.ts +47 -77
  295. package/src/dht/store/StoreManager.ts +209 -0
  296. package/src/dht/store/StoreRpcLocal.ts +39 -308
  297. package/src/dht/store/StoreRpcRemote.ts +13 -31
  298. package/src/exports.ts +13 -3
  299. package/src/helpers/AddressTools.ts +2 -0
  300. package/src/helpers/MapWithTtl.ts +71 -0
  301. package/src/helpers/createPeerDescriptor.ts +57 -0
  302. package/src/helpers/createPeerDescriptorSignaturePayload.ts +28 -0
  303. package/src/helpers/offering.ts +15 -0
  304. package/src/helpers/protoClasses.ts +4 -6
  305. package/src/helpers/version.ts +32 -0
  306. package/src/identifiers.ts +29 -0
  307. package/src/proto/google/protobuf/any.ts +4 -4
  308. package/src/proto/google/protobuf/empty.ts +2 -4
  309. package/src/proto/google/protobuf/timestamp.ts +4 -4
  310. package/src/proto/packages/dht/protos/DhtRpc.client.ts +65 -68
  311. package/src/proto/packages/dht/protos/DhtRpc.server.ts +27 -30
  312. package/src/proto/packages/dht/protos/DhtRpc.ts +297 -313
  313. package/src/proto/packages/proto-rpc/protos/ProtoRpc.ts +1 -1
  314. package/src/rpc-protocol/DhtCallContext.ts +2 -2
  315. package/src/rpc-protocol/DhtRpcOptions.ts +2 -1
  316. package/src/transport/ITransport.ts +11 -2
  317. package/src/transport/ListeningRpcCommunicator.ts +1 -1
  318. package/src/transport/RoutingRpcCommunicator.ts +21 -14
  319. package/test/RandomGraphSimulation.ts +3 -2
  320. package/test/benchmark/Find.test.ts +13 -28
  321. package/test/benchmark/KademliaCorrectness.test.ts +24 -28
  322. package/test/benchmark/RingCorrectness.test.ts +157 -0
  323. package/test/benchmark/SortedContactListBenchmark.test.ts +151 -0
  324. package/test/benchmark/WebsocketServerMemoryLeak.test.ts +41 -0
  325. package/test/benchmark/hybrid-network-simulation/RingContactList.test.ts +72 -0
  326. package/test/benchmark/kademlia-simulation/Contact.ts +9 -9
  327. package/test/benchmark/kademlia-simulation/KademliaSimulation.ts +11 -11
  328. package/test/benchmark/kademlia-simulation/SimulationNode.ts +29 -25
  329. package/test/data/generateGroundTruthData.ts +7 -6
  330. package/test/end-to-end/Layer0-Layer1.test.ts +11 -15
  331. package/test/end-to-end/Layer0.test.ts +19 -22
  332. package/test/end-to-end/Layer0MixedConnectionTypes.test.ts +19 -21
  333. package/test/end-to-end/Layer0Webrtc-Layer1.test.ts +26 -28
  334. package/test/end-to-end/Layer0Webrtc.test.ts +19 -19
  335. package/test/end-to-end/Layer1-Scale-WebSocket.test.ts +10 -18
  336. package/test/end-to-end/Layer1-Scale-Webrtc.test.ts +8 -15
  337. package/test/end-to-end/RecoveryFromFailedAutoCertification.test.ts +2 -2
  338. package/test/end-to-end/WebsocketConnectionRequest.test.ts +8 -9
  339. package/test/end-to-end/memory-leak.test.ts +19 -24
  340. package/test/integration/ConnectionLocking.test.ts +66 -60
  341. package/test/integration/ConnectionManager.test.ts +43 -63
  342. package/test/integration/ConnectivityChecking.test.ts +52 -0
  343. package/test/integration/DhtJoinPeerDiscovery.test.ts +8 -12
  344. package/test/integration/DhtNodeExternalAPI.test.ts +17 -21
  345. package/test/integration/DhtNodeRpcRemote.test.ts +19 -26
  346. package/test/integration/DhtRpc.test.ts +20 -24
  347. package/test/integration/Find.test.ts +10 -12
  348. package/test/integration/Layer1-scale.test.ts +25 -37
  349. package/test/integration/Mock-Layer1-Layer0.test.ts +39 -59
  350. package/test/integration/MultipleEntryPointJoining.test.ts +14 -14
  351. package/test/integration/ReplicateData.test.ts +106 -0
  352. package/test/integration/RouteMessage.test.ts +42 -68
  353. package/test/integration/RouterRpcRemote.test.ts +19 -24
  354. package/test/integration/ScaleDownDht.test.ts +14 -12
  355. package/test/integration/SimultaneousConnections.test.ts +112 -111
  356. package/test/integration/Store.test.ts +43 -27
  357. package/test/integration/StoreAndDelete.test.ts +36 -48
  358. package/test/integration/StoreOnDhtWithThreeNodes.test.ts +59 -0
  359. package/test/integration/StoreOnDhtWithTwoNodes.test.ts +17 -37
  360. package/test/integration/StoreRpcRemote.test.ts +20 -32
  361. package/test/integration/WebrtcConnectionManagement.test.ts +39 -25
  362. package/test/integration/WebrtcConnectorRpc.test.ts +6 -11
  363. package/test/integration/WebsocketConnectionManagement.test.ts +87 -22
  364. package/test/integration/WebsocketConnectorRpc.test.ts +14 -24
  365. package/test/integration/{RpcErrors.test.ts → rpc-connections-over-webrpc.test.ts} +15 -26
  366. package/test/unit/AddressTools.test.ts +4 -0
  367. package/test/unit/ConnectivityHelpers.test.ts +9 -17
  368. package/test/unit/DuplicateDetector.test.ts +8 -5
  369. package/test/unit/LocalDataStore.test.ts +78 -75
  370. package/test/unit/PeerManager.test.ts +33 -0
  371. package/test/unit/RandomContactList.test.ts +12 -9
  372. package/test/unit/RecursiveOperationManager.test.ts +157 -0
  373. package/test/unit/RecursiveOperationSession.test.ts +68 -0
  374. package/test/unit/Router.test.ts +52 -35
  375. package/test/unit/RoutingSession.test.ts +79 -0
  376. package/test/unit/SortedContactList.test.ts +61 -30
  377. package/test/unit/StoreManager.test.ts +138 -0
  378. package/test/unit/WebsocketConnector.test.ts +27 -35
  379. package/test/unit/connectivityRequestHandler.test.ts +104 -0
  380. package/test/unit/createPeerDescriptor.test.ts +69 -0
  381. package/test/unit/customMatchers.test.ts +16 -0
  382. package/test/unit/version.test.ts +18 -0
  383. package/test/utils/FakeTransport.ts +47 -0
  384. package/test/utils/customMatchers.ts +71 -0
  385. package/test/utils/mock/MockRpcCommunicator.ts +7 -0
  386. package/test/utils/mock/Router.ts +13 -3
  387. package/test/utils/mock/Transport.ts +1 -1
  388. package/test/utils/mock/mockDataEntry.ts +38 -0
  389. package/test/utils/utils.ts +104 -107
  390. package/tsconfig.browser.json +2 -1
  391. package/tsconfig.jest.json +4 -2
  392. package/tsconfig.node.json +4 -2
  393. package/dist/src/connection/ConnectivityChecker.d.ts +0 -17
  394. package/dist/src/connection/ConnectivityChecker.js +0 -208
  395. package/dist/src/connection/ConnectivityChecker.js.map +0 -1
  396. package/dist/src/connection/websocket/ServerWebsocket.js +0 -100
  397. package/dist/src/connection/websocket/ServerWebsocket.js.map +0 -1
  398. package/dist/src/dht/contact/Remote.js.map +0 -1
  399. package/dist/src/dht/find/FindRpcLocal.d.ts +0 -14
  400. package/dist/src/dht/find/FindRpcLocal.js +0 -25
  401. package/dist/src/dht/find/FindRpcLocal.js.map +0 -1
  402. package/dist/src/dht/find/FindSession.d.ts +0 -44
  403. package/dist/src/dht/find/FindSession.js +0 -145
  404. package/dist/src/dht/find/FindSession.js.map +0 -1
  405. package/dist/src/dht/find/FindSessionRpcLocal.d.ts +0 -12
  406. package/dist/src/dht/find/FindSessionRpcLocal.js +0 -17
  407. package/dist/src/dht/find/FindSessionRpcLocal.js.map +0 -1
  408. package/dist/src/dht/find/FindSessionRpcRemote.d.ts +0 -6
  409. package/dist/src/dht/find/FindSessionRpcRemote.js +0 -21
  410. package/dist/src/dht/find/FindSessionRpcRemote.js.map +0 -1
  411. package/dist/src/dht/find/Finder.d.ts +0 -49
  412. package/dist/src/dht/find/Finder.js +0 -184
  413. package/dist/src/dht/find/Finder.js.map +0 -1
  414. package/dist/src/dht/routing/FindRpcRemote.d.ts +0 -6
  415. package/dist/src/dht/routing/FindRpcRemote.js +0 -41
  416. package/dist/src/dht/routing/FindRpcRemote.js.map +0 -1
  417. package/dist/src/helpers/PeerID.d.ts +0 -24
  418. package/dist/src/helpers/PeerID.js +0 -78
  419. package/dist/src/helpers/PeerID.js.map +0 -1
  420. package/dist/src/helpers/UUID.d.ts +0 -8
  421. package/dist/src/helpers/UUID.js +0 -36
  422. package/dist/src/helpers/UUID.js.map +0 -1
  423. package/dist/src/helpers/kademliaId.d.ts +0 -1
  424. package/dist/src/helpers/kademliaId.js +0 -14
  425. package/dist/src/helpers/kademliaId.js.map +0 -1
  426. package/dist/src/helpers/peerIdFromPeerDescriptor.d.ts +0 -6
  427. package/dist/src/helpers/peerIdFromPeerDescriptor.js +0 -23
  428. package/dist/src/helpers/peerIdFromPeerDescriptor.js.map +0 -1
  429. package/src/connection/ConnectivityChecker.ts +0 -199
  430. package/src/connection/websocket/ServerWebsocket.ts +0 -114
  431. package/src/dht/find/FindRpcLocal.ts +0 -35
  432. package/src/dht/find/FindSession.ts +0 -178
  433. package/src/dht/find/FindSessionRpcLocal.ts +0 -25
  434. package/src/dht/find/FindSessionRpcRemote.ts +0 -30
  435. package/src/dht/find/Finder.ts +0 -275
  436. package/src/dht/routing/FindRpcRemote.ts +0 -40
  437. package/src/helpers/PeerID.ts +0 -88
  438. package/src/helpers/UUID.ts +0 -35
  439. package/src/helpers/kademliaId.ts +0 -8
  440. package/src/helpers/peerIdFromPeerDescriptor.ts +0 -20
  441. package/test/integration/MigrateData.test.ts +0 -204
  442. package/test/unit/Finder.test.ts +0 -110
  443. package/test/unit/PeerID.test.ts +0 -22
  444. package/test/unit/UUID.test.ts +0 -55
@@ -1,8 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WebrtcConnectorRpc = exports.WebsocketConnectorRpc = exports.FindSessionRpc = exports.StoreRpc = exports.FindRpc = exports.RouterRpc = exports.DhtNodeRpc = exports.ExternalFindDataResponse = exports.ExternalFindDataRequest = exports.DisconnectNoticeResponse = exports.DisconnectNotice = exports.LockResponse = exports.UnlockRequest = exports.LockRequest = exports.IceCandidate = exports.RtcAnswer = exports.RtcOffer = exports.WebrtcConnectionRequest = exports.WebsocketConnectionResponse = exports.WebsocketConnectionRequest = exports.Message = exports.HandshakeResponse = exports.HandshakeRequest = exports.ConnectivityResponse = exports.ConnectivityRequest = exports.RouteMessageAck = exports.RouteMessageWrapper = exports.ConnectivityMethod = exports.PeerDescriptor = exports.LeaveNotice = exports.PingResponse = exports.PingRequest = exports.FindResponse = exports.FindRequest = exports.ClosestPeersResponse = exports.ClosestPeersRequest = exports.DataEntry = exports.DeleteDataResponse = exports.DeleteDataRequest = exports.MigrateDataResponse = exports.MigrateDataRequest = exports.ExternalStoreDataResponse = exports.ExternalStoreDataRequest = exports.StoreDataResponse = exports.StoreDataRequest = exports.DisconnectMode = exports.MessageType = exports.HandshakeError = exports.RpcResponseError = exports.NodeType = void 0;
4
- exports.ExternalApiRpc = exports.ConnectionLockRpc = void 0;
5
- // @generated by protobuf-ts 2.9.1 with parameter server_generic,generate_dependencies,long_type_number
3
+ exports.ExternalApiRpc = exports.ConnectionLockRpc = exports.WebrtcConnectorRpc = exports.WebsocketConnectorRpc = exports.RecursiveOperationSessionRpc = exports.StoreRpc = exports.RecursiveOperationRpc = exports.RouterRpc = exports.DhtNodeRpc = exports.ExternalFetchDataResponse = exports.ExternalFetchDataRequest = exports.DisconnectNotice = exports.LockResponse = exports.UnlockRequest = exports.LockRequest = exports.IceCandidate = exports.RtcAnswer = exports.RtcOffer = exports.WebrtcConnectionRequest = exports.WebsocketConnectionRequest = exports.Message = exports.HandshakeResponse = exports.HandshakeRequest = exports.ConnectivityResponse = exports.ConnectivityRequest = exports.RouteMessageAck = exports.RouteMessageWrapper = exports.ConnectivityMethod = exports.PeerDescriptor = exports.LeaveNotice = exports.PingResponse = exports.PingRequest = exports.RecursiveOperationResponse = exports.RecursiveOperationRequest = exports.ClosestRingPeersResponse = exports.ClosestRingPeersRequest = exports.ClosestPeersResponse = exports.ClosestPeersRequest = exports.DataEntry = exports.ReplicateDataRequest = exports.ExternalStoreDataResponse = exports.ExternalStoreDataRequest = exports.StoreDataResponse = exports.StoreDataRequest = exports.DisconnectMode = exports.HandshakeError = exports.RouteMessageError = exports.RpcResponseError = exports.NodeType = exports.RecursiveOperation = void 0;
4
+ // @generated by protobuf-ts 2.9.3 with parameter server_generic,generate_dependencies,long_type_number
6
5
  // @generated from protobuf file "packages/dht/protos/DhtRpc.proto" (package "dht", syntax proto3)
7
6
  // tslint:disable
8
7
  const empty_1 = require("../../../google/protobuf/empty");
@@ -11,6 +10,24 @@ const runtime_1 = require("@protobuf-ts/runtime");
11
10
  const ProtoRpc_1 = require("../../proto-rpc/protos/ProtoRpc");
12
11
  const timestamp_1 = require("../../../google/protobuf/timestamp");
13
12
  const any_1 = require("../../../google/protobuf/any");
13
+ /**
14
+ * @generated from protobuf enum dht.RecursiveOperation
15
+ */
16
+ var RecursiveOperation;
17
+ (function (RecursiveOperation) {
18
+ /**
19
+ * @generated from protobuf enum value: FIND_CLOSEST_NODES = 0;
20
+ */
21
+ RecursiveOperation[RecursiveOperation["FIND_CLOSEST_NODES"] = 0] = "FIND_CLOSEST_NODES";
22
+ /**
23
+ * @generated from protobuf enum value: FETCH_DATA = 1;
24
+ */
25
+ RecursiveOperation[RecursiveOperation["FETCH_DATA"] = 1] = "FETCH_DATA";
26
+ /**
27
+ * @generated from protobuf enum value: DELETE_DATA = 2;
28
+ */
29
+ RecursiveOperation[RecursiveOperation["DELETE_DATA"] = 2] = "DELETE_DATA";
30
+ })(RecursiveOperation || (exports.RecursiveOperation = RecursiveOperation = {}));
14
31
  /**
15
32
  * @generated from protobuf enum dht.NodeType
16
33
  */
@@ -24,10 +41,6 @@ var NodeType;
24
41
  * @generated from protobuf enum value: BROWSER = 1;
25
42
  */
26
43
  NodeType[NodeType["BROWSER"] = 1] = "BROWSER";
27
- /**
28
- * @generated from protobuf enum value: VIRTUAL = 3;
29
- */
30
- NodeType[NodeType["VIRTUAL"] = 3] = "VIRTUAL";
31
44
  })(NodeType || (exports.NodeType = NodeType = {}));
32
45
  /**
33
46
  * @generated from protobuf enum dht.RpcResponseError
@@ -51,6 +64,27 @@ var RpcResponseError;
51
64
  */
52
65
  RpcResponseError[RpcResponseError["UNKNOWN_RPC_METHOD"] = 3] = "UNKNOWN_RPC_METHOD";
53
66
  })(RpcResponseError || (exports.RpcResponseError = RpcResponseError = {}));
67
+ /**
68
+ * @generated from protobuf enum dht.RouteMessageError
69
+ */
70
+ var RouteMessageError;
71
+ (function (RouteMessageError) {
72
+ /**
73
+ * @generated from protobuf enum value: NO_TARGETS = 0;
74
+ */
75
+ RouteMessageError[RouteMessageError["NO_TARGETS"] = 0] = "NO_TARGETS";
76
+ /**
77
+ * @generated from protobuf enum value: DUPLICATE = 1;
78
+ */
79
+ RouteMessageError[RouteMessageError["DUPLICATE"] = 1] = "DUPLICATE";
80
+ /**
81
+ * TODO: can this be removed? If DhtNode is already stopped the server side requests
82
+ * should not be processed
83
+ *
84
+ * @generated from protobuf enum value: STOPPED = 2;
85
+ */
86
+ RouteMessageError[RouteMessageError["STOPPED"] = 2] = "STOPPED";
87
+ })(RouteMessageError || (exports.RouteMessageError = RouteMessageError = {}));
54
88
  /**
55
89
  * @generated from protobuf enum dht.HandshakeError
56
90
  */
@@ -64,38 +98,11 @@ var HandshakeError;
64
98
  * @generated from protobuf enum value: INVALID_TARGET_PEER_DESCRIPTOR = 1;
65
99
  */
66
100
  HandshakeError[HandshakeError["INVALID_TARGET_PEER_DESCRIPTOR"] = 1] = "INVALID_TARGET_PEER_DESCRIPTOR";
67
- })(HandshakeError || (exports.HandshakeError = HandshakeError = {}));
68
- // Wraps all messages
69
- /**
70
- * @generated from protobuf enum dht.MessageType
71
- */
72
- var MessageType;
73
- (function (MessageType) {
74
- /**
75
- * @generated from protobuf enum value: RPC = 0;
76
- */
77
- MessageType[MessageType["RPC"] = 0] = "RPC";
78
101
  /**
79
- * @generated from protobuf enum value: CONNECTIVITY_REQUEST = 1;
102
+ * @generated from protobuf enum value: UNSUPPORTED_VERSION = 2;
80
103
  */
81
- MessageType[MessageType["CONNECTIVITY_REQUEST"] = 1] = "CONNECTIVITY_REQUEST";
82
- /**
83
- * @generated from protobuf enum value: CONNECTIVITY_RESPONSE = 2;
84
- */
85
- MessageType[MessageType["CONNECTIVITY_RESPONSE"] = 2] = "CONNECTIVITY_RESPONSE";
86
- /**
87
- * @generated from protobuf enum value: HANDSHAKE_REQUEST = 3;
88
- */
89
- MessageType[MessageType["HANDSHAKE_REQUEST"] = 3] = "HANDSHAKE_REQUEST";
90
- /**
91
- * @generated from protobuf enum value: HANDSHAKE_RESPONSE = 4;
92
- */
93
- MessageType[MessageType["HANDSHAKE_RESPONSE"] = 4] = "HANDSHAKE_RESPONSE";
94
- /**
95
- * @generated from protobuf enum value: FIND_REQUEST = 5;
96
- */
97
- MessageType[MessageType["FIND_REQUEST"] = 5] = "FIND_REQUEST";
98
- })(MessageType || (exports.MessageType = MessageType = {}));
104
+ HandshakeError[HandshakeError["UNSUPPORTED_VERSION"] = 2] = "UNSUPPORTED_VERSION";
105
+ })(HandshakeError || (exports.HandshakeError = HandshakeError = {}));
99
106
  /**
100
107
  * @generated from protobuf enum dht.DisconnectMode
101
108
  */
@@ -114,10 +121,11 @@ var DisconnectMode;
114
121
  class StoreDataRequest$Type extends runtime_1.MessageType {
115
122
  constructor() {
116
123
  super("dht.StoreDataRequest", [
117
- { no: 1, name: "kademliaId", kind: "scalar", T: 12 /*ScalarType.BYTES*/ },
124
+ { no: 1, name: "key", kind: "scalar", T: 12 /*ScalarType.BYTES*/ },
118
125
  { no: 2, name: "data", kind: "message", T: () => any_1.Any },
119
- { no: 3, name: "ttl", kind: "scalar", T: 13 /*ScalarType.UINT32*/ },
120
- { no: 4, name: "storerTime", kind: "message", T: () => timestamp_1.Timestamp }
126
+ { no: 3, name: "creator", kind: "scalar", T: 12 /*ScalarType.BYTES*/ },
127
+ { no: 4, name: "createdAt", kind: "message", T: () => timestamp_1.Timestamp },
128
+ { no: 5, name: "ttl", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }
121
129
  ]);
122
130
  }
123
131
  }
@@ -128,9 +136,7 @@ exports.StoreDataRequest = new StoreDataRequest$Type();
128
136
  // @generated message type with reflection information, may provide speed optimized methods
129
137
  class StoreDataResponse$Type extends runtime_1.MessageType {
130
138
  constructor() {
131
- super("dht.StoreDataResponse", [
132
- { no: 1, name: "error", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
133
- ]);
139
+ super("dht.StoreDataResponse", []);
134
140
  }
135
141
  }
136
142
  /**
@@ -163,65 +169,29 @@ class ExternalStoreDataResponse$Type extends runtime_1.MessageType {
163
169
  */
164
170
  exports.ExternalStoreDataResponse = new ExternalStoreDataResponse$Type();
165
171
  // @generated message type with reflection information, may provide speed optimized methods
166
- class MigrateDataRequest$Type extends runtime_1.MessageType {
172
+ class ReplicateDataRequest$Type extends runtime_1.MessageType {
167
173
  constructor() {
168
- super("dht.MigrateDataRequest", [
169
- { no: 1, name: "dataEntry", kind: "message", T: () => exports.DataEntry }
174
+ super("dht.ReplicateDataRequest", [
175
+ { no: 1, name: "entry", kind: "message", T: () => exports.DataEntry }
170
176
  ]);
171
177
  }
172
178
  }
173
179
  /**
174
- * @generated MessageType for protobuf message dht.MigrateDataRequest
180
+ * @generated MessageType for protobuf message dht.ReplicateDataRequest
175
181
  */
176
- exports.MigrateDataRequest = new MigrateDataRequest$Type();
177
- // @generated message type with reflection information, may provide speed optimized methods
178
- class MigrateDataResponse$Type extends runtime_1.MessageType {
179
- constructor() {
180
- super("dht.MigrateDataResponse", [
181
- { no: 1, name: "error", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
182
- ]);
183
- }
184
- }
185
- /**
186
- * @generated MessageType for protobuf message dht.MigrateDataResponse
187
- */
188
- exports.MigrateDataResponse = new MigrateDataResponse$Type();
189
- // @generated message type with reflection information, may provide speed optimized methods
190
- class DeleteDataRequest$Type extends runtime_1.MessageType {
191
- constructor() {
192
- super("dht.DeleteDataRequest", [
193
- { no: 1, name: "kademliaId", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }
194
- ]);
195
- }
196
- }
197
- /**
198
- * @generated MessageType for protobuf message dht.DeleteDataRequest
199
- */
200
- exports.DeleteDataRequest = new DeleteDataRequest$Type();
201
- // @generated message type with reflection information, may provide speed optimized methods
202
- class DeleteDataResponse$Type extends runtime_1.MessageType {
203
- constructor() {
204
- super("dht.DeleteDataResponse", [
205
- { no: 1, name: "deleted", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }
206
- ]);
207
- }
208
- }
209
- /**
210
- * @generated MessageType for protobuf message dht.DeleteDataResponse
211
- */
212
- exports.DeleteDataResponse = new DeleteDataResponse$Type();
182
+ exports.ReplicateDataRequest = new ReplicateDataRequest$Type();
213
183
  // @generated message type with reflection information, may provide speed optimized methods
214
184
  class DataEntry$Type extends runtime_1.MessageType {
215
185
  constructor() {
216
186
  super("dht.DataEntry", [
217
- { no: 1, name: "storer", kind: "message", T: () => exports.PeerDescriptor },
218
- { no: 2, name: "kademliaId", kind: "scalar", T: 12 /*ScalarType.BYTES*/ },
219
- { no: 3, name: "data", kind: "message", T: () => any_1.Any },
220
- { no: 4, name: "storedAt", kind: "message", T: () => timestamp_1.Timestamp },
221
- { no: 5, name: "ttl", kind: "scalar", T: 13 /*ScalarType.UINT32*/ },
222
- { no: 6, name: "stale", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
223
- { no: 7, name: "deleted", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
224
- { no: 8, name: "storerTime", kind: "message", T: () => timestamp_1.Timestamp }
187
+ { no: 1, name: "key", kind: "scalar", T: 12 /*ScalarType.BYTES*/ },
188
+ { no: 2, name: "data", kind: "message", T: () => any_1.Any },
189
+ { no: 3, name: "creator", kind: "scalar", T: 12 /*ScalarType.BYTES*/ },
190
+ { no: 4, name: "createdAt", kind: "message", T: () => timestamp_1.Timestamp },
191
+ { no: 5, name: "storedAt", kind: "message", T: () => timestamp_1.Timestamp },
192
+ { no: 6, name: "ttl", kind: "scalar", T: 13 /*ScalarType.UINT32*/ },
193
+ { no: 7, name: "stale", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
194
+ { no: 8, name: "deleted", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }
225
195
  ]);
226
196
  }
227
197
  }
@@ -233,7 +203,7 @@ exports.DataEntry = new DataEntry$Type();
233
203
  class ClosestPeersRequest$Type extends runtime_1.MessageType {
234
204
  constructor() {
235
205
  super("dht.ClosestPeersRequest", [
236
- { no: 1, name: "kademliaId", kind: "scalar", T: 12 /*ScalarType.BYTES*/ },
206
+ { no: 1, name: "nodeId", kind: "scalar", T: 12 /*ScalarType.BYTES*/ },
237
207
  { no: 2, name: "requestId", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
238
208
  ]);
239
209
  }
@@ -256,33 +226,60 @@ class ClosestPeersResponse$Type extends runtime_1.MessageType {
256
226
  */
257
227
  exports.ClosestPeersResponse = new ClosestPeersResponse$Type();
258
228
  // @generated message type with reflection information, may provide speed optimized methods
259
- class FindRequest$Type extends runtime_1.MessageType {
229
+ class ClosestRingPeersRequest$Type extends runtime_1.MessageType {
230
+ constructor() {
231
+ super("dht.ClosestRingPeersRequest", [
232
+ { no: 1, name: "ringId", kind: "scalar", T: 12 /*ScalarType.BYTES*/ },
233
+ { no: 2, name: "requestId", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
234
+ ]);
235
+ }
236
+ }
237
+ /**
238
+ * @generated MessageType for protobuf message dht.ClosestRingPeersRequest
239
+ */
240
+ exports.ClosestRingPeersRequest = new ClosestRingPeersRequest$Type();
241
+ // @generated message type with reflection information, may provide speed optimized methods
242
+ class ClosestRingPeersResponse$Type extends runtime_1.MessageType {
243
+ constructor() {
244
+ super("dht.ClosestRingPeersResponse", [
245
+ { no: 1, name: "leftPeers", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => exports.PeerDescriptor },
246
+ { no: 2, name: "rightPeers", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => exports.PeerDescriptor },
247
+ { no: 3, name: "requestId", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
248
+ ]);
249
+ }
250
+ }
251
+ /**
252
+ * @generated MessageType for protobuf message dht.ClosestRingPeersResponse
253
+ */
254
+ exports.ClosestRingPeersResponse = new ClosestRingPeersResponse$Type();
255
+ // @generated message type with reflection information, may provide speed optimized methods
256
+ class RecursiveOperationRequest$Type extends runtime_1.MessageType {
260
257
  constructor() {
261
- super("dht.FindRequest", [
258
+ super("dht.RecursiveOperationRequest", [
262
259
  { no: 1, name: "sessionId", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
263
- { no: 2, name: "fetchData", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }
260
+ { no: 2, name: "operation", kind: "enum", T: () => ["dht.RecursiveOperation", RecursiveOperation] }
264
261
  ]);
265
262
  }
266
263
  }
267
264
  /**
268
- * @generated MessageType for protobuf message dht.FindRequest
265
+ * @generated MessageType for protobuf message dht.RecursiveOperationRequest
269
266
  */
270
- exports.FindRequest = new FindRequest$Type();
267
+ exports.RecursiveOperationRequest = new RecursiveOperationRequest$Type();
271
268
  // @generated message type with reflection information, may provide speed optimized methods
272
- class FindResponse$Type extends runtime_1.MessageType {
269
+ class RecursiveOperationResponse$Type extends runtime_1.MessageType {
273
270
  constructor() {
274
- super("dht.FindResponse", [
271
+ super("dht.RecursiveOperationResponse", [
275
272
  { no: 1, name: "closestConnectedPeers", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => exports.PeerDescriptor },
276
273
  { no: 2, name: "dataEntries", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => exports.DataEntry },
277
- { no: 3, name: "noCloserNodesFound", kind: "scalar", opt: true, T: 8 /*ScalarType.BOOL*/ },
274
+ { no: 3, name: "noCloserNodesFound", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
278
275
  { no: 4, name: "routingPath", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => exports.PeerDescriptor }
279
276
  ]);
280
277
  }
281
278
  }
282
279
  /**
283
- * @generated MessageType for protobuf message dht.FindResponse
280
+ * @generated MessageType for protobuf message dht.RecursiveOperationResponse
284
281
  */
285
- exports.FindResponse = new FindResponse$Type();
282
+ exports.RecursiveOperationResponse = new RecursiveOperationResponse$Type();
286
283
  // @generated message type with reflection information, may provide speed optimized methods
287
284
  class PingRequest$Type extends runtime_1.MessageType {
288
285
  constructor() {
@@ -310,9 +307,7 @@ exports.PingResponse = new PingResponse$Type();
310
307
  // @generated message type with reflection information, may provide speed optimized methods
311
308
  class LeaveNotice$Type extends runtime_1.MessageType {
312
309
  constructor() {
313
- super("dht.LeaveNotice", [
314
- { no: 1, name: "serviceId", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
315
- ]);
310
+ super("dht.LeaveNotice", []);
316
311
  }
317
312
  }
318
313
  /**
@@ -323,12 +318,15 @@ exports.LeaveNotice = new LeaveNotice$Type();
323
318
  class PeerDescriptor$Type extends runtime_1.MessageType {
324
319
  constructor() {
325
320
  super("dht.PeerDescriptor", [
326
- { no: 1, name: "kademliaId", kind: "scalar", T: 12 /*ScalarType.BYTES*/ },
321
+ { no: 1, name: "nodeId", kind: "scalar", T: 12 /*ScalarType.BYTES*/ },
327
322
  { no: 2, name: "type", kind: "enum", T: () => ["dht.NodeType", NodeType] },
328
323
  { no: 3, name: "udp", kind: "message", T: () => exports.ConnectivityMethod },
329
324
  { no: 4, name: "tcp", kind: "message", T: () => exports.ConnectivityMethod },
330
325
  { no: 5, name: "websocket", kind: "message", T: () => exports.ConnectivityMethod },
331
- { no: 6, name: "region", kind: "scalar", opt: true, T: 13 /*ScalarType.UINT32*/ }
326
+ { no: 6, name: "region", kind: "scalar", opt: true, T: 13 /*ScalarType.UINT32*/ },
327
+ { no: 7, name: "ipAddress", kind: "scalar", opt: true, T: 13 /*ScalarType.UINT32*/ },
328
+ { no: 8, name: "publicKey", kind: "scalar", opt: true, T: 12 /*ScalarType.BYTES*/ },
329
+ { no: 9, name: "signature", kind: "scalar", opt: true, T: 12 /*ScalarType.BYTES*/ }
332
330
  ]);
333
331
  }
334
332
  }
@@ -354,12 +352,13 @@ exports.ConnectivityMethod = new ConnectivityMethod$Type();
354
352
  class RouteMessageWrapper$Type extends runtime_1.MessageType {
355
353
  constructor() {
356
354
  super("dht.RouteMessageWrapper", [
357
- { no: 1, name: "sourcePeer", kind: "message", T: () => exports.PeerDescriptor },
358
- { no: 2, name: "requestId", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
359
- { no: 3, name: "destinationPeer", kind: "message", T: () => exports.PeerDescriptor },
355
+ { no: 1, name: "requestId", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
356
+ { no: 2, name: "sourcePeer", kind: "message", T: () => exports.PeerDescriptor },
357
+ { no: 3, name: "target", kind: "scalar", T: 12 /*ScalarType.BYTES*/ },
360
358
  { no: 4, name: "message", kind: "message", T: () => exports.Message },
361
359
  { no: 5, name: "reachableThrough", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => exports.PeerDescriptor },
362
- { no: 6, name: "routingPath", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => exports.PeerDescriptor }
360
+ { no: 6, name: "routingPath", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => exports.PeerDescriptor },
361
+ { no: 7, name: "parallelRootNodeIds", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }
363
362
  ]);
364
363
  }
365
364
  }
@@ -372,7 +371,7 @@ class RouteMessageAck$Type extends runtime_1.MessageType {
372
371
  constructor() {
373
372
  super("dht.RouteMessageAck", [
374
373
  { no: 1, name: "requestId", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
375
- { no: 2, name: "error", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
374
+ { no: 2, name: "error", kind: "enum", opt: true, T: () => ["dht.RouteMessageError", RouteMessageError] }
376
375
  ]);
377
376
  }
378
377
  }
@@ -401,7 +400,9 @@ class ConnectivityResponse$Type extends runtime_1.MessageType {
401
400
  super("dht.ConnectivityResponse", [
402
401
  { no: 1, name: "host", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
403
402
  { no: 2, name: "natType", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
404
- { no: 3, name: "websocket", kind: "message", T: () => exports.ConnectivityMethod }
403
+ { no: 3, name: "websocket", kind: "message", T: () => exports.ConnectivityMethod },
404
+ { no: 4, name: "ipAddress", kind: "scalar", T: 13 /*ScalarType.UINT32*/ },
405
+ { no: 5, name: "version", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
405
406
  ]);
406
407
  }
407
408
  }
@@ -414,7 +415,8 @@ class HandshakeRequest$Type extends runtime_1.MessageType {
414
415
  constructor() {
415
416
  super("dht.HandshakeRequest", [
416
417
  { no: 1, name: "sourcePeerDescriptor", kind: "message", T: () => exports.PeerDescriptor },
417
- { no: 2, name: "targetPeerDescriptor", kind: "message", T: () => exports.PeerDescriptor }
418
+ { no: 2, name: "targetPeerDescriptor", kind: "message", T: () => exports.PeerDescriptor },
419
+ { no: 3, name: "version", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
418
420
  ]);
419
421
  }
420
422
  }
@@ -427,7 +429,8 @@ class HandshakeResponse$Type extends runtime_1.MessageType {
427
429
  constructor() {
428
430
  super("dht.HandshakeResponse", [
429
431
  { no: 1, name: "sourcePeerDescriptor", kind: "message", T: () => exports.PeerDescriptor },
430
- { no: 2, name: "error", kind: "enum", opt: true, T: () => ["dht.HandshakeError", HandshakeError] }
432
+ { no: 2, name: "error", kind: "enum", opt: true, T: () => ["dht.HandshakeError", HandshakeError] },
433
+ { no: 3, name: "version", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
431
434
  ]);
432
435
  }
433
436
  }
@@ -440,16 +443,15 @@ class Message$Type extends runtime_1.MessageType {
440
443
  constructor() {
441
444
  super("dht.Message", [
442
445
  { no: 1, name: "messageId", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
443
- { no: 2, name: "messageType", kind: "enum", T: () => ["dht.MessageType", MessageType] },
444
- { no: 3, name: "sourceDescriptor", kind: "message", T: () => exports.PeerDescriptor },
445
- { no: 4, name: "targetDescriptor", kind: "message", T: () => exports.PeerDescriptor },
446
- { no: 5, name: "serviceId", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
446
+ { no: 2, name: "sourceDescriptor", kind: "message", T: () => exports.PeerDescriptor },
447
+ { no: 3, name: "targetDescriptor", kind: "message", T: () => exports.PeerDescriptor },
448
+ { no: 4, name: "serviceId", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
449
+ { no: 5, name: "rpcMessage", kind: "message", oneof: "body", T: () => ProtoRpc_1.RpcMessage },
447
450
  { no: 6, name: "connectivityRequest", kind: "message", oneof: "body", T: () => exports.ConnectivityRequest },
448
451
  { no: 7, name: "connectivityResponse", kind: "message", oneof: "body", T: () => exports.ConnectivityResponse },
449
452
  { no: 8, name: "handshakeRequest", kind: "message", oneof: "body", T: () => exports.HandshakeRequest },
450
453
  { no: 9, name: "handshakeResponse", kind: "message", oneof: "body", T: () => exports.HandshakeResponse },
451
- { no: 10, name: "rpcMessage", kind: "message", oneof: "body", T: () => ProtoRpc_1.RpcMessage },
452
- { no: 11, name: "findRequest", kind: "message", oneof: "body", T: () => exports.FindRequest }
454
+ { no: 10, name: "recursiveOperationRequest", kind: "message", oneof: "body", T: () => exports.RecursiveOperationRequest }
453
455
  ]);
454
456
  }
455
457
  }
@@ -468,18 +470,6 @@ class WebsocketConnectionRequest$Type extends runtime_1.MessageType {
468
470
  */
469
471
  exports.WebsocketConnectionRequest = new WebsocketConnectionRequest$Type();
470
472
  // @generated message type with reflection information, may provide speed optimized methods
471
- class WebsocketConnectionResponse$Type extends runtime_1.MessageType {
472
- constructor() {
473
- super("dht.WebsocketConnectionResponse", [
474
- { no: 1, name: "accepted", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }
475
- ]);
476
- }
477
- }
478
- /**
479
- * @generated MessageType for protobuf message dht.WebsocketConnectionResponse
480
- */
481
- exports.WebsocketConnectionResponse = new WebsocketConnectionResponse$Type();
482
- // @generated message type with reflection information, may provide speed optimized methods
483
473
  class WebrtcConnectionRequest$Type extends runtime_1.MessageType {
484
474
  constructor() {
485
475
  super("dht.WebrtcConnectionRequest", []);
@@ -557,8 +547,7 @@ exports.UnlockRequest = new UnlockRequest$Type();
557
547
  class LockResponse$Type extends runtime_1.MessageType {
558
548
  constructor() {
559
549
  super("dht.LockResponse", [
560
- { no: 1, name: "accepted", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
561
- { no: 2, name: "reason", kind: "scalar", opt: true, T: 8 /*ScalarType.BOOL*/ }
550
+ { no: 1, name: "accepted", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }
562
551
  ]);
563
552
  }
564
553
  }
@@ -579,45 +568,35 @@ class DisconnectNotice$Type extends runtime_1.MessageType {
579
568
  */
580
569
  exports.DisconnectNotice = new DisconnectNotice$Type();
581
570
  // @generated message type with reflection information, may provide speed optimized methods
582
- class DisconnectNoticeResponse$Type extends runtime_1.MessageType {
583
- constructor() {
584
- super("dht.DisconnectNoticeResponse", []);
585
- }
586
- }
587
- /**
588
- * @generated MessageType for protobuf message dht.DisconnectNoticeResponse
589
- */
590
- exports.DisconnectNoticeResponse = new DisconnectNoticeResponse$Type();
591
- // @generated message type with reflection information, may provide speed optimized methods
592
- class ExternalFindDataRequest$Type extends runtime_1.MessageType {
571
+ class ExternalFetchDataRequest$Type extends runtime_1.MessageType {
593
572
  constructor() {
594
- super("dht.ExternalFindDataRequest", [
595
- { no: 1, name: "kademliaId", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }
573
+ super("dht.ExternalFetchDataRequest", [
574
+ { no: 1, name: "key", kind: "scalar", T: 12 /*ScalarType.BYTES*/ }
596
575
  ]);
597
576
  }
598
577
  }
599
578
  /**
600
- * @generated MessageType for protobuf message dht.ExternalFindDataRequest
579
+ * @generated MessageType for protobuf message dht.ExternalFetchDataRequest
601
580
  */
602
- exports.ExternalFindDataRequest = new ExternalFindDataRequest$Type();
581
+ exports.ExternalFetchDataRequest = new ExternalFetchDataRequest$Type();
603
582
  // @generated message type with reflection information, may provide speed optimized methods
604
- class ExternalFindDataResponse$Type extends runtime_1.MessageType {
583
+ class ExternalFetchDataResponse$Type extends runtime_1.MessageType {
605
584
  constructor() {
606
- super("dht.ExternalFindDataResponse", [
607
- { no: 1, name: "dataEntries", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => exports.DataEntry },
608
- { no: 2, name: "error", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ }
585
+ super("dht.ExternalFetchDataResponse", [
586
+ { no: 1, name: "entries", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => exports.DataEntry }
609
587
  ]);
610
588
  }
611
589
  }
612
590
  /**
613
- * @generated MessageType for protobuf message dht.ExternalFindDataResponse
591
+ * @generated MessageType for protobuf message dht.ExternalFetchDataResponse
614
592
  */
615
- exports.ExternalFindDataResponse = new ExternalFindDataResponse$Type();
593
+ exports.ExternalFetchDataResponse = new ExternalFetchDataResponse$Type();
616
594
  /**
617
595
  * @generated ServiceType for protobuf service dht.DhtNodeRpc
618
596
  */
619
597
  exports.DhtNodeRpc = new runtime_rpc_1.ServiceType("dht.DhtNodeRpc", [
620
598
  { name: "getClosestPeers", options: {}, I: exports.ClosestPeersRequest, O: exports.ClosestPeersResponse },
599
+ { name: "getClosestRingPeers", options: {}, I: exports.ClosestRingPeersRequest, O: exports.ClosestRingPeersResponse },
621
600
  { name: "ping", options: {}, I: exports.PingRequest, O: exports.PingResponse },
622
601
  { name: "leaveNotice", options: {}, I: exports.LeaveNotice, O: empty_1.Empty }
623
602
  ]);
@@ -629,30 +608,29 @@ exports.RouterRpc = new runtime_rpc_1.ServiceType("dht.RouterRpc", [
629
608
  { name: "forwardMessage", options: {}, I: exports.RouteMessageWrapper, O: exports.RouteMessageAck }
630
609
  ]);
631
610
  /**
632
- * @generated ServiceType for protobuf service dht.FindRpc
611
+ * @generated ServiceType for protobuf service dht.RecursiveOperationRpc
633
612
  */
634
- exports.FindRpc = new runtime_rpc_1.ServiceType("dht.FindRpc", [
635
- { name: "routeFindRequest", options: {}, I: exports.RouteMessageWrapper, O: exports.RouteMessageAck }
613
+ exports.RecursiveOperationRpc = new runtime_rpc_1.ServiceType("dht.RecursiveOperationRpc", [
614
+ { name: "routeRequest", options: {}, I: exports.RouteMessageWrapper, O: exports.RouteMessageAck }
636
615
  ]);
637
616
  /**
638
617
  * @generated ServiceType for protobuf service dht.StoreRpc
639
618
  */
640
619
  exports.StoreRpc = new runtime_rpc_1.ServiceType("dht.StoreRpc", [
641
620
  { name: "storeData", options: {}, I: exports.StoreDataRequest, O: exports.StoreDataResponse },
642
- { name: "migrateData", options: {}, I: exports.MigrateDataRequest, O: exports.MigrateDataResponse },
643
- { name: "deleteData", options: {}, I: exports.DeleteDataRequest, O: exports.DeleteDataResponse }
621
+ { name: "replicateData", options: {}, I: exports.ReplicateDataRequest, O: empty_1.Empty }
644
622
  ]);
645
623
  /**
646
- * @generated ServiceType for protobuf service dht.FindSessionRpc
624
+ * @generated ServiceType for protobuf service dht.RecursiveOperationSessionRpc
647
625
  */
648
- exports.FindSessionRpc = new runtime_rpc_1.ServiceType("dht.FindSessionRpc", [
649
- { name: "sendFindResponse", options: {}, I: exports.FindResponse, O: empty_1.Empty }
626
+ exports.RecursiveOperationSessionRpc = new runtime_rpc_1.ServiceType("dht.RecursiveOperationSessionRpc", [
627
+ { name: "sendResponse", options: {}, I: exports.RecursiveOperationResponse, O: empty_1.Empty }
650
628
  ]);
651
629
  /**
652
630
  * @generated ServiceType for protobuf service dht.WebsocketConnectorRpc
653
631
  */
654
632
  exports.WebsocketConnectorRpc = new runtime_rpc_1.ServiceType("dht.WebsocketConnectorRpc", [
655
- { name: "requestConnection", options: {}, I: exports.WebsocketConnectionRequest, O: exports.WebsocketConnectionResponse }
633
+ { name: "requestConnection", options: {}, I: exports.WebsocketConnectionRequest, O: empty_1.Empty }
656
634
  ]);
657
635
  /**
658
636
  * @generated ServiceType for protobuf service dht.WebrtcConnectorRpc
@@ -669,13 +647,13 @@ exports.WebrtcConnectorRpc = new runtime_rpc_1.ServiceType("dht.WebrtcConnectorR
669
647
  exports.ConnectionLockRpc = new runtime_rpc_1.ServiceType("dht.ConnectionLockRpc", [
670
648
  { name: "lockRequest", options: {}, I: exports.LockRequest, O: exports.LockResponse },
671
649
  { name: "unlockRequest", options: {}, I: exports.UnlockRequest, O: empty_1.Empty },
672
- { name: "gracefulDisconnect", options: {}, I: exports.DisconnectNotice, O: exports.DisconnectNoticeResponse }
650
+ { name: "gracefulDisconnect", options: {}, I: exports.DisconnectNotice, O: empty_1.Empty }
673
651
  ]);
674
652
  /**
675
653
  * @generated ServiceType for protobuf service dht.ExternalApiRpc
676
654
  */
677
655
  exports.ExternalApiRpc = new runtime_rpc_1.ServiceType("dht.ExternalApiRpc", [
678
- { name: "externalFindData", options: {}, I: exports.ExternalFindDataRequest, O: exports.ExternalFindDataResponse },
656
+ { name: "externalFetchData", options: {}, I: exports.ExternalFetchDataRequest, O: exports.ExternalFetchDataResponse },
679
657
  { name: "externalStoreData", options: {}, I: exports.ExternalStoreDataRequest, O: exports.ExternalStoreDataResponse }
680
658
  ]);
681
659
  //# sourceMappingURL=DhtRpc.js.map