@streamr/dht 100.0.0-pretestnet.6 → 100.0.0-testnet-one.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (260) hide show
  1. package/dist/src/connection/ConnectionLockHandler.js +2 -2
  2. package/dist/src/connection/ConnectionLockHandler.js.map +1 -1
  3. package/dist/src/connection/ConnectionLockRpcRemote.d.ts +2 -2
  4. package/dist/src/connection/ConnectionLockRpcRemote.js +3 -27
  5. package/dist/src/connection/ConnectionLockRpcRemote.js.map +1 -1
  6. package/dist/src/connection/ConnectionManager.d.ts +0 -1
  7. package/dist/src/connection/ConnectionManager.js +11 -7
  8. package/dist/src/connection/ConnectionManager.js.map +1 -1
  9. package/dist/src/connection/ConnectorFacade.d.ts +2 -2
  10. package/dist/src/connection/ConnectorFacade.js +1 -2
  11. package/dist/src/connection/ConnectorFacade.js.map +1 -1
  12. package/dist/src/connection/ManagedConnection.js +1 -0
  13. package/dist/src/connection/ManagedConnection.js.map +1 -1
  14. package/dist/src/connection/connectivityChecker.d.ts +9 -0
  15. package/dist/src/connection/connectivityChecker.js +122 -0
  16. package/dist/src/connection/connectivityChecker.js.map +1 -0
  17. package/dist/src/connection/connectivityRequestHandler.d.ts +2 -0
  18. package/dist/src/connection/connectivityRequestHandler.js +79 -0
  19. package/dist/src/connection/connectivityRequestHandler.js.map +1 -0
  20. package/dist/src/connection/simulator/Simulator.js +3 -2
  21. package/dist/src/connection/simulator/Simulator.js.map +1 -1
  22. package/dist/src/connection/simulator/SimulatorConnection.js +1 -1
  23. package/dist/src/connection/simulator/SimulatorConnection.js.map +1 -1
  24. package/dist/src/connection/webrtc/NodeWebrtcConnection.js +1 -1
  25. package/dist/src/connection/webrtc/NodeWebrtcConnection.js.map +1 -1
  26. package/dist/src/connection/webrtc/WebrtcConnector.js +1 -1
  27. package/dist/src/connection/webrtc/WebrtcConnector.js.map +1 -1
  28. package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js +1 -1
  29. package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js.map +1 -1
  30. package/dist/src/connection/webrtc/WebrtcConnectorRpcRemote.d.ts +2 -2
  31. package/dist/src/connection/webrtc/WebrtcConnectorRpcRemote.js +2 -2
  32. package/dist/src/connection/webrtc/WebrtcConnectorRpcRemote.js.map +1 -1
  33. package/dist/src/connection/webrtc/iceServerAsString.js +1 -1
  34. package/dist/src/connection/webrtc/iceServerAsString.js.map +1 -1
  35. package/dist/src/connection/websocket/ClientWebsocket.d.ts +1 -0
  36. package/dist/src/connection/websocket/ClientWebsocket.js +7 -3
  37. package/dist/src/connection/websocket/ClientWebsocket.js.map +1 -1
  38. package/dist/src/connection/websocket/ServerWebsocket.d.ts +4 -0
  39. package/dist/src/connection/websocket/ServerWebsocket.js +32 -21
  40. package/dist/src/connection/websocket/ServerWebsocket.js.map +1 -1
  41. package/dist/src/connection/websocket/WebsocketConnector.d.ts +0 -2
  42. package/dist/src/connection/websocket/WebsocketConnector.js +61 -16
  43. package/dist/src/connection/websocket/WebsocketConnector.js.map +1 -1
  44. package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.d.ts +1 -1
  45. package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.js +8 -11
  46. package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.js.map +1 -1
  47. package/dist/src/connection/websocket/WebsocketConnectorRpcRemote.d.ts +4 -4
  48. package/dist/src/connection/websocket/WebsocketConnectorRpcRemote.js +5 -39
  49. package/dist/src/connection/websocket/WebsocketConnectorRpcRemote.js.map +1 -1
  50. package/dist/src/connection/websocket/WebsocketServer.js +21 -4
  51. package/dist/src/connection/websocket/WebsocketServer.js.map +1 -1
  52. package/dist/src/dht/DhtNode.d.ts +13 -23
  53. package/dist/src/dht/DhtNode.js +97 -226
  54. package/dist/src/dht/DhtNode.js.map +1 -1
  55. package/dist/src/dht/DhtNodeRpcLocal.d.ts +1 -4
  56. package/dist/src/dht/DhtNodeRpcLocal.js +1 -5
  57. package/dist/src/dht/DhtNodeRpcLocal.js.map +1 -1
  58. package/dist/src/dht/DhtNodeRpcRemote.d.ts +3 -3
  59. package/dist/src/dht/DhtNodeRpcRemote.js +4 -4
  60. package/dist/src/dht/DhtNodeRpcRemote.js.map +1 -1
  61. package/dist/src/dht/ExternalApiRpcLocal.d.ts +4 -4
  62. package/dist/src/dht/ExternalApiRpcLocal.js +5 -12
  63. package/dist/src/dht/ExternalApiRpcLocal.js.map +1 -1
  64. package/dist/src/dht/ExternalApiRpcRemote.d.ts +3 -3
  65. package/dist/src/dht/ExternalApiRpcRemote.js +5 -5
  66. package/dist/src/dht/ExternalApiRpcRemote.js.map +1 -1
  67. package/dist/src/dht/PeerManager.d.ts +52 -0
  68. package/dist/src/dht/PeerManager.js +273 -0
  69. package/dist/src/dht/PeerManager.js.map +1 -0
  70. package/dist/src/dht/contact/ContactList.d.ts +1 -1
  71. package/dist/src/dht/contact/ContactList.js +1 -0
  72. package/dist/src/dht/contact/ContactList.js.map +1 -1
  73. package/dist/src/dht/contact/{Remote.d.ts → RpcRemote.d.ts} +3 -3
  74. package/dist/src/dht/contact/{Remote.js → RpcRemote.js} +8 -8
  75. package/dist/src/dht/contact/RpcRemote.js.map +1 -0
  76. package/dist/src/dht/contact/SortedContactList.d.ts +20 -6
  77. package/dist/src/dht/contact/SortedContactList.js +55 -24
  78. package/dist/src/dht/contact/SortedContactList.js.map +1 -1
  79. package/dist/src/dht/discovery/DiscoverySession.d.ts +4 -14
  80. package/dist/src/dht/discovery/DiscoverySession.js +15 -26
  81. package/dist/src/dht/discovery/DiscoverySession.js.map +1 -1
  82. package/dist/src/dht/discovery/PeerDiscovery.d.ts +2 -9
  83. package/dist/src/dht/discovery/PeerDiscovery.js +11 -19
  84. package/dist/src/dht/discovery/PeerDiscovery.js.map +1 -1
  85. package/dist/src/dht/find/FindRpcLocal.js +2 -1
  86. package/dist/src/dht/find/FindRpcLocal.js.map +1 -1
  87. package/dist/src/dht/find/FindSession.d.ts +6 -6
  88. package/dist/src/dht/find/FindSession.js +18 -13
  89. package/dist/src/dht/find/FindSession.js.map +1 -1
  90. package/dist/src/dht/find/FindSessionRpcLocal.d.ts +1 -1
  91. package/dist/src/dht/find/FindSessionRpcRemote.d.ts +2 -2
  92. package/dist/src/dht/find/FindSessionRpcRemote.js +2 -2
  93. package/dist/src/dht/find/FindSessionRpcRemote.js.map +1 -1
  94. package/dist/src/dht/find/Finder.d.ts +4 -4
  95. package/dist/src/dht/find/Finder.js +55 -42
  96. package/dist/src/dht/find/Finder.js.map +1 -1
  97. package/dist/src/dht/routing/FindRpcRemote.d.ts +2 -2
  98. package/dist/src/dht/routing/FindRpcRemote.js +7 -5
  99. package/dist/src/dht/routing/FindRpcRemote.js.map +1 -1
  100. package/dist/src/dht/routing/Router.d.ts +3 -7
  101. package/dist/src/dht/routing/Router.js +29 -22
  102. package/dist/src/dht/routing/Router.js.map +1 -1
  103. package/dist/src/dht/routing/RouterRpcLocal.d.ts +2 -2
  104. package/dist/src/dht/routing/RouterRpcLocal.js +4 -3
  105. package/dist/src/dht/routing/RouterRpcLocal.js.map +1 -1
  106. package/dist/src/dht/routing/RouterRpcRemote.d.ts +2 -2
  107. package/dist/src/dht/routing/RouterRpcRemote.js +13 -8
  108. package/dist/src/dht/routing/RouterRpcRemote.js.map +1 -1
  109. package/dist/src/dht/routing/RoutingSession.d.ts +1 -1
  110. package/dist/src/dht/routing/RoutingSession.js +23 -11
  111. package/dist/src/dht/routing/RoutingSession.js.map +1 -1
  112. package/dist/src/dht/routing/getPreviousPeer.js.map +1 -1
  113. package/dist/src/dht/store/LocalDataStore.d.ts +3 -3
  114. package/dist/src/dht/store/LocalDataStore.js +18 -17
  115. package/dist/src/dht/store/LocalDataStore.js.map +1 -1
  116. package/dist/src/dht/store/StoreRpcLocal.d.ts +10 -9
  117. package/dist/src/dht/store/StoreRpcLocal.js +108 -102
  118. package/dist/src/dht/store/StoreRpcLocal.js.map +1 -1
  119. package/dist/src/dht/store/StoreRpcRemote.d.ts +4 -5
  120. package/dist/src/dht/store/StoreRpcRemote.js +6 -15
  121. package/dist/src/dht/store/StoreRpcRemote.js.map +1 -1
  122. package/dist/src/exports.d.ts +1 -1
  123. package/dist/src/exports.js +4 -4
  124. package/dist/src/exports.js.map +1 -1
  125. package/dist/src/helpers/PeerID.d.ts +1 -0
  126. package/dist/src/helpers/PeerID.js +9 -4
  127. package/dist/src/helpers/PeerID.js.map +1 -1
  128. package/dist/src/helpers/UUID.js +1 -1
  129. package/dist/src/helpers/UUID.js.map +1 -1
  130. package/dist/src/helpers/nodeId.d.ts +1 -0
  131. package/dist/src/helpers/{kademliaId.js → nodeId.js} +4 -4
  132. package/dist/src/helpers/nodeId.js.map +1 -0
  133. package/dist/src/helpers/peerIdFromPeerDescriptor.js +4 -4
  134. package/dist/src/helpers/peerIdFromPeerDescriptor.js.map +1 -1
  135. package/dist/src/proto/packages/dht/protos/DhtRpc.client.d.ts +5 -16
  136. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js +2 -9
  137. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js.map +1 -1
  138. package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +80 -95
  139. package/dist/src/proto/packages/dht/protos/DhtRpc.js +67 -66
  140. package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
  141. package/dist/src/proto/packages/dht/protos/DhtRpc.server.d.ts +3 -10
  142. package/dist/src/transport/RoutingRpcCommunicator.js +2 -0
  143. package/dist/src/transport/RoutingRpcCommunicator.js.map +1 -1
  144. package/karma.config.js +2 -2
  145. package/package.json +5 -5
  146. package/protos/DhtRpc.proto +36 -36
  147. package/src/connection/ConnectionLockHandler.ts +2 -2
  148. package/src/connection/ConnectionLockRpcRemote.ts +3 -4
  149. package/src/connection/ConnectionManager.ts +19 -17
  150. package/src/connection/ConnectorFacade.ts +5 -7
  151. package/src/connection/ManagedConnection.ts +1 -0
  152. package/src/connection/connectivityChecker.ts +102 -0
  153. package/src/connection/connectivityRequestHandler.ts +79 -0
  154. package/src/connection/simulator/Simulator.ts +3 -2
  155. package/src/connection/simulator/SimulatorConnection.ts +1 -1
  156. package/src/connection/webrtc/BrowserWebrtcConnection.ts +10 -10
  157. package/src/connection/webrtc/NodeWebrtcConnection.ts +1 -1
  158. package/src/connection/webrtc/WebrtcConnector.ts +1 -1
  159. package/src/connection/webrtc/WebrtcConnectorRpcLocal.ts +1 -1
  160. package/src/connection/webrtc/WebrtcConnectorRpcRemote.ts +2 -2
  161. package/src/connection/webrtc/iceServerAsString.ts +1 -1
  162. package/src/connection/websocket/ClientWebsocket.ts +6 -2
  163. package/src/connection/websocket/ServerWebsocket.ts +40 -25
  164. package/src/connection/websocket/WebsocketConnector.ts +43 -22
  165. package/src/connection/websocket/WebsocketConnectorRpcLocal.ts +9 -11
  166. package/src/connection/websocket/WebsocketConnectorRpcRemote.ts +7 -16
  167. package/src/connection/websocket/WebsocketServer.ts +20 -5
  168. package/src/dht/DhtNode.ts +123 -280
  169. package/src/dht/DhtNodeRpcLocal.ts +2 -9
  170. package/src/dht/DhtNodeRpcRemote.ts +4 -4
  171. package/src/dht/ExternalApiRpcLocal.ts +8 -13
  172. package/src/dht/ExternalApiRpcRemote.ts +5 -5
  173. package/src/dht/PeerManager.ts +330 -0
  174. package/src/dht/contact/ContactList.ts +3 -2
  175. package/src/dht/contact/{Remote.ts → RpcRemote.ts} +7 -6
  176. package/src/dht/contact/SortedContactList.ts +87 -44
  177. package/src/dht/discovery/DiscoverySession.ts +19 -44
  178. package/src/dht/discovery/PeerDiscovery.ts +16 -28
  179. package/src/dht/find/FindRpcLocal.ts +2 -2
  180. package/src/dht/find/FindSession.ts +25 -20
  181. package/src/dht/find/FindSessionRpcLocal.ts +1 -1
  182. package/src/dht/find/FindSessionRpcRemote.ts +2 -2
  183. package/src/dht/find/Finder.ts +84 -64
  184. package/src/dht/routing/FindRpcRemote.ts +7 -5
  185. package/src/dht/routing/Router.ts +30 -25
  186. package/src/dht/routing/RouterRpcLocal.ts +5 -5
  187. package/src/dht/routing/RouterRpcRemote.ts +13 -10
  188. package/src/dht/routing/RoutingSession.ts +22 -17
  189. package/src/dht/routing/getPreviousPeer.ts +1 -1
  190. package/src/dht/store/LocalDataStore.ts +18 -17
  191. package/src/dht/store/StoreRpcLocal.ts +118 -113
  192. package/src/dht/store/StoreRpcRemote.ts +7 -23
  193. package/src/exports.ts +1 -1
  194. package/src/helpers/PeerID.ts +8 -4
  195. package/src/helpers/UUID.ts +1 -1
  196. package/src/helpers/{kademliaId.ts → nodeId.ts} +1 -1
  197. package/src/helpers/peerIdFromPeerDescriptor.ts +6 -6
  198. package/src/proto/packages/dht/protos/DhtRpc.client.ts +6 -20
  199. package/src/proto/packages/dht/protos/DhtRpc.server.ts +3 -10
  200. package/src/proto/packages/dht/protos/DhtRpc.ts +103 -135
  201. package/src/transport/RoutingRpcCommunicator.ts +2 -0
  202. package/test/benchmark/Find.test.ts +5 -5
  203. package/test/benchmark/KademliaCorrectness.test.ts +3 -3
  204. package/test/benchmark/SortedContactListBenchmark.test.ts +150 -0
  205. package/test/benchmark/WebsocketServerMemoryLeak.test.ts +41 -0
  206. package/test/benchmark/kademlia-simulation/Contact.ts +1 -1
  207. package/test/benchmark/kademlia-simulation/KademliaSimulation.ts +1 -1
  208. package/test/benchmark/kademlia-simulation/SimulationNode.ts +6 -1
  209. package/test/end-to-end/Layer0-Layer1.test.ts +1 -1
  210. package/test/end-to-end/Layer0.test.ts +4 -4
  211. package/test/end-to-end/Layer0MixedConnectionTypes.test.ts +11 -11
  212. package/test/end-to-end/Layer0Webrtc-Layer1.test.ts +6 -6
  213. package/test/end-to-end/Layer0Webrtc.test.ts +2 -2
  214. package/test/end-to-end/Layer1-Scale-WebSocket.test.ts +3 -3
  215. package/test/end-to-end/Layer1-Scale-Webrtc.test.ts +3 -3
  216. package/test/end-to-end/RecoveryFromFailedAutoCertification.test.ts +1 -1
  217. package/test/end-to-end/WebsocketConnectionRequest.test.ts +1 -1
  218. package/test/end-to-end/memory-leak.test.ts +9 -12
  219. package/test/integration/ConnectionLocking.test.ts +2 -2
  220. package/test/integration/ConnectionManager.test.ts +14 -14
  221. package/test/integration/DhtJoinPeerDiscovery.test.ts +3 -3
  222. package/test/integration/DhtNodeExternalAPI.test.ts +10 -7
  223. package/test/integration/DhtNodeRpcRemote.test.ts +4 -4
  224. package/test/integration/DhtRpc.test.ts +6 -6
  225. package/test/integration/Find.test.ts +3 -3
  226. package/test/integration/Layer1-scale.test.ts +3 -3
  227. package/test/integration/Mock-Layer1-Layer0.test.ts +16 -16
  228. package/test/integration/MultipleEntryPointJoining.test.ts +7 -7
  229. package/test/integration/{MigrateData.test.ts → ReplicateData.test.ts} +15 -10
  230. package/test/integration/RouteMessage.test.ts +2 -2
  231. package/test/integration/RouterRpcRemote.test.ts +2 -2
  232. package/test/integration/RpcErrors.test.ts +2 -2
  233. package/test/integration/ScaleDownDht.test.ts +4 -2
  234. package/test/integration/SimultaneousConnections.test.ts +89 -57
  235. package/test/integration/Store.test.ts +33 -13
  236. package/test/integration/StoreAndDelete.test.ts +19 -17
  237. package/test/integration/StoreOnDhtWithTwoNodes.test.ts +21 -21
  238. package/test/integration/StoreRpcRemote.test.ts +3 -3
  239. package/test/integration/WebrtcConnectionManagement.test.ts +2 -2
  240. package/test/integration/WebrtcConnectorRpc.test.ts +1 -1
  241. package/test/integration/WebsocketConnectionManagement.test.ts +41 -3
  242. package/test/integration/WebsocketConnectorRpc.test.ts +5 -7
  243. package/test/unit/ConnectivityHelpers.test.ts +4 -4
  244. package/test/unit/Finder.test.ts +69 -23
  245. package/test/unit/LocalDataStore.test.ts +60 -43
  246. package/test/unit/RandomContactList.test.ts +2 -2
  247. package/test/unit/Router.test.ts +19 -11
  248. package/test/unit/RoutingSession.test.ts +76 -0
  249. package/test/unit/SortedContactList.test.ts +17 -12
  250. package/test/unit/WebsocketConnector.test.ts +1 -1
  251. package/test/unit/connectivityRequestHandler.test.ts +71 -0
  252. package/test/utils/mock/Router.ts +1 -1
  253. package/test/utils/utils.ts +24 -22
  254. package/dist/src/connection/ConnectivityChecker.d.ts +0 -17
  255. package/dist/src/connection/ConnectivityChecker.js +0 -208
  256. package/dist/src/connection/ConnectivityChecker.js.map +0 -1
  257. package/dist/src/dht/contact/Remote.js.map +0 -1
  258. package/dist/src/helpers/kademliaId.d.ts +0 -1
  259. package/dist/src/helpers/kademliaId.js.map +0 -1
  260. package/src/connection/ConnectivityChecker.ts +0 -199
