@streamr/dht 103.1.2 → 103.2.0-experiment.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 (303) hide show
  1. package/dist/exports-browser.cjs +7636 -0
  2. package/dist/exports-browser.cjs.map +1 -0
  3. package/dist/exports-browser.d.ts +1321 -0
  4. package/dist/exports-browser.js +7611 -0
  5. package/dist/exports-browser.js.map +1 -0
  6. package/dist/exports-nodejs.cjs +7833 -0
  7. package/dist/exports-nodejs.cjs.map +1 -0
  8. package/dist/exports-nodejs.d.ts +1321 -0
  9. package/dist/exports-nodejs.js +7808 -0
  10. package/dist/exports-nodejs.js.map +1 -0
  11. package/package.json +41 -25
  12. package/dist/generated/google/protobuf/any.d.ts +0 -180
  13. package/dist/generated/google/protobuf/any.js +0 -155
  14. package/dist/generated/google/protobuf/any.js.map +0 -1
  15. package/dist/generated/google/protobuf/empty.d.ts +0 -31
  16. package/dist/generated/google/protobuf/empty.js +0 -45
  17. package/dist/generated/google/protobuf/empty.js.map +0 -1
  18. package/dist/generated/google/protobuf/timestamp.d.ts +0 -156
  19. package/dist/generated/google/protobuf/timestamp.js +0 -136
  20. package/dist/generated/google/protobuf/timestamp.js.map +0 -1
  21. package/dist/generated/packages/dht/protos/DhtRpc.client.d.ts +0 -371
  22. package/dist/generated/packages/dht/protos/DhtRpc.client.js +0 -292
  23. package/dist/generated/packages/dht/protos/DhtRpc.client.js.map +0 -1
  24. package/dist/generated/packages/dht/protos/DhtRpc.d.ts +0 -1031
  25. package/dist/generated/packages/dht/protos/DhtRpc.js +0 -702
  26. package/dist/generated/packages/dht/protos/DhtRpc.js.map +0 -1
  27. package/dist/generated/packages/dht/protos/DhtRpc.server.d.ts +0 -168
  28. package/dist/generated/packages/dht/protos/DhtRpc.server.js +0 -3
  29. package/dist/generated/packages/dht/protos/DhtRpc.server.js.map +0 -1
  30. package/dist/generated/packages/proto-rpc/protos/ProtoRpc.d.ts +0 -87
  31. package/dist/generated/packages/proto-rpc/protos/ProtoRpc.js +0 -66
  32. package/dist/generated/packages/proto-rpc/protos/ProtoRpc.js.map +0 -1
  33. package/dist/package.json +0 -61
  34. package/dist/src/connection/Connection.d.ts +0 -12
  35. package/dist/src/connection/Connection.js +0 -30
  36. package/dist/src/connection/Connection.js.map +0 -1
  37. package/dist/src/connection/ConnectionLockRpcLocal.d.ts +0 -22
  38. package/dist/src/connection/ConnectionLockRpcLocal.js +0 -54
  39. package/dist/src/connection/ConnectionLockRpcLocal.js.map +0 -1
  40. package/dist/src/connection/ConnectionLockRpcRemote.d.ts +0 -10
  41. package/dist/src/connection/ConnectionLockRpcRemote.js +0 -61
  42. package/dist/src/connection/ConnectionLockRpcRemote.js.map +0 -1
  43. package/dist/src/connection/ConnectionLockStates.d.ts +0 -27
  44. package/dist/src/connection/ConnectionLockStates.js +0 -114
  45. package/dist/src/connection/ConnectionLockStates.js.map +0 -1
  46. package/dist/src/connection/ConnectionManager.d.ts +0 -85
  47. package/dist/src/connection/ConnectionManager.js +0 -569
  48. package/dist/src/connection/ConnectionManager.js.map +0 -1
  49. package/dist/src/connection/ConnectionsView.d.ts +0 -7
  50. package/dist/src/connection/ConnectionsView.js +0 -3
  51. package/dist/src/connection/ConnectionsView.js.map +0 -1
  52. package/dist/src/connection/ConnectorFacade.d.ts +0 -58
  53. package/dist/src/connection/ConnectorFacade.js +0 -154
  54. package/dist/src/connection/ConnectorFacade.js.map +0 -1
  55. package/dist/src/connection/Handshaker.d.ts +0 -27
  56. package/dist/src/connection/Handshaker.js +0 -179
  57. package/dist/src/connection/Handshaker.js.map +0 -1
  58. package/dist/src/connection/IConnection.d.ts +0 -32
  59. package/dist/src/connection/IConnection.js +0 -12
  60. package/dist/src/connection/IConnection.js.map +0 -1
  61. package/dist/src/connection/ManagedConnection.d.ts +0 -30
  62. package/dist/src/connection/ManagedConnection.js +0 -129
  63. package/dist/src/connection/ManagedConnection.js.map +0 -1
  64. package/dist/src/connection/OutputBuffer.d.ts +0 -9
  65. package/dist/src/connection/OutputBuffer.js +0 -26
  66. package/dist/src/connection/OutputBuffer.js.map +0 -1
  67. package/dist/src/connection/PendingConnection.d.ts +0 -19
  68. package/dist/src/connection/PendingConnection.js +0 -59
  69. package/dist/src/connection/PendingConnection.js.map +0 -1
  70. package/dist/src/connection/connectivityChecker.d.ts +0 -9
  71. package/dist/src/connection/connectivityChecker.js +0 -138
  72. package/dist/src/connection/connectivityChecker.js.map +0 -1
  73. package/dist/src/connection/connectivityRequestHandler.d.ts +0 -4
  74. package/dist/src/connection/connectivityRequestHandler.js +0 -108
  75. package/dist/src/connection/connectivityRequestHandler.js.map +0 -1
  76. package/dist/src/connection/simulator/Simulator.d.ts +0 -36
  77. package/dist/src/connection/simulator/Simulator.js +0 -290
  78. package/dist/src/connection/simulator/Simulator.js.map +0 -1
  79. package/dist/src/connection/simulator/SimulatorConnection.d.ts +0 -18
  80. package/dist/src/connection/simulator/SimulatorConnection.js +0 -123
  81. package/dist/src/connection/simulator/SimulatorConnection.js.map +0 -1
  82. package/dist/src/connection/simulator/SimulatorConnector.d.ts +0 -16
  83. package/dist/src/connection/simulator/SimulatorConnector.js +0 -80
  84. package/dist/src/connection/simulator/SimulatorConnector.js.map +0 -1
  85. package/dist/src/connection/simulator/SimulatorTransport.d.ts +0 -6
  86. package/dist/src/connection/simulator/SimulatorTransport.js +0 -17
  87. package/dist/src/connection/simulator/SimulatorTransport.js.map +0 -1
  88. package/dist/src/connection/simulator/pings.d.ts +0 -21
  89. package/dist/src/connection/simulator/pings.js +0 -61
  90. package/dist/src/connection/simulator/pings.js.map +0 -1
  91. package/dist/src/connection/webrtc/BrowserWebrtcConnection.d.ts +0 -37
  92. package/dist/src/connection/webrtc/BrowserWebrtcConnection.js +0 -229
  93. package/dist/src/connection/webrtc/BrowserWebrtcConnection.js.map +0 -1
  94. package/dist/src/connection/webrtc/IWebrtcConnection.d.ts +0 -21
  95. package/dist/src/connection/webrtc/IWebrtcConnection.js +0 -9
  96. package/dist/src/connection/webrtc/IWebrtcConnection.js.map +0 -1
  97. package/dist/src/connection/webrtc/NodeWebrtcConnection.d.ts +0 -45
  98. package/dist/src/connection/webrtc/NodeWebrtcConnection.js +0 -229
  99. package/dist/src/connection/webrtc/NodeWebrtcConnection.js.map +0 -1
  100. package/dist/src/connection/webrtc/WebrtcConnector.d.ts +0 -43
  101. package/dist/src/connection/webrtc/WebrtcConnector.js +0 -208
  102. package/dist/src/connection/webrtc/WebrtcConnector.js.map +0 -1
  103. package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.d.ts +0 -26
  104. package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js +0 -82
  105. package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js.map +0 -1
  106. package/dist/src/connection/webrtc/WebrtcConnectorRpcRemote.d.ts +0 -8
  107. package/dist/src/connection/webrtc/WebrtcConnectorRpcRemote.js +0 -50
  108. package/dist/src/connection/webrtc/WebrtcConnectorRpcRemote.js.map +0 -1
  109. package/dist/src/connection/webrtc/iceServerAsString.d.ts +0 -2
  110. package/dist/src/connection/webrtc/iceServerAsString.js +0 -17
  111. package/dist/src/connection/webrtc/iceServerAsString.js.map +0 -1
  112. package/dist/src/connection/websocket/AbstractWebsocketClientConnection.d.ts +0 -27
  113. package/dist/src/connection/websocket/AbstractWebsocketClientConnection.js +0 -107
  114. package/dist/src/connection/websocket/AbstractWebsocketClientConnection.js.map +0 -1
  115. package/dist/src/connection/websocket/AutoCertifierClientFacade.d.ts +0 -26
  116. package/dist/src/connection/websocket/AutoCertifierClientFacade.js +0 -39
  117. package/dist/src/connection/websocket/AutoCertifierClientFacade.js.map +0 -1
  118. package/dist/src/connection/websocket/BrowserWebsocketClientConnection.d.ts +0 -7
  119. package/dist/src/connection/websocket/BrowserWebsocketClientConnection.js +0 -44
  120. package/dist/src/connection/websocket/BrowserWebsocketClientConnection.js.map +0 -1
  121. package/dist/src/connection/websocket/NodeWebsocketClientConnection.d.ts +0 -7
  122. package/dist/src/connection/websocket/NodeWebsocketClientConnection.js +0 -39
  123. package/dist/src/connection/websocket/NodeWebsocketClientConnection.js.map +0 -1
  124. package/dist/src/connection/websocket/WebsocketClientConnector.d.ts +0 -26
  125. package/dist/src/connection/websocket/WebsocketClientConnector.js +0 -86
  126. package/dist/src/connection/websocket/WebsocketClientConnector.js.map +0 -1
  127. package/dist/src/connection/websocket/WebsocketClientConnectorRpcLocal.d.ts +0 -18
  128. package/dist/src/connection/websocket/WebsocketClientConnectorRpcLocal.js +0 -23
  129. package/dist/src/connection/websocket/WebsocketClientConnectorRpcLocal.js.map +0 -1
  130. package/dist/src/connection/websocket/WebsocketClientConnectorRpcRemote.d.ts +0 -5
  131. package/dist/src/connection/websocket/WebsocketClientConnectorRpcRemote.js +0 -17
  132. package/dist/src/connection/websocket/WebsocketClientConnectorRpcRemote.js.map +0 -1
  133. package/dist/src/connection/websocket/WebsocketServer.d.ts +0 -25
  134. package/dist/src/connection/websocket/WebsocketServer.js +0 -146
  135. package/dist/src/connection/websocket/WebsocketServer.js.map +0 -1
  136. package/dist/src/connection/websocket/WebsocketServerConnection.d.ts +0 -22
  137. package/dist/src/connection/websocket/WebsocketServerConnection.js +0 -101
  138. package/dist/src/connection/websocket/WebsocketServerConnection.js.map +0 -1
  139. package/dist/src/connection/websocket/WebsocketServerConnector.d.ts +0 -44
  140. package/dist/src/connection/websocket/WebsocketServerConnector.js +0 -279
  141. package/dist/src/connection/websocket/WebsocketServerConnector.js.map +0 -1
  142. package/dist/src/dht/DhtNode.d.ts +0 -119
  143. package/dist/src/dht/DhtNode.js +0 -500
  144. package/dist/src/dht/DhtNode.js.map +0 -1
  145. package/dist/src/dht/DhtNodeRpcLocal.d.ts +0 -23
  146. package/dist/src/dht/DhtNodeRpcLocal.js +0 -54
  147. package/dist/src/dht/DhtNodeRpcLocal.js.map +0 -1
  148. package/dist/src/dht/DhtNodeRpcRemote.d.ts +0 -25
  149. package/dist/src/dht/DhtNodeRpcRemote.js +0 -83
  150. package/dist/src/dht/DhtNodeRpcRemote.js.map +0 -1
  151. package/dist/src/dht/ExternalApiRpcLocal.d.ts +0 -18
  152. package/dist/src/dht/ExternalApiRpcLocal.js +0 -32
  153. package/dist/src/dht/ExternalApiRpcLocal.js.map +0 -1
  154. package/dist/src/dht/ExternalApiRpcRemote.d.ts +0 -10
  155. package/dist/src/dht/ExternalApiRpcRemote.js +0 -58
  156. package/dist/src/dht/ExternalApiRpcRemote.js.map +0 -1
  157. package/dist/src/dht/PeerManager.d.ts +0 -63
  158. package/dist/src/dht/PeerManager.js +0 -251
  159. package/dist/src/dht/PeerManager.js.map +0 -1
  160. package/dist/src/dht/contact/Contact.d.ts +0 -8
  161. package/dist/src/dht/contact/Contact.js +0 -18
  162. package/dist/src/dht/contact/Contact.js.map +0 -1
  163. package/dist/src/dht/contact/ContactList.d.ts +0 -19
  164. package/dist/src/dht/contact/ContactList.js +0 -35
  165. package/dist/src/dht/contact/ContactList.js.map +0 -1
  166. package/dist/src/dht/contact/RandomContactList.d.ts +0 -11
  167. package/dist/src/dht/contact/RandomContactList.js +0 -47
  168. package/dist/src/dht/contact/RandomContactList.js.map +0 -1
  169. package/dist/src/dht/contact/RingContactList.d.ts +0 -28
  170. package/dist/src/dht/contact/RingContactList.js +0 -126
  171. package/dist/src/dht/contact/RingContactList.js.map +0 -1
  172. package/dist/src/dht/contact/RpcRemote.d.ts +0 -19
  173. package/dist/src/dht/contact/RpcRemote.js +0 -61
  174. package/dist/src/dht/contact/RpcRemote.js.map +0 -1
  175. package/dist/src/dht/contact/SortedContactList.d.ts +0 -37
  176. package/dist/src/dht/contact/SortedContactList.js +0 -134
  177. package/dist/src/dht/contact/SortedContactList.js.map +0 -1
  178. package/dist/src/dht/contact/getClosestNodes.d.ts +0 -6
  179. package/dist/src/dht/contact/getClosestNodes.js +0 -19
  180. package/dist/src/dht/contact/getClosestNodes.js.map +0 -1
  181. package/dist/src/dht/contact/ringIdentifiers.d.ts +0 -16
  182. package/dist/src/dht/contact/ringIdentifiers.js +0 -54
  183. package/dist/src/dht/contact/ringIdentifiers.js.map +0 -1
  184. package/dist/src/dht/discovery/DiscoverySession.d.ts +0 -29
  185. package/dist/src/dht/discovery/DiscoverySession.js +0 -102
  186. package/dist/src/dht/discovery/DiscoverySession.js.map +0 -1
  187. package/dist/src/dht/discovery/PeerDiscovery.d.ts +0 -42
  188. package/dist/src/dht/discovery/PeerDiscovery.js +0 -193
  189. package/dist/src/dht/discovery/PeerDiscovery.js.map +0 -1
  190. package/dist/src/dht/discovery/RingDiscoverySession.d.ts +0 -28
  191. package/dist/src/dht/discovery/RingDiscoverySession.js +0 -116
  192. package/dist/src/dht/discovery/RingDiscoverySession.js.map +0 -1
  193. package/dist/src/dht/recursive-operation/RecursiveOperationManager.d.ts +0 -38
  194. package/dist/src/dht/recursive-operation/RecursiveOperationManager.js +0 -165
  195. package/dist/src/dht/recursive-operation/RecursiveOperationManager.js.map +0 -1
  196. package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.d.ts +0 -14
  197. package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.js +0 -26
  198. package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.js.map +0 -1
  199. package/dist/src/dht/recursive-operation/RecursiveOperationRpcRemote.d.ts +0 -6
  200. package/dist/src/dht/recursive-operation/RecursiveOperationRpcRemote.js +0 -44
  201. package/dist/src/dht/recursive-operation/RecursiveOperationRpcRemote.js.map +0 -1
  202. package/dist/src/dht/recursive-operation/RecursiveOperationSession.d.ts +0 -45
  203. package/dist/src/dht/recursive-operation/RecursiveOperationSession.js +0 -185
  204. package/dist/src/dht/recursive-operation/RecursiveOperationSession.js.map +0 -1
  205. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.d.ts +0 -14
  206. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.js +0 -20
  207. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.js.map +0 -1
  208. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcRemote.d.ts +0 -6
  209. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcRemote.js +0 -21
  210. package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcRemote.js.map +0 -1
  211. package/dist/src/dht/routing/DuplicateDetector.d.ts +0 -10
  212. package/dist/src/dht/routing/DuplicateDetector.js +0 -31
  213. package/dist/src/dht/routing/DuplicateDetector.js.map +0 -1
  214. package/dist/src/dht/routing/Router.d.ts +0 -35
  215. package/dist/src/dht/routing/Router.js +0 -204
  216. package/dist/src/dht/routing/Router.js.map +0 -1
  217. package/dist/src/dht/routing/RouterRpcLocal.d.ts +0 -20
  218. package/dist/src/dht/routing/RouterRpcLocal.js +0 -67
  219. package/dist/src/dht/routing/RouterRpcLocal.js.map +0 -1
  220. package/dist/src/dht/routing/RouterRpcRemote.d.ts +0 -8
  221. package/dist/src/dht/routing/RouterRpcRemote.js +0 -81
  222. package/dist/src/dht/routing/RouterRpcRemote.js.map +0 -1
  223. package/dist/src/dht/routing/RoutingSession.d.ts +0 -56
  224. package/dist/src/dht/routing/RoutingSession.js +0 -201
  225. package/dist/src/dht/routing/RoutingSession.js.map +0 -1
  226. package/dist/src/dht/routing/RoutingTablesCache.d.ts +0 -24
  227. package/dist/src/dht/routing/RoutingTablesCache.js +0 -46
  228. package/dist/src/dht/routing/RoutingTablesCache.js.map +0 -1
  229. package/dist/src/dht/routing/getPreviousPeer.d.ts +0 -2
  230. package/dist/src/dht/routing/getPreviousPeer.js +0 -12
  231. package/dist/src/dht/routing/getPreviousPeer.js.map +0 -1
  232. package/dist/src/dht/store/LocalDataStore.d.ts +0 -14
  233. package/dist/src/dht/store/LocalDataStore.js +0 -78
  234. package/dist/src/dht/store/LocalDataStore.js.map +0 -1
  235. package/dist/src/dht/store/StoreManager.d.ts +0 -32
  236. package/dist/src/dht/store/StoreManager.js +0 -126
  237. package/dist/src/dht/store/StoreManager.js.map +0 -1
  238. package/dist/src/dht/store/StoreRpcLocal.d.ts +0 -21
  239. package/dist/src/dht/store/StoreRpcLocal.js +0 -65
  240. package/dist/src/dht/store/StoreRpcLocal.js.map +0 -1
  241. package/dist/src/dht/store/StoreRpcRemote.d.ts +0 -7
  242. package/dist/src/dht/store/StoreRpcRemote.js +0 -29
  243. package/dist/src/dht/store/StoreRpcRemote.js.map +0 -1
  244. package/dist/src/exports.d.ts +0 -25
  245. package/dist/src/exports.js +0 -48
  246. package/dist/src/exports.js.map +0 -1
  247. package/dist/src/helpers/AddressTools.d.ts +0 -2
  248. package/dist/src/helpers/AddressTools.js +0 -32
  249. package/dist/src/helpers/AddressTools.js.map +0 -1
  250. package/dist/src/helpers/Connectivity.d.ts +0 -4
  251. package/dist/src/helpers/Connectivity.js +0 -24
  252. package/dist/src/helpers/Connectivity.js.map +0 -1
  253. package/dist/src/helpers/browser/isBrowserEnvironment.d.ts +0 -1
  254. package/dist/src/helpers/browser/isBrowserEnvironment.js +0 -6
  255. package/dist/src/helpers/browser/isBrowserEnvironment.js.map +0 -1
  256. package/dist/src/helpers/browser/isBrowserEnvironment_override.d.ts +0 -1
  257. package/dist/src/helpers/browser/isBrowserEnvironment_override.js +0 -7
  258. package/dist/src/helpers/browser/isBrowserEnvironment_override.js.map +0 -1
  259. package/dist/src/helpers/createPeerDescriptor.d.ts +0 -3
  260. package/dist/src/helpers/createPeerDescriptor.js +0 -58
  261. package/dist/src/helpers/createPeerDescriptor.js.map +0 -1
  262. package/dist/src/helpers/createPeerDescriptorSignaturePayload.d.ts +0 -2
  263. package/dist/src/helpers/createPeerDescriptorSignaturePayload.js +0 -30
  264. package/dist/src/helpers/createPeerDescriptorSignaturePayload.js.map +0 -1
  265. package/dist/src/helpers/debugHelpers.d.ts +0 -3
  266. package/dist/src/helpers/debugHelpers.js +0 -11
  267. package/dist/src/helpers/debugHelpers.js.map +0 -1
  268. package/dist/src/helpers/errors.d.ts +0 -72
  269. package/dist/src/helpers/errors.js +0 -97
  270. package/dist/src/helpers/errors.js.map +0 -1
  271. package/dist/src/helpers/offering.d.ts +0 -4
  272. package/dist/src/helpers/offering.js +0 -18
  273. package/dist/src/helpers/offering.js.map +0 -1
  274. package/dist/src/helpers/protoClasses.d.ts +0 -2
  275. package/dist/src/helpers/protoClasses.js +0 -32
  276. package/dist/src/helpers/protoClasses.js.map +0 -1
  277. package/dist/src/helpers/protoToString.d.ts +0 -2
  278. package/dist/src/helpers/protoToString.js +0 -19
  279. package/dist/src/helpers/protoToString.js.map +0 -1
  280. package/dist/src/helpers/version.d.ts +0 -6
  281. package/dist/src/helpers/version.js +0 -38
  282. package/dist/src/helpers/version.js.map +0 -1
  283. package/dist/src/identifiers.d.ts +0 -10
  284. package/dist/src/identifiers.js +0 -31
  285. package/dist/src/identifiers.js.map +0 -1
  286. package/dist/src/rpc-protocol/DhtCallContext.d.ts +0 -12
  287. package/dist/src/rpc-protocol/DhtCallContext.js +0 -17
  288. package/dist/src/rpc-protocol/DhtCallContext.js.map +0 -1
  289. package/dist/src/rpc-protocol/DhtRpcOptions.d.ts +0 -10
  290. package/dist/src/rpc-protocol/DhtRpcOptions.js +0 -3
  291. package/dist/src/rpc-protocol/DhtRpcOptions.js.map +0 -1
  292. package/dist/src/transport/ITransport.d.ts +0 -31
  293. package/dist/src/transport/ITransport.js +0 -9
  294. package/dist/src/transport/ITransport.js.map +0 -1
  295. package/dist/src/transport/ListeningRpcCommunicator.d.ts +0 -11
  296. package/dist/src/transport/ListeningRpcCommunicator.js +0 -31
  297. package/dist/src/transport/ListeningRpcCommunicator.js.map +0 -1
  298. package/dist/src/transport/RoutingRpcCommunicator.d.ts +0 -10
  299. package/dist/src/transport/RoutingRpcCommunicator.js +0 -60
  300. package/dist/src/transport/RoutingRpcCommunicator.js.map +0 -1
  301. package/dist/src/types/ServiceID.d.ts +0 -1
  302. package/dist/src/types/ServiceID.js +0 -3
  303. package/dist/src/types/ServiceID.js.map +0 -1
