@streamr/trackerless-network 0.0.1-tatum.6 → 0.0.1-tatum.8

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 (186) hide show
  1. package/dist/package.json +10 -8
  2. package/dist/src/NetworkNode.js +2 -2
  3. package/dist/src/NetworkNode.js.map +1 -1
  4. package/dist/src/NetworkStack.d.ts +5 -6
  5. package/dist/src/NetworkStack.js +27 -56
  6. package/dist/src/NetworkStack.js.map +1 -1
  7. package/dist/src/identifiers.js +2 -2
  8. package/dist/src/identifiers.js.map +1 -1
  9. package/dist/src/logic/{StreamNodeServer.d.ts → DeliveryRpcLocal.d.ts} +6 -5
  10. package/dist/src/logic/{StreamNodeServer.js → DeliveryRpcLocal.js} +5 -5
  11. package/dist/src/logic/{StreamNodeServer.js.map → DeliveryRpcLocal.js.map} +1 -1
  12. package/dist/src/logic/{RemoteRandomGraphNode.d.ts → DeliveryRpcRemote.d.ts} +2 -2
  13. package/dist/src/logic/{RemoteRandomGraphNode.js → DeliveryRpcRemote.js} +5 -5
  14. package/dist/src/logic/DeliveryRpcRemote.js.map +1 -0
  15. package/dist/src/logic/{StreamPartEntryPointDiscovery.d.ts → EntryPointDiscovery.d.ts} +10 -12
  16. package/dist/src/logic/{StreamPartEntryPointDiscovery.js → EntryPointDiscovery.js} +18 -40
  17. package/dist/src/logic/EntryPointDiscovery.js.map +1 -0
  18. package/dist/src/logic/Layer0Node.d.ts +14 -0
  19. package/dist/src/logic/{ILayer1.js → Layer0Node.js} +1 -1
  20. package/dist/src/logic/Layer0Node.js.map +1 -0
  21. package/dist/src/logic/{ILayer1.d.ts → Layer1Node.d.ts} +5 -5
  22. package/dist/src/logic/{ILayer0.js → Layer1Node.js} +1 -1
  23. package/dist/src/logic/Layer1Node.js.map +1 -0
  24. package/dist/src/logic/NodeList.d.ts +10 -10
  25. package/dist/src/logic/NodeList.js.map +1 -1
  26. package/dist/src/logic/RandomGraphNode.d.ts +11 -15
  27. package/dist/src/logic/RandomGraphNode.js +46 -45
  28. package/dist/src/logic/RandomGraphNode.js.map +1 -1
  29. package/dist/src/logic/StreamrNode.d.ts +15 -18
  30. package/dist/src/logic/StreamrNode.js +78 -87
  31. package/dist/src/logic/StreamrNode.js.map +1 -1
  32. package/dist/src/logic/createRandomGraphNode.d.ts +6 -1
  33. package/dist/src/logic/createRandomGraphNode.js +17 -23
  34. package/dist/src/logic/createRandomGraphNode.js.map +1 -1
  35. package/dist/src/logic/formStreamPartDeliveryServiceId.d.ts +2 -0
  36. package/dist/src/logic/formStreamPartDeliveryServiceId.js +8 -0
  37. package/dist/src/logic/formStreamPartDeliveryServiceId.js.map +1 -0
  38. package/dist/src/logic/inspect/Inspector.d.ts +3 -2
  39. package/dist/src/logic/inspect/Inspector.js +5 -5
  40. package/dist/src/logic/inspect/Inspector.js.map +1 -1
  41. package/dist/src/logic/neighbor-discovery/{HandshakerServer.d.ts → HandshakeRpcLocal.d.ts} +10 -10
  42. package/dist/src/logic/neighbor-discovery/{HandshakerServer.js → HandshakeRpcLocal.js} +13 -13
  43. package/dist/src/logic/neighbor-discovery/HandshakeRpcLocal.js.map +1 -0
  44. package/dist/src/logic/neighbor-discovery/{RemoteHandshaker.d.ts → HandshakeRpcRemote.d.ts} +1 -1
  45. package/dist/src/logic/neighbor-discovery/{RemoteHandshaker.js → HandshakeRpcRemote.js} +8 -7
  46. package/dist/src/logic/neighbor-discovery/HandshakeRpcRemote.js.map +1 -0
  47. package/dist/src/logic/neighbor-discovery/Handshaker.d.ts +8 -7
  48. package/dist/src/logic/neighbor-discovery/Handshaker.js +23 -24
  49. package/dist/src/logic/neighbor-discovery/Handshaker.js.map +1 -1
  50. package/dist/src/logic/neighbor-discovery/NeighborFinder.d.ts +1 -1
  51. package/dist/src/logic/neighbor-discovery/NeighborFinder.js +1 -1
  52. package/dist/src/logic/neighbor-discovery/NeighborFinder.js.map +1 -1
  53. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.d.ts +3 -2
  54. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js +5 -5
  55. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js.map +1 -1
  56. package/dist/src/logic/neighbor-discovery/{NeighborUpdateManagerServer.d.ts → NeighborUpdateRpcLocal.d.ts} +6 -6
  57. package/dist/src/logic/neighbor-discovery/{NeighborUpdateManagerServer.js → NeighborUpdateRpcLocal.js} +9 -9
  58. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.js.map +1 -0
  59. package/dist/src/logic/neighbor-discovery/{RemoteNeighborUpdateManager.d.ts → NeighborUpdateRpcRemote.d.ts} +1 -1
  60. package/dist/src/logic/neighbor-discovery/{RemoteNeighborUpdateManager.js → NeighborUpdateRpcRemote.js} +5 -5
  61. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcRemote.js.map +1 -0
  62. package/dist/src/logic/propagation/Propagation.js +2 -2
  63. package/dist/src/logic/propagation/Propagation.js.map +1 -1
  64. package/dist/src/logic/proxy/{ProxyStreamConnectionClient.d.ts → ProxyClient.d.ts} +7 -10
  65. package/dist/src/logic/proxy/{ProxyStreamConnectionClient.js → ProxyClient.js} +24 -22
  66. package/dist/src/logic/proxy/ProxyClient.js.map +1 -0
  67. package/dist/src/logic/proxy/{ProxyStreamConnectionServer.d.ts → ProxyConnectionRpcLocal.d.ts} +5 -5
  68. package/dist/src/logic/proxy/{ProxyStreamConnectionServer.js → ProxyConnectionRpcLocal.js} +6 -6
  69. package/dist/src/logic/proxy/ProxyConnectionRpcLocal.js.map +1 -0
  70. package/dist/src/logic/proxy/{RemoteProxyServer.d.ts → ProxyConnectionRpcRemote.d.ts} +1 -1
  71. package/dist/src/logic/proxy/{RemoteProxyServer.js → ProxyConnectionRpcRemote.js} +4 -4
  72. package/dist/src/logic/proxy/ProxyConnectionRpcRemote.js.map +1 -0
  73. package/dist/src/logic/temporary-connection/{TemporaryConnectionRpcServer.d.ts → TemporaryConnectionRpcLocal.d.ts} +5 -4
  74. package/dist/src/logic/temporary-connection/{TemporaryConnectionRpcServer.js → TemporaryConnectionRpcLocal.js} +6 -6
  75. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.js.map +1 -0
  76. package/dist/src/logic/temporary-connection/{RemoteTemporaryConnectionRpcServer.d.ts → TemporaryConnectionRpcRemote.d.ts} +1 -1
  77. package/dist/src/logic/temporary-connection/{RemoteTemporaryConnectionRpcServer.js → TemporaryConnectionRpcRemote.js} +4 -4
  78. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcRemote.js.map +1 -0
  79. package/dist/src/proto/packages/dht/protos/DhtRpc.client.d.ts +10 -0
  80. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js +7 -0
  81. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js.map +1 -1
  82. package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +54 -118
  83. package/dist/src/proto/packages/dht/protos/DhtRpc.js +50 -49
  84. package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
  85. package/dist/src/proto/packages/dht/protos/DhtRpc.server.d.ts +6 -0
  86. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.d.ts +4 -4
  87. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.js +7 -7
  88. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.js.map +1 -1
  89. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.d.ts +10 -10
  90. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.js +7 -7
  91. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.js.map +1 -1
  92. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.server.d.ts +2 -2
  93. package/dist/test/benchmark/first-message.js +16 -17
  94. package/dist/test/benchmark/first-message.js.map +1 -1
  95. package/dist/test/utils/utils.d.ts +7 -6
  96. package/dist/test/utils/utils.js +18 -17
  97. package/dist/test/utils/utils.js.map +1 -1
  98. package/package.json +10 -8
  99. package/protos/NetworkRpc.proto +5 -5
  100. package/src/NetworkNode.ts +2 -2
  101. package/src/NetworkStack.ts +31 -72
  102. package/src/identifiers.ts +3 -3
  103. package/src/logic/{StreamNodeServer.ts → DeliveryRpcLocal.ts} +8 -7
  104. package/src/logic/{RemoteRandomGraphNode.ts → DeliveryRpcRemote.ts} +3 -3
  105. package/src/logic/{StreamPartEntryPointDiscovery.ts → EntryPointDiscovery.ts} +24 -48
  106. package/src/logic/Layer0Node.ts +15 -0
  107. package/src/logic/{ILayer1.ts → Layer1Node.ts} +5 -5
  108. package/src/logic/NodeList.ts +12 -12
  109. package/src/logic/RandomGraphNode.ts +73 -74
  110. package/src/logic/StreamrNode.ts +90 -103
  111. package/src/logic/createRandomGraphNode.ts +28 -26
  112. package/src/logic/formStreamPartDeliveryServiceId.ts +5 -0
  113. package/src/logic/inspect/Inspector.ts +8 -7
  114. package/src/logic/neighbor-discovery/{HandshakerServer.ts → HandshakeRpcLocal.ts} +20 -20
  115. package/src/logic/neighbor-discovery/{RemoteHandshaker.ts → HandshakeRpcRemote.ts} +6 -5
  116. package/src/logic/neighbor-discovery/Handshaker.ts +38 -38
  117. package/src/logic/neighbor-discovery/NeighborFinder.ts +2 -2
  118. package/src/logic/neighbor-discovery/NeighborUpdateManager.ts +13 -10
  119. package/src/logic/neighbor-discovery/{NeighborUpdateManagerServer.ts → NeighborUpdateRpcLocal.ts} +15 -15
  120. package/src/logic/neighbor-discovery/{RemoteNeighborUpdateManager.ts → NeighborUpdateRpcRemote.ts} +2 -2
  121. package/src/logic/propagation/Propagation.ts +2 -2
  122. package/src/logic/proxy/{ProxyStreamConnectionClient.ts → ProxyClient.ts} +29 -29
  123. package/src/logic/proxy/{ProxyStreamConnectionServer.ts → ProxyConnectionRpcLocal.ts} +10 -11
  124. package/src/logic/proxy/{RemoteProxyServer.ts → ProxyConnectionRpcRemote.ts} +1 -1
  125. package/src/logic/temporary-connection/{TemporaryConnectionRpcServer.ts → TemporaryConnectionRpcLocal.ts} +11 -10
  126. package/src/logic/temporary-connection/{RemoteTemporaryConnectionRpcServer.ts → TemporaryConnectionRpcRemote.ts} +1 -1
  127. package/src/proto/packages/dht/protos/DhtRpc.client.ts +13 -0
  128. package/src/proto/packages/dht/protos/DhtRpc.server.ts +6 -0
  129. package/src/proto/packages/dht/protos/DhtRpc.ts +88 -166
  130. package/src/proto/packages/trackerless-network/protos/NetworkRpc.client.ts +8 -8
  131. package/src/proto/packages/trackerless-network/protos/NetworkRpc.server.ts +2 -2
  132. package/src/proto/packages/trackerless-network/protos/NetworkRpc.ts +14 -14
  133. package/test/benchmark/first-message.ts +19 -20
  134. package/test/end-to-end/inspect.test.ts +12 -12
  135. package/test/end-to-end/proxy-and-full-node.test.ts +17 -18
  136. package/test/end-to-end/proxy-connections.test.ts +9 -11
  137. package/test/end-to-end/proxy-key-exchange.test.ts +12 -13
  138. package/test/end-to-end/random-graph-with-real-connections.test.ts +27 -22
  139. package/test/end-to-end/webrtc-full-node-network.test.ts +8 -8
  140. package/test/end-to-end/websocket-full-node-network.test.ts +8 -10
  141. package/test/integration/{RemoteRandomGraphNode.test.ts → DeliveryRpcRemote.test.ts} +17 -14
  142. package/test/integration/{RemoteHandshaker.test.ts → HandshakeRpcRemote.test.ts} +10 -9
  143. package/test/integration/Handshakes.test.ts +23 -20
  144. package/test/integration/Inspect.test.ts +4 -3
  145. package/test/integration/{RemoteNeighborUpdateManager.test.ts → NeighborUpdateRpcRemote.test.ts} +12 -10
  146. package/test/integration/NetworkNode.test.ts +9 -8
  147. package/test/integration/NetworkRpc.test.ts +5 -7
  148. package/test/integration/NetworkStack.test.ts +13 -15
  149. package/test/integration/Propagation.test.ts +14 -13
  150. package/test/integration/RandomGraphNode-Layer1Node-Latencies.test.ts +23 -20
  151. package/test/integration/RandomGraphNode-Layer1Node.test.ts +30 -29
  152. package/test/integration/StreamrNode.test.ts +16 -13
  153. package/test/integration/joining-streams-on-offline-peers.test.ts +16 -18
  154. package/test/integration/stream-without-default-entrypoints.test.ts +12 -14
  155. package/test/unit/{StreamNodeServer.test.ts → DeliveryRpcLocal.test.ts} +8 -8
  156. package/test/unit/{StreamPartEntrypointDiscovery.test.ts → EntrypointDiscovery.test.ts} +27 -44
  157. package/test/unit/{HandshakerServer.test.ts → HandshakeRpcLocal.test.ts} +26 -24
  158. package/test/unit/Handshaker.test.ts +10 -8
  159. package/test/unit/Inspector.test.ts +4 -3
  160. package/test/unit/NeighborFinder.test.ts +5 -5
  161. package/test/unit/NodeList.test.ts +22 -13
  162. package/test/unit/{RemoteProxyServer.test.ts → ProxyConnectionRpcRemote.test.ts} +4 -4
  163. package/test/unit/RandomGraphNode.test.ts +15 -13
  164. package/test/unit/StreamMessageTranslator.test.ts +10 -9
  165. package/test/unit/StreamrNode.test.ts +10 -10
  166. package/test/utils/mock/{MockLayer0.ts → MockLayer0Node.ts} +23 -26
  167. package/test/utils/mock/{MockLayer1.ts → MockLayer1Node.ts} +5 -10
  168. package/test/utils/mock/MockNeighborFinder.ts +1 -2
  169. package/test/utils/mock/MockNeighborUpdateManager.ts +1 -2
  170. package/test/utils/mock/Transport.ts +2 -2
  171. package/test/utils/utils.ts +18 -16
  172. package/dist/src/logic/ILayer0.d.ts +0 -13
  173. package/dist/src/logic/ILayer0.js.map +0 -1
  174. package/dist/src/logic/ILayer1.js.map +0 -1
  175. package/dist/src/logic/RemoteRandomGraphNode.js.map +0 -1
  176. package/dist/src/logic/StreamPartEntryPointDiscovery.js.map +0 -1
  177. package/dist/src/logic/neighbor-discovery/HandshakerServer.js.map +0 -1
  178. package/dist/src/logic/neighbor-discovery/NeighborUpdateManagerServer.js.map +0 -1
  179. package/dist/src/logic/neighbor-discovery/RemoteHandshaker.js.map +0 -1
  180. package/dist/src/logic/neighbor-discovery/RemoteNeighborUpdateManager.js.map +0 -1
  181. package/dist/src/logic/proxy/ProxyStreamConnectionClient.js.map +0 -1
  182. package/dist/src/logic/proxy/ProxyStreamConnectionServer.js.map +0 -1
  183. package/dist/src/logic/proxy/RemoteProxyServer.js.map +0 -1
  184. package/dist/src/logic/temporary-connection/RemoteTemporaryConnectionRpcServer.js.map +0 -1
  185. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcServer.js.map +0 -1
  186. package/src/logic/ILayer0.ts +0 -14
