@streamr/dht 100.0.0-pretestnet.4 → 100.0.0-testnet-one.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 (233) 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 +2 -2
  5. package/dist/src/connection/ConnectionLockRpcRemote.js.map +1 -1
  6. package/dist/src/connection/ConnectionManager.js +4 -1
  7. package/dist/src/connection/ConnectionManager.js.map +1 -1
  8. package/dist/src/connection/ConnectorFacade.js.map +1 -1
  9. package/dist/src/connection/ManagedConnection.js +1 -0
  10. package/dist/src/connection/ManagedConnection.js.map +1 -1
  11. package/dist/src/connection/connectivityChecker.d.ts +9 -0
  12. package/dist/src/connection/connectivityChecker.js +121 -0
  13. package/dist/src/connection/connectivityChecker.js.map +1 -0
  14. package/dist/src/connection/connectivityRequestHandler.d.ts +2 -0
  15. package/dist/src/connection/connectivityRequestHandler.js +79 -0
  16. package/dist/src/connection/connectivityRequestHandler.js.map +1 -0
  17. package/dist/src/connection/simulator/Simulator.js +3 -2
  18. package/dist/src/connection/simulator/Simulator.js.map +1 -1
  19. package/dist/src/connection/simulator/SimulatorConnection.js +1 -1
  20. package/dist/src/connection/simulator/SimulatorConnection.js.map +1 -1
  21. package/dist/src/connection/webrtc/NodeWebrtcConnection.js +1 -1
  22. package/dist/src/connection/webrtc/NodeWebrtcConnection.js.map +1 -1
  23. package/dist/src/connection/webrtc/WebrtcConnector.js +1 -1
  24. package/dist/src/connection/webrtc/WebrtcConnector.js.map +1 -1
  25. package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js +1 -1
  26. package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js.map +1 -1
  27. package/dist/src/connection/webrtc/WebrtcConnectorRpcRemote.d.ts +2 -2
  28. package/dist/src/connection/webrtc/WebrtcConnectorRpcRemote.js +2 -2
  29. package/dist/src/connection/webrtc/WebrtcConnectorRpcRemote.js.map +1 -1
  30. package/dist/src/connection/webrtc/iceServerAsString.js +1 -1
  31. package/dist/src/connection/webrtc/iceServerAsString.js.map +1 -1
  32. package/dist/src/connection/websocket/ClientWebsocket.js +1 -0
  33. package/dist/src/connection/websocket/ClientWebsocket.js.map +1 -1
  34. package/dist/src/connection/websocket/WebsocketConnector.d.ts +0 -1
  35. package/dist/src/connection/websocket/WebsocketConnector.js +41 -7
  36. package/dist/src/connection/websocket/WebsocketConnector.js.map +1 -1
  37. package/dist/src/connection/websocket/WebsocketConnectorRpcRemote.d.ts +2 -2
  38. package/dist/src/connection/websocket/WebsocketConnectorRpcRemote.js +2 -2
  39. package/dist/src/connection/websocket/WebsocketConnectorRpcRemote.js.map +1 -1
  40. package/dist/src/dht/DhtNode.d.ts +9 -19
  41. package/dist/src/dht/DhtNode.js +76 -216
  42. package/dist/src/dht/DhtNode.js.map +1 -1
  43. package/dist/src/dht/DhtNodeRpcLocal.js +3 -3
  44. package/dist/src/dht/DhtNodeRpcLocal.js.map +1 -1
  45. package/dist/src/dht/DhtNodeRpcRemote.d.ts +3 -3
  46. package/dist/src/dht/DhtNodeRpcRemote.js +4 -4
  47. package/dist/src/dht/DhtNodeRpcRemote.js.map +1 -1
  48. package/dist/src/dht/ExternalApiRpcLocal.d.ts +4 -4
  49. package/dist/src/dht/ExternalApiRpcLocal.js +5 -12
  50. package/dist/src/dht/ExternalApiRpcLocal.js.map +1 -1
  51. package/dist/src/dht/ExternalApiRpcRemote.d.ts +3 -3
  52. package/dist/src/dht/ExternalApiRpcRemote.js +5 -5
  53. package/dist/src/dht/ExternalApiRpcRemote.js.map +1 -1
  54. package/dist/src/dht/PeerManager.d.ts +48 -0
  55. package/dist/src/dht/PeerManager.js +208 -0
  56. package/dist/src/dht/PeerManager.js.map +1 -0
  57. package/dist/src/dht/contact/ContactList.d.ts +1 -1
  58. package/dist/src/dht/contact/ContactList.js +1 -0
  59. package/dist/src/dht/contact/ContactList.js.map +1 -1
  60. package/dist/src/dht/contact/{Remote.d.ts → RpcRemote.d.ts} +3 -3
  61. package/dist/src/dht/contact/{Remote.js → RpcRemote.js} +8 -8
  62. package/dist/src/dht/contact/RpcRemote.js.map +1 -0
  63. package/dist/src/dht/discovery/DiscoverySession.d.ts +2 -9
  64. package/dist/src/dht/discovery/DiscoverySession.js +12 -26
  65. package/dist/src/dht/discovery/DiscoverySession.js.map +1 -1
  66. package/dist/src/dht/discovery/PeerDiscovery.d.ts +2 -9
  67. package/dist/src/dht/discovery/PeerDiscovery.js +13 -15
  68. package/dist/src/dht/discovery/PeerDiscovery.js.map +1 -1
  69. package/dist/src/dht/find/FindRpcLocal.js +2 -1
  70. package/dist/src/dht/find/FindRpcLocal.js.map +1 -1
  71. package/dist/src/dht/find/FindSession.d.ts +6 -6
  72. package/dist/src/dht/find/FindSession.js +13 -13
  73. package/dist/src/dht/find/FindSession.js.map +1 -1
  74. package/dist/src/dht/find/FindSessionRpcLocal.d.ts +1 -1
  75. package/dist/src/dht/find/FindSessionRpcRemote.d.ts +2 -2
  76. package/dist/src/dht/find/FindSessionRpcRemote.js +2 -2
  77. package/dist/src/dht/find/FindSessionRpcRemote.js.map +1 -1
  78. package/dist/src/dht/find/Finder.d.ts +4 -4
  79. package/dist/src/dht/find/Finder.js +50 -42
  80. package/dist/src/dht/find/Finder.js.map +1 -1
  81. package/dist/src/dht/routing/FindRpcRemote.d.ts +2 -2
  82. package/dist/src/dht/routing/FindRpcRemote.js +7 -5
  83. package/dist/src/dht/routing/FindRpcRemote.js.map +1 -1
  84. package/dist/src/dht/routing/Router.d.ts +2 -6
  85. package/dist/src/dht/routing/Router.js +21 -18
  86. package/dist/src/dht/routing/Router.js.map +1 -1
  87. package/dist/src/dht/routing/RouterRpcLocal.d.ts +2 -2
  88. package/dist/src/dht/routing/RouterRpcLocal.js +4 -3
  89. package/dist/src/dht/routing/RouterRpcLocal.js.map +1 -1
  90. package/dist/src/dht/routing/RouterRpcRemote.d.ts +2 -2
  91. package/dist/src/dht/routing/RouterRpcRemote.js +13 -8
  92. package/dist/src/dht/routing/RouterRpcRemote.js.map +1 -1
  93. package/dist/src/dht/routing/RoutingSession.d.ts +1 -1
  94. package/dist/src/dht/routing/RoutingSession.js +16 -11
  95. package/dist/src/dht/routing/RoutingSession.js.map +1 -1
  96. package/dist/src/dht/routing/getPreviousPeer.js.map +1 -1
  97. package/dist/src/dht/store/LocalDataStore.d.ts +3 -3
  98. package/dist/src/dht/store/LocalDataStore.js +18 -17
  99. package/dist/src/dht/store/LocalDataStore.js.map +1 -1
  100. package/dist/src/dht/store/StoreRpcLocal.d.ts +10 -9
  101. package/dist/src/dht/store/StoreRpcLocal.js +91 -99
  102. package/dist/src/dht/store/StoreRpcLocal.js.map +1 -1
  103. package/dist/src/dht/store/StoreRpcRemote.d.ts +4 -5
  104. package/dist/src/dht/store/StoreRpcRemote.js +6 -15
  105. package/dist/src/dht/store/StoreRpcRemote.js.map +1 -1
  106. package/dist/src/exports.d.ts +1 -1
  107. package/dist/src/exports.js +4 -4
  108. package/dist/src/exports.js.map +1 -1
  109. package/dist/src/helpers/PeerID.js +2 -2
  110. package/dist/src/helpers/PeerID.js.map +1 -1
  111. package/dist/src/helpers/UUID.js +1 -1
  112. package/dist/src/helpers/UUID.js.map +1 -1
  113. package/dist/src/helpers/nodeId.d.ts +1 -0
  114. package/dist/src/helpers/{kademliaId.js → nodeId.js} +4 -4
  115. package/dist/src/helpers/nodeId.js.map +1 -0
  116. package/dist/src/helpers/peerIdFromPeerDescriptor.js +3 -3
  117. package/dist/src/helpers/peerIdFromPeerDescriptor.js.map +1 -1
  118. package/dist/src/proto/packages/dht/protos/DhtRpc.client.d.ts +5 -16
  119. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js +2 -9
  120. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js.map +1 -1
  121. package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +80 -95
  122. package/dist/src/proto/packages/dht/protos/DhtRpc.js +67 -66
  123. package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
  124. package/dist/src/proto/packages/dht/protos/DhtRpc.server.d.ts +3 -10
  125. package/dist/src/transport/RoutingRpcCommunicator.js +2 -0
  126. package/dist/src/transport/RoutingRpcCommunicator.js.map +1 -1
  127. package/karma.config.js +2 -2
  128. package/package.json +5 -5
  129. package/protos/DhtRpc.proto +36 -36
  130. package/src/connection/ConnectionLockHandler.ts +2 -2
  131. package/src/connection/ConnectionLockRpcRemote.ts +2 -2
  132. package/src/connection/ConnectionManager.ts +4 -1
  133. package/src/connection/ConnectorFacade.ts +5 -4
  134. package/src/connection/ManagedConnection.ts +1 -0
  135. package/src/connection/connectivityChecker.ts +101 -0
  136. package/src/connection/connectivityRequestHandler.ts +79 -0
  137. package/src/connection/simulator/Simulator.ts +3 -2
  138. package/src/connection/simulator/SimulatorConnection.ts +1 -1
  139. package/src/connection/webrtc/BrowserWebrtcConnection.ts +10 -10
  140. package/src/connection/webrtc/NodeWebrtcConnection.ts +1 -1
  141. package/src/connection/webrtc/WebrtcConnector.ts +1 -1
  142. package/src/connection/webrtc/WebrtcConnectorRpcLocal.ts +1 -1
  143. package/src/connection/webrtc/WebrtcConnectorRpcRemote.ts +2 -2
  144. package/src/connection/webrtc/iceServerAsString.ts +1 -1
  145. package/src/connection/websocket/ClientWebsocket.ts +1 -0
  146. package/src/connection/websocket/WebsocketConnector.ts +22 -12
  147. package/src/connection/websocket/WebsocketConnectorRpcRemote.ts +2 -2
  148. package/src/dht/DhtNode.ts +102 -269
  149. package/src/dht/DhtNodeRpcLocal.ts +3 -3
  150. package/src/dht/DhtNodeRpcRemote.ts +4 -4
  151. package/src/dht/ExternalApiRpcLocal.ts +8 -13
  152. package/src/dht/ExternalApiRpcRemote.ts +5 -5
  153. package/src/dht/PeerManager.ts +256 -0
  154. package/src/dht/contact/ContactList.ts +3 -2
  155. package/src/dht/contact/{Remote.ts → RpcRemote.ts} +7 -6
  156. package/src/dht/discovery/DiscoverySession.ts +15 -40
  157. package/src/dht/discovery/PeerDiscovery.ts +18 -23
  158. package/src/dht/find/FindRpcLocal.ts +2 -2
  159. package/src/dht/find/FindSession.ts +20 -20
  160. package/src/dht/find/FindSessionRpcLocal.ts +1 -1
  161. package/src/dht/find/FindSessionRpcRemote.ts +2 -2
  162. package/src/dht/find/Finder.ts +79 -58
  163. package/src/dht/routing/FindRpcRemote.ts +7 -5
  164. package/src/dht/routing/Router.ts +22 -21
  165. package/src/dht/routing/RouterRpcLocal.ts +5 -5
  166. package/src/dht/routing/RouterRpcRemote.ts +13 -10
  167. package/src/dht/routing/RoutingSession.ts +15 -10
  168. package/src/dht/routing/getPreviousPeer.ts +1 -1
  169. package/src/dht/store/LocalDataStore.ts +18 -17
  170. package/src/dht/store/StoreRpcLocal.ts +101 -108
  171. package/src/dht/store/StoreRpcRemote.ts +7 -23
  172. package/src/exports.ts +1 -1
  173. package/src/helpers/PeerID.ts +2 -2
  174. package/src/helpers/UUID.ts +1 -1
  175. package/src/helpers/{kademliaId.ts → nodeId.ts} +1 -1
  176. package/src/helpers/peerIdFromPeerDescriptor.ts +3 -3
  177. package/src/proto/packages/dht/protos/DhtRpc.client.ts +6 -20
  178. package/src/proto/packages/dht/protos/DhtRpc.server.ts +3 -10
  179. package/src/proto/packages/dht/protos/DhtRpc.ts +103 -135
  180. package/src/transport/RoutingRpcCommunicator.ts +2 -0
  181. package/test/benchmark/Find.test.ts +4 -4
  182. package/test/benchmark/KademliaCorrectness.test.ts +2 -2
  183. package/test/benchmark/kademlia-simulation/Contact.ts +1 -1
  184. package/test/benchmark/kademlia-simulation/KademliaSimulation.ts +1 -1
  185. package/test/end-to-end/Layer0-Layer1.test.ts +1 -1
  186. package/test/end-to-end/Layer0MixedConnectionTypes.test.ts +1 -1
  187. package/test/end-to-end/Layer0Webrtc-Layer1.test.ts +2 -2
  188. package/test/end-to-end/Layer0Webrtc.test.ts +2 -2
  189. package/test/end-to-end/Layer1-Scale-WebSocket.test.ts +1 -1
  190. package/test/end-to-end/Layer1-Scale-Webrtc.test.ts +1 -1
  191. package/test/end-to-end/WebsocketConnectionRequest.test.ts +1 -1
  192. package/test/end-to-end/memory-leak.test.ts +8 -12
  193. package/test/integration/ConnectionLocking.test.ts +2 -2
  194. package/test/integration/ConnectionManager.test.ts +14 -14
  195. package/test/integration/DhtJoinPeerDiscovery.test.ts +1 -1
  196. package/test/integration/DhtNodeExternalAPI.test.ts +10 -7
  197. package/test/integration/DhtNodeRpcRemote.test.ts +4 -4
  198. package/test/integration/DhtRpc.test.ts +6 -6
  199. package/test/integration/Find.test.ts +3 -3
  200. package/test/integration/Layer1-scale.test.ts +2 -2
  201. package/test/integration/Mock-Layer1-Layer0.test.ts +1 -1
  202. package/test/integration/{MigrateData.test.ts → ReplicateData.test.ts} +9 -9
  203. package/test/integration/RouteMessage.test.ts +2 -2
  204. package/test/integration/RouterRpcRemote.test.ts +2 -2
  205. package/test/integration/RpcErrors.test.ts +2 -2
  206. package/test/integration/ScaleDownDht.test.ts +4 -2
  207. package/test/integration/SimultaneousConnections.test.ts +8 -8
  208. package/test/integration/Store.test.ts +33 -13
  209. package/test/integration/StoreAndDelete.test.ts +19 -17
  210. package/test/integration/StoreOnDhtWithTwoNodes.test.ts +20 -20
  211. package/test/integration/StoreRpcRemote.test.ts +3 -3
  212. package/test/integration/WebrtcConnectionManagement.test.ts +2 -2
  213. package/test/integration/WebrtcConnectorRpc.test.ts +1 -1
  214. package/test/integration/WebsocketConnectionManagement.test.ts +2 -2
  215. package/test/integration/WebsocketConnectorRpc.test.ts +2 -2
  216. package/test/unit/ConnectivityHelpers.test.ts +4 -4
  217. package/test/unit/Finder.test.ts +69 -23
  218. package/test/unit/LocalDataStore.test.ts +60 -43
  219. package/test/unit/RandomContactList.test.ts +2 -2
  220. package/test/unit/Router.test.ts +19 -11
  221. package/test/unit/RoutingSession.test.ts +76 -0
  222. package/test/unit/SortedContactList.test.ts +2 -2
  223. package/test/unit/WebsocketConnector.test.ts +1 -1
  224. package/test/unit/connectivityRequestHandler.test.ts +71 -0
  225. package/test/utils/mock/Router.ts +1 -1
  226. package/test/utils/utils.ts +24 -22
  227. package/dist/src/connection/ConnectivityChecker.d.ts +0 -17
  228. package/dist/src/connection/ConnectivityChecker.js +0 -208
  229. package/dist/src/connection/ConnectivityChecker.js.map +0 -1
  230. package/dist/src/dht/contact/Remote.js.map +0 -1
  231. package/dist/src/helpers/kademliaId.d.ts +0 -1
  232. package/dist/src/helpers/kademliaId.js.map +0 -1
  233. package/src/connection/ConnectivityChecker.ts +0 -199
