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

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 (170) hide show
  1. package/dist/package.json +10 -8
  2. package/dist/src/NetworkNode.js +1 -1
  3. package/dist/src/NetworkNode.js.map +1 -1
  4. package/dist/src/NetworkStack.d.ts +1 -3
  5. package/dist/src/NetworkStack.js +18 -47
  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} +8 -10
  16. package/dist/src/logic/{StreamPartEntryPointDiscovery.js → EntryPointDiscovery.js} +14 -36
  17. package/dist/src/logic/EntryPointDiscovery.js.map +1 -0
  18. package/dist/src/logic/ILayer0.d.ts +3 -6
  19. package/dist/src/logic/NodeList.d.ts +10 -10
  20. package/dist/src/logic/NodeList.js.map +1 -1
  21. package/dist/src/logic/RandomGraphNode.d.ts +8 -12
  22. package/dist/src/logic/RandomGraphNode.js +41 -40
  23. package/dist/src/logic/RandomGraphNode.js.map +1 -1
  24. package/dist/src/logic/StreamrNode.d.ts +9 -12
  25. package/dist/src/logic/StreamrNode.js +53 -63
  26. package/dist/src/logic/StreamrNode.js.map +1 -1
  27. package/dist/src/logic/createRandomGraphNode.d.ts +6 -1
  28. package/dist/src/logic/createRandomGraphNode.js +17 -23
  29. package/dist/src/logic/createRandomGraphNode.js.map +1 -1
  30. package/dist/src/logic/formStreamPartDeliveryServiceId.d.ts +2 -0
  31. package/dist/src/logic/formStreamPartDeliveryServiceId.js +8 -0
  32. package/dist/src/logic/formStreamPartDeliveryServiceId.js.map +1 -0
  33. package/dist/src/logic/inspect/Inspector.d.ts +3 -2
  34. package/dist/src/logic/inspect/Inspector.js +5 -5
  35. package/dist/src/logic/inspect/Inspector.js.map +1 -1
  36. package/dist/src/logic/neighbor-discovery/{HandshakerServer.d.ts → HandshakeRpcLocal.d.ts} +10 -10
  37. package/dist/src/logic/neighbor-discovery/{HandshakerServer.js → HandshakeRpcLocal.js} +13 -13
  38. package/dist/src/logic/neighbor-discovery/HandshakeRpcLocal.js.map +1 -0
  39. package/dist/src/logic/neighbor-discovery/{RemoteHandshaker.d.ts → HandshakeRpcRemote.d.ts} +1 -1
  40. package/dist/src/logic/neighbor-discovery/{RemoteHandshaker.js → HandshakeRpcRemote.js} +8 -7
  41. package/dist/src/logic/neighbor-discovery/HandshakeRpcRemote.js.map +1 -0
  42. package/dist/src/logic/neighbor-discovery/Handshaker.d.ts +8 -7
  43. package/dist/src/logic/neighbor-discovery/Handshaker.js +23 -24
  44. package/dist/src/logic/neighbor-discovery/Handshaker.js.map +1 -1
  45. package/dist/src/logic/neighbor-discovery/NeighborFinder.d.ts +1 -1
  46. package/dist/src/logic/neighbor-discovery/NeighborFinder.js +1 -1
  47. package/dist/src/logic/neighbor-discovery/NeighborFinder.js.map +1 -1
  48. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.d.ts +3 -2
  49. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js +5 -5
  50. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js.map +1 -1
  51. package/dist/src/logic/neighbor-discovery/{NeighborUpdateManagerServer.d.ts → NeighborUpdateRpcLocal.d.ts} +6 -6
  52. package/dist/src/logic/neighbor-discovery/{NeighborUpdateManagerServer.js → NeighborUpdateRpcLocal.js} +9 -9
  53. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.js.map +1 -0
  54. package/dist/src/logic/neighbor-discovery/{RemoteNeighborUpdateManager.d.ts → NeighborUpdateRpcRemote.d.ts} +1 -1
  55. package/dist/src/logic/neighbor-discovery/{RemoteNeighborUpdateManager.js → NeighborUpdateRpcRemote.js} +5 -5
  56. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcRemote.js.map +1 -0
  57. package/dist/src/logic/propagation/Propagation.js +2 -2
  58. package/dist/src/logic/propagation/Propagation.js.map +1 -1
  59. package/dist/src/logic/proxy/{ProxyStreamConnectionClient.d.ts → ProxyClient.d.ts} +6 -9
  60. package/dist/src/logic/proxy/{ProxyStreamConnectionClient.js → ProxyClient.js} +23 -21
  61. package/dist/src/logic/proxy/ProxyClient.js.map +1 -0
  62. package/dist/src/logic/proxy/{ProxyStreamConnectionServer.d.ts → ProxyConnectionRpcLocal.d.ts} +5 -5
  63. package/dist/src/logic/proxy/{ProxyStreamConnectionServer.js → ProxyConnectionRpcLocal.js} +6 -6
  64. package/dist/src/logic/proxy/ProxyConnectionRpcLocal.js.map +1 -0
  65. package/dist/src/logic/proxy/{RemoteProxyServer.d.ts → ProxyConnectionRpcRemote.d.ts} +1 -1
  66. package/dist/src/logic/proxy/{RemoteProxyServer.js → ProxyConnectionRpcRemote.js} +4 -4
  67. package/dist/src/logic/proxy/ProxyConnectionRpcRemote.js.map +1 -0
  68. package/dist/src/logic/temporary-connection/{TemporaryConnectionRpcServer.d.ts → TemporaryConnectionRpcLocal.d.ts} +5 -4
  69. package/dist/src/logic/temporary-connection/{TemporaryConnectionRpcServer.js → TemporaryConnectionRpcLocal.js} +6 -6
  70. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.js.map +1 -0
  71. package/dist/src/logic/temporary-connection/{RemoteTemporaryConnectionRpcServer.d.ts → TemporaryConnectionRpcRemote.d.ts} +1 -1
  72. package/dist/src/logic/temporary-connection/{RemoteTemporaryConnectionRpcServer.js → TemporaryConnectionRpcRemote.js} +4 -4
  73. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcRemote.js.map +1 -0
  74. package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +0 -4
  75. package/dist/src/proto/packages/dht/protos/DhtRpc.js +1 -2
  76. package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
  77. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.d.ts +4 -4
  78. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.js +7 -7
  79. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.js.map +1 -1
  80. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.d.ts +10 -10
  81. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.js +7 -7
  82. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.js.map +1 -1
  83. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.server.d.ts +2 -2
  84. package/dist/test/benchmark/first-message.js +10 -13
  85. package/dist/test/benchmark/first-message.js.map +1 -1
  86. package/dist/test/utils/utils.d.ts +5 -5
  87. package/dist/test/utils/utils.js +14 -13
  88. package/dist/test/utils/utils.js.map +1 -1
  89. package/package.json +10 -8
  90. package/protos/NetworkRpc.proto +5 -5
  91. package/src/NetworkNode.ts +1 -1
  92. package/src/NetworkStack.ts +20 -62
  93. package/src/identifiers.ts +3 -3
  94. package/src/logic/{StreamNodeServer.ts → DeliveryRpcLocal.ts} +8 -7
  95. package/src/logic/{RemoteRandomGraphNode.ts → DeliveryRpcRemote.ts} +3 -3
  96. package/src/logic/{StreamPartEntryPointDiscovery.ts → EntryPointDiscovery.ts} +18 -42
  97. package/src/logic/ILayer0.ts +3 -6
  98. package/src/logic/NodeList.ts +12 -12
  99. package/src/logic/RandomGraphNode.ts +61 -62
  100. package/src/logic/StreamrNode.ts +59 -73
  101. package/src/logic/createRandomGraphNode.ts +28 -26
  102. package/src/logic/formStreamPartDeliveryServiceId.ts +5 -0
  103. package/src/logic/inspect/Inspector.ts +8 -7
  104. package/src/logic/neighbor-discovery/{HandshakerServer.ts → HandshakeRpcLocal.ts} +20 -20
  105. package/src/logic/neighbor-discovery/{RemoteHandshaker.ts → HandshakeRpcRemote.ts} +6 -5
  106. package/src/logic/neighbor-discovery/Handshaker.ts +38 -38
  107. package/src/logic/neighbor-discovery/NeighborFinder.ts +2 -2
  108. package/src/logic/neighbor-discovery/NeighborUpdateManager.ts +13 -10
  109. package/src/logic/neighbor-discovery/{NeighborUpdateManagerServer.ts → NeighborUpdateRpcLocal.ts} +15 -15
  110. package/src/logic/neighbor-discovery/{RemoteNeighborUpdateManager.ts → NeighborUpdateRpcRemote.ts} +2 -2
  111. package/src/logic/propagation/Propagation.ts +2 -2
  112. package/src/logic/proxy/{ProxyStreamConnectionClient.ts → ProxyClient.ts} +27 -27
  113. package/src/logic/proxy/{ProxyStreamConnectionServer.ts → ProxyConnectionRpcLocal.ts} +10 -11
  114. package/src/logic/proxy/{RemoteProxyServer.ts → ProxyConnectionRpcRemote.ts} +1 -1
  115. package/src/logic/temporary-connection/{TemporaryConnectionRpcServer.ts → TemporaryConnectionRpcLocal.ts} +11 -10
  116. package/src/logic/temporary-connection/{RemoteTemporaryConnectionRpcServer.ts → TemporaryConnectionRpcRemote.ts} +1 -1
  117. package/src/proto/packages/dht/protos/DhtRpc.ts +1 -6
  118. package/src/proto/packages/trackerless-network/protos/NetworkRpc.client.ts +8 -8
  119. package/src/proto/packages/trackerless-network/protos/NetworkRpc.server.ts +2 -2
  120. package/src/proto/packages/trackerless-network/protos/NetworkRpc.ts +14 -14
  121. package/test/benchmark/first-message.ts +10 -13
  122. package/test/end-to-end/inspect.test.ts +12 -12
  123. package/test/end-to-end/proxy-and-full-node.test.ts +13 -14
  124. package/test/end-to-end/proxy-connections.test.ts +9 -11
  125. package/test/end-to-end/proxy-key-exchange.test.ts +12 -13
  126. package/test/end-to-end/random-graph-with-real-connections.test.ts +7 -7
  127. package/test/end-to-end/webrtc-full-node-network.test.ts +8 -8
  128. package/test/end-to-end/websocket-full-node-network.test.ts +8 -10
  129. package/test/integration/{RemoteRandomGraphNode.test.ts → DeliveryRpcRemote.test.ts} +17 -14
  130. package/test/integration/{RemoteHandshaker.test.ts → HandshakeRpcRemote.test.ts} +10 -9
  131. package/test/integration/Handshakes.test.ts +23 -20
  132. package/test/integration/Inspect.test.ts +3 -2
  133. package/test/integration/{RemoteNeighborUpdateManager.test.ts → NeighborUpdateRpcRemote.test.ts} +12 -10
  134. package/test/integration/NetworkNode.test.ts +9 -8
  135. package/test/integration/NetworkRpc.test.ts +5 -7
  136. package/test/integration/NetworkStack.test.ts +13 -15
  137. package/test/integration/Propagation.test.ts +2 -2
  138. package/test/integration/RandomGraphNode-Layer1Node-Latencies.test.ts +10 -8
  139. package/test/integration/RandomGraphNode-Layer1Node.test.ts +17 -17
  140. package/test/integration/StreamrNode.test.ts +5 -3
  141. package/test/integration/joining-streams-on-offline-peers.test.ts +16 -18
  142. package/test/integration/stream-without-default-entrypoints.test.ts +11 -13
  143. package/test/unit/{StreamNodeServer.test.ts → DeliveryRpcLocal.test.ts} +8 -8
  144. package/test/unit/{StreamPartEntrypointDiscovery.test.ts → EntrypointDiscovery.test.ts} +23 -40
  145. package/test/unit/{HandshakerServer.test.ts → HandshakeRpcLocal.test.ts} +26 -24
  146. package/test/unit/Handshaker.test.ts +10 -8
  147. package/test/unit/Inspector.test.ts +4 -3
  148. package/test/unit/NeighborFinder.test.ts +5 -5
  149. package/test/unit/NodeList.test.ts +22 -13
  150. package/test/unit/{RemoteProxyServer.test.ts → ProxyConnectionRpcRemote.test.ts} +4 -4
  151. package/test/unit/RandomGraphNode.test.ts +6 -5
  152. package/test/unit/StreamMessageTranslator.test.ts +10 -9
  153. package/test/unit/StreamrNode.test.ts +8 -8
  154. package/test/utils/mock/MockLayer0.ts +7 -26
  155. package/test/utils/mock/MockLayer1.ts +3 -8
  156. package/test/utils/mock/MockNeighborFinder.ts +1 -2
  157. package/test/utils/mock/MockNeighborUpdateManager.ts +1 -2
  158. package/test/utils/mock/Transport.ts +2 -2
  159. package/test/utils/utils.ts +13 -12
  160. package/dist/src/logic/RemoteRandomGraphNode.js.map +0 -1
  161. package/dist/src/logic/StreamPartEntryPointDiscovery.js.map +0 -1
  162. package/dist/src/logic/neighbor-discovery/HandshakerServer.js.map +0 -1
  163. package/dist/src/logic/neighbor-discovery/NeighborUpdateManagerServer.js.map +0 -1
  164. package/dist/src/logic/neighbor-discovery/RemoteHandshaker.js.map +0 -1
  165. package/dist/src/logic/neighbor-discovery/RemoteNeighborUpdateManager.js.map +0 -1
  166. package/dist/src/logic/proxy/ProxyStreamConnectionClient.js.map +0 -1
  167. package/dist/src/logic/proxy/ProxyStreamConnectionServer.js.map +0 -1
  168. package/dist/src/logic/proxy/RemoteProxyServer.js.map +0 -1
  169. package/dist/src/logic/temporary-connection/RemoteTemporaryConnectionRpcServer.js.map +0 -1
  170. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcServer.js.map +0 -1