@@ -20,11 +20,11 @@ describe('DhtNodeRpcRemote', () => {
20
20
  let serverRpcCommunicator: RpcCommunicator
21
21
  const serviceId = 'test'
22
22
  const clientPeerDescriptor: PeerDescriptor = {
23
- kademliaId: generateId('client'),
23
+ nodeId: generateId('client'),
24
24
  type: NodeType.NODEJS
25
25
  }
26
26
  const serverPeerDescriptor: PeerDescriptor = {
27
- kademliaId: generateId('server'),
27
+ nodeId: generateId('server'),
28
28
  type: NodeType.NODEJS
29
29
  }
30
30
 
@@ -54,7 +54,7 @@ describe('DhtNodeRpcRemote', () => {
54
54
  })
55
55
 
56
56
  it('getClosestPeers happy path', async () => {
57
- const neighbors = await rpcRemote.getClosestPeers(clientPeerDescriptor.kademliaId)
57
+ const neighbors = await rpcRemote.getClosestPeers(clientPeerDescriptor.nodeId)
58
58
  expect(neighbors.length).toEqual(getMockPeers().length)
59
59
  })
60
60
 
@@ -66,7 +66,7 @@ describe('DhtNodeRpcRemote', () => {
66
66
 
67
67
  it('getClosestPeers error path', async () => {
68
68
  serverRpcCommunicator.registerRpcMethod(ClosestPeersRequest, ClosestPeersResponse, 'getClosestPeers', MockDhtRpc.throwGetClosestPeersError)
69
- await expect(rpcRemote.getClosestPeers(clientPeerDescriptor.kademliaId))
69
+ await expect(rpcRemote.getClosestPeers(clientPeerDescriptor.nodeId))
70
70
  .rejects.toThrow('Closest peers error')
71
71
  })
72
72
 
@@ -13,12 +13,12 @@ describe('DhtRpc', () => {
13
13
  let client2: ProtoRpcClient<DhtNodeRpcClient>
14
14
 
15
15
  const peerDescriptor1: PeerDescriptor = {
16
- kademliaId: generateId('peer1'),
16
+ nodeId: generateId('peer1'),
17
17
  type: NodeType.NODEJS
18
18
  }
19
19
 
20
20
  const peerDescriptor2: PeerDescriptor = {
21
- kademliaId: generateId('peer2'),
21
+ nodeId: generateId('peer2'),
22
22
  type: NodeType.NODEJS
23
23
  }
24
24
 
@@ -50,7 +50,7 @@ describe('DhtRpc', () => {
50
50
 
51
51
  it('Happy path', async () => {
52
52
  const response1 = client1.getClosestPeers(
53
- { kademliaId: peerDescriptor1.kademliaId, requestId: '1' },
53
+ { nodeId: peerDescriptor1.nodeId, requestId: '1' },
54
54
  {
55
55
  sourceDescriptor: peerDescriptor1,
56
56
  targetDescriptor: peerDescriptor2,
@@ -60,7 +60,7 @@ describe('DhtRpc', () => {
60
60
  expect(res1.peers).toEqual(getMockPeers())
61
61
 
62
62
  const response2 = client2.getClosestPeers(
63
- { kademliaId: peerDescriptor2.kademliaId, requestId: '1' },
63
+ { nodeId: peerDescriptor2.nodeId, requestId: '1' },
64
64
  {
65
65
  sourceDescriptor: peerDescriptor2,
66
66
  targetDescriptor: peerDescriptor1
@@ -76,7 +76,7 @@ describe('DhtRpc', () => {
76
76
  await wait(3000)
77
77
  })
78
78
  const response2 = client2.getClosestPeers(
79
- { kademliaId: peerDescriptor2.kademliaId, requestId: '1' },
79
+ { nodeId: peerDescriptor2.nodeId, requestId: '1' },
80
80
  {
81
81
  sourceDescriptor: peerDescriptor2,
82
82
  targetDescriptor: peerDescriptor1
@@ -102,7 +102,7 @@ describe('DhtRpc', () => {
102
102
 
103
103
  rpcCommunicator2.registerRpcMethod(ClosestPeersRequest, ClosestPeersResponse, 'getClosestPeers', respondGetClosestPeersWithTimeout)
104
104
  const response = client2.getClosestPeers(
105
- { kademliaId: peerDescriptor2.kademliaId, requestId: '1' },
105
+ { nodeId: peerDescriptor2.nodeId, requestId: '1' },
106
106
  {
107
107
  sourceDescriptor: peerDescriptor2,
108
108
  targetDescriptor: peerDescriptor1
@@ -38,10 +38,10 @@ describe('Find correctness', () => {
38
38
  })
39
39
 
40
40
  it('Entrypoint can find a node from the network (exact match)', async () => {
41
- const kademliaIdToFind = nodes[45].getNodeId().value
42
- const results = await entryPoint.startFind(kademliaIdToFind)
41
+ const nodeIdToFind = nodes[45].getNodeId().value
42
+ const results = await entryPoint.startFind(nodeIdToFind)
43
43
  expect(results.closestNodes.length).toBeGreaterThanOrEqual(5)
44
- expect(PeerID.fromValue(kademliaIdToFind).equals(peerIdFromPeerDescriptor(results.closestNodes[0])))
44
+ expect(PeerID.fromValue(nodeIdToFind).equals(peerIdFromPeerDescriptor(results.closestNodes[0])))
45
45
  }, 30000)
46
46
 
47
47
  })
@@ -13,7 +13,7 @@ describe('Layer1', () => {
13
13
  const layer0EntryPointId = new UUID().toString()
14
14
 
15
15
  const entryPoint0Descriptor = {
16
- kademliaId: PeerID.fromString(layer0EntryPointId).value,
16
+ nodeId: PeerID.fromString(layer0EntryPointId).value,
17
17
  type: NodeType.NODEJS
18
18
  }
19
19
 
@@ -75,7 +75,7 @@ describe('Layer1', () => {
75
75
  const layer1Node = layer1Nodes[i]
76
76
  expect(layer1Node.getNodeId().equals(layer0Node.getNodeId())).toEqual(true)
77
77
  expect(layer1Node.getNumberOfConnections()).toEqual(layer0Node.getNumberOfConnections())
78
- expect(layer1Node.getBucketSize()).toBeGreaterThanOrEqual(NUM_OF_NODES_PER_KBUCKET / 2)
78
+ expect(layer1Node.getNumberOfNeighbors()).toBeGreaterThanOrEqual(NUM_OF_NODES_PER_KBUCKET / 2)
79
79
  expect(layer1Node.getAllConnectionPeerDescriptors()).toEqual(layer0Node.getAllConnectionPeerDescriptors())
80
80
  }
81
81
  }, 120000)
@@ -155,7 +155,7 @@ describe('Layer1', () => {
155
155
  // layer1CleanUp.push(layer1)
156
156
  // receivedMessages.set(layer0.getNodeId().toKey(), new Set())
157
157
  // layer1.on('message', (msg: Message) => {
158
- // const peerId = PeerID.fromValue(msg.sourceDescriptor!.kademliaId)
158
+ // const peerId = PeerID.fromValue(msg.sourceDescriptor!.nodeId)
159
159
  // receivedMessages.get(layer0.getNodeId().toKey())!.add(peerId.toKey())
160
160
  // })
161
161
  // }
@@ -51,7 +51,7 @@ describe('Layer 1 on Layer 0 with mocked connections', () => {
51
51
  layer1Node4 = await createMockConnectionLayer1Node(layer0Node4Id, layer0Node4)
52
52
 
53
53
  entryPointDescriptor = {
54
- kademliaId: layer0EntryPoint.getNodeId().value,
54
+ nodeId: layer0EntryPoint.getNodeId().value,
55
55
  type: NodeType.NODEJS
56
56
  }
57
57
 
@@ -85,21 +85,21 @@ describe('Layer 1 on Layer 0 with mocked connections', () => {
85
85
  await layer1Node3.joinDht([entryPointDescriptor])
86
86
  await layer1Node4.joinDht([entryPointDescriptor])
87
87
 
88
- logger.info('layer1EntryPoint.getBucketSize() ' + layer1EntryPoint.getBucketSize())
89
- logger.info('layer1Node1.getBucketSize()' + layer1Node1.getBucketSize())
90
- logger.info('layer1Node2.getBucketSize()' + layer1Node2.getBucketSize())
91
- logger.info('layer1Node3.getBucketSize()' + layer1Node3.getBucketSize())
92
- logger.info('layer1Node4.getBucketSize()' + layer1Node4.getBucketSize())
93
-
94
- expect(layer1Node1.getBucketSize()).toEqual(layer0Node1.getBucketSize())
95
- expect(layer1Node2.getBucketSize()).toEqual(layer0Node2.getBucketSize())
96
- expect(layer1Node3.getBucketSize()).toEqual(layer0Node3.getBucketSize())
97
- expect(layer1Node4.getBucketSize()).toEqual(layer0Node4.getBucketSize())
98
-
99
- expect(layer1Node1.getKBucketPeers()).toContainValues(layer0Node1.getKBucketPeers())
100
- expect(layer1Node2.getKBucketPeers()).toContainValues(layer0Node2.getKBucketPeers())
101
- expect(layer1Node3.getKBucketPeers()).toContainValues(layer0Node3.getKBucketPeers())
102
- expect(layer1Node4.getKBucketPeers()).toContainValues(layer0Node4.getKBucketPeers())
88
+ logger.info('layer1EntryPoint.getNumberOfNeighbors() ' + layer1EntryPoint.getNumberOfNeighbors())
89
+ logger.info('layer1Node1.getNumberOfNeighbors()' + layer1Node1.getNumberOfNeighbors())
90
+ logger.info('layer1Node2.getNumberOfNeighbors()' + layer1Node2.getNumberOfNeighbors())
91
+ logger.info('layer1Node3.getNumberOfNeighbors()' + layer1Node3.getNumberOfNeighbors())
92
+ logger.info('layer1Node4.getNumberOfNeighbors()' + layer1Node4.getNumberOfNeighbors())
93
+
94
+ expect(layer1Node1.getNumberOfNeighbors()).toEqual(layer0Node1.getNumberOfNeighbors())
95
+ expect(layer1Node2.getNumberOfNeighbors()).toEqual(layer0Node2.getNumberOfNeighbors())
96
+ expect(layer1Node3.getNumberOfNeighbors()).toEqual(layer0Node3.getNumberOfNeighbors())
97
+ expect(layer1Node4.getNumberOfNeighbors()).toEqual(layer0Node4.getNumberOfNeighbors())
98
+
99
+ expect(layer1Node1.getAllNeighborPeerDescriptors()).toContainValues(layer0Node1.getAllNeighborPeerDescriptors())
100
+ expect(layer1Node2.getAllNeighborPeerDescriptors()).toContainValues(layer0Node2.getAllNeighborPeerDescriptors())
101
+ expect(layer1Node3.getAllNeighborPeerDescriptors()).toContainValues(layer0Node3.getAllNeighborPeerDescriptors())
102
+ expect(layer1Node4.getAllNeighborPeerDescriptors()).toContainValues(layer0Node4.getAllNeighborPeerDescriptors())
103
103
 
104
104
  }, 60000)
105
105
  })
@@ -42,9 +42,9 @@ describe('multiple entry point joining', () => {
42
42
  node2.joinDht(entryPoints),
43
43
  node3.joinDht(entryPoints)
44
44
  ])
45
- expect(node1.getBucketSize()).toEqual(2)
46
- expect(node2.getBucketSize()).toEqual(2)
47
- expect(node3.getBucketSize()).toEqual(2)
45
+ expect(node1.getNumberOfNeighbors()).toEqual(2)
46
+ expect(node2.getNumberOfNeighbors()).toEqual(2)
47
+ expect(node3.getNumberOfNeighbors()).toEqual(2)
48
48
  })
49
49
 
50
50
  it('can join even if a node is offline', async () => {
@@ -53,8 +53,8 @@ describe('multiple entry point joining', () => {
53
53
  node1.joinDht(entryPoints),
54
54
  node2.joinDht(entryPoints)
55
55
  ])
56
- expect(node1.getBucketSize()).toEqual(1)
57
- expect(node2.getBucketSize()).toEqual(1)
56
+ expect(node1.getNumberOfNeighbors()).toEqual(1)
57
+ expect(node2.getNumberOfNeighbors()).toEqual(1)
58
58
  }, 10000)
59
59
  })
60
60
 
@@ -96,9 +96,9 @@ describe('multiple entry point joining', () => {
96
96
 
97
97
  it('non-entry point nodes can join', async () => {
98
98
  await node1.joinDht(entryPoints)
99
- expect(node1.getBucketSize()).toEqual(2)
99
+ expect(node1.getNumberOfNeighbors()).toEqual(2)
100
100
  await node2.joinDht(entryPoints)
101
- expect(node2.getBucketSize()).toEqual(3)
101
+ expect(node2.getNumberOfNeighbors()).toEqual(3)
102
102
  })
103
103
 
104
104
  })
@@ -16,7 +16,7 @@ const logger = new Logger(module)
16
16
 
17
17
  jest.setTimeout(60000)
18
18
 
19
- describe('Migrating data from node to node in DHT', () => {
19
+ describe('Replicate data from node to node in DHT', () => {
20
20
  let entryPoint: DhtNode
21
21
  let nodes: DhtNode[]
22
22
  let entrypointDescriptor: PeerDescriptor
@@ -47,7 +47,7 @@ describe('Migrating data from node to node in DHT', () => {
47
47
  nodesById.set(entryPoint.getNodeId().toKey(), entryPoint)
48
48
 
49
49
  entrypointDescriptor = {
50
- kademliaId: entryPoint.getNodeId().value,
50
+ nodeId: entryPoint.getNodeId().value,
51
51
  type: NodeType.NODEJS
52
52
  }
53
53
 
@@ -74,13 +74,18 @@ describe('Migrating data from node to node in DHT', () => {
74
74
  simulator.stop()
75
75
  })
76
76
 
77
- it('Data migrates to the closest node no matter where it is stored', async () => {
77
+ it('Data replicates to the closest node no matter where it is stored', async () => {
78
78
  const dataKey = PeerID.fromString('3232323e12r31r3')
79
79
  const data = Any.pack(entrypointDescriptor, PeerDescriptor)
80
80
 
81
81
  // calculate offline which node is closest to the data
82
82
 
83
- const sortedList = new SortedContactList<Contact>(dataKey, 10000)
83
+ const sortedList = new SortedContactList<Contact>({
84
+ referenceId: dataKey,
85
+ maxSize: 10000,
86
+ allowToContainReferenceId: true,
87
+ emitEvents: false
88
+ })
84
89
 
85
90
  nodes.forEach((node) => {
86
91
  sortedList.addContact(new Contact(node.getLocalPeerDescriptor())
@@ -106,7 +111,7 @@ describe('Migrating data from node to node in DHT', () => {
106
111
  logger.info('Nodes sorted according to distance to data with storing nodes marked are: ')
107
112
 
108
113
  closest.forEach((contact) => {
109
- const node = nodesById.get(PeerID.fromValue(contact.getPeerDescriptor().kademliaId).toKey())!
114
+ const node = nodesById.get(PeerID.fromValue(contact.getPeerDescriptor().nodeId).toKey())!
110
115
  let hasDataMarker = ''
111
116
 
112
117
  // @ts-expect-error private field
@@ -134,7 +139,7 @@ describe('Migrating data from node to node in DHT', () => {
134
139
  logger.info('After join of 99 nodes: nodes sorted according to distance to data with storing nodes marked are: ')
135
140
 
136
141
  closest.forEach((contact) => {
137
- const node = nodesById.get(PeerID.fromValue(contact.getPeerDescriptor().kademliaId).toKey())!
142
+ const node = nodesById.get(PeerID.fromValue(contact.getPeerDescriptor().nodeId).toKey())!
138
143
  let hasDataMarker = ''
139
144
 
140
145
  // @ts-expect-error private field
@@ -146,13 +151,13 @@ describe('Migrating data from node to node in DHT', () => {
146
151
  logger.info(getNodeIdFromPeerDescriptor(node.getLocalPeerDescriptor()) + hasDataMarker)
147
152
  })
148
153
 
149
- const closestNode = nodesById.get(PeerID.fromValue(closest[0].getPeerDescriptor().kademliaId).toKey())!
154
+ const closestNode = nodesById.get(PeerID.fromValue(closest[0].getPeerDescriptor().nodeId).toKey())!
150
155
 
151
156
  // @ts-expect-error private field
152
- expect(closestNode.localDataStore.getEntry(dataKey)).toBeTruthy()
157
+ expect(closestNode.localDataStore.getEntry(dataKey).size).toBeGreaterThanOrEqual(1)
153
158
  }, 180000)
154
159
 
155
- it('Data migrates to the last remaining node if all other nodes leave gracefully', async () => {
160
+ it('Data replicates to the last remaining node if all other nodes leave gracefully', async () => {
156
161
  const dataKey = PeerID.fromString('3232323e12r31r3')
157
162
  const data = Any.pack(entrypointDescriptor, PeerDescriptor)
158
163
 
@@ -198,7 +203,7 @@ describe('Migrating data from node to node in DHT', () => {
198
203
  logger.info('data of ' + randomIndices[0] + ' was ' + nodes[randomIndices[0]].localDataStore.getEntry(dataKey))
199
204
 
200
205
  // @ts-expect-error private field
201
- expect(nodes[randomIndices[0]].localDataStore.getEntry(dataKey)).toBeTruthy()
206
+ expect(nodes[randomIndices[0]].localDataStore.getEntry(dataKey).size).toBeGreaterThanOrEqual(1)
202
207
 
203
208
  }, 180000)
204
209
  })
@@ -32,7 +32,7 @@ describe('Route Message With Mock Connections', () => {
32
32
  entryPoint = await createMockConnectionDhtNode(entryPointId, simulator)
33
33
 
34
34
  entryPointDescriptor = {
35
- kademliaId: entryPoint.getNodeId().value,
35
+ nodeId: entryPoint.getNodeId().value,
36
36
  type: NodeType.NODEJS
37
37
  }
38
38
 
@@ -141,7 +141,7 @@ describe('Route Message With Mock Connections', () => {
141
141
  numsOfReceivedMessages[node.getNodeId().toKey()] = numsOfReceivedMessages[node.getNodeId().toKey()] + 1
142
142
  try {
143
143
  const target = receiveMatrix[parseInt(node.getNodeId().toString()) - 1]
144
- target[parseInt(PeerID.fromValue(msg.sourceDescriptor!.kademliaId).toString()) - 1]++
144
+ target[parseInt(PeerID.fromValue(msg.sourceDescriptor!.nodeId).toString()) - 1]++
145
145
  } catch (e) {
146
146
  console.error(e)
147
147
  }
@@ -12,11 +12,11 @@ describe('RemoteRouter', () => {
12
12
  let serverRpcCommunicator: RpcCommunicator
13
13
  const serviceId = 'test'
14
14
  const clientPeerDescriptor: PeerDescriptor = {
15
- kademliaId: generateId('client'),
15
+ nodeId: generateId('client'),
16
16
  type: NodeType.NODEJS
17
17
  }
18
18
  const serverPeerDescriptor: PeerDescriptor = {
19
- kademliaId: generateId('server'),
19
+ nodeId: generateId('server'),
20
20
  type: NodeType.NODEJS
21
21
  }
22
22
 
@@ -36,12 +36,12 @@ describe('RPC errors', () => {
36
36
  let simulator: Simulator
37
37
 
38
38
  const peerDescriptor1: PeerDescriptor = {
39
- kademliaId: PeerID.fromString('peer1').value,
39
+ nodeId: PeerID.fromString('peer1').value,
40
40
  type: NodeType.NODEJS,
41
41
  }
42
42
 
43
43
  const peerDescriptor2: PeerDescriptor = {
44
- kademliaId: PeerID.fromString('peer2').value,
44
+ nodeId: PeerID.fromString('peer2').value,
45
45
  type: NodeType.NODEJS,
46
46
  }
47
47
 
@@ -4,6 +4,7 @@ import { NodeType, PeerDescriptor } from '../../src/proto/packages/dht/protos/Dh
4
4
  import { createMockConnectionDhtNode } from '../utils/utils'
5
5
  import { areEqualPeerDescriptors, getNodeIdFromPeerDescriptor } from '../../src/helpers/peerIdFromPeerDescriptor'
6
6
  import { Logger } from '@streamr/utils'
7
+ import { getRandomRegion } from '../../src/connection/simulator/pings'
7
8
 
8
9
  const logger = new Logger(module)
9
10
 
@@ -24,8 +25,9 @@ describe('Scaling down a Dht network', () => {
24
25
  nodes.push(entryPoint)
25
26
 
26
27
  entrypointDescriptor = {
27
- kademliaId: entryPoint.getNodeId().value,
28
- type: NodeType.NODEJS
28
+ nodeId: entryPoint.getNodeId().value,
29
+ type: NodeType.NODEJS,
30
+ region: getRandomRegion()
29
31
  }
30
32
 
31
33
  for (let i = 1; i < NUM_NODES; i++) {