@@ -1,500 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.DhtNode = exports.CONTROL_LAYER_NODE_SERVICE_ID = exports.NUMBER_OF_NODES_PER_KBUCKET_DEFAULT = void 0;
7
- const utils_1 = require("@streamr/utils");
8
- const eventemitter3_1 = require("eventemitter3");
9
- const sample_1 = __importDefault(require("lodash/sample"));
10
- const ConnectionManager_1 = require("../connection/ConnectionManager");
11
- const ConnectorFacade_1 = require("../connection/ConnectorFacade");
12
- const isBrowserEnvironment_1 = require("../helpers/browser/isBrowserEnvironment");
13
- const createPeerDescriptor_1 = require("../helpers/createPeerDescriptor");
14
- const identifiers_1 = require("../identifiers");
15
- const DhtRpc_1 = require("../../generated/packages/dht/protos/DhtRpc");
16
- const DhtRpc_client_1 = require("../../generated/packages/dht/protos/DhtRpc.client");
17
- const RoutingRpcCommunicator_1 = require("../transport/RoutingRpcCommunicator");
18
- const DhtNodeRpcLocal_1 = require("./DhtNodeRpcLocal");
19
- const DhtNodeRpcRemote_1 = require("./DhtNodeRpcRemote");
20
- const ExternalApiRpcLocal_1 = require("./ExternalApiRpcLocal");
21
- const ExternalApiRpcRemote_1 = require("./ExternalApiRpcRemote");
22
- const PeerManager_1 = require("./PeerManager");
23
- const PeerDiscovery_1 = require("./discovery/PeerDiscovery");
24
- const RecursiveOperationManager_1 = require("./recursive-operation/RecursiveOperationManager");
25
- const Router_1 = require("./routing/Router");
26
- const LocalDataStore_1 = require("./store/LocalDataStore");
27
- const StoreManager_1 = require("./store/StoreManager");
28
- const StoreRpcRemote_1 = require("./store/StoreRpcRemote");
29
- const cdn_location_1 = require("@streamr/cdn-location");
30
- const logger = new utils_1.Logger(module);
31
- exports.NUMBER_OF_NODES_PER_KBUCKET_DEFAULT = 8;
32
- const PERIODICAL_PING_INTERVAL = 60 * 1000;
33
- // TODO move this to trackerless-network package and change serviceId to be a required paramater
34
- exports.CONTROL_LAYER_NODE_SERVICE_ID = 'layer0';
35
- class DhtNode extends eventemitter3_1.EventEmitter {
36
- options;
37
- rpcCommunicator;
38
- transport;
39
- localPeerDescriptor;
40
- router;
41
- storeManager;
42
- localDataStore;
43
- recursiveOperationManager;
44
- peerDiscovery;
45
- peerManager;
46
- connectionsView;
47
- connectionLocker;
48
- started = false;
49
- abortController = new AbortController();
50
- constructor(conf) {
51
- super();
52
- this.options = (0, utils_1.merge)({
53
- serviceId: exports.CONTROL_LAYER_NODE_SERVICE_ID,
54
- joinParallelism: 3,
55
- maxContactCount: 200,
56
- numberOfNodesPerKBucket: exports.NUMBER_OF_NODES_PER_KBUCKET_DEFAULT,
57
- joinNoProgressLimit: 5,
58
- dhtJoinTimeout: 60000,
59
- peerDiscoveryQueryBatchSize: 5,
60
- maxConnections: 80,
61
- storeHighestTtl: 60000,
62
- storeMaxTtl: 60000,
63
- networkConnectivityTimeout: 10000,
64
- storageRedundancyFactor: 5, // TODO validate that this is > 1 (as each node should replicate the data to other node)
65
- metricsContext: new utils_1.MetricsContext()
66
- }, conf);
67
- this.validateOptions();
68
- this.localDataStore = new LocalDataStore_1.LocalDataStore(this.options.storeMaxTtl);
69
- this.send = this.send.bind(this);
70
- }
71
- validateOptions() {
72
- const expectedNodeIdLength = identifiers_1.KADEMLIA_ID_LENGTH_IN_BYTES * 2;
73
- if (this.options.nodeId !== undefined) {
74
- if (!/^[0-9a-fA-F]+$/.test(this.options.nodeId)) {
75
- throw new Error('Invalid nodeId, the nodeId should be a hex string');
76
- }
77
- else if (this.options.nodeId.length !== expectedNodeIdLength) {
78
- throw new Error(`Invalid nodeId, the length of the nodeId should be ${expectedNodeIdLength}`);
79
- }
80
- }
81
- if (this.options.peerDescriptor !== undefined) {
82
- if (this.options.peerDescriptor.nodeId.length !== identifiers_1.KADEMLIA_ID_LENGTH_IN_BYTES) {
83
- throw new Error(`Invalid peerDescriptor, the length of the nodeId should be ${identifiers_1.KADEMLIA_ID_LENGTH_IN_BYTES} bytes`);
84
- }
85
- }
86
- if (this.options.transport !== undefined && this.options.connectionsView === undefined) {
87
- throw new Error('connectionsView is required when transport is given');
88
- }
89
- }
90
- async start() {
91
- if (this.started || this.abortController.signal.aborted) {
92
- return;
93
- }
94
- logger.trace(`Starting new Streamr Network DHT Node with serviceId ${this.options.serviceId}`);
95
- this.started = true;
96
- if ((0, isBrowserEnvironment_1.isBrowserEnvironment)()) {
97
- this.options.websocketPortRange = undefined;
98
- if (this.options.peerDescriptor) {
99
- this.options.peerDescriptor.websocket = undefined;
100
- }
101
- }
102
- // If transport is given, do not create a ConnectionManager
103
- if (this.options.transport) {
104
- this.transport = this.options.transport;
105
- this.connectionsView = this.options.connectionsView;
106
- this.connectionLocker = this.options.connectionLocker;
107
- this.localPeerDescriptor = this.transport.getLocalPeerDescriptor();
108
- }
109
- else {
110
- const connectorFacadeOptions = {
111
- transport: this,
112
- entryPoints: this.options.entryPoints,
113
- iceServers: this.options.iceServers,
114
- webrtcAllowPrivateAddresses: this.options.webrtcAllowPrivateAddresses,
115
- webrtcDatachannelBufferThresholdLow: this.options.webrtcDatachannelBufferThresholdLow,
116
- webrtcDatachannelBufferThresholdHigh: this.options.webrtcDatachannelBufferThresholdHigh,
117
- webrtcPortRange: this.options.webrtcPortRange,
118
- maxMessageSize: this.options.maxMessageSize,
119
- websocketServerEnableTls: this.options.websocketServerEnableTls,
120
- tlsCertificate: this.options.tlsCertificate,
121
- externalIp: this.options.externalIp,
122
- autoCertifierUrl: this.options.autoCertifierUrl,
123
- autoCertifierConfigFile: this.options.autoCertifierConfigFile,
124
- geoIpDatabaseFolder: this.options.geoIpDatabaseFolder,
125
- createLocalPeerDescriptor: (connectivityResponse) => this.generatePeerDescriptorCallBack(connectivityResponse)
126
- };
127
- // If own PeerDescriptor is given in options, create a ConnectionManager with ws server
128
- if (this.options.peerDescriptor?.websocket) {
129
- connectorFacadeOptions.websocketHost = this.options.peerDescriptor.websocket.host;
130
- connectorFacadeOptions.websocketPortRange = {
131
- min: this.options.peerDescriptor.websocket.port,
132
- max: this.options.peerDescriptor.websocket.port
133
- };
134
- // If websocketPortRange is given, create ws server using it, websocketHost can be undefined
135
- }
136
- else if (this.options.websocketPortRange) {
137
- connectorFacadeOptions.websocketHost = this.options.websocketHost;
138
- connectorFacadeOptions.websocketPortRange = this.options.websocketPortRange;
139
- }
140
- const connectionManager = new ConnectionManager_1.ConnectionManager({
141
- createConnectorFacade: () => new ConnectorFacade_1.DefaultConnectorFacade(connectorFacadeOptions),
142
- maxConnections: this.options.maxConnections,
143
- metricsContext: this.options.metricsContext,
144
- allowIncomingPrivateConnections: this.options.allowIncomingPrivateConnections ?? false
145
- });
146
- await connectionManager.start();
147
- this.connectionsView = connectionManager;
148
- this.connectionLocker = connectionManager;
149
- this.transport = connectionManager;
150
- }
151
- this.rpcCommunicator = new RoutingRpcCommunicator_1.RoutingRpcCommunicator(this.options.serviceId, (msg, opts) => this.transport.send(msg, opts), { rpcRequestTimeout: this.options.rpcRequestTimeout });
152
- /* eslint-disable indent */
153
- (0, utils_1.addManagedEventListener)(// TODO remove explicit type in NET-1449
154
- this.transport, 'message', (message) => this.handleMessageFromTransport(message), this.abortController.signal);
155
- this.initPeerManager();
156
- this.peerDiscovery = new PeerDiscovery_1.PeerDiscovery({
157
- localPeerDescriptor: this.localPeerDescriptor,
158
- joinNoProgressLimit: this.options.joinNoProgressLimit,
159
- joinTimeout: this.options.dhtJoinTimeout,
160
- serviceId: this.options.serviceId,
161
- parallelism: this.options.joinParallelism,
162
- connectionLocker: this.connectionLocker,
163
- peerManager: this.peerManager,
164
- abortSignal: this.abortController.signal,
165
- createDhtNodeRpcRemote: (peerDescriptor) => this.createDhtNodeRpcRemote(peerDescriptor),
166
- });
167
- this.router = new Router_1.Router({
168
- rpcCommunicator: this.rpcCommunicator,
169
- localPeerDescriptor: this.localPeerDescriptor,
170
- handleMessage: (message) => this.handleMessageFromRouter(message),
171
- getConnections: () => this.connectionsView.getConnections()
172
- });
173
- this.recursiveOperationManager = new RecursiveOperationManager_1.RecursiveOperationManager({
174
- rpcCommunicator: this.rpcCommunicator,
175
- router: this.router,
176
- sessionTransport: this,
177
- connectionsView: this.connectionsView,
178
- localPeerDescriptor: this.localPeerDescriptor,
179
- serviceId: this.options.serviceId,
180
- localDataStore: this.localDataStore,
181
- addContact: (contact) => this.peerManager.addContact(contact),
182
- createDhtNodeRpcRemote: (peerDescriptor) => this.createDhtNodeRpcRemote(peerDescriptor),
183
- });
184
- this.storeManager = new StoreManager_1.StoreManager({
185
- rpcCommunicator: this.rpcCommunicator,
186
- recursiveOperationManager: this.recursiveOperationManager,
187
- localPeerDescriptor: this.localPeerDescriptor,
188
- serviceId: this.options.serviceId,
189
- highestTtl: this.options.storeHighestTtl,
190
- redundancyFactor: this.options.storageRedundancyFactor,
191
- localDataStore: this.localDataStore,
192
- getNeighbors: () => this.peerManager.getNeighbors().map((n) => n.getPeerDescriptor()),
193
- createRpcRemote: (contact) => {
194
- return new StoreRpcRemote_1.StoreRpcRemote(this.localPeerDescriptor, contact, this.rpcCommunicator, DhtRpc_client_1.StoreRpcClient, this.options.rpcRequestTimeout);
195
- }
196
- });
197
- this.on('nearbyContactAdded', (peerDescriptor) => {
198
- this.storeManager.onContactAdded(peerDescriptor);
199
- });
200
- this.bindRpcLocalMethods();
201
- const pruneTargets = [];
202
- if (this.options.periodicallyPingNeighbors === true) {
203
- pruneTargets.push(() => this.peerManager.getNeighbors().map((node) => this.createDhtNodeRpcRemote(node.getPeerDescriptor())));
204
- }
205
- if (this.options.periodicallyPingRingContacts === true) {
206
- pruneTargets.push(() => this.peerManager.getRingContacts().getAllContacts());
207
- }
208
- for (const pruneTarget of pruneTargets) {
209
- await (0, utils_1.scheduleAtInterval)(async () => {
210
- const nodes = pruneTarget();
211
- await this.peerManager.pruneOfflineNodes(nodes);
212
- }, PERIODICAL_PING_INTERVAL, false, this.abortController.signal);
213
- }
214
- }
215
- initPeerManager() {
216
- this.peerManager = new PeerManager_1.PeerManager({
217
- numberOfNodesPerKBucket: this.options.numberOfNodesPerKBucket,
218
- maxContactCount: this.options.maxContactCount,
219
- localNodeId: this.getNodeId(),
220
- localPeerDescriptor: this.localPeerDescriptor,
221
- connectionLocker: this.connectionLocker,
222
- lockId: this.options.serviceId,
223
- createDhtNodeRpcRemote: (peerDescriptor) => this.createDhtNodeRpcRemote(peerDescriptor),
224
- hasConnection: (nodeId) => this.connectionsView.hasConnection(nodeId),
225
- neighborPingLimit: this.options.neighborPingLimit
226
- });
227
- this.peerManager.on('nearbyContactRemoved', (peerDescriptor) => {
228
- this.emit('nearbyContactRemoved', peerDescriptor);
229
- });
230
- this.peerManager.on('nearbyContactAdded', (peerDescriptor) => this.emit('nearbyContactAdded', peerDescriptor));
231
- this.peerManager.on('randomContactRemoved', (peerDescriptor) => this.emit('randomContactRemoved', peerDescriptor));
232
- this.peerManager.on('randomContactAdded', (peerDescriptor) => this.emit('randomContactAdded', peerDescriptor));
233
- this.peerManager.on('ringContactRemoved', (peerDescriptor) => {
234
- this.emit('ringContactRemoved', peerDescriptor);
235
- });
236
- this.peerManager.on('ringContactAdded', (peerDescriptor) => {
237
- this.emit('ringContactAdded', peerDescriptor);
238
- });
239
- this.peerManager.on('kBucketEmpty', () => {
240
- if (!this.peerDiscovery.isJoinOngoing()) {
241
- if (this.options.entryPoints && this.options.entryPoints.length > 0) {
242
- setImmediate(async () => {
243
- const contactedPeers = new Set();
244
- const distantJoinContactPeers = new Set();
245
- // TODO should we catch possible promise rejection?
246
- await Promise.all(this.options.entryPoints.map((entryPoint) => this.peerDiscovery.rejoinDht(entryPoint, contactedPeers, distantJoinContactPeers)));
247
- });
248
- }
249
- else {
250
- this.emit('manualRejoinRequired');
251
- }
252
- }
253
- });
254
- /* eslint-disable indent */
255
- (0, utils_1.addManagedEventListener)(// TODO remove explicit type in NET-1449
256
- this.transport, 'connected', (peerDescriptor) => {
257
- this.router.onNodeConnected(peerDescriptor);
258
- this.emit('connected', peerDescriptor);
259
- }, this.abortController.signal);
260
- /* eslint-disable indent, max-len */
261
- (0, utils_1.addManagedEventListener)(// TODO remove explicit type in NET-1449
262
- this.transport, 'disconnected', (peerDescriptor, gracefulLeave) => {
263
- const isControlLayerNode = (this.connectionLocker !== undefined);
264
- if (isControlLayerNode) {
265
- const nodeId = (0, identifiers_1.toNodeId)(peerDescriptor);
266
- if (gracefulLeave) {
267
- this.peerManager.removeContact(nodeId);
268
- }
269
- else {
270
- this.peerManager.removeNeighbor(nodeId);
271
- }
272
- }
273
- this.router.onNodeDisconnected(peerDescriptor);
274
- this.emit('disconnected', peerDescriptor, gracefulLeave);
275
- }, this.abortController.signal);
276
- }
277
- bindRpcLocalMethods() {
278
- if (!this.started || this.abortController.signal.aborted) {
279
- return;
280
- }
281
- const dhtNodeRpcLocal = new DhtNodeRpcLocal_1.DhtNodeRpcLocal({
282
- peerDiscoveryQueryBatchSize: this.options.peerDiscoveryQueryBatchSize,
283
- getNeighbors: () => this.peerManager.getNeighbors().map((n) => n.getPeerDescriptor()),
284
- getClosestRingContactsTo: (ringIdRaw, limit) => {
285
- return this.getClosestRingContactsTo(ringIdRaw, limit);
286
- },
287
- addContact: (contact) => this.peerManager.addContact(contact),
288
- removeContact: (nodeId) => this.removeContact(nodeId)
289
- });
290
- this.rpcCommunicator.registerRpcMethod(DhtRpc_1.ClosestPeersRequest, DhtRpc_1.ClosestPeersResponse, 'getClosestPeers', (req, context) => dhtNodeRpcLocal.getClosestPeers(req, context));
291
- this.rpcCommunicator.registerRpcMethod(DhtRpc_1.ClosestRingPeersRequest, DhtRpc_1.ClosestRingPeersResponse, 'getClosestRingPeers', (req, context) => dhtNodeRpcLocal.getClosestRingPeers(req, context));
292
- this.rpcCommunicator.registerRpcMethod(DhtRpc_1.PingRequest, DhtRpc_1.PingResponse, 'ping', (req, context) => dhtNodeRpcLocal.ping(req, context));
293
- this.rpcCommunicator.registerRpcNotification(DhtRpc_1.LeaveNotice, 'leaveNotice', (_req, context) => dhtNodeRpcLocal.leaveNotice(context));
294
- const externalApiRpcLocal = new ExternalApiRpcLocal_1.ExternalApiRpcLocal({
295
- executeRecursiveOperation: (key, operation, excludedPeer) => {
296
- return this.recursiveOperationManager.execute(key, operation, excludedPeer);
297
- },
298
- storeDataToDht: (key, data, creator) => this.storeDataToDht(key, data, creator)
299
- });
300
- this.rpcCommunicator.registerRpcMethod(DhtRpc_1.ExternalFetchDataRequest, DhtRpc_1.ExternalFetchDataResponse, 'externalFetchData', (req, context) => externalApiRpcLocal.externalFetchData(req, context), { timeout: 10000 } // TODO use options option or named constant?
301
- );
302
- this.rpcCommunicator.registerRpcMethod(DhtRpc_1.ExternalStoreDataRequest, DhtRpc_1.ExternalStoreDataResponse, 'externalStoreData', (req, context) => externalApiRpcLocal.externalStoreData(req, context), { timeout: 10000 } // TODO use options option or named constant?
303
- );
304
- }
305
- handleMessageFromTransport(message) {
306
- if (message.serviceId === this.options.serviceId) {
307
- this.rpcCommunicator?.handleMessageFromPeer(message);
308
- }
309
- }
310
- handleMessageFromRouter(message) {
311
- if (message.serviceId === this.options.serviceId) {
312
- this.rpcCommunicator?.handleMessageFromPeer(message);
313
- }
314
- else {
315
- this.emit('message', message);
316
- }
317
- }
318
- async generatePeerDescriptorCallBack(connectivityResponse) {
319
- if (this.options.peerDescriptor !== undefined) {
320
- this.localPeerDescriptor = this.options.peerDescriptor;
321
- }
322
- else {
323
- let region = undefined;
324
- if (this.options.region !== undefined) {
325
- region = this.options.region;
326
- logger.debug(`Using region ${region} from options when generating local PeerDescriptor`);
327
- }
328
- else if (connectivityResponse.latitude !== undefined && connectivityResponse.longitude !== undefined) {
329
- region = (0, cdn_location_1.getLocalRegionByCoordinates)(connectivityResponse.latitude, connectivityResponse.longitude);
330
- logger.debug(`Using region ${region} from GeoIP when generating local PeerDescriptor`);
331
- }
332
- else {
333
- // as a fallback get the region from the CDN
334
- // and if it's not available, use a random region
335
- region = await (0, cdn_location_1.getLocalRegionWithCache)();
336
- logger.debug(`Using region ${region} from CDN when generating local PeerDescriptor`);
337
- }
338
- this.localPeerDescriptor = await (0, createPeerDescriptor_1.createPeerDescriptor)(connectivityResponse, region, this.options.nodeId);
339
- }
340
- return this.localPeerDescriptor;
341
- }
342
- getClosestContacts(limit) {
343
- return this.peerManager.getNearbyContacts()
344
- .getClosestContacts(limit)
345
- .map((peer) => peer.getPeerDescriptor());
346
- }
347
- getRandomContacts(limit) {
348
- return this.peerManager.getRandomContacts().getContacts(limit).map((c) => c.getPeerDescriptor());
349
- }
350
- getRingContacts() {
351
- const contacts = this.peerManager.getRingContacts().getClosestContacts();
352
- return {
353
- left: contacts.left.map((c) => c.getPeerDescriptor()),
354
- right: contacts.right.map((c) => c.getPeerDescriptor())
355
- };
356
- }
357
- getClosestRingContactsTo(ringIdRaw, limit) {
358
- const closest = this.peerManager.getClosestRingContactsTo(ringIdRaw, limit);
359
- return {
360
- left: closest.left.map((dhtPeer) => dhtPeer.getPeerDescriptor()),
361
- right: closest.right.map((dhtPeer) => dhtPeer.getPeerDescriptor())
362
- };
363
- }
364
- getNodeId() {
365
- return (0, identifiers_1.toNodeId)(this.localPeerDescriptor);
366
- }
367
- getNeighborCount() {
368
- return this.peerManager.getNeighborCount();
369
- }
370
- removeContact(nodeId) {
371
- if (!this.started) { // the stopped state is checked in PeerManager
372
- return;
373
- }
374
- this.peerManager.removeContact(nodeId);
375
- }
376
- async send(msg) {
377
- if (!this.started || this.abortController.signal.aborted) {
378
- return;
379
- }
380
- const reachableThrough = this.peerDiscovery.isJoinOngoing() ? this.getConnectedEntryPoints() : [];
381
- this.router.send(msg, reachableThrough);
382
- }
383
- getConnectedEntryPoints() {
384
- return this.options.entryPoints !== undefined ? this.options.entryPoints.filter((entryPoint) => this.connectionsView.hasConnection((0, identifiers_1.toNodeId)(entryPoint))) : [];
385
- }
386
- async joinDht(entryPointDescriptors, doAdditionalDistantPeerDiscovery, retry) {
387
- if (!this.started) {
388
- throw new Error('Cannot join DHT before calling start() on DhtNode');
389
- }
390
- await this.peerDiscovery.joinDht(entryPointDescriptors, doAdditionalDistantPeerDiscovery, retry);
391
- }
392
- async joinRing() {
393
- if (!this.started) {
394
- throw new Error('Cannot join ring before calling start() on DhtNode');
395
- }
396
- await this.peerDiscovery.joinRing();
397
- }
398
- async storeDataToDht(key, data, creator) {
399
- return this.executeRecursiveOperation(() => this.storeManager.storeDataToDht(key, data, creator ?? this.getNodeId()), (connectedEntryPoint) => this.storeDataToDhtViaPeer(key, data, connectedEntryPoint));
400
- }
401
- async storeDataToDhtViaPeer(key, data, peer) {
402
- const rpcRemote = new ExternalApiRpcRemote_1.ExternalApiRpcRemote(this.localPeerDescriptor, peer, this.rpcCommunicator, DhtRpc_client_1.ExternalApiRpcClient);
403
- return await rpcRemote.storeData(key, data);
404
- }
405
- async fetchDataFromDht(key) {
406
- return this.executeRecursiveOperation(async () => {
407
- const result = await this.recursiveOperationManager.execute(key, DhtRpc_1.RecursiveOperation.FETCH_DATA);
408
- return result.dataEntries ?? []; // TODO is this fallback needed?
409
- }, (connectedEntryPoint) => this.fetchDataFromDhtViaPeer(key, connectedEntryPoint));
410
- }
411
- async fetchDataFromDhtViaPeer(key, peer) {
412
- const rpcRemote = new ExternalApiRpcRemote_1.ExternalApiRpcRemote(this.localPeerDescriptor, peer, this.rpcCommunicator, DhtRpc_client_1.ExternalApiRpcClient);
413
- return await rpcRemote.externalFetchData(key);
414
- }
415
- async executeRecursiveOperation(executeDirectly, executeViaPeer) {
416
- const connectedEntryPoints = this.getConnectedEntryPoints();
417
- if (this.peerDiscovery.isJoinOngoing() && connectedEntryPoints.length > 0) {
418
- return executeViaPeer((0, sample_1.default)(connectedEntryPoints));
419
- }
420
- return executeDirectly();
421
- }
422
- async deleteDataFromDht(key, waitForCompletion) {
423
- if (!this.abortController.signal.aborted) {
424
- await this.recursiveOperationManager.execute(key, DhtRpc_1.RecursiveOperation.DELETE_DATA, undefined, waitForCompletion);
425
- }
426
- }
427
- async findClosestNodesFromDht(key) {
428
- return this.executeRecursiveOperation(async () => {
429
- const result = await this.recursiveOperationManager.execute(key, DhtRpc_1.RecursiveOperation.FIND_CLOSEST_NODES);
430
- return result.closestNodes;
431
- }, (connectedEntryPoint) => this.findClosestNodesViaPeer(key, connectedEntryPoint));
432
- }
433
- async findClosestNodesViaPeer(key, peer) {
434
- const rpcRemote = new ExternalApiRpcRemote_1.ExternalApiRpcRemote(this.localPeerDescriptor, peer, this.rpcCommunicator, DhtRpc_client_1.ExternalApiRpcClient);
435
- return await rpcRemote.externalFindClosestNode(key);
436
- }
437
- getTransport() {
438
- return this.transport;
439
- }
440
- getLocalPeerDescriptor() {
441
- return this.localPeerDescriptor;
442
- }
443
- getNeighbors() {
444
- return this.started ? this.peerManager.getNeighbors().map((remote) => remote.getPeerDescriptor()) : [];
445
- }
446
- getConnectionsView() {
447
- return this.connectionsView;
448
- }
449
- getLocalLockedConnectionCount() {
450
- return this.connectionLocker.getLocalLockedConnectionCount();
451
- }
452
- getRemoteLockedConnectionCount() {
453
- return this.connectionLocker.getRemoteLockedConnectionCount();
454
- }
455
- getWeakLockedConnectionCount() {
456
- return this.connectionLocker.getWeakLockedConnectionCount();
457
- }
458
- async waitForNetworkConnectivity() {
459
- await (0, utils_1.until)(() => this.connectionsView.getConnectionCount() > 0, this.options.networkConnectivityTimeout, 100, this.abortController.signal);
460
- }
461
- hasJoined() {
462
- return this.peerDiscovery.isJoinCalled();
463
- }
464
- getDiagnosticInfo() {
465
- return {
466
- localPeerDescriptor: this.localPeerDescriptor,
467
- transport: this.transport.getDiagnosticInfo(),
468
- router: this.router.getDiagnosticInfo(),
469
- neighborCount: this.getNeighborCount(),
470
- nearbyContactCount: Array.from(this.peerManager.getNearbyContacts().getAllContactsInUndefinedOrder()).length,
471
- randomContactCount: this.peerManager.getRandomContacts().getSize()
472
- };
473
- }
474
- async stop() {
475
- if (this.abortController.signal.aborted || !this.started) {
476
- return;
477
- }
478
- logger.trace('stop()');
479
- this.abortController.abort();
480
- await this.storeManager.destroy();
481
- this.localDataStore.clear();
482
- this.peerManager?.stop();
483
- this.rpcCommunicator.stop();
484
- this.router.stop();
485
- this.recursiveOperationManager.stop();
486
- if (this.options.transport === undefined) {
487
- // if the transport was not given in options, the instance was created in start() and
488
- // this component is responsible for stopping it
489
- await this.transport.stop();
490
- }
491
- this.transport = undefined;
492
- this.connectionLocker = undefined;
493
- this.removeAllListeners();
494
- }
495
- createDhtNodeRpcRemote(peerDescriptor) {
496
- return new DhtNodeRpcRemote_1.DhtNodeRpcRemote(this.localPeerDescriptor, peerDescriptor, this.options.serviceId, this.rpcCommunicator, this.options.rpcRequestTimeout);
497
- }
498
- }
499
- exports.DhtNode = DhtNode;
500
- //# sourceMappingURL=DhtNode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DhtNode.js","sourceRoot":"","sources":["../../../src/dht/DhtNode.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- import { ServerCallContext } from '@protobuf-ts/runtime-rpc';
2
- import { DhtAddress } from '../identifiers';
3
- import { Empty } from '../../generated/google/protobuf/empty';
4
- import { ClosestPeersRequest, ClosestPeersResponse, ClosestRingPeersRequest, ClosestRingPeersResponse, PeerDescriptor, PingRequest, PingResponse } from '../../generated/packages/dht/protos/DhtRpc';
5
- import { IDhtNodeRpc } from '../../generated/packages/dht/protos/DhtRpc.server';
6
- import { RingContacts } from './contact/RingContactList';
7
- import { RingIdRaw } from './contact/ringIdentifiers';
8
- interface DhtNodeRpcLocalOptions {
9
- peerDiscoveryQueryBatchSize: number;
10
- getNeighbors: () => readonly PeerDescriptor[];
11
- getClosestRingContactsTo: (id: RingIdRaw, limit: number) => RingContacts;
12
- addContact: (contact: PeerDescriptor) => void;
13
- removeContact: (nodeId: DhtAddress) => void;
14
- }
15
- export declare class DhtNodeRpcLocal implements IDhtNodeRpc {
16
- private readonly options;
17
- constructor(options: DhtNodeRpcLocalOptions);
18
- getClosestPeers(request: ClosestPeersRequest, context: ServerCallContext): Promise<ClosestPeersResponse>;
19
- getClosestRingPeers(request: ClosestRingPeersRequest, context: ServerCallContext): Promise<ClosestRingPeersResponse>;
20
- ping(request: PingRequest, context: ServerCallContext): Promise<PingResponse>;
21
- leaveNotice(context: ServerCallContext): Promise<Empty>;
22
- }
23
- export {};
@@ -1,54 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DhtNodeRpcLocal = void 0;
4
- const utils_1 = require("@streamr/utils");
5
- const identifiers_1 = require("../identifiers");
6
- const getClosestNodes_1 = require("./contact/getClosestNodes");
7
- const logger = new utils_1.Logger(module);
8
- class DhtNodeRpcLocal {
9
- options;
10
- constructor(options) {
11
- this.options = options;
12
- }
13
- // TODO rename to getClosestNeighbors (breaking change)
14
- async getClosestPeers(request, context) {
15
- this.options.addContact(context.incomingSourceDescriptor);
16
- const peers = (0, getClosestNodes_1.getClosestNodes)((0, identifiers_1.toDhtAddress)(request.nodeId), this.options.getNeighbors(), { maxCount: this.options.peerDiscoveryQueryBatchSize });
17
- const response = {
18
- peers,
19
- requestId: request.requestId
20
- };
21
- return response;
22
- }
23
- // TODO rename to getClosestRingContacts (breaking change)
24
- async getClosestRingPeers(request, context) {
25
- this.options.addContact(context.incomingSourceDescriptor);
26
- const closestContacts = this.options.getClosestRingContactsTo(request.ringId, this.options.peerDiscoveryQueryBatchSize);
27
- const response = {
28
- leftPeers: closestContacts.left,
29
- rightPeers: closestContacts.right,
30
- requestId: request.requestId
31
- };
32
- return response;
33
- }
34
- async ping(request, context) {
35
- logger.trace('received ping request: ' + (0, identifiers_1.toNodeId)(context.incomingSourceDescriptor));
36
- setImmediate(() => {
37
- this.options.addContact(context.incomingSourceDescriptor);
38
- });
39
- const response = {
40
- requestId: request.requestId
41
- };
42
- return response;
43
- }
44
- async leaveNotice(context) {
45
- // TODO check signature??
46
- const sender = context.incomingSourceDescriptor;
47
- const senderNodeId = (0, identifiers_1.toNodeId)(sender);
48
- logger.trace('received leave notice: ' + senderNodeId);
49
- this.options.removeContact(senderNodeId);
50
- return {};
51
- }
52
- }
53
- exports.DhtNodeRpcLocal = DhtNodeRpcLocal;
54
- //# sourceMappingURL=DhtNodeRpcLocal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DhtNodeRpcLocal.js","sourceRoot":"","sources":["../../../src/dht/DhtNodeRpcLocal.ts"],"names":[],"mappings":";;;AACA,0CAAuC;AACvC,gDAAmE;AAcnE,+DAA2D;AAW3D,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,eAAe;IAEP,OAAO,CAAwB;IAEhD,YAAY,OAA+B;QACvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IAC1B,CAAC;IAED,uDAAuD;IACvD,KAAK,CAAC,eAAe,CAAC,OAA4B,EAAE,OAA0B;QAC1E,IAAI,CAAC,OAAO,CAAC,UAAU,CAAE,OAA0B,CAAC,wBAAyB,CAAC,CAAA;QAC9E,MAAM,KAAK,GAAG,IAAA,iCAAe,EACzB,IAAA,0BAAY,EAAC,OAAO,CAAC,MAAM,CAAC,EAC5B,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAC3B,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,2BAA2B,EAAE,CACzD,CAAA;QACD,MAAM,QAAQ,GAAG;YACb,KAAK;YACL,SAAS,EAAE,OAAO,CAAC,SAAS;SAC/B,CAAA;QACD,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,0DAA0D;IAC1D,KAAK,CAAC,mBAAmB,CAAC,OAAgC,EAAE,OAA0B;QAClF,IAAI,CAAC,OAAO,CAAC,UAAU,CAAE,OAA0B,CAAC,wBAAyB,CAAC,CAAA;QAC9E,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,OAAO,CAAC,MAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAA;QACpI,MAAM,QAAQ,GAAG;YACb,SAAS,EAAE,eAAe,CAAC,IAAI;YAC/B,UAAU,EAAE,eAAe,CAAC,KAAK;YACjC,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,sBAAQ,EAAE,OAA0B,CAAC,wBAAyB,CAAC,CAAC,CAAA;QACzG,YAAY,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,UAAU,CAAE,OAA0B,CAAC,wBAAyB,CAAC,CAAA;QAClF,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,YAAY,GAAG,IAAA,sBAAQ,EAAC,MAAM,CAAC,CAAA;QACrC,MAAM,CAAC,KAAK,CAAC,yBAAyB,GAAG,YAAY,CAAC,CAAA;QACtD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAA;QACxC,OAAO,EAAE,CAAA;IACb,CAAC;CACJ;AAtDD,0CAsDC"}
@@ -1,25 +0,0 @@
1
- import { RpcCommunicator } from '@streamr/proto-rpc';
2
- import { DhtAddress, DhtAddressRaw } from '../identifiers';
3
- import { PeerDescriptor } from '../../generated/packages/dht/protos/DhtRpc';
4
- import { DhtNodeRpcClient } from '../../generated/packages/dht/protos/DhtRpc.client';
5
- import { ServiceID } from '../types/ServiceID';
6
- import { RpcRemote } from './contact/RpcRemote';
7
- import { DhtCallContext } from '../rpc-protocol/DhtCallContext';
8
- import { RingIdRaw } from './contact/ringIdentifiers';
9
- import { RingContacts } from './contact/RingContactList';
10
- export interface KBucketContact {
11
- id: DhtAddressRaw;
12
- vectorClock: number;
13
- }
14
- export declare class DhtNodeRpcRemote extends RpcRemote<DhtNodeRpcClient> implements KBucketContact {
15
- private static counter;
16
- vectorClock: number;
17
- readonly id: DhtAddressRaw;
18
- private readonly serviceId;
19
- constructor(localPeerDescriptor: PeerDescriptor, peerDescriptor: PeerDescriptor, serviceId: ServiceID, rpcCommunicator: RpcCommunicator<DhtCallContext>, rpcRequestTimeout?: number);
20
- getClosestPeers(nodeId: DhtAddress): Promise<PeerDescriptor[]>;
21
- getClosestRingPeers(ringIdRaw: RingIdRaw): Promise<RingContacts>;
22
- ping(): Promise<boolean>;
23
- leaveNotice(): void;
24
- getNodeId(): DhtAddress;
25
- }