@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
@@ -1,14 +1,15 @@
1
- import { DhtNode, Simulator } from '@streamr/dht'
1
+ import { Simulator } from '@streamr/dht'
2
2
  import { StreamPartIDUtils } from '@streamr/protocol'
3
3
  import { randomEthereumAddress } from '@streamr/test-utils'
4
4
  import { waitForCondition } from '@streamr/utils'
5
5
  import { range } from 'lodash'
6
6
  import { RandomGraphNode } from '../../src/logic/RandomGraphNode'
7
7
  import { createMockPeerDescriptor, createMockRandomGraphNodeAndDhtNode, createStreamMessage } from '../utils/utils'
8
+ import { Layer1Node } from '../../src/logic/Layer1Node'
8
9
 
9
10
  describe('Propagation', () => {
10
11
  const entryPointDescriptor = createMockPeerDescriptor()
11
- let dhtNodes: DhtNode[]
12
+ let layer1Nodes: Layer1Node[]
12
13
  let randomGraphNodes: RandomGraphNode[]
13
14
  const STREAM_PART_ID = StreamPartIDUtils.parse('testingtesting#0')
14
15
  let totalReceived: number
@@ -17,38 +18,38 @@ describe('Propagation', () => {
17
18
  beforeEach(async () => {
18
19
  totalReceived = 0
19
20
  const simulator = new Simulator()
20
- dhtNodes = []
21
+ layer1Nodes = []
21
22
  randomGraphNodes = []
22
- const [entryPoint, node1] = createMockRandomGraphNodeAndDhtNode(entryPointDescriptor, entryPointDescriptor, STREAM_PART_ID, simulator)
23
+ const [entryPoint, node1] = await createMockRandomGraphNodeAndDhtNode(entryPointDescriptor, entryPointDescriptor, STREAM_PART_ID, simulator)
23
24
  await entryPoint.start()
24
25
  await entryPoint.joinDht([entryPointDescriptor])
25
26
  await node1.start()
26
27
  node1.on('message', () => {totalReceived += 1})
27
- dhtNodes.push(entryPoint)
28
+ layer1Nodes.push(entryPoint)
28
29
  randomGraphNodes.push(node1)
29
30
 
30
31
  await Promise.all(range(NUM_OF_NODES).map(async (_i) => {
31
32
  const descriptor = createMockPeerDescriptor()
32
- const [dht, graph] = createMockRandomGraphNodeAndDhtNode(
33
+ const [layer1, randomGraphNode] = await createMockRandomGraphNodeAndDhtNode(
33
34
  descriptor,
34
35
  entryPointDescriptor,
35
36
  STREAM_PART_ID,
36
37
  simulator
37
38
  )
38
- await dht.start()
39
- await graph.start()
39
+ await layer1.start()
40
+ await randomGraphNode.start()
40
41
  // eslint-disable-next-line promise/always-return
41
- await dht.joinDht([entryPointDescriptor]).then(() => {
42
- graph.on('message', () => { totalReceived += 1 })
43
- dhtNodes.push(dht)
44
- randomGraphNodes.push(graph)
42
+ await layer1.joinDht([entryPointDescriptor]).then(() => {
43
+ randomGraphNode.on('message', () => { totalReceived += 1 })
44
+ layer1Nodes.push(layer1)
45
+ randomGraphNodes.push(randomGraphNode)
45
46
  })
46
47
  }))
47
48
  }, 45000)
48
49
 
49
50
  afterEach(async () => {
50
51
  await Promise.all(randomGraphNodes.map((node) => node.stop()))
51
- await Promise.all(dhtNodes.map((node) => node.stop()))
52
+ await Promise.all(layer1Nodes.map((node) => node.stop()))
52
53
  })
53
54
 
54
55
  it('All nodes receive messages', async () => {
@@ -5,11 +5,12 @@ import { RandomGraphNode } from '../../src/logic/RandomGraphNode'
5
5
  import { createRandomGraphNode } from '../../src/logic/createRandomGraphNode'
6
6
  import { createMockPeerDescriptor } from '../utils/utils'
7
7
  import { StreamPartIDUtils } from '@streamr/protocol'
8
+ import { Layer1Node } from '../../src/logic/Layer1Node'
8
9
 
9
10
  describe('RandomGraphNode-DhtNode-Latencies', () => {
10
11
  const numOfNodes = 64
11
- let dhtNodes: DhtNode[]
12
- let dhtEntryPoint: DhtNode
12
+ let layer1Nodes: Layer1Node[]
13
+ let dhtEntryPoint: Layer1Node
13
14
  let entryPointRandomGraphNode: RandomGraphNode
14
15
  let graphNodes: RandomGraphNode[]
15
16
 
@@ -24,47 +25,49 @@ describe('RandomGraphNode-DhtNode-Latencies', () => {
24
25
  const cms: SimulatorTransport[] = range(numOfNodes).map((i) =>
25
26
  new SimulatorTransport(peerDescriptors[i], simulator)
26
27
  )
28
+ await entrypointCm.start()
29
+ await Promise.all(cms.map((cm) => cm.start()))
27
30
 
28
31
  dhtEntryPoint = new DhtNode({
29
- transportLayer: entrypointCm,
32
+ transport: entrypointCm,
30
33
  peerDescriptor: entrypointDescriptor,
31
34
  serviceId: streamPartId
32
35
  })
33
- dhtNodes = range(numOfNodes).map((i) => new DhtNode({
34
- transportLayer: cms[i],
36
+ layer1Nodes = range(numOfNodes).map((i) => new DhtNode({
37
+ transport: cms[i],
35
38
  peerDescriptor: peerDescriptors[i],
36
39
  serviceId: streamPartId
37
40
  }))
38
41
  graphNodes = range(numOfNodes).map((i) => createRandomGraphNode({
39
- randomGraphId: streamPartId,
40
- layer1: dhtNodes[i],
41
- P2PTransport: cms[i],
42
+ streamPartId,
43
+ layer1Node: layer1Nodes[i],
44
+ transport: cms[i],
42
45
  connectionLocker: cms[i],
43
46
  ownPeerDescriptor: peerDescriptors[i]
44
47
  }))
45
48
  entryPointRandomGraphNode = createRandomGraphNode({
46
- randomGraphId: streamPartId,
47
- layer1: dhtEntryPoint,
48
- P2PTransport: entrypointCm,
49
+ streamPartId,
50
+ layer1Node: dhtEntryPoint,
51
+ transport: entrypointCm,
49
52
  connectionLocker: entrypointCm,
50
53
  ownPeerDescriptor: entrypointDescriptor
51
54
  })
52
55
 
53
56
  await dhtEntryPoint.start()
54
57
  await dhtEntryPoint.joinDht([entrypointDescriptor])
55
- await Promise.all(dhtNodes.map((node) => node.start()))
58
+ await Promise.all(layer1Nodes.map((node) => node.start()))
56
59
  })
57
60
 
58
61
  afterEach(async () => {
59
62
  dhtEntryPoint.stop()
60
63
  entryPointRandomGraphNode.stop()
61
- await Promise.all(dhtNodes.map((node) => node.stop()))
64
+ await Promise.all(layer1Nodes.map((node) => node.stop()))
62
65
  await Promise.all(graphNodes.map((node) => node.stop()))
63
66
  Simulator.useFakeTimers(false)
64
67
  })
65
68
 
66
69
  it('happy path single node', async () => {
67
- await dhtNodes[0].joinDht([entrypointDescriptor])
70
+ await layer1Nodes[0].joinDht([entrypointDescriptor])
68
71
  entryPointRandomGraphNode.start()
69
72
  await graphNodes[0].start()
70
73
  await Promise.all([
@@ -77,23 +80,23 @@ describe('RandomGraphNode-DhtNode-Latencies', () => {
77
80
 
78
81
  it('happy path 5 nodes', async () => {
79
82
  entryPointRandomGraphNode.start()
80
- range(4).map((i) => graphNodes[i].start())
83
+ range(4).forEach((i) => graphNodes[i].start())
81
84
  await Promise.all(range(4).map(async (i) => {
82
- await dhtNodes[i].joinDht([entrypointDescriptor])
85
+ await layer1Nodes[i].joinDht([entrypointDescriptor])
83
86
  }))
84
87
  await Promise.all(range(4).map((i) => {
85
88
  return waitForCondition(() => {
86
89
  return graphNodes[i].getTargetNeighborIds().length >= 4
87
- }, 10000, 2000)
90
+ }, 15000, 2000)
88
91
  }))
89
- range(4).map((i) => {
92
+ range(4).forEach((i) => {
90
93
  expect(graphNodes[i].getNearbyNodeView().getIds().length).toBeGreaterThanOrEqual(4)
91
94
  expect(graphNodes[i].getTargetNeighborIds().length).toBeGreaterThanOrEqual(4)
92
95
  })
93
96
  // Check bidirectionality
94
97
  const allNodes = graphNodes
95
98
  allNodes.push(entryPointRandomGraphNode)
96
- range(5).map((i) => {
99
+ range(5).forEach((i) => {
97
100
  const ownNodeId = allNodes[i].getOwnNodeId()
98
101
  allNodes[i].getNearbyNodeView().getIds().forEach((nodeId) => {
99
102
  const neighbor = allNodes.find((node) => {
@@ -107,7 +110,7 @@ describe('RandomGraphNode-DhtNode-Latencies', () => {
107
110
  it('happy path 64 nodes', async () => {
108
111
  await Promise.all(range(numOfNodes).map((i) => graphNodes[i].start()))
109
112
  await Promise.all(range(numOfNodes).map((i) => {
110
- dhtNodes[i].joinDht([entrypointDescriptor])
113
+ layer1Nodes[i].joinDht([entrypointDescriptor])
111
114
  }))
112
115
  await Promise.all(graphNodes.map((node) =>
113
116
  waitForCondition(() => node.getTargetNeighborIds().length >= 4, 10000)
@@ -1,29 +1,28 @@
1
- import { ConnectionManager, DhtNode, PeerDescriptor, Simulator, getRandomRegion } from '@streamr/dht'
1
+ import { ConnectionManager, DhtNode, PeerDescriptor, Simulator, SimulatorTransport, getRandomRegion } from '@streamr/dht'
2
2
  import { Logger, waitForCondition } from '@streamr/utils'
3
3
  import { range } from 'lodash'
4
4
  import { RandomGraphNode } from '../../src/logic/RandomGraphNode'
5
5
  import { createRandomGraphNode } from '../../src/logic/createRandomGraphNode'
6
6
  import { createMockPeerDescriptor } from '../utils/utils'
7
7
  import { StreamPartIDUtils } from '@streamr/protocol'
8
+ import { Layer1Node } from '../../src/logic/Layer1Node'
8
9
 
9
10
  const logger = new Logger(module)
10
11
 
11
12
  describe('RandomGraphNode-DhtNode', () => {
12
13
  const numOfNodes = 64
13
- let dhtNodes: DhtNode[]
14
- let dhtEntryPoint: DhtNode
14
+ let layer1Nodes: Layer1Node[]
15
+ let dhtEntryPoint: Layer1Node
15
16
  let entryPointRandomGraphNode: RandomGraphNode
16
17
  let graphNodes: RandomGraphNode[]
17
18
 
18
19
  const streamPartId = StreamPartIDUtils.parse('stream#0')
19
20
  const entrypointDescriptor = createMockPeerDescriptor({
20
- nodeName: 'entrypoint',
21
21
  region: getRandomRegion()
22
22
  })
23
23
 
24
- const peerDescriptors: PeerDescriptor[] = range(numOfNodes).map((i) => {
24
+ const peerDescriptors: PeerDescriptor[] = range(numOfNodes).map(() => {
25
25
  return createMockPeerDescriptor({
26
- nodeName: `node${i}`,
27
26
  region: getRandomRegion()
28
27
  })
29
28
  })
@@ -31,43 +30,45 @@ describe('RandomGraphNode-DhtNode', () => {
31
30
 
32
31
  Simulator.useFakeTimers()
33
32
  const simulator = new Simulator()
34
- const entrypointCm = new ConnectionManager({
35
- ownPeerDescriptor: entrypointDescriptor,
33
+ const entrypointCm = new SimulatorTransport(
34
+ entrypointDescriptor,
36
35
  simulator
37
- })
36
+ )
37
+ await entrypointCm.start()
38
38
 
39
39
  const cms: ConnectionManager[] = range(numOfNodes).map((i) =>
40
- new ConnectionManager({
41
- ownPeerDescriptor: peerDescriptors[i],
40
+ new SimulatorTransport(
41
+ peerDescriptors[i],
42
42
  simulator
43
- })
43
+ )
44
44
  )
45
+ await Promise.all(cms.map((cm) => cm.start()))
45
46
 
46
47
  dhtEntryPoint = new DhtNode({
47
- transportLayer: entrypointCm,
48
+ transport: entrypointCm,
48
49
  peerDescriptor: entrypointDescriptor,
49
50
  serviceId: streamPartId
50
51
  })
51
52
 
52
- dhtNodes = range(numOfNodes).map((i) => new DhtNode({
53
- transportLayer: cms[i],
53
+ layer1Nodes = range(numOfNodes).map((i) => new DhtNode({
54
+ transport: cms[i],
54
55
  peerDescriptor: peerDescriptors[i],
55
56
  serviceId: streamPartId
56
57
  }))
57
58
 
58
59
  graphNodes = range(numOfNodes).map((i) => createRandomGraphNode({
59
- randomGraphId: streamPartId,
60
- layer1: dhtNodes[i],
61
- P2PTransport: cms[i],
60
+ streamPartId,
61
+ layer1Node: layer1Nodes[i],
62
+ transport: cms[i],
62
63
  connectionLocker: cms[i],
63
64
  ownPeerDescriptor: peerDescriptors[i],
64
65
  neighborUpdateInterval: 2000
65
66
  }))
66
67
 
67
68
  entryPointRandomGraphNode = createRandomGraphNode({
68
- randomGraphId: streamPartId,
69
- layer1: dhtEntryPoint,
70
- P2PTransport: entrypointCm,
69
+ streamPartId,
70
+ layer1Node: dhtEntryPoint,
71
+ transport: entrypointCm,
71
72
  connectionLocker: entrypointCm,
72
73
  ownPeerDescriptor: entrypointDescriptor,
73
74
  neighborUpdateInterval: 2000
@@ -75,20 +76,20 @@ describe('RandomGraphNode-DhtNode', () => {
75
76
 
76
77
  await dhtEntryPoint.start()
77
78
  await dhtEntryPoint.joinDht([entrypointDescriptor])
78
- await Promise.all(dhtNodes.map((node) => node.start()))
79
+ await Promise.all(layer1Nodes.map((node) => node.start()))
79
80
  })
80
81
 
81
82
  afterEach(async () => {
82
83
  await dhtEntryPoint.stop()
83
84
  entryPointRandomGraphNode.stop()
84
- await Promise.all(dhtNodes.map((node) => node.stop()))
85
+ await Promise.all(layer1Nodes.map((node) => node.stop()))
85
86
  await Promise.all(graphNodes.map((node) => node.stop()))
86
87
  Simulator.useFakeTimers(false)
87
88
  })
88
89
 
89
90
  it('happy path single node ', async () => {
90
91
  await entryPointRandomGraphNode.start()
91
- await dhtNodes[0].joinDht([entrypointDescriptor])
92
+ await layer1Nodes[0].joinDht([entrypointDescriptor])
92
93
 
93
94
  await graphNodes[0].start()
94
95
 
@@ -99,13 +100,13 @@ describe('RandomGraphNode-DhtNode', () => {
99
100
 
100
101
  it('happy path 4 nodes', async () => {
101
102
  entryPointRandomGraphNode.start()
102
- range(4).map((i) => graphNodes[i].start())
103
+ range(4).forEach((i) => graphNodes[i].start())
103
104
  await Promise.all(range(4).map(async (i) => {
104
- await dhtNodes[i].joinDht([entrypointDescriptor])
105
+ await layer1Nodes[i].joinDht([entrypointDescriptor])
105
106
  }))
106
107
 
107
108
  await waitForCondition(() => range(4).every((i) => graphNodes[i].getTargetNeighborIds().length === 4))
108
- range(4).map((i) => {
109
+ range(4).forEach((i) => {
109
110
  expect(graphNodes[i].getNearbyNodeView().getIds().length).toBeGreaterThanOrEqual(4)
110
111
  expect(graphNodes[i].getTargetNeighborIds().length).toBeGreaterThanOrEqual(4)
111
112
  })
@@ -113,7 +114,7 @@ describe('RandomGraphNode-DhtNode', () => {
113
114
  // Check bidirectionality
114
115
  const allNodes = graphNodes
115
116
  allNodes.push(entryPointRandomGraphNode)
116
- range(5).map((i) => {
117
+ range(5).forEach((i) => {
117
118
  allNodes[i].getNearbyNodeView().getIds().forEach((nodeId) => {
118
119
  const neighbor = allNodes.find((node) => {
119
120
  return node.getOwnNodeId() === nodeId
@@ -126,7 +127,7 @@ describe('RandomGraphNode-DhtNode', () => {
126
127
  it('happy path 64 nodes', async () => {
127
128
  await Promise.all(range(numOfNodes).map((i) => graphNodes[i].start()))
128
129
  await Promise.all(range(numOfNodes).map((i) => {
129
- dhtNodes[i].joinDht([entrypointDescriptor])
130
+ layer1Nodes[i].joinDht([entrypointDescriptor])
130
131
  }))
131
132
  await Promise.all(graphNodes.map((node) =>
132
133
  waitForCondition(() => node.getTargetNeighborIds().length >= 4, 10000)
@@ -10,11 +10,12 @@ import { waitForEvent3, waitForCondition } from '@streamr/utils'
10
10
  import { createStreamMessage } from '../utils/utils'
11
11
  import { StreamPartIDUtils } from '@streamr/protocol'
12
12
  import { randomEthereumAddress } from '@streamr/test-utils'
13
+ import { Layer0Node } from '../../src/logic/Layer0Node'
13
14
 
14
15
  describe('StreamrNode', () => {
15
16
 
16
- let layer01: DhtNode
17
- let layer02: DhtNode
17
+ let layer0Node1: Layer0Node
18
+ let layer0Node2: Layer0Node
18
19
  let transport1: SimulatorTransport
19
20
  let transport2: SimulatorTransport
20
21
  let node1: StreamrNode
@@ -46,31 +47,33 @@ describe('StreamrNode', () => {
46
47
  beforeEach(async () => {
47
48
  const simulator = new Simulator()
48
49
  transport1 = new SimulatorTransport(peerDescriptor1, simulator)
50
+ await transport1.start()
49
51
  transport2 = new SimulatorTransport(peerDescriptor2, simulator)
50
- layer01 = new DhtNode({
51
- transportLayer: transport1,
52
+ await transport2.start()
53
+ layer0Node1 = new DhtNode({
54
+ transport: transport1,
52
55
  peerDescriptor: peerDescriptor1,
53
56
  entryPoints: [peerDescriptor1]
54
57
  })
55
- layer02 = new DhtNode({
56
- transportLayer: transport2,
58
+ layer0Node2 = new DhtNode({
59
+ transport: transport2,
57
60
  peerDescriptor: peerDescriptor2,
58
61
  entryPoints: [peerDescriptor1]
59
62
  })
60
63
  await Promise.all([
61
- layer01.start(),
62
- layer02.start()
64
+ layer0Node1.start(),
65
+ layer0Node2.start()
63
66
  ])
64
67
  await Promise.all([
65
- layer01.joinDht([peerDescriptor1]),
66
- layer02.joinDht([peerDescriptor1])
68
+ layer0Node1.joinDht([peerDescriptor1]),
69
+ layer0Node2.joinDht([peerDescriptor1])
67
70
  ])
68
71
 
69
72
  node1 = new StreamrNode({})
70
73
  node2 = new StreamrNode({})
71
- await node1.start(layer01, transport1, transport1)
74
+ await node1.start(layer0Node1, transport1, transport1)
72
75
  node1.setStreamPartEntryPoints(STREAM_PART_ID, [peerDescriptor1])
73
- await node2.start(layer02, transport2, transport2)
76
+ await node2.start(layer0Node2, transport2, transport2)
74
77
  node2.setStreamPartEntryPoints(STREAM_PART_ID, [peerDescriptor1])
75
78
  })
76
79
 
@@ -126,7 +129,7 @@ describe('StreamrNode', () => {
126
129
  ])
127
130
  })
128
131
 
129
- it('leaving streams', async () => {
132
+ it('leaving stream parts', async () => {
130
133
  node1.joinStreamPart(STREAM_PART_ID)
131
134
  node2.joinStreamPart(STREAM_PART_ID)
132
135
  await Promise.all([
@@ -1,42 +1,38 @@
1
1
  import { NodeType, PeerDescriptor, Simulator, SimulatorTransport, LatencyType } from '@streamr/dht'
2
2
  import { NetworkStack } from '../../src/NetworkStack'
3
- import { streamPartIdToDataKey } from '../../src/logic/StreamPartEntryPointDiscovery'
3
+ import { streamPartIdToDataKey } from '../../src/logic/EntryPointDiscovery'
4
4
  import { StreamPartIDUtils } from '@streamr/protocol'
5
5
  import { Any } from '../../src/proto/google/protobuf/any'
6
6
  import { createStreamMessage } from '../utils/utils'
7
7
  import { waitForCondition } from '@streamr/utils'
8
8
  import { randomEthereumAddress } from '@streamr/test-utils'
9
9
 
10
- describe('Joining streams on offline nodes', () => {
11
- const streamPartId = StreamPartIDUtils.parse('stream#0')
10
+ const STREAM_PART_ID = StreamPartIDUtils.parse('stream#0')
11
+
12
+ describe('Joining stream parts on offline nodes', () => {
12
13
 
13
14
  const entryPointPeerDescriptor: PeerDescriptor = {
14
15
  kademliaId: new Uint8Array([1, 2, 3]),
15
- nodeName: 'entrypoint',
16
16
  type: NodeType.NODEJS
17
17
  }
18
18
 
19
19
  const node1PeerDescriptor: PeerDescriptor = {
20
20
  kademliaId: new Uint8Array([1, 1, 1]),
21
- nodeName: 'node1',
22
21
  type: NodeType.NODEJS
23
22
  }
24
23
 
25
24
  const node2PeerDescriptor: PeerDescriptor = {
26
25
  kademliaId: new Uint8Array([2, 2, 2]),
27
- nodeName: 'node2',
28
26
  type: NodeType.NODEJS
29
27
  }
30
28
 
31
29
  const offlineDescriptor1: PeerDescriptor = {
32
30
  kademliaId: new Uint8Array([3, 3, 3]),
33
- nodeName: 'offline',
34
31
  type: NodeType.NODEJS
35
32
  }
36
33
 
37
34
  const offlineDescriptor2: PeerDescriptor = {
38
35
  kademliaId: new Uint8Array([4, 4, 4]),
39
- nodeName: 'offline',
40
36
  type: NodeType.NODEJS
41
37
  }
42
38
 
@@ -50,28 +46,30 @@ describe('Joining streams on offline nodes', () => {
50
46
  const entryPointTransport = new SimulatorTransport(entryPointPeerDescriptor, simulator)
51
47
  entryPoint = new NetworkStack({
52
48
  layer0: {
53
- transportLayer: entryPointTransport,
49
+ transport: entryPointTransport,
54
50
  peerDescriptor: entryPointPeerDescriptor,
55
51
  entryPoints: [entryPointPeerDescriptor]
56
52
  }
57
53
  })
58
-
54
+ const node1Transport = new SimulatorTransport(node1PeerDescriptor, simulator)
59
55
  node1 = new NetworkStack({
60
56
  layer0: {
61
- transportLayer: new SimulatorTransport(node1PeerDescriptor, simulator),
57
+ transport: node1Transport,
62
58
  peerDescriptor: node1PeerDescriptor,
63
59
  entryPoints: [entryPointPeerDescriptor]
64
60
  }
65
61
  })
66
-
62
+ const node2Transport = new SimulatorTransport(node2PeerDescriptor, simulator)
67
63
  node2 = new NetworkStack({
68
64
  layer0: {
69
- transportLayer: new SimulatorTransport(node2PeerDescriptor, simulator),
65
+ transport: node2Transport,
70
66
  peerDescriptor: node2PeerDescriptor,
71
67
  entryPoints: [entryPointPeerDescriptor]
72
68
  }
73
69
  })
74
-
70
+ await entryPointTransport.start()
71
+ await node1Transport.start()
72
+ await node2Transport.start()
75
73
  await entryPoint.start()
76
74
  await node1.start()
77
75
  await node2.start()
@@ -88,12 +86,12 @@ describe('Joining streams on offline nodes', () => {
88
86
  let messageReceived = false
89
87
 
90
88
  // store offline peer descriptors to DHT
91
- await entryPoint.getLayer0DhtNode().storeDataToDht(streamPartIdToDataKey(streamPartId), Any.pack(offlineDescriptor1, PeerDescriptor))
92
- await entryPoint.getLayer0DhtNode().storeDataToDht(streamPartIdToDataKey(streamPartId), Any.pack(offlineDescriptor2, PeerDescriptor))
89
+ await entryPoint.getLayer0Node().storeDataToDht(streamPartIdToDataKey(STREAM_PART_ID), Any.pack(offlineDescriptor1, PeerDescriptor))
90
+ await entryPoint.getLayer0Node().storeDataToDht(streamPartIdToDataKey(STREAM_PART_ID), Any.pack(offlineDescriptor2, PeerDescriptor))
93
91
 
94
- node1.getStreamrNode().joinStreamPart(streamPartId)
92
+ node1.getStreamrNode().joinStreamPart(STREAM_PART_ID)
95
93
  node1.getStreamrNode().on('newMessage', () => { messageReceived = true })
96
- const msg = createStreamMessage(JSON.stringify({ hello: 'WORLD' }), streamPartId, randomEthereumAddress())
94
+ const msg = createStreamMessage(JSON.stringify({ hello: 'WORLD' }), STREAM_PART_ID, randomEthereumAddress())
97
95
  node2.getStreamrNode().broadcast(msg)
98
96
  await waitForCondition(() => messageReceived, 40000)
99
97
  }, 60000)
@@ -4,13 +4,12 @@ import {
4
4
  MessageRef,
5
5
  StreamMessage,
6
6
  StreamMessageType,
7
- StreamPartIDUtils,
8
- toStreamID
7
+ StreamPartIDUtils
9
8
  } from '@streamr/protocol'
10
9
  import { EthereumAddress, hexToBinary, utf8ToBinary, waitForCondition } from '@streamr/utils'
11
10
  import { range } from 'lodash'
12
11
  import { NetworkNode, createNetworkNode } from '../../src/NetworkNode'
13
- import { streamPartIdToDataKey } from '../../src/logic/StreamPartEntryPointDiscovery'
12
+ import { streamPartIdToDataKey } from '../../src/logic/EntryPointDiscovery'
14
13
  import { createMockPeerDescriptor } from '../utils/utils'
15
14
 
16
15
  const STREAM_PART_ID = StreamPartIDUtils.parse('test#0')
@@ -22,14 +21,13 @@ describe('stream without default entrypoints', () => {
22
21
  let numOfReceivedMessages: number
23
22
  const entryPointPeerDescriptor: PeerDescriptor = {
24
23
  kademliaId: new Uint8Array([1, 2, 3]),
25
- nodeName: 'entrypoint',
26
24
  type: NodeType.NODEJS
27
25
  }
28
26
 
29
27
  const streamMessage = new StreamMessage({
30
28
  messageId: new MessageID(
31
- toStreamID('test'),
32
- 0,
29
+ StreamPartIDUtils.getStreamID(STREAM_PART_ID),
30
+ StreamPartIDUtils.getStreamPartition(STREAM_PART_ID),
33
31
  666,
34
32
  0,
35
33
  '0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' as EthereumAddress,
@@ -49,23 +47,23 @@ describe('stream without default entrypoints', () => {
49
47
  nodes = []
50
48
  numOfReceivedMessages = 0
51
49
  const entryPointTransport = new SimulatorTransport(entryPointPeerDescriptor, simulator)
50
+ await entryPointTransport.start()
52
51
  entrypoint = createNetworkNode({
53
52
  layer0: {
54
- transportLayer: entryPointTransport,
53
+ transport: entryPointTransport,
55
54
  peerDescriptor: entryPointPeerDescriptor,
56
55
  entryPoints: [entryPointPeerDescriptor]
57
56
  }
58
57
  })
59
58
  await entrypoint.start()
60
- await Promise.all(range(20).map(async (i) => {
61
- const peerDescriptor = createMockPeerDescriptor({
62
- nodeName: `${i}`
63
- })
59
+ await Promise.all(range(20).map(async () => {
60
+ const peerDescriptor = createMockPeerDescriptor()
64
61
  const transport = new SimulatorTransport(peerDescriptor, simulator)
62
+ await transport.start()
65
63
  const node = createNetworkNode({
66
64
  layer0: {
67
65
  peerDescriptor,
68
- transportLayer: transport,
66
+ transport,
69
67
  entryPoints: [entryPointPeerDescriptor]
70
68
  }
71
69
  })
@@ -121,8 +119,8 @@ describe('stream without default entrypoints', () => {
121
119
  await nodes[i].join(STREAM_PART_ID, { minCount: (i > 0) ? 1 : 0, timeout: 15000 })
122
120
  }
123
121
  await waitForCondition(async () => {
124
- const entryPointData = await nodes[15].stack.getLayer0DhtNode().getDataFromDht(streamPartIdToDataKey(STREAM_PART_ID))
125
- return entryPointData.dataEntries!.length >= 7
122
+ const entryPointData = await nodes[15].stack.getLayer0Node().getDataFromDht(streamPartIdToDataKey(STREAM_PART_ID))
123
+ return entryPointData.length >= 7
126
124
  }, 15000)
127
125
 
128
126
  }, 90000)
@@ -1,14 +1,14 @@
1
1
  import { ListeningRpcCommunicator } from '@streamr/dht'
2
2
  import { StreamPartIDUtils } from '@streamr/protocol'
3
3
  import { randomEthereumAddress } from '@streamr/test-utils'
4
- import { StreamNodeServer } from '../../src/logic/StreamNodeServer'
4
+ import { DeliveryRpcLocal } from '../../src/logic/DeliveryRpcLocal'
5
5
  import { LeaveStreamPartNotice } from '../../src/proto/packages/trackerless-network/protos/NetworkRpc'
6
6
  import { MockTransport } from '../utils/mock/Transport'
7
7
  import { createMockPeerDescriptor, createStreamMessage } from '../utils/utils'
8
8
 
9
- describe('StreamNodeServer', () => {
9
+ describe('DeliveryRpcLocal', () => {
10
10
 
11
- let streamNodeServer: StreamNodeServer
11
+ let rpcLocal: DeliveryRpcLocal
12
12
  const peerDescriptor = createMockPeerDescriptor()
13
13
 
14
14
  const mockSender = createMockPeerDescriptor()
@@ -30,19 +30,19 @@ describe('StreamNodeServer', () => {
30
30
  mockOnLeaveNotice = jest.fn((_m) => {})
31
31
  mockMarkForInspection = jest.fn((_m) => {})
32
32
 
33
- streamNodeServer = new StreamNodeServer({
33
+ rpcLocal = new DeliveryRpcLocal({
34
34
  markAndCheckDuplicate: mockDuplicateCheck,
35
35
  broadcast: mockBroadcast,
36
36
  onLeaveNotice: mockOnLeaveNotice,
37
37
  markForInspection: mockMarkForInspection,
38
38
  ownPeerDescriptor: peerDescriptor,
39
- randomGraphId: 'random-graph',
39
+ streamPartId: StreamPartIDUtils.parse('stream#0'),
40
40
  rpcCommunicator: new ListeningRpcCommunicator('random-graph-node', new MockTransport())
41
41
  })
42
42
  })
43
43
 
44
44
  it('Server sendStreamMessage()', async () => {
45
- await streamNodeServer.sendStreamMessage(message, { incomingSourceDescriptor: mockSender } as any)
45
+ await rpcLocal.sendStreamMessage(message, { incomingSourceDescriptor: mockSender } as any)
46
46
  expect(mockDuplicateCheck).toHaveBeenCalledTimes(1)
47
47
  expect(mockBroadcast).toHaveBeenCalledTimes(1)
48
48
  expect(mockMarkForInspection).toHaveBeenCalledTimes(1)
@@ -50,9 +50,9 @@ describe('StreamNodeServer', () => {
50
50
 
51
51
  it('Server leaveStreamPartNotice()', async () => {
52
52
  const leaveNotice: LeaveStreamPartNotice = {
53
- randomGraphId: 'random-graph'
53
+ streamPartId: StreamPartIDUtils.parse('stream#0')
54
54
  }
55
- await streamNodeServer.leaveStreamPartNotice(leaveNotice, { incomingSourceDescriptor: mockSender } as any)
55
+ await rpcLocal.leaveStreamPartNotice(leaveNotice, { incomingSourceDescriptor: mockSender } as any)
56
56
  expect(mockOnLeaveNotice).toHaveBeenCalledTimes(1)
57
57
  })
58
58