@@ -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,7 +71,7 @@ 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
76
  expect(proxiedNode.stack.getLayer0DhtNode().hasJoined()).toBe(false)
78
77
 
@@ -88,23 +87,23 @@ describe('proxy and full node', () => {
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
96
  expect(proxiedNode.stack.getLayer0DhtNode().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)),
@@ -118,11 +117,11 @@ describe('proxy and full node', () => {
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,
@@ -14,7 +14,7 @@ describe('random graph with real connections', () => {
14
14
  websocket: { host: '127.0.0.1', port: 12221, tls: false }
15
15
  }
16
16
 
17
- const randomGraphId = StreamPartIDUtils.parse('random-graph#0')
17
+ const streamPartId = StreamPartIDUtils.parse('random-graph#0')
18
18
  let epDhtNode: DhtNode
19
19
  let dhtNode1: DhtNode
20
20
  let dhtNode2: DhtNode
@@ -41,7 +41,7 @@ describe('random graph with real connections', () => {
41
41
 
42
42
  randomGraphNode1 = createRandomGraphNode(
43
43
  {
44
- randomGraphId,
44
+ streamPartId,
45
45
  layer1: epDhtNode,
46
46
  P2PTransport: epDhtNode.getTransport(),
47
47
  connectionLocker: epDhtNode.getTransport() as ConnectionManager,
@@ -49,28 +49,28 @@ describe('random graph with real connections', () => {
49
49
  }
50
50
  )
51
51
  randomGraphNode2 = createRandomGraphNode({
52
- randomGraphId,
52
+ streamPartId,
53
53
  layer1: dhtNode1,
54
54
  P2PTransport: dhtNode1.getTransport(),
55
55
  connectionLocker: dhtNode1.getTransport() as ConnectionManager,
56
56
  ownPeerDescriptor: dhtNode1.getPeerDescriptor()
57
57
  })
58
58
  randomGraphNode3 = createRandomGraphNode({
59
- randomGraphId,
59
+ streamPartId,
60
60
  layer1: dhtNode2,
61
61
  P2PTransport: dhtNode2.getTransport(),
62
62
  connectionLocker: dhtNode2.getTransport() as ConnectionManager,
63
63
  ownPeerDescriptor: dhtNode2.getPeerDescriptor()
64
64
  })
65
65
  randomGraphNode4 = createRandomGraphNode({
66
- randomGraphId,
66
+ streamPartId,
67
67
  layer1: dhtNode3,
68
68
  P2PTransport: dhtNode3.getTransport(),
69
69
  connectionLocker: dhtNode3.getTransport() as ConnectionManager,
70
70
  ownPeerDescriptor: dhtNode3.getPeerDescriptor()
71
71
  })
72
72
  randomGraphNode5 = createRandomGraphNode({
73
- randomGraphId,
73
+ streamPartId,
74
74
  layer1: dhtNode4,
75
75
  P2PTransport: dhtNode4.getTransport(),
76
76
  connectionLocker: dhtNode4.getTransport() as ConnectionManager,
@@ -144,7 +144,7 @@ describe('random graph with real connections', () => {
144
144
 
145
145
  const msg = createStreamMessage(
146
146
  JSON.stringify({ hello: 'WORLD' }),
147
- randomGraphId,
147
+ streamPartId,
148
148
  randomEthereumAddress()
149
149
  )
150
150
  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)
@@ -10,10 +10,9 @@ describe('Full node network with WebSocket connections only', () => {
10
10
 
11
11
  const NUM_OF_NODES = 48
12
12
  const epPeerDescriptor = createMockPeerDescriptor({
13
- nodeName: 'entrypoint',
14
13
  websocket: { host: '127.0.0.1', port: 15555, tls: false }
15
14
  })
16
- const randomGraphId = StreamPartIDUtils.parse('websocket-network#0')
15
+ const streamPartId = StreamPartIDUtils.parse('websocket-network#0')
17
16
 
18
17
  let entryPoint: NetworkStack
19
18
 
@@ -30,22 +29,21 @@ describe('Full node network with WebSocket connections only', () => {
30
29
  }
31
30
  })
32
31
  await entryPoint.start()
33
- entryPoint.getStreamrNode()!.setStreamPartEntryPoints(randomGraphId, [epPeerDescriptor])
34
- entryPoint.getStreamrNode()!.joinStreamPart(randomGraphId)
32
+ entryPoint.getStreamrNode()!.setStreamPartEntryPoints(streamPartId, [epPeerDescriptor])
33
+ entryPoint.getStreamrNode()!.joinStreamPart(streamPartId)
35
34
 
36
35
  await Promise.all(range(NUM_OF_NODES).map(async (i) => {
37
36
  const node = new NetworkStack({
38
37
  layer0: {
39
38
  entryPoints: [epPeerDescriptor],
40
39
  websocketPortRange: { min: 15556 + i, max: 15556 + i },
41
- nodeName: `${i}`,
42
40
  numberOfNodesPerKBucket: 4
43
41
  }
44
42
  })
45
43
  nodes.push(node)
46
44
  await node.start()
47
- node.getStreamrNode().setStreamPartEntryPoints(randomGraphId, [epPeerDescriptor])
48
- node.getStreamrNode().joinStreamPart(randomGraphId)
45
+ node.getStreamrNode().setStreamPartEntryPoints(streamPartId, [epPeerDescriptor])
46
+ node.getStreamrNode().joinStreamPart(streamPartId)
49
47
  }))
50
48
 
51
49
  }, 120000)
@@ -60,13 +58,13 @@ describe('Full node network with WebSocket connections only', () => {
60
58
  it('happy path', async () => {
61
59
  await Promise.all(nodes.map((node) =>
62
60
  waitForCondition(() => {
63
- return node.getStreamrNode()!.getNeighbors(randomGraphId).length >= 4
61
+ return node.getStreamrNode()!.getNeighbors(streamPartId).length >= 4
64
62
  }
65
63
  , 120000)
66
64
  ))
67
65
  let numOfMessagesReceived = 0
68
66
  const successIds: string[] = []
69
- nodes.map((node) => {
67
+ nodes.forEach((node) => {
70
68
  node.getStreamrNode()!.on('newMessage', () => {
71
69
  successIds.push(getNodeIdFromPeerDescriptor(node.getStreamrNode()!.getPeerDescriptor()))
72
70
  numOfMessagesReceived += 1
@@ -75,7 +73,7 @@ describe('Full node network with WebSocket connections only', () => {
75
73
 
76
74
  const msg = createStreamMessage(
77
75
  JSON.stringify({ hello: 'WORLD' }),
78
- randomGraphId,
76
+ streamPartId,
79
77
  randomEthereumAddress()
80
78
  )
81
79
  entryPoint.getStreamrNode()!.broadcast(msg)
@@ -5,24 +5,25 @@ import {
5
5
  SimulatorTransport,
6
6
  NodeType
7
7
  } from '@streamr/dht'
8
- import { RemoteRandomGraphNode } from '../../src/logic/RemoteRandomGraphNode'
9
- import { NetworkRpcClient } from '../../src/proto/packages/trackerless-network/protos/NetworkRpc.client'
8
+ import { DeliveryRpcRemote } from '../../src/logic/DeliveryRpcRemote'
9
+ import { DeliveryRpcClient } from '../../src/proto/packages/trackerless-network/protos/NetworkRpc.client'
10
10
  import {
11
11
  LeaveStreamPartNotice,
12
12
  StreamMessage
13
13
  } from '../../src/proto/packages/trackerless-network/protos/NetworkRpc'
14
14
  import { Empty } from '../../src/proto/google/protobuf/empty'
15
- import { ServerCallContext } from '@protobuf-ts/runtime-rpc'
16
15
  import { waitForCondition } from '@streamr/utils'
17
16
  import { toProtoRpcClient } from '@streamr/proto-rpc'
18
17
  import { createStreamMessage } from '../utils/utils'
19
18
  import { StreamPartIDUtils } from '@streamr/protocol'
20
19
  import { randomEthereumAddress } from '@streamr/test-utils'
21
20
 
22
- describe('RemoteRandomGraphNode', () => {
21
+ const STREAM_PART_ID = StreamPartIDUtils.parse('test-stream#0')
22
+
23
+ describe('DeliveryRpcRemote', () => {
23
24
  let mockServerRpc: ListeningRpcCommunicator
24
25
  let clientRpc: ListeningRpcCommunicator
25
- let remoteRandomGraphNode: RemoteRandomGraphNode
26
+ let rpcRemote: DeliveryRpcRemote
26
27
 
27
28
  const clientNode: PeerDescriptor = {
28
29
  kademliaId: new Uint8Array([1, 1, 1]),
@@ -39,11 +40,13 @@ describe('RemoteRandomGraphNode', () => {
39
40
  let mockConnectionManager1: SimulatorTransport
40
41
  let mockConnectionManager2: SimulatorTransport
41
42
 
42
- beforeEach(() => {
43
+ beforeEach(async () => {
43
44
  recvCounter = 0
44
45
  simulator = new Simulator()
45
46
  mockConnectionManager1 = new SimulatorTransport(serverNode, simulator)
47
+ await mockConnectionManager1.start()
46
48
  mockConnectionManager2 = new SimulatorTransport(clientNode, simulator)
49
+ await mockConnectionManager2.start()
47
50
 
48
51
  mockServerRpc = new ListeningRpcCommunicator('test', mockConnectionManager1)
49
52
  clientRpc = new ListeningRpcCommunicator('test', mockConnectionManager2)
@@ -51,7 +54,7 @@ describe('RemoteRandomGraphNode', () => {
51
54
  mockServerRpc.registerRpcNotification(
52
55
  StreamMessage,
53
56
  'sendStreamMessage',
54
- async (_msg: StreamMessage, _context: ServerCallContext): Promise<Empty> => {
57
+ async (): Promise<Empty> => {
55
58
  recvCounter += 1
56
59
  return Empty
57
60
  }
@@ -60,17 +63,17 @@ describe('RemoteRandomGraphNode', () => {
60
63
  mockServerRpc.registerRpcNotification(
61
64
  LeaveStreamPartNotice,
62
65
  'leaveStreamPartNotice',
63
- async (_msg: LeaveStreamPartNotice, _context: ServerCallContext): Promise<Empty> => {
66
+ async (): Promise<Empty> => {
64
67
  recvCounter += 1
65
68
  return Empty
66
69
  }
67
70
  )
68
71
 
69
- remoteRandomGraphNode = new RemoteRandomGraphNode(
72
+ rpcRemote = new DeliveryRpcRemote(
70
73
  clientNode,
71
74
  serverNode,
72
- 'test-stream',
73
- toProtoRpcClient(new NetworkRpcClient(clientRpc.getRpcClientTransport()))
75
+ STREAM_PART_ID,
76
+ toProtoRpcClient(new DeliveryRpcClient(clientRpc.getRpcClientTransport()))
74
77
  )
75
78
  })
76
79
 
@@ -85,16 +88,16 @@ describe('RemoteRandomGraphNode', () => {
85
88
  it('sendStreamMessage', async () => {
86
89
  const msg = createStreamMessage(
87
90
  JSON.stringify({ hello: 'WORLD' }),
88
- StreamPartIDUtils.parse('test-stream#0'),
91
+ STREAM_PART_ID,
89
92
  randomEthereumAddress()
90
93
  )
91
94
 
92
- await remoteRandomGraphNode.sendStreamMessage(msg)
95
+ await rpcRemote.sendStreamMessage(msg)
93
96
  await waitForCondition(() => recvCounter === 1)
94
97
  })
95
98
 
96
99
  it('leaveNotice', async () => {
97
- remoteRandomGraphNode.leaveStreamPartNotice()
100
+ rpcRemote.leaveStreamPartNotice()
98
101
  await waitForCondition(() => recvCounter === 1)
99
102
  })
100
103
 
@@ -2,7 +2,6 @@ import {
2
2
  StreamPartHandshakeRequest,
3
3
  StreamPartHandshakeResponse
4
4
  } from '../../src/proto/packages/trackerless-network/protos/NetworkRpc'
5
- import { ServerCallContext } from '@protobuf-ts/runtime-rpc'
6
5
  import {
7
6
  ListeningRpcCommunicator,
8
7
  NodeType,
@@ -14,12 +13,12 @@ import { toProtoRpcClient } from '@streamr/proto-rpc'
14
13
  import {
15
14
  HandshakeRpcClient,
16
15
  } from '../../src/proto/packages/trackerless-network/protos/NetworkRpc.client'
17
- import { RemoteHandshaker } from '../../src/logic/neighbor-discovery/RemoteHandshaker'
16
+ import { HandshakeRpcRemote } from '../../src/logic/neighbor-discovery/HandshakeRpcRemote'
18
17
 
19
- describe('RemoteHandshaker', () => {
18
+ describe('HandshakeRpcRemote', () => {
20
19
  let mockServerRpc: ListeningRpcCommunicator
21
20
  let clientRpc: ListeningRpcCommunicator
22
- let remoteHandshaker: RemoteHandshaker
21
+ let rpcRemote: HandshakeRpcRemote
23
22
 
24
23
  const clientNode: PeerDescriptor = {
25
24
  kademliaId: new Uint8Array([1, 1, 1]),
@@ -34,11 +33,13 @@ describe('RemoteHandshaker', () => {
34
33
  let mockConnectionManager1: SimulatorTransport
35
34
  let mockConnectionManager2: SimulatorTransport
36
35
 
37
- beforeEach(() => {
36
+ beforeEach(async () => {
38
37
  Simulator.useFakeTimers()
39
38
  simulator = new Simulator()
40
39
  mockConnectionManager1 = new SimulatorTransport(serverNode, simulator)
40
+ await mockConnectionManager1.start()
41
41
  mockConnectionManager2 = new SimulatorTransport(clientNode, simulator)
42
+ await mockConnectionManager2.start()
42
43
 
43
44
  mockServerRpc = new ListeningRpcCommunicator('test', mockConnectionManager1)
44
45
  clientRpc = new ListeningRpcCommunicator('test', mockConnectionManager2)
@@ -47,7 +48,7 @@ describe('RemoteHandshaker', () => {
47
48
  StreamPartHandshakeRequest,
48
49
  StreamPartHandshakeResponse,
49
50
  'handshake',
50
- async (msg: StreamPartHandshakeRequest, _context: ServerCallContext): Promise<StreamPartHandshakeResponse> => {
51
+ async (msg: StreamPartHandshakeRequest): Promise<StreamPartHandshakeResponse> => {
51
52
  const res: StreamPartHandshakeResponse = {
52
53
  requestId: msg.requestId,
53
54
  accepted: true
@@ -56,10 +57,10 @@ describe('RemoteHandshaker', () => {
56
57
  }
57
58
  )
58
59
 
59
- remoteHandshaker = new RemoteHandshaker(
60
+ rpcRemote = new HandshakeRpcRemote(
60
61
  clientNode,
61
62
  serverNode,
62
- 'test-stream',
63
+ 'test-stream-part',
63
64
  toProtoRpcClient(new HandshakeRpcClient(clientRpc.getRpcClientTransport()))
64
65
  )
65
66
  })
@@ -74,7 +75,7 @@ describe('RemoteHandshaker', () => {
74
75
  })
75
76
 
76
77
  it('handshake', async () => {
77
- const result = await remoteHandshaker.handshake([])
78
+ const result = await rpcRemote.handshake([])
78
79
  expect(result.accepted).toEqual(true)
79
80
  })
80
81
  })