@@ -146,9 +146,9 @@ export interface GroupKey {
146
146
  */
147
147
  export interface StreamPartHandshakeRequest {
148
148
  /**
149
- * @generated from protobuf field: string randomGraphId = 1;
149
+ * @generated from protobuf field: string streamPartId = 1;
150
150
  */
151
- randomGraphId: string;
151
+ streamPartId: string;
152
152
  /**
153
153
  * @generated from protobuf field: string requestId = 2;
154
154
  */
@@ -188,9 +188,9 @@ export interface StreamPartHandshakeResponse {
188
188
  */
189
189
  export interface InterleaveNotice {
190
190
  /**
191
- * @generated from protobuf field: string randomGraphId = 1;
191
+ * @generated from protobuf field: string streamPartId = 1;
192
192
  */
193
- randomGraphId: string;
193
+ streamPartId: string;
194
194
  /**
195
195
  * this is a required field but in generated NetworkRpc.ts it is incorrectly annotated as optional (NET-1082)
196
196
  *
@@ -203,18 +203,18 @@ export interface InterleaveNotice {
203
203
  */
204
204
  export interface LeaveStreamPartNotice {
205
205
  /**
206
- * @generated from protobuf field: string randomGraphId = 1;
206
+ * @generated from protobuf field: string streamPartId = 1;
207
207
  */
208
- randomGraphId: string;
208
+ streamPartId: string;
209
209
  }
210
210
  /**
211
211
  * @generated from protobuf message NeighborUpdate
212
212
  */
213
213
  export interface NeighborUpdate {
214
214
  /**
215
- * @generated from protobuf field: string randomGraphId = 1;
215
+ * @generated from protobuf field: string streamPartId = 1;
216
216
  */
217
- randomGraphId: string;
217
+ streamPartId: string;
218
218
  /**
219
219
  * @generated from protobuf field: bool removeMe = 2;
220
220
  */
@@ -412,7 +412,7 @@ export const GroupKey = new GroupKey$Type();
412
412
  class StreamPartHandshakeRequest$Type extends MessageType<StreamPartHandshakeRequest> {
413
413
  constructor() {
414
414
  super("StreamPartHandshakeRequest", [
415
- { no: 1, name: "randomGraphId", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
415
+ { no: 1, name: "streamPartId", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
416
416
  { no: 2, name: "requestId", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
417
417
  { no: 3, name: "concurrentHandshakeTargetId", kind: "scalar", opt: true, T: 12 /*ScalarType.BYTES*/ },
418
418
  { no: 4, name: "neighborIds", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 12 /*ScalarType.BYTES*/ },
@@ -442,7 +442,7 @@ export const StreamPartHandshakeResponse = new StreamPartHandshakeResponse$Type(
442
442
  class InterleaveNotice$Type extends MessageType<InterleaveNotice> {
443
443
  constructor() {
444
444
  super("InterleaveNotice", [
445
- { no: 1, name: "randomGraphId", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
445
+ { no: 1, name: "streamPartId", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
446
446
  { no: 2, name: "interleaveTargetDescriptor", kind: "message", T: () => PeerDescriptor }
447
447
  ]);
448
448
  }
@@ -455,7 +455,7 @@ export const InterleaveNotice = new InterleaveNotice$Type();
455
455
  class LeaveStreamPartNotice$Type extends MessageType<LeaveStreamPartNotice> {
456
456
  constructor() {
457
457
  super("LeaveStreamPartNotice", [
458
- { no: 1, name: "randomGraphId", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
458
+ { no: 1, name: "streamPartId", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
459
459
  ]);
460
460
  }
461
461
  }
@@ -467,7 +467,7 @@ export const LeaveStreamPartNotice = new LeaveStreamPartNotice$Type();
467
467
  class NeighborUpdate$Type extends MessageType<NeighborUpdate> {
468
468
  constructor() {
469
469
  super("NeighborUpdate", [
470
- { no: 1, name: "randomGraphId", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
470
+ { no: 1, name: "streamPartId", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
471
471
  { no: 2, name: "removeMe", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
472
472
  { no: 3, name: "neighborDescriptors", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => PeerDescriptor }
473
473
  ]);
@@ -525,9 +525,9 @@ class TemporaryConnectionResponse$Type extends MessageType<TemporaryConnectionRe
525
525
  */
526
526
  export const TemporaryConnectionResponse = new TemporaryConnectionResponse$Type();
527
527
  /**
528
- * @generated ServiceType for protobuf service NetworkRpc
528
+ * @generated ServiceType for protobuf service DeliveryRpc
529
529
  */
530
- export const NetworkRpc = new ServiceType("NetworkRpc", [
530
+ export const DeliveryRpc = new ServiceType("DeliveryRpc", [
531
531
  { name: "sendStreamMessage", options: {}, I: StreamMessage, O: Empty },
532
532
  { name: "leaveStreamPartNotice", options: {}, I: LeaveStreamPartNotice, O: Empty }
533
533
  ]);
@@ -1,15 +1,15 @@
1
1
  /* eslint-disable no-console */
2
2
 
3
- import { LatencyType, Simulator, getRandomRegion } from '@streamr/dht'
3
+ import { DhtNode, LatencyType, Simulator, getRandomRegion } from '@streamr/dht'
4
4
  import { MessageID, StreamMessage, StreamMessageType, StreamPartID, StreamPartIDUtils, toStreamID, toStreamPartID } from '@streamr/protocol'
5
5
  import { hexToBinary, utf8ToBinary, waitForEvent3 } from '@streamr/utils'
6
6
  import fs from 'fs'
7
- import { PeerDescriptor } from '../../../dht/src/exports'
7
+ import { PeerDescriptor } from '@streamr/dht'
8
8
  import { NetworkNode } from '../../src/NetworkNode'
9
9
  import { getNodeIdFromPeerDescriptor } from '../../src/identifiers'
10
- import { streamPartIdToDataKey } from '../../src/logic/StreamPartEntryPointDiscovery'
10
+ import { streamPartIdToDataKey } from '../../src/logic/EntryPointDiscovery'
11
11
  import { createMockPeerDescriptor, createNetworkNodeWithSimulator } from '../utils/utils'
12
- import { ILayer1 } from '../../src/logic/ILayer1'
12
+ import { Layer1Node } from '../../src/logic/Layer1Node'
13
13
  import { RandomGraphNode } from '../../src/logic/RandomGraphNode'
14
14
 
15
15
  const numNodes = 10000
@@ -28,8 +28,7 @@ const prepareLayer0 = async () => {
28
28
  nodes = []
29
29
  simulator = new Simulator(LatencyType.REAL)
30
30
  const peerDescriptor = createMockPeerDescriptor({
31
- region: getRandomRegion(),
32
- nodeName: 'entrypoint'
31
+ region: getRandomRegion()
33
32
  })
34
33
  layer0Ep = peerDescriptor
35
34
  const entryPoint = createNetworkNodeWithSimulator(peerDescriptor, simulator, [peerDescriptor])
@@ -42,8 +41,7 @@ const prepareLayer0 = async () => {
42
41
  const prepareStream = async (streamId: string) => {
43
42
  console.log('Preparing stream ')
44
43
  const peerDescriptor = createMockPeerDescriptor({
45
- region: getRandomRegion(),
46
- nodeName: streamId
44
+ region: getRandomRegion()
47
45
  })
48
46
  const streamPartId = toStreamPartID(toStreamID(streamId), 0)
49
47
  const streamPublisher = createNetworkNodeWithSimulator(peerDescriptor, simulator, [layer0Ep])
@@ -61,10 +59,9 @@ const shutdownNetwork = async () => {
61
59
  simulator.stop()
62
60
  }
63
61
 
64
- const measureJoiningTime = async (count: number) => {
62
+ const measureJoiningTime = async () => {
65
63
  const peerDescriptor = createMockPeerDescriptor({
66
- region: getRandomRegion(),
67
- nodeName: `${count}`
64
+ region: getRandomRegion()
68
65
  })
69
66
  console.log('starting node with id ', getNodeIdFromPeerDescriptor(peerDescriptor))
70
67
 
@@ -93,7 +90,7 @@ const measureJoiningTime = async (count: number) => {
93
90
  }, 1000)
94
91
  // get random node from network to use as entrypoint
95
92
  const randomNode = nodes[Math.floor(Math.random() * nodes.length)]
96
- const streamSubscriber = createNetworkNodeWithSimulator(peerDescriptor, simulator, [randomNode.stack.getLayer0DhtNode().getPeerDescriptor()])
93
+ const streamSubscriber = createNetworkNodeWithSimulator(peerDescriptor, simulator, [randomNode.stack.getLayer0Node().getPeerDescriptor()])
97
94
  currentNode = streamSubscriber
98
95
  const start = performance.now()
99
96
  await streamSubscriber.start()
@@ -121,7 +118,7 @@ const run = async () => {
121
118
 
122
119
  fs.writeSync(logFile, 'Network size' + '\t' + 'Time to receive first message time (ms)' + '\n')
123
120
  for (let i = 0; i < numNodes; i++) {
124
- const time = await measureJoiningTime(i)
121
+ const time = await measureJoiningTime()
125
122
  console.log(`Time to receive first message for ${i + 1} nodes network: ${time}ms`)
126
123
  fs.writeSync(logFile, `${i + 1}` + '\t' + `${Math.round(time)}\n`)
127
124
  }
@@ -135,14 +132,16 @@ run().then(() => {
135
132
  console.log('done')
136
133
  }).catch((err) => {
137
134
  console.error(err)
138
- const streamParts = currentNode.stack.getStreamrNode()!.getStreamParts()
139
- const foundData = nodes[0].stack.getLayer0DhtNode().getDataFromDht(streamPartIdToDataKey(streamParts[0]))
135
+ const streamrNode = currentNode.stack.getStreamrNode()
136
+ const streamParts = streamrNode.getStreamParts()
137
+ const foundData = nodes[0].stack.getLayer0Node().getDataFromDht(streamPartIdToDataKey(streamParts[0]))
140
138
  console.log(foundData)
141
- console.log(currentNode.stack.getLayer0DhtNode().getKBucketPeers().length)
142
- console.log(currentNode.stack.getLayer0DhtNode().getNumberOfConnections())
143
- const stream = currentNode.stack.getStreamrNode().getStream(streamParts[0])! as { layer1: ILayer1, node: RandomGraphNode }
144
- console.log(stream.layer1.getKBucketPeers())
145
- console.log(stream.node.getTargetNeighborIds())
139
+ const layer0Node = currentNode.stack.getLayer0Node() as DhtNode
140
+ console.log(layer0Node.getKBucketPeers().length)
141
+ console.log(layer0Node.getNumberOfConnections())
142
+ const streamPartDelivery = streamrNode.getStreamPartDelivery(streamParts[0])! as { layer1Node: Layer1Node, node: RandomGraphNode }
143
+ console.log(streamPartDelivery.layer1Node.getKBucketPeers())
144
+ console.log(streamPartDelivery.node.getTargetNeighborIds())
146
145
  console.log(nodes[nodes.length - 1])
147
146
  if (publishInterval) {
148
147
  clearInterval(publishInterval)
@@ -1,9 +1,11 @@
1
- import { MessageID, MessageRef, StreamMessage, StreamMessageType, toStreamID, toStreamPartID } from '@streamr/protocol'
1
+ import { MessageID, MessageRef, StreamMessage, StreamMessageType, StreamPartIDUtils } from '@streamr/protocol'
2
2
  import { randomEthereumAddress } from '@streamr/test-utils'
3
3
  import { hexToBinary, utf8ToBinary, waitForCondition } from '@streamr/utils'
4
4
  import { NetworkNode, createNetworkNode } from '../../src/NetworkNode'
5
5
  import { createMockPeerDescriptor } from '../utils/utils'
6
6
 
7
+ const STREAM_PART_ID = StreamPartIDUtils.parse('stream#0')
8
+
7
9
  describe('inspect', () => {
8
10
 
9
11
  const publisherDescriptor = createMockPeerDescriptor({
@@ -30,8 +32,6 @@ describe('inspect', () => {
30
32
  }
31
33
  })
32
34
 
33
- const streamPartId = toStreamPartID(toStreamID('stream'), 0)
34
-
35
35
  let publisherNode: NetworkNode
36
36
 
37
37
  let inspectedNode: NetworkNode
@@ -40,8 +40,8 @@ describe('inspect', () => {
40
40
 
41
41
  const message = new StreamMessage({
42
42
  messageId: new MessageID(
43
- toStreamID('stream'),
44
- 0,
43
+ StreamPartIDUtils.getStreamID(STREAM_PART_ID),
44
+ StreamPartIDUtils.getStreamPartition(STREAM_PART_ID),
45
45
  666,
46
46
  0,
47
47
  randomEthereumAddress(),
@@ -81,14 +81,14 @@ describe('inspect', () => {
81
81
  await inspectedNode.start()
82
82
  await inspectorNode.start()
83
83
 
84
- publisherNode.stack.getStreamrNode()!.joinStreamPart(streamPartId)
85
- inspectedNode.stack.getStreamrNode()!.joinStreamPart(streamPartId)
86
- inspectorNode.stack.getStreamrNode()!.joinStreamPart(streamPartId)
84
+ publisherNode.stack.getStreamrNode()!.joinStreamPart(STREAM_PART_ID)
85
+ inspectedNode.stack.getStreamrNode()!.joinStreamPart(STREAM_PART_ID)
86
+ inspectorNode.stack.getStreamrNode()!.joinStreamPart(STREAM_PART_ID)
87
87
 
88
88
  await waitForCondition(() =>
89
- publisherNode.stack.getStreamrNode().getNeighbors(streamPartId).length === 2
90
- && inspectedNode.stack.getStreamrNode().getNeighbors(streamPartId).length === 2
91
- && inspectorNode.stack.getStreamrNode().getNeighbors(streamPartId).length === 2
89
+ publisherNode.stack.getStreamrNode().getNeighbors(STREAM_PART_ID).length === 2
90
+ && inspectedNode.stack.getStreamrNode().getNeighbors(STREAM_PART_ID).length === 2
91
+ && inspectorNode.stack.getStreamrNode().getNeighbors(STREAM_PART_ID).length === 2
92
92
  )
93
93
  }, 30000)
94
94
 
@@ -104,7 +104,7 @@ describe('inspect', () => {
104
104
  setTimeout(async () => {
105
105
  await publisherNode.broadcast(message)
106
106
  }, 250)
107
- const success = await inspectorNode.inspect(inspectedDescriptor, streamPartId)
107
+ const success = await inspectorNode.inspect(inspectedDescriptor, STREAM_PART_ID)
108
108
  expect(success).toBe(true)
109
109
  })
110
110
 
@@ -29,7 +29,6 @@ const createMessage = (streamPartId: StreamPartID): StreamMessage => {
29
29
  describe('proxy and full node', () => {
30
30
 
31
31
  const proxyNodeDescriptor = createMockPeerDescriptor({
32
- nodeName: 'proxyNode',
33
32
  websocket: { host: '127.0.0.1', port: 23135, tls: false }
34
33
  })
35
34
  const proxiedNodeDescriptor = createMockPeerDescriptor()
@@ -72,57 +71,57 @@ describe('proxy and full node', () => {
72
71
  await proxiedNode.stop()
73
72
  })
74
73
 
75
- it('proxied node can act as full node on another stream', async () => {
74
+ it('proxied node can act as full node on another stream part', async () => {
76
75
  await proxiedNode.setProxies(proxiedStreamPart, [proxyNodeDescriptor], ProxyDirection.PUBLISH, PROXIED_NODE_USER_ID, 1)
77
- expect(proxiedNode.stack.getLayer0DhtNode().hasJoined()).toBe(false)
76
+ expect(proxiedNode.stack.getLayer0Node().hasJoined()).toBe(false)
78
77
 
79
78
  await Promise.all([
80
79
  waitForEvent3(proxyNode.stack.getStreamrNode()! as any, 'newMessage'),
81
80
  proxiedNode.broadcast(createMessage(regularStreamPart1))
82
81
  ])
83
82
 
84
- expect(proxiedNode.stack.getLayer0DhtNode().hasJoined()).toBe(true)
83
+ expect(proxiedNode.stack.getLayer0Node().hasJoined()).toBe(true)
85
84
 
86
85
  await Promise.all([
87
86
  waitForEvent3(proxyNode.stack.getStreamrNode()! as any, 'newMessage'),
88
87
  proxiedNode.broadcast(createMessage(proxiedStreamPart))
89
88
  ])
90
89
 
91
- expect(proxiedNode.stack.getStreamrNode().getStream(proxiedStreamPart)!.proxied).toBe(true)
92
- expect(proxiedNode.stack.getStreamrNode().getStream(regularStreamPart1)!.proxied).toBe(false)
90
+ expect(proxiedNode.stack.getStreamrNode().getStreamPartDelivery(proxiedStreamPart)!.proxied).toBe(true)
91
+ expect(proxiedNode.stack.getStreamrNode().getStreamPartDelivery(regularStreamPart1)!.proxied).toBe(false)
93
92
  })
94
93
 
95
- it('proxied node can act as full node on multiple streams', async () => {
94
+ it('proxied node can act as full node on multiple stream parts', async () => {
96
95
  await proxiedNode.setProxies(proxiedStreamPart, [proxyNodeDescriptor], ProxyDirection.PUBLISH, PROXIED_NODE_USER_ID, 1)
97
- expect(proxiedNode.stack.getLayer0DhtNode().hasJoined()).toBe(false)
96
+ expect(proxiedNode.stack.getLayer0Node().hasJoined()).toBe(false)
98
97
 
99
98
  await Promise.all([
100
99
  waitForEvent3(proxyNode.stack.getStreamrNode()! as any, 'newMessage', 5000,
101
- (streamMessage: InternalStreamMessage) => streamMessage.messageId!.streamId === 'regular-stream1'),
100
+ (streamMessage: InternalStreamMessage) => streamMessage.messageId!.streamId === StreamPartIDUtils.getStreamID(regularStreamPart1)),
102
101
  waitForEvent3(proxyNode.stack.getStreamrNode()! as any, 'newMessage', 5000,
103
- (streamMessage: InternalStreamMessage) => streamMessage.messageId!.streamId === 'regular-stream2'),
102
+ (streamMessage: InternalStreamMessage) => streamMessage.messageId!.streamId === StreamPartIDUtils.getStreamID(regularStreamPart2)),
104
103
  waitForEvent3(proxyNode.stack.getStreamrNode()! as any, 'newMessage', 5000,
105
- (streamMessage: InternalStreamMessage) => streamMessage.messageId!.streamId === 'regular-stream3'),
104
+ (streamMessage: InternalStreamMessage) => streamMessage.messageId!.streamId === StreamPartIDUtils.getStreamID(regularStreamPart3)),
106
105
  waitForEvent3(proxyNode.stack.getStreamrNode()! as any, 'newMessage', 5000,
107
- (streamMessage: InternalStreamMessage) => streamMessage.messageId!.streamId === 'regular-stream4'),
106
+ (streamMessage: InternalStreamMessage) => streamMessage.messageId!.streamId === StreamPartIDUtils.getStreamID(regularStreamPart4)),
108
107
  proxiedNode.broadcast(createMessage(regularStreamPart1)),
109
108
  proxiedNode.broadcast(createMessage(regularStreamPart2)),
110
109
  proxiedNode.broadcast(createMessage(regularStreamPart3)),
111
110
  proxiedNode.broadcast(createMessage(regularStreamPart4))
112
111
  ])
113
112
 
114
- expect(proxiedNode.stack.getLayer0DhtNode().hasJoined()).toBe(true)
113
+ expect(proxiedNode.stack.getLayer0Node().hasJoined()).toBe(true)
115
114
 
116
115
  await Promise.all([
117
116
  waitForEvent3(proxyNode.stack.getStreamrNode()! as any, 'newMessage'),
118
117
  proxiedNode.broadcast(createMessage(proxiedStreamPart))
119
118
  ])
120
119
 
121
- expect(proxiedNode.stack.getStreamrNode().getStream(proxiedStreamPart)!.proxied).toBe(true)
122
- expect(proxiedNode.stack.getStreamrNode().getStream(regularStreamPart1)!.proxied).toBe(false)
123
- expect(proxiedNode.stack.getStreamrNode().getStream(regularStreamPart2)!.proxied).toBe(false)
124
- expect(proxiedNode.stack.getStreamrNode().getStream(regularStreamPart3)!.proxied).toBe(false)
125
- expect(proxiedNode.stack.getStreamrNode().getStream(regularStreamPart4)!.proxied).toBe(false)
120
+ expect(proxiedNode.stack.getStreamrNode().getStreamPartDelivery(proxiedStreamPart)!.proxied).toBe(true)
121
+ expect(proxiedNode.stack.getStreamrNode().getStreamPartDelivery(regularStreamPart1)!.proxied).toBe(false)
122
+ expect(proxiedNode.stack.getStreamrNode().getStreamPartDelivery(regularStreamPart2)!.proxied).toBe(false)
123
+ expect(proxiedNode.stack.getStreamrNode().getStreamPartDelivery(regularStreamPart3)!.proxied).toBe(false)
124
+ expect(proxiedNode.stack.getStreamrNode().getStreamPartDelivery(regularStreamPart4)!.proxied).toBe(false)
126
125
  })
127
126
 
128
127
  })
@@ -1,19 +1,19 @@
1
- import { MessageID, MessageRef, StreamMessage, StreamMessageType, toStreamID, toStreamPartID } from '@streamr/protocol'
1
+ import { MessageID, MessageRef, StreamMessage, StreamMessageType, StreamPartIDUtils } from '@streamr/protocol'
2
2
  import { randomEthereumAddress } from '@streamr/test-utils'
3
3
  import { hexToBinary, utf8ToBinary, wait, waitForCondition, waitForEvent3 } from '@streamr/utils'
4
4
  import { NetworkNode, createNetworkNode } from '../../src/NetworkNode'
5
5
  import { NodeID } from '../../src/identifiers'
6
6
  import { RandomGraphNode } from '../../src/logic/RandomGraphNode'
7
- import { ProxyStreamConnectionClient } from '../../src/logic/proxy/ProxyStreamConnectionClient'
7
+ import { ProxyClient } from '../../src/logic/proxy/ProxyClient'
8
8
  import { ProxyDirection } from '../../src/proto/packages/trackerless-network/protos/NetworkRpc'
9
9
  import { createMockPeerDescriptor } from '../utils/utils'
10
10
 
11
11
  const PROXIED_NODE_USER_ID = randomEthereumAddress()
12
- const STREAM_PART_ID = toStreamPartID(toStreamID('proxy-test'), 0)
12
+ const STREAM_PART_ID = StreamPartIDUtils.parse('proxy-test#0')
13
13
  const MESSAGE = new StreamMessage({
14
14
  messageId: new MessageID(
15
- toStreamID('proxy-test'),
16
- 0,
15
+ StreamPartIDUtils.getStreamID(STREAM_PART_ID),
16
+ StreamPartIDUtils.getStreamPartition(STREAM_PART_ID),
17
17
  666,
18
18
  0,
19
19
  randomEthereumAddress(),
@@ -34,24 +34,22 @@ describe('Proxy connections', () => {
34
34
  let proxiedNode: NetworkNode
35
35
 
36
36
  const hasConnectionFromProxy = (proxyNode: NetworkNode): boolean => {
37
- const delivery = proxyNode.stack.getStreamrNode()!.getStream(STREAM_PART_ID)
37
+ const delivery = proxyNode.stack.getStreamrNode()!.getStreamPartDelivery(STREAM_PART_ID)
38
38
  return (delivery !== undefined)
39
39
  ? ((delivery as { node: RandomGraphNode }).node).hasProxyConnection(proxiedNode.getNodeId())
40
40
  : false
41
41
  }
42
42
 
43
43
  const hasConnectionToProxy = (proxyNodeId: NodeID, direction: ProxyDirection): boolean => {
44
- const client = (proxiedNode.stack.getStreamrNode()!.getStream(STREAM_PART_ID) as { client: ProxyStreamConnectionClient }).client
44
+ const client = (proxiedNode.stack.getStreamrNode()!.getStreamPartDelivery(STREAM_PART_ID) as { client: ProxyClient }).client
45
45
  return client.hasConnection(proxyNodeId, direction)
46
46
  }
47
47
 
48
48
  beforeEach(async () => {
49
49
  const proxyNodeDescriptor1 = createMockPeerDescriptor({
50
- nodeName: 'proxyNode',
51
50
  websocket: { host: '127.0.0.1', port: 23132, tls: false }
52
51
  })
53
52
  const proxyNodeDescriptor2 = createMockPeerDescriptor({
54
- nodeName: 'proxyNode',
55
53
  websocket: { host: '127.0.0.1', port: 23133, tls: false }
56
54
  })
57
55
  const proxiedNodeDescriptor = createMockPeerDescriptor()
@@ -191,7 +189,7 @@ describe('Proxy connections', () => {
191
189
  expect(hasConnectionFromProxy(proxyNode1)).toBe(true)
192
190
  }, 30000)
193
191
 
194
- it('cannot join on proxy publish streams', async () => {
192
+ it('can\'t join proxied stream part', async () => {
195
193
  await proxiedNode.setProxies(
196
194
  STREAM_PART_ID,
197
195
  [proxyNode1.getPeerDescriptor()],
@@ -201,7 +199,7 @@ describe('Proxy connections', () => {
201
199
  await expect(proxiedNode.join(STREAM_PART_ID)).rejects.toThrow('Cannot join')
202
200
  })
203
201
 
204
- it('connect publish on proxy subscribe streams', async () => {
202
+ it('can\'t broadcast to subscribe-only proxied stream part', async () => {
205
203
  await proxiedNode.setProxies(
206
204
  STREAM_PART_ID,
207
205
  [proxyNode1.getPeerDescriptor()],
@@ -12,9 +12,10 @@ import { NetworkNode, createNetworkNode } from '../../src/NetworkNode'
12
12
  import { ProxyDirection } from '../../src/proto/packages/trackerless-network/protos/NetworkRpc'
13
13
  import { createMockPeerDescriptor } from '../utils/utils'
14
14
 
15
+ const STREAM_PART_ID = StreamPartIDUtils.parse('proxy-test#0')
16
+
15
17
  describe('proxy group key exchange', () => {
16
18
  const proxyNodeDescriptor = createMockPeerDescriptor({
17
- nodeName: 'proxyNode',
18
19
  websocket: { host: '127.0.0.1', port: 23134, tls: false }
19
20
  })
20
21
  const publisherDescriptor = createMockPeerDescriptor()
@@ -23,8 +24,6 @@ describe('proxy group key exchange', () => {
23
24
  const publisherUserId = toEthereumAddress('0x823A026e226EB47980c88616e01E1D3305Ef8Ecb')
24
25
  const subscriberUserId = toEthereumAddress('0x73E6183bf9b79D30533bEC7B28e982e9Af649B23')
25
26
 
26
- const streamPartId = StreamPartIDUtils.parse('proxy-test#0')
27
-
28
27
  let proxyNode: NetworkNode
29
28
  let publisher: NetworkNode
30
29
  let subscriber: NetworkNode
@@ -40,8 +39,8 @@ describe('proxy group key exchange', () => {
40
39
  }
41
40
  })
42
41
  await proxyNode.start()
43
- proxyNode.setStreamPartEntryPoints(streamPartId, [proxyNodeDescriptor])
44
- proxyNode.stack.getStreamrNode()!.joinStreamPart(streamPartId)
42
+ proxyNode.setStreamPartEntryPoints(STREAM_PART_ID, [proxyNodeDescriptor])
43
+ proxyNode.stack.getStreamrNode()!.joinStreamPart(STREAM_PART_ID)
45
44
  publisher = createNetworkNode({
46
45
  layer0: {
47
46
  entryPoints: [publisherDescriptor],
@@ -66,8 +65,8 @@ describe('proxy group key exchange', () => {
66
65
  })
67
66
 
68
67
  it('happy path request', async () => {
69
- await publisher.setProxies(streamPartId, [proxyNodeDescriptor], ProxyDirection.PUBLISH, publisherUserId)
70
- await subscriber.setProxies(streamPartId, [proxyNodeDescriptor], ProxyDirection.SUBSCRIBE, subscriberUserId)
68
+ await publisher.setProxies(STREAM_PART_ID, [proxyNodeDescriptor], ProxyDirection.PUBLISH, publisherUserId)
69
+ await subscriber.setProxies(STREAM_PART_ID, [proxyNodeDescriptor], ProxyDirection.SUBSCRIBE, subscriberUserId)
71
70
 
72
71
  const requestContent = utf8ToBinary(new GroupKeyRequest({
73
72
  recipient: publisherUserId,
@@ -79,8 +78,8 @@ describe('proxy group key exchange', () => {
79
78
  }).serialize())
80
79
  const request = new StreamMessage({
81
80
  messageId: new MessageID(
82
- StreamPartIDUtils.getStreamID(streamPartId),
83
- StreamPartIDUtils.getStreamPartition(streamPartId),
81
+ StreamPartIDUtils.getStreamID(STREAM_PART_ID),
82
+ StreamPartIDUtils.getStreamPartition(STREAM_PART_ID),
84
83
  Date.now(),
85
84
  0,
86
85
  subscriberUserId,
@@ -99,8 +98,8 @@ describe('proxy group key exchange', () => {
99
98
  })
100
99
 
101
100
  it('happy path response', async () => {
102
- await publisher.setProxies(streamPartId, [proxyNodeDescriptor], ProxyDirection.PUBLISH, publisherUserId)
103
- await subscriber.setProxies(streamPartId, [proxyNodeDescriptor], ProxyDirection.SUBSCRIBE, subscriberUserId)
101
+ await publisher.setProxies(STREAM_PART_ID, [proxyNodeDescriptor], ProxyDirection.PUBLISH, publisherUserId)
102
+ await subscriber.setProxies(STREAM_PART_ID, [proxyNodeDescriptor], ProxyDirection.SUBSCRIBE, subscriberUserId)
104
103
 
105
104
  const responseContent = utf8ToBinary(new GroupKeyResponse({
106
105
  recipient: publisherUserId,
@@ -109,8 +108,8 @@ describe('proxy group key exchange', () => {
109
108
  }).serialize())
110
109
  const response = new StreamMessage({
111
110
  messageId: new MessageID(
112
- StreamPartIDUtils.getStreamID(streamPartId),
113
- StreamPartIDUtils.getStreamPartition(streamPartId),
111
+ StreamPartIDUtils.getStreamID(STREAM_PART_ID),
112
+ StreamPartIDUtils.getStreamPartition(STREAM_PART_ID),
114
113
  Date.now(),
115
114
  0,
116
115
  publisherUserId,
@@ -5,6 +5,8 @@ import { createStreamMessage } from '../utils/utils'
5
5
  import { createRandomGraphNode } from '../../src/logic/createRandomGraphNode'
6
6
  import { StreamPartIDUtils } from '@streamr/protocol'
7
7
  import { randomEthereumAddress } from '@streamr/test-utils'
8
+ import { Layer0Node } from '../../src/logic/Layer0Node'
9
+ import { Layer1Node } from '../../src/logic/Layer1Node'
8
10
 
9
11
  describe('random graph with real connections', () => {
10
12
 
@@ -14,12 +16,15 @@ describe('random graph with real connections', () => {
14
16
  websocket: { host: '127.0.0.1', port: 12221, tls: false }
15
17
  }
16
18
 
17
- const randomGraphId = StreamPartIDUtils.parse('random-graph#0')
18
- let epDhtNode: DhtNode
19
- let dhtNode1: DhtNode
20
- let dhtNode2: DhtNode
21
- let dhtNode3: DhtNode
22
- let dhtNode4: DhtNode
19
+ const streamPartId = StreamPartIDUtils.parse('random-graph#0')
20
+ // Currently the nodes here are practically layer0 nodes acting as layer1 nodes, for the purpose of this test
21
+ // they are layer1 nodes as the DHT is per stream
22
+ // TODO refactor the test to use normal layering style (i.e. have separate objects for layer0 and layer1 nodes)
23
+ let epDhtNode: Layer0Node & Layer1Node
24
+ let dhtNode1: Layer0Node & Layer1Node
25
+ let dhtNode2: Layer0Node & Layer1Node
26
+ let dhtNode3: Layer0Node & Layer1Node
27
+ let dhtNode4: Layer0Node & Layer1Node
23
28
  let randomGraphNode1: RandomGraphNode
24
29
  let randomGraphNode2: RandomGraphNode
25
30
  let randomGraphNode3: RandomGraphNode
@@ -41,38 +46,38 @@ describe('random graph with real connections', () => {
41
46
 
42
47
  randomGraphNode1 = createRandomGraphNode(
43
48
  {
44
- randomGraphId,
45
- layer1: epDhtNode,
46
- P2PTransport: epDhtNode.getTransport(),
49
+ streamPartId,
50
+ layer1Node: epDhtNode,
51
+ transport: epDhtNode.getTransport(),
47
52
  connectionLocker: epDhtNode.getTransport() as ConnectionManager,
48
53
  ownPeerDescriptor: epPeerDescriptor
49
54
  }
50
55
  )
51
56
  randomGraphNode2 = createRandomGraphNode({
52
- randomGraphId,
53
- layer1: dhtNode1,
54
- P2PTransport: dhtNode1.getTransport(),
57
+ streamPartId,
58
+ layer1Node: dhtNode1,
59
+ transport: dhtNode1.getTransport(),
55
60
  connectionLocker: dhtNode1.getTransport() as ConnectionManager,
56
61
  ownPeerDescriptor: dhtNode1.getPeerDescriptor()
57
62
  })
58
63
  randomGraphNode3 = createRandomGraphNode({
59
- randomGraphId,
60
- layer1: dhtNode2,
61
- P2PTransport: dhtNode2.getTransport(),
64
+ streamPartId,
65
+ layer1Node: dhtNode2,
66
+ transport: dhtNode2.getTransport(),
62
67
  connectionLocker: dhtNode2.getTransport() as ConnectionManager,
63
68
  ownPeerDescriptor: dhtNode2.getPeerDescriptor()
64
69
  })
65
70
  randomGraphNode4 = createRandomGraphNode({
66
- randomGraphId,
67
- layer1: dhtNode3,
68
- P2PTransport: dhtNode3.getTransport(),
71
+ streamPartId,
72
+ layer1Node: dhtNode3,
73
+ transport: dhtNode3.getTransport(),
69
74
  connectionLocker: dhtNode3.getTransport() as ConnectionManager,
70
75
  ownPeerDescriptor: dhtNode3.getPeerDescriptor()
71
76
  })
72
77
  randomGraphNode5 = createRandomGraphNode({
73
- randomGraphId,
74
- layer1: dhtNode4,
75
- P2PTransport: dhtNode4.getTransport(),
78
+ streamPartId,
79
+ layer1Node: dhtNode4,
80
+ transport: dhtNode4.getTransport(),
76
81
  connectionLocker: dhtNode4.getTransport() as ConnectionManager,
77
82
  ownPeerDescriptor: dhtNode4.getPeerDescriptor()
78
83
  })
@@ -144,7 +149,7 @@ describe('random graph with real connections', () => {
144
149
 
145
150
  const msg = createStreamMessage(
146
151
  JSON.stringify({ hello: 'WORLD' }),
147
- randomGraphId,
152
+ streamPartId,
148
153
  randomEthereumAddress()
149
154
  )
150
155
  randomGraphNode1.broadcast(msg)
@@ -16,7 +16,7 @@ describe('Full node network with WebRTC connections', () => {
16
16
  region: getRandomRegion()
17
17
  })
18
18
 
19
- const randomGraphId = StreamPartIDUtils.parse('webrtc-network#0')
19
+ const streamPartId = StreamPartIDUtils.parse('webrtc-network#0')
20
20
 
21
21
  let entryPoint: NetworkStack
22
22
 
@@ -33,8 +33,8 @@ describe('Full node network with WebRTC connections', () => {
33
33
  }
34
34
  })
35
35
  await entryPoint.start()
36
- entryPoint.getStreamrNode()!.setStreamPartEntryPoints(randomGraphId, [epPeerDescriptor])
37
- entryPoint.getStreamrNode()!.joinStreamPart(randomGraphId)
36
+ entryPoint.getStreamrNode()!.setStreamPartEntryPoints(streamPartId, [epPeerDescriptor])
37
+ entryPoint.getStreamrNode()!.joinStreamPart(streamPartId)
38
38
 
39
39
  await Promise.all(range(NUM_OF_NODES).map(async () => {
40
40
  const peerDescriptor = createMockPeerDescriptor()
@@ -46,8 +46,8 @@ describe('Full node network with WebRTC connections', () => {
46
46
  })
47
47
  nodes.push(node)
48
48
  await node.start()
49
- node.getStreamrNode().setStreamPartEntryPoints(randomGraphId, [epPeerDescriptor])
50
- node.getStreamrNode().joinStreamPart(randomGraphId)
49
+ node.getStreamrNode().setStreamPartEntryPoints(streamPartId, [epPeerDescriptor])
50
+ node.getStreamrNode().joinStreamPart(streamPartId)
51
51
  }))
52
52
 
53
53
  }, 90000)
@@ -62,13 +62,13 @@ describe('Full node network with WebRTC connections', () => {
62
62
  it('happy path', async () => {
63
63
  await Promise.all(nodes.map((node) =>
64
64
  waitForCondition(() => {
65
- return node.getStreamrNode()!.getNeighbors(randomGraphId).length >= 3
65
+ return node.getStreamrNode()!.getNeighbors(streamPartId).length >= 3
66
66
  }
67
67
  , 120000)
68
68
  ))
69
69
  let numOfMessagesReceived = 0
70
70
  const successIds: string[] = []
71
- nodes.map((node) => {
71
+ nodes.forEach((node) => {
72
72
  node.getStreamrNode()!.on('newMessage', () => {
73
73
  successIds.push(getNodeIdFromPeerDescriptor(node.getStreamrNode()!.getPeerDescriptor()))
74
74
  numOfMessagesReceived += 1
@@ -76,7 +76,7 @@ describe('Full node network with WebRTC connections', () => {
76
76
  })
77
77
  const msg = createStreamMessage(
78
78
  JSON.stringify({ hello: 'WORLD' }),
79
- randomGraphId,
79
+ streamPartId,
80
80
  randomEthereumAddress()
81
81
  )
82
82
  entryPoint.getStreamrNode()!.broadcast(msg)