@@ -6,7 +6,7 @@ const NUM_OF_NODES_PER_KBUCKET = 8
6
6
 
7
7
  describe('Layer1 Scale', () => {
8
8
  const epPeerDescriptor: PeerDescriptor = {
9
- kademliaId: PeerID.fromString('entrypoint').value,
9
+ nodeId: PeerID.fromString('entrypoint').value,
10
10
  type: NodeType.NODEJS,
11
11
  websocket: { host: '127.0.0.1', port: 43225, tls: false }
12
12
  }
@@ -6,7 +6,7 @@ const NUM_OF_NODES_PER_KBUCKET = 8
6
6
 
7
7
  describe('Layer1 Scale', () => {
8
8
  const epPeerDescriptor: PeerDescriptor = {
9
- kademliaId: PeerID.fromString('0').value,
9
+ nodeId: PeerID.fromString('0').value,
10
10
  type: NodeType.NODEJS,
11
11
  websocket: { host: '127.0.0.1', port: 43228, tls: false }
12
12
  }
@@ -7,7 +7,7 @@ import { areEqualPeerDescriptors } from '../../src/helpers/peerIdFromPeerDescrip
7
7
 
8
8
  describe('Websocket IConnection Requests', () => {
9
9
  const epPeerDescriptor: PeerDescriptor = {
10
- kademliaId: PeerID.fromString('3').value,
10
+ nodeId: PeerID.fromString('3').value,
11
11
  type: NodeType.NODEJS,
12
12
  websocket: { host: '127.0.0.1', port: 10021, tls: false }
13
13
  }
@@ -11,7 +11,7 @@ describe('memory leak', () => {
11
11
 
12
12
  it('send message', async () => {
13
13
  const entryPointDescriptor = {
14
- kademliaId: randomBytes(10),
14
+ nodeId: randomBytes(10),
15
15
  type: NodeType.NODEJS,
16
16
  websocket: {
17
17
  host: '127.0.0.1',
@@ -20,7 +20,7 @@ describe('memory leak', () => {
20
20
  }
21
21
  }
22
22
  let entryPoint: DhtNode | undefined = new DhtNode({
23
- peerId: binaryToHex(entryPointDescriptor.kademliaId),
23
+ peerId: binaryToHex(entryPointDescriptor.nodeId),
24
24
  websocketHost: entryPointDescriptor.websocket!.host,
25
25
  websocketPortRange: {
26
26
  min: entryPointDescriptor.websocket.port,
@@ -33,20 +33,16 @@ describe('memory leak', () => {
33
33
  await entryPoint.joinDht([entryPointDescriptor])
34
34
  let sender: DhtNode | undefined = new DhtNode({})
35
35
  let receiver: DhtNode | undefined = new DhtNode({})
36
- /*TODO should this work? await Promise.all([
37
- async () => {
36
+ await Promise.all([
37
+ (async () => {
38
38
  await sender.start()
39
39
  await sender.joinDht([entryPointDescriptor])
40
- },
41
- async () => {
40
+ })(),
41
+ (async () => {
42
42
  await receiver.start()
43
43
  await receiver.joinDht([entryPointDescriptor])
44
- }
45
- ])*/
46
- await sender.start()
47
- await sender.joinDht([entryPointDescriptor])
48
- await receiver.start()
49
- await receiver.joinDht([entryPointDescriptor])
44
+ })()
45
+ ])
50
46
 
51
47
  let receivedMessage: Message | undefined = undefined
52
48
  receiver.on('message', (msg: Message) => receivedMessage = msg)
@@ -21,12 +21,12 @@ const createConnectionManager = (localPeerDescriptor: PeerDescriptor, transport:
21
21
  describe('Connection Locking', () => {
22
22
 
23
23
  const mockPeerDescriptor1: PeerDescriptor = {
24
- kademliaId: PeerID.fromString('mock1').value,
24
+ nodeId: PeerID.fromString('mock1').value,
25
25
  type: NodeType.NODEJS,
26
26
  region: getRandomRegion()
27
27
  }
28
28
  const mockPeerDescriptor2: PeerDescriptor = {
29
- kademliaId: PeerID.fromString('mock2').value,
29
+ nodeId: PeerID.fromString('mock2').value,
30
30
  type: NodeType.NODEJS,
31
31
  region: getRandomRegion()
32
32
  }
@@ -8,7 +8,7 @@ import { Logger, MetricsContext, waitForEvent3 } from '@streamr/utils'
8
8
  import { SimulatorTransport } from '../../src/exports'
9
9
  import { DefaultConnectorFacade, DefaultConnectorFacadeConfig } from '../../src/connection/ConnectorFacade'
10
10
  import { MarkOptional } from 'ts-essentials'
11
- import { createRandomKademliaId } from '../../src/helpers/kademliaId'
11
+ import { createRandomNodeId } from '../../src/helpers/nodeId'
12
12
  import { TransportEvents } from '../../src/transport/ITransport'
13
13
 
14
14
  const logger = new Logger(module)
@@ -18,20 +18,20 @@ describe('ConnectionManager', () => {
18
18
  const serviceId = 'demo'
19
19
 
20
20
  const mockPeerDescriptor1: PeerDescriptor = {
21
- kademliaId: PeerID.fromString('tester1').value,
21
+ nodeId: PeerID.fromString('tester1').value,
22
22
  type: NodeType.NODEJS
23
23
  }
24
24
  const mockPeerDescriptor2: PeerDescriptor = {
25
- kademliaId: PeerID.fromString('tester2').value,
25
+ nodeId: PeerID.fromString('tester2').value,
26
26
  type: NodeType.NODEJS
27
27
  }
28
28
 
29
29
  const mockPeerDescriptor3: PeerDescriptor = {
30
- kademliaId: PeerID.fromString('tester3').value,
30
+ nodeId: PeerID.fromString('tester3').value,
31
31
  type: NodeType.NODEJS
32
32
  }
33
33
  const mockPeerDescriptor4: PeerDescriptor = {
34
- kademliaId: PeerID.fromString('tester4').value,
34
+ nodeId: PeerID.fromString('tester4').value,
35
35
  type: NodeType.NODEJS
36
36
  }
37
37
  const simulator = new Simulator()
@@ -89,7 +89,7 @@ describe('ConnectionManager', () => {
89
89
  transport: mockTransport,
90
90
  websocketPortRange: { min: 9992, max: 9992 },
91
91
  entryPoints: [
92
- { kademliaId: Uint8Array.from([1, 2, 3]), type: NodeType.NODEJS, websocket: { host: '127.0.0.1', port: 12345, tls: false } }
92
+ { nodeId: Uint8Array.from([1, 2, 3]), type: NodeType.NODEJS, websocket: { host: '127.0.0.1', port: 12345, tls: false } }
93
93
  ]
94
94
  })
95
95
 
@@ -112,7 +112,7 @@ describe('ConnectionManager', () => {
112
112
  transport: mockConnectorTransport2,
113
113
  websocketPortRange: { min: 9994, max: 9994 },
114
114
  entryPoints: [
115
- { kademliaId: Uint8Array.from([1, 2, 3]), type: NodeType.NODEJS, websocket: { host: '127.0.0.1', port: 9993, tls: false } }
115
+ { nodeId: Uint8Array.from([1, 2, 3]), type: NodeType.NODEJS, websocket: { host: '127.0.0.1', port: 9993, tls: false } }
116
116
  ]
117
117
  })
118
118
 
@@ -306,7 +306,7 @@ describe('ConnectionManager', () => {
306
306
  await connectionManager4.stop()
307
307
  })
308
308
 
309
- it('Cannot send to own WebsocketServer if kademliaIds do not match', async () => {
309
+ it('Cannot send to own WebsocketServer if nodeIds do not match', async () => {
310
310
  const connectionManager1 = createConnectionManager({
311
311
  transport: mockTransport,
312
312
  websocketHost: '127.0.0.1',
@@ -317,7 +317,7 @@ describe('ConnectionManager', () => {
317
317
  expect(createLocalPeerDescriptor.mock.calls[0][0].host).toEqual('127.0.0.1')
318
318
 
319
319
  const peerDescriptor = connectionManager1.getLocalPeerDescriptor()
320
- peerDescriptor.kademliaId = new Uint8Array([12, 12, 12, 12])
320
+ peerDescriptor.nodeId = new Uint8Array([12, 12, 12, 12])
321
321
  const msg: Message = {
322
322
  serviceId,
323
323
  messageType: MessageType.RPC,
@@ -335,10 +335,10 @@ describe('ConnectionManager', () => {
335
335
  await connectionManager1.stop()
336
336
  })
337
337
 
338
- it('Cannot send to a WebSocketServer if kademliaIds do not match', async () => {
338
+ it('Cannot send to a WebSocketServer if nodeIds do not match', async () => {
339
339
 
340
340
  const peerDescriptor1 = {
341
- kademliaId: createRandomKademliaId(),
341
+ nodeId: createRandomNodeId(),
342
342
  type: NodeType.NODEJS,
343
343
  websocket: {
344
344
  host: '127.0.0.1',
@@ -348,7 +348,7 @@ describe('ConnectionManager', () => {
348
348
  }
349
349
 
350
350
  const peerDescriptor2 = {
351
- kademliaId: createRandomKademliaId(),
351
+ nodeId: createRandomNodeId(),
352
352
  type: NodeType.NODEJS,
353
353
  websocket: {
354
354
  host: '127.0.0.1',
@@ -379,8 +379,8 @@ describe('ConnectionManager', () => {
379
379
  messageType: MessageType.RPC,
380
380
  messageId: '1',
381
381
  targetDescriptor: {
382
- // This is not the correct kademliaId of peerDescriptor2
383
- kademliaId: new Uint8Array([1, 2, 3, 4]),
382
+ // This is not the correct nodeId of peerDescriptor2
383
+ nodeId: new Uint8Array([1, 2, 3, 4]),
384
384
  type: NodeType.NODEJS,
385
385
  websocket: peerDescriptor2.websocket
386
386
  },
@@ -11,7 +11,7 @@ const runTest = async (latencyType: LatencyType) => {
11
11
  const entryPointId = '0'
12
12
  const entryPoint = await createMockConnectionDhtNode(entryPointId, simulator, undefined, NUM_OF_NODES_PER_KBUCKET)
13
13
  const entrypointDescriptor = {
14
- kademliaId: entryPoint.getNodeId().value,
14
+ nodeId: entryPoint.getNodeId().value,
15
15
  type: NodeType.NODEJS,
16
16
  region: getRandomRegion()
17
17
  }
@@ -1,9 +1,10 @@
1
1
  import { DhtNode } from '../../src/dht/DhtNode'
2
2
  import { LatencyType, Simulator } from '../../src/connection/simulator/Simulator'
3
- import { createMockConnectionDhtNode } from '../utils/utils'
3
+ import { createMockConnectionDhtNode, createMockPeerDescriptor } from '../utils/utils'
4
4
  import { Any } from '../../src/proto/google/protobuf/any'
5
5
  import { PeerDescriptor } from '../../src/proto/packages/dht/protos/DhtRpc'
6
- import { PeerID } from '../../src/helpers/PeerID'
6
+ import { areEqualPeerDescriptors } from '../../src/helpers/peerIdFromPeerDescriptor'
7
+ import { createRandomNodeId } from '../../src/helpers/nodeId'
7
8
 
8
9
  describe('DhtNodeExternalApi', () => {
9
10
 
@@ -28,7 +29,7 @@ describe('DhtNodeExternalApi', () => {
28
29
 
29
30
  it('findData happy path', async () => {
30
31
  const data = Any.pack(dhtNode1.getLocalPeerDescriptor(), PeerDescriptor)
31
- const key = PeerID.fromString('key').value
32
+ const key = createRandomNodeId()
32
33
  await dhtNode1.storeDataToDht(key, data)
33
34
 
34
35
  const foundData = await remote.findDataViaPeer(key, dhtNode1.getLocalPeerDescriptor())
@@ -36,17 +37,19 @@ describe('DhtNodeExternalApi', () => {
36
37
  })
37
38
 
38
39
  it('findData returns empty array if no data found', async () => {
39
- const foundData = await remote.findDataViaPeer(PeerID.fromString('key').value, dhtNode1.getLocalPeerDescriptor())
40
+ const foundData = await remote.findDataViaPeer(createRandomNodeId(), dhtNode1.getLocalPeerDescriptor())
40
41
  expect(foundData).toEqual([])
41
42
  })
42
43
 
43
44
  it('external store data happy path', async () => {
44
- const data = Any.pack(dhtNode1.getLocalPeerDescriptor(), PeerDescriptor)
45
- const key = PeerID.fromString('key').value
45
+ const storedPeerDescriptor = createMockPeerDescriptor()
46
+ const data = Any.pack(storedPeerDescriptor, PeerDescriptor)
47
+ const key = createRandomNodeId()
46
48
 
47
49
  await remote.storeDataViaPeer(key, data, dhtNode1.getLocalPeerDescriptor())
48
50
  const foundData = await remote.findDataViaPeer(key, dhtNode1.getLocalPeerDescriptor())
49
- expect(Any.unpack(foundData[0].data!, PeerDescriptor)).toEqual(dhtNode1.getLocalPeerDescriptor())
51
+ expect(areEqualPeerDescriptors(Any.unpack(foundData[0].data!, PeerDescriptor), storedPeerDescriptor)).toEqual(true)
52
+ expect(areEqualPeerDescriptors(foundData[0].creator!, remote.getLocalPeerDescriptor())).toEqual(true)
50
53
  })
51
54
 
52
55
  })
@@ -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
 
@@ -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
 
@@ -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,7 +74,7 @@ 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
 
@@ -106,7 +106,7 @@ describe('Migrating data from node to node in DHT', () => {
106
106
  logger.info('Nodes sorted according to distance to data with storing nodes marked are: ')
107
107
 
108
108
  closest.forEach((contact) => {
109
- const node = nodesById.get(PeerID.fromValue(contact.getPeerDescriptor().kademliaId).toKey())!
109
+ const node = nodesById.get(PeerID.fromValue(contact.getPeerDescriptor().nodeId).toKey())!
110
110
  let hasDataMarker = ''
111
111
 
112
112
  // @ts-expect-error private field
@@ -134,7 +134,7 @@ describe('Migrating data from node to node in DHT', () => {
134
134
  logger.info('After join of 99 nodes: nodes sorted according to distance to data with storing nodes marked are: ')
135
135
 
136
136
  closest.forEach((contact) => {
137
- const node = nodesById.get(PeerID.fromValue(contact.getPeerDescriptor().kademliaId).toKey())!
137
+ const node = nodesById.get(PeerID.fromValue(contact.getPeerDescriptor().nodeId).toKey())!
138
138
  let hasDataMarker = ''
139
139
 
140
140
  // @ts-expect-error private field
@@ -146,13 +146,13 @@ describe('Migrating data from node to node in DHT', () => {
146
146
  logger.info(getNodeIdFromPeerDescriptor(node.getLocalPeerDescriptor()) + hasDataMarker)
147
147
  })
148
148
 
149
- const closestNode = nodesById.get(PeerID.fromValue(closest[0].getPeerDescriptor().kademliaId).toKey())!
149
+ const closestNode = nodesById.get(PeerID.fromValue(closest[0].getPeerDescriptor().nodeId).toKey())!
150
150
 
151
151
  // @ts-expect-error private field
152
- expect(closestNode.localDataStore.getEntry(dataKey)).toBeTruthy()
152
+ expect(closestNode.localDataStore.getEntry(dataKey).size).toBeGreaterThanOrEqual(1)
153
153
  }, 180000)
154
154
 
155
- it('Data migrates to the last remaining node if all other nodes leave gracefully', async () => {
155
+ it('Data replicates to the last remaining node if all other nodes leave gracefully', async () => {
156
156
  const dataKey = PeerID.fromString('3232323e12r31r3')
157
157
  const data = Any.pack(entrypointDescriptor, PeerDescriptor)
158
158
 
@@ -198,7 +198,7 @@ describe('Migrating data from node to node in DHT', () => {
198
198
  logger.info('data of ' + randomIndices[0] + ' was ' + nodes[randomIndices[0]].localDataStore.getEntry(dataKey))
199
199
 
200
200
  // @ts-expect-error private field
201
- expect(nodes[randomIndices[0]].localDataStore.getEntry(dataKey)).toBeTruthy()
201
+ expect(nodes[randomIndices[0]].localDataStore.getEntry(dataKey).size).toBeGreaterThanOrEqual(1)
202
202
 
203
203
  }, 180000)
204
204
  })
@@ -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++) {
@@ -24,12 +24,12 @@ describe('SimultaneousConnections', () => {
24
24
  let simulatorTransport2: SimulatorTransport
25
25
 
26
26
  const peerDescriptor1 = {
27
- kademliaId: PeerID.fromString('mock1').value,
27
+ nodeId: PeerID.fromString('mock1').value,
28
28
  type: NodeType.NODEJS
29
29
  }
30
30
 
31
31
  const peerDescriptor2 = {
32
- kademliaId: PeerID.fromString('mock2').value,
32
+ nodeId: PeerID.fromString('mock2').value,
33
33
  type: NodeType.NODEJS
34
34
  }
35
35
 
@@ -94,7 +94,7 @@ describe('SimultaneousConnections', () => {
94
94
  let connectionManager2: ConnectionManager
95
95
 
96
96
  const wsPeer1: PeerDescriptor = {
97
- kademliaId: PeerID.fromString('mock1').value,
97
+ nodeId: PeerID.fromString('mock1').value,
98
98
  type: NodeType.NODEJS,
99
99
  websocket: {
100
100
  host: '127.0.0.1',
@@ -104,7 +104,7 @@ describe('SimultaneousConnections', () => {
104
104
  }
105
105
 
106
106
  const wsPeer2: PeerDescriptor = {
107
- kademliaId: PeerID.fromString('mock2').value,
107
+ nodeId: PeerID.fromString('mock2').value,
108
108
  type: NodeType.NODEJS,
109
109
  websocket: {
110
110
  host: '127.0.0.1',
@@ -177,7 +177,7 @@ describe('SimultaneousConnections', () => {
177
177
  let connectionManager2: ConnectionManager
178
178
 
179
179
  const wsPeer1: PeerDescriptor = {
180
- kademliaId: PeerID.fromString('mock1').value,
180
+ nodeId: PeerID.fromString('mock1').value,
181
181
  type: NodeType.NODEJS,
182
182
  websocket: {
183
183
  host: '127.0.0.1',
@@ -187,7 +187,7 @@ describe('SimultaneousConnections', () => {
187
187
  }
188
188
 
189
189
  const wsPeer2: PeerDescriptor = {
190
- kademliaId: PeerID.fromString('mock2').value,
190
+ nodeId: PeerID.fromString('mock2').value,
191
191
  type: NodeType.NODEJS
192
192
  }
193
193
 
@@ -251,12 +251,12 @@ describe('SimultaneousConnections', () => {
251
251
  let connectionManager2: ConnectionManager
252
252
 
253
253
  const wrtcPeer1: PeerDescriptor = {
254
- kademliaId: PeerID.fromString('mock1').value,
254
+ nodeId: PeerID.fromString('mock1').value,
255
255
  type: NodeType.NODEJS
256
256
  }
257
257
 
258
258
  const wrtcPeer2: PeerDescriptor = {
259
- kademliaId: PeerID.fromString('mock2').value,
259
+ nodeId: PeerID.fromString('mock2').value,
260
260
  type: NodeType.NODEJS
261
261
  }
262
262
 
@@ -1,10 +1,10 @@
1
1
  import { LatencyType, Simulator } from '../../src/connection/simulator/Simulator'
2
2
  import { DhtNode } from '../../src/dht/DhtNode'
3
3
  import { PeerDescriptor } from '../../src/proto/packages/dht/protos/DhtRpc'
4
- import { createMockConnectionDhtNode, waitConnectionManagersReadyForTesting } from '../utils/utils'
5
- import { PeerID } from '../../src/helpers/PeerID'
4
+ import { createMockConnectionDhtNode, createMockPeerDescriptor, waitConnectionManagersReadyForTesting } from '../utils/utils'
6
5
  import { areEqualPeerDescriptors } from '../../src/helpers/peerIdFromPeerDescriptor'
7
6
  import { Any } from '../../src/proto/google/protobuf/any'
7
+ import { createRandomNodeId } from '../../src/helpers/nodeId'
8
8
 
9
9
  describe('Storing data in DHT', () => {
10
10
  let entryPoint: DhtNode
@@ -46,24 +46,44 @@ describe('Storing data in DHT', () => {
46
46
 
47
47
  it('Storing data works', async () => {
48
48
  const storingNodeIndex = 34
49
- const dataKey = PeerID.fromString('3232323e12r31r3')
50
- const data = Any.pack(entrypointDescriptor, PeerDescriptor)
51
- const successfulStorers = await nodes[storingNodeIndex].storeDataToDht(dataKey.value, data)
49
+ const dataKey = createRandomNodeId()
50
+ const storedData = createMockPeerDescriptor()
51
+ const data = Any.pack(storedData, PeerDescriptor)
52
+ const successfulStorers = await nodes[storingNodeIndex].storeDataToDht(dataKey, data)
52
53
  expect(successfulStorers.length).toBeGreaterThan(4)
53
- }, 90000)
54
+ }, 30000)
54
55
 
55
56
  it('Storing and getting data works', async () => {
56
57
  const storingNode = getRandomNode()
57
- const dataKey = PeerID.fromString('3232323e12r31r3')
58
- const data = Any.pack(entrypointDescriptor, PeerDescriptor)
59
- const successfulStorers = await storingNode.storeDataToDht(dataKey.value, data)
58
+ const dataKey = createRandomNodeId()
59
+ const storedData = createMockPeerDescriptor()
60
+ const data = Any.pack(storedData, PeerDescriptor)
61
+ const successfulStorers = await storingNode.storeDataToDht(dataKey, data)
60
62
  expect(successfulStorers.length).toBeGreaterThan(4)
61
63
 
62
64
  const fetchingNode = getRandomNode()
63
- const results = await fetchingNode.getDataFromDht(dataKey.value)
65
+ const results = await fetchingNode.getDataFromDht(dataKey)
64
66
  results.forEach((entry) => {
65
- const fetchedDescriptor = Any.unpack(entry.data!, PeerDescriptor)
66
- expect(areEqualPeerDescriptors(fetchedDescriptor, entrypointDescriptor)).toBeTrue()
67
+ const foundData = Any.unpack(entry.data!, PeerDescriptor)
68
+ expect(areEqualPeerDescriptors(foundData, storedData)).toBeTrue()
67
69
  })
68
- }, 90000)
70
+ }, 30000)
71
+
72
+ it('storing with explicit creator', async () => {
73
+ const storingNode = getRandomNode()
74
+ const dataKey = createRandomNodeId()
75
+ const storedData = createMockPeerDescriptor()
76
+ const data = Any.pack(storedData, PeerDescriptor)
77
+ const requestor = createMockPeerDescriptor()
78
+ const successfulStorers = await storingNode.storeDataToDht(dataKey, data, requestor)
79
+ expect(successfulStorers.length).toBeGreaterThan(4)
80
+
81
+ const fetchingNode = getRandomNode()
82
+ const results = await fetchingNode.getDataFromDht(dataKey)
83
+ results.forEach((entry) => {
84
+ const foundData = Any.unpack(entry.data!, PeerDescriptor)
85
+ expect(areEqualPeerDescriptors(foundData, storedData)).toBeTrue()
86
+ expect(areEqualPeerDescriptors(entry.creator!, requestor)).toBeTrue()
87
+ })
88
+ }, 30000)
69
89
  })