@streamr/trackerless-network 0.0.1-tatum.5 → 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 (177) 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/EntryPointDiscovery.d.ts +35 -0
  16. package/dist/src/logic/EntryPointDiscovery.js +145 -0
  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/ILayer1.d.ts +2 -2
  20. package/dist/src/logic/NodeList.d.ts +10 -10
  21. package/dist/src/logic/NodeList.js +2 -2
  22. package/dist/src/logic/NodeList.js.map +1 -1
  23. package/dist/src/logic/RandomGraphNode.d.ts +8 -12
  24. package/dist/src/logic/RandomGraphNode.js +47 -46
  25. package/dist/src/logic/RandomGraphNode.js.map +1 -1
  26. package/dist/src/logic/StreamrNode.d.ts +9 -11
  27. package/dist/src/logic/StreamrNode.js +72 -75
  28. package/dist/src/logic/StreamrNode.js.map +1 -1
  29. package/dist/src/logic/createRandomGraphNode.d.ts +6 -1
  30. package/dist/src/logic/createRandomGraphNode.js +17 -23
  31. package/dist/src/logic/createRandomGraphNode.js.map +1 -1
  32. package/dist/src/logic/formStreamPartDeliveryServiceId.d.ts +2 -0
  33. package/dist/src/logic/formStreamPartDeliveryServiceId.js +8 -0
  34. package/dist/src/logic/formStreamPartDeliveryServiceId.js.map +1 -0
  35. package/dist/src/logic/inspect/Inspector.d.ts +3 -2
  36. package/dist/src/logic/inspect/Inspector.js +5 -5
  37. package/dist/src/logic/inspect/Inspector.js.map +1 -1
  38. package/dist/src/logic/neighbor-discovery/{HandshakerServer.d.ts → HandshakeRpcLocal.d.ts} +10 -10
  39. package/dist/src/logic/neighbor-discovery/{HandshakerServer.js → HandshakeRpcLocal.js} +13 -13
  40. package/dist/src/logic/neighbor-discovery/HandshakeRpcLocal.js.map +1 -0
  41. package/dist/src/logic/neighbor-discovery/{RemoteHandshaker.d.ts → HandshakeRpcRemote.d.ts} +1 -1
  42. package/dist/src/logic/neighbor-discovery/{RemoteHandshaker.js → HandshakeRpcRemote.js} +8 -7
  43. package/dist/src/logic/neighbor-discovery/HandshakeRpcRemote.js.map +1 -0
  44. package/dist/src/logic/neighbor-discovery/Handshaker.d.ts +8 -7
  45. package/dist/src/logic/neighbor-discovery/Handshaker.js +23 -24
  46. package/dist/src/logic/neighbor-discovery/Handshaker.js.map +1 -1
  47. package/dist/src/logic/neighbor-discovery/NeighborFinder.d.ts +1 -1
  48. package/dist/src/logic/neighbor-discovery/NeighborFinder.js +5 -5
  49. package/dist/src/logic/neighbor-discovery/NeighborFinder.js.map +1 -1
  50. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.d.ts +3 -2
  51. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js +7 -7
  52. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js.map +1 -1
  53. package/dist/src/logic/neighbor-discovery/{NeighborUpdateManagerServer.d.ts → NeighborUpdateRpcLocal.d.ts} +6 -6
  54. package/dist/src/logic/neighbor-discovery/{NeighborUpdateManagerServer.js → NeighborUpdateRpcLocal.js} +11 -11
  55. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.js.map +1 -0
  56. package/dist/src/logic/neighbor-discovery/{RemoteNeighborUpdateManager.d.ts → NeighborUpdateRpcRemote.d.ts} +1 -1
  57. package/dist/src/logic/neighbor-discovery/{RemoteNeighborUpdateManager.js → NeighborUpdateRpcRemote.js} +5 -5
  58. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcRemote.js.map +1 -0
  59. package/dist/src/logic/propagation/Propagation.js +2 -2
  60. package/dist/src/logic/propagation/Propagation.js.map +1 -1
  61. package/dist/src/logic/proxy/{ProxyStreamConnectionClient.d.ts → ProxyClient.d.ts} +8 -12
  62. package/dist/src/logic/proxy/{ProxyStreamConnectionClient.js → ProxyClient.js} +28 -29
  63. package/dist/src/logic/proxy/ProxyClient.js.map +1 -0
  64. package/dist/src/logic/proxy/{ProxyStreamConnectionServer.d.ts → ProxyConnectionRpcLocal.d.ts} +5 -7
  65. package/dist/src/logic/proxy/{ProxyStreamConnectionServer.js → ProxyConnectionRpcLocal.js} +6 -12
  66. package/dist/src/logic/proxy/ProxyConnectionRpcLocal.js.map +1 -0
  67. package/dist/src/logic/proxy/{RemoteProxyServer.d.ts → ProxyConnectionRpcRemote.d.ts} +1 -1
  68. package/dist/src/logic/proxy/{RemoteProxyServer.js → ProxyConnectionRpcRemote.js} +4 -4
  69. package/dist/src/logic/proxy/ProxyConnectionRpcRemote.js.map +1 -0
  70. package/dist/src/logic/temporary-connection/{TemporaryConnectionRpcServer.d.ts → TemporaryConnectionRpcLocal.d.ts} +5 -4
  71. package/dist/src/logic/temporary-connection/{TemporaryConnectionRpcServer.js → TemporaryConnectionRpcLocal.js} +6 -6
  72. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.js.map +1 -0
  73. package/dist/src/logic/temporary-connection/{RemoteTemporaryConnectionRpcServer.d.ts → TemporaryConnectionRpcRemote.d.ts} +1 -1
  74. package/dist/src/logic/temporary-connection/{RemoteTemporaryConnectionRpcServer.js → TemporaryConnectionRpcRemote.js} +4 -4
  75. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcRemote.js.map +1 -0
  76. package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +0 -4
  77. package/dist/src/proto/packages/dht/protos/DhtRpc.js +1 -2
  78. package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
  79. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.d.ts +4 -4
  80. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.js +7 -7
  81. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.js.map +1 -1
  82. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.d.ts +10 -10
  83. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.js +7 -7
  84. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.js.map +1 -1
  85. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.server.d.ts +2 -2
  86. package/dist/test/benchmark/first-message.js +10 -13
  87. package/dist/test/benchmark/first-message.js.map +1 -1
  88. package/dist/test/utils/utils.d.ts +5 -5
  89. package/dist/test/utils/utils.js +14 -14
  90. package/dist/test/utils/utils.js.map +1 -1
  91. package/package.json +10 -8
  92. package/protos/NetworkRpc.proto +5 -5
  93. package/src/NetworkNode.ts +1 -1
  94. package/src/NetworkStack.ts +20 -62
  95. package/src/identifiers.ts +3 -3
  96. package/src/logic/{StreamNodeServer.ts → DeliveryRpcLocal.ts} +8 -7
  97. package/src/logic/{RemoteRandomGraphNode.ts → DeliveryRpcRemote.ts} +3 -3
  98. package/src/logic/EntryPointDiscovery.ts +181 -0
  99. package/src/logic/ILayer0.ts +3 -6
  100. package/src/logic/ILayer1.ts +2 -5
  101. package/src/logic/NodeList.ts +12 -12
  102. package/src/logic/RandomGraphNode.ts +67 -69
  103. package/src/logic/StreamrNode.ts +78 -90
  104. package/src/logic/createRandomGraphNode.ts +28 -26
  105. package/src/logic/formStreamPartDeliveryServiceId.ts +5 -0
  106. package/src/logic/inspect/Inspector.ts +8 -7
  107. package/src/logic/neighbor-discovery/{HandshakerServer.ts → HandshakeRpcLocal.ts} +20 -20
  108. package/src/logic/neighbor-discovery/{RemoteHandshaker.ts → HandshakeRpcRemote.ts} +6 -5
  109. package/src/logic/neighbor-discovery/Handshaker.ts +38 -38
  110. package/src/logic/neighbor-discovery/NeighborFinder.ts +6 -6
  111. package/src/logic/neighbor-discovery/NeighborUpdateManager.ts +15 -12
  112. package/src/logic/neighbor-discovery/{NeighborUpdateManagerServer.ts → NeighborUpdateRpcLocal.ts} +17 -17
  113. package/src/logic/neighbor-discovery/{RemoteNeighborUpdateManager.ts → NeighborUpdateRpcRemote.ts} +2 -2
  114. package/src/logic/propagation/Propagation.ts +2 -2
  115. package/src/logic/proxy/{ProxyStreamConnectionClient.ts → ProxyClient.ts} +33 -37
  116. package/src/logic/proxy/{ProxyStreamConnectionServer.ts → ProxyConnectionRpcLocal.ts} +10 -19
  117. package/src/logic/proxy/{RemoteProxyServer.ts → ProxyConnectionRpcRemote.ts} +1 -1
  118. package/src/logic/temporary-connection/{TemporaryConnectionRpcServer.ts → TemporaryConnectionRpcLocal.ts} +11 -10
  119. package/src/logic/temporary-connection/{RemoteTemporaryConnectionRpcServer.ts → TemporaryConnectionRpcRemote.ts} +1 -1
  120. package/src/proto/packages/dht/protos/DhtRpc.ts +1 -6
  121. package/src/proto/packages/trackerless-network/protos/NetworkRpc.client.ts +8 -8
  122. package/src/proto/packages/trackerless-network/protos/NetworkRpc.server.ts +2 -2
  123. package/src/proto/packages/trackerless-network/protos/NetworkRpc.ts +14 -14
  124. package/test/benchmark/first-message.ts +10 -13
  125. package/test/end-to-end/inspect.test.ts +12 -12
  126. package/test/end-to-end/proxy-and-full-node.test.ts +13 -14
  127. package/test/end-to-end/proxy-connections.test.ts +10 -12
  128. package/test/end-to-end/proxy-key-exchange.test.ts +12 -13
  129. package/test/end-to-end/random-graph-with-real-connections.test.ts +7 -7
  130. package/test/end-to-end/webrtc-full-node-network.test.ts +8 -8
  131. package/test/end-to-end/websocket-full-node-network.test.ts +8 -10
  132. package/test/integration/{RemoteRandomGraphNode.test.ts → DeliveryRpcRemote.test.ts} +17 -14
  133. package/test/integration/{RemoteHandshaker.test.ts → HandshakeRpcRemote.test.ts} +10 -9
  134. package/test/integration/Handshakes.test.ts +23 -20
  135. package/test/integration/Inspect.test.ts +3 -2
  136. package/test/integration/{RemoteNeighborUpdateManager.test.ts → NeighborUpdateRpcRemote.test.ts} +12 -10
  137. package/test/integration/NetworkNode.test.ts +9 -8
  138. package/test/integration/NetworkRpc.test.ts +5 -7
  139. package/test/integration/NetworkStack.test.ts +13 -15
  140. package/test/integration/Propagation.test.ts +2 -2
  141. package/test/integration/RandomGraphNode-Layer1Node-Latencies.test.ts +10 -8
  142. package/test/integration/RandomGraphNode-Layer1Node.test.ts +17 -17
  143. package/test/integration/StreamrNode.test.ts +5 -3
  144. package/test/integration/joining-streams-on-offline-peers.test.ts +16 -18
  145. package/test/integration/stream-without-default-entrypoints.test.ts +11 -13
  146. package/test/unit/{StreamNodeServer.test.ts → DeliveryRpcLocal.test.ts} +8 -8
  147. package/test/unit/EntrypointDiscovery.test.ts +132 -0
  148. package/test/unit/{HandshakerServer.test.ts → HandshakeRpcLocal.test.ts} +26 -24
  149. package/test/unit/Handshaker.test.ts +10 -8
  150. package/test/unit/Inspector.test.ts +4 -3
  151. package/test/unit/NeighborFinder.test.ts +5 -5
  152. package/test/unit/NodeList.test.ts +22 -13
  153. package/test/unit/{RemoteProxyServer.test.ts → ProxyConnectionRpcRemote.test.ts} +4 -4
  154. package/test/unit/RandomGraphNode.test.ts +12 -11
  155. package/test/unit/StreamMessageTranslator.test.ts +10 -9
  156. package/test/unit/StreamrNode.test.ts +8 -8
  157. package/test/utils/mock/MockLayer0.ts +7 -26
  158. package/test/utils/mock/MockLayer1.ts +6 -13
  159. package/test/utils/mock/MockNeighborFinder.ts +1 -2
  160. package/test/utils/mock/MockNeighborUpdateManager.ts +1 -2
  161. package/test/utils/mock/Transport.ts +2 -2
  162. package/test/utils/utils.ts +13 -13
  163. package/dist/src/logic/RemoteRandomGraphNode.js.map +0 -1
  164. package/dist/src/logic/StreamPartEntryPointDiscovery.d.ts +0 -39
  165. package/dist/src/logic/StreamPartEntryPointDiscovery.js +0 -194
  166. package/dist/src/logic/StreamPartEntryPointDiscovery.js.map +0 -1
  167. package/dist/src/logic/neighbor-discovery/HandshakerServer.js.map +0 -1
  168. package/dist/src/logic/neighbor-discovery/NeighborUpdateManagerServer.js.map +0 -1
  169. package/dist/src/logic/neighbor-discovery/RemoteHandshaker.js.map +0 -1
  170. package/dist/src/logic/neighbor-discovery/RemoteNeighborUpdateManager.js.map +0 -1
  171. package/dist/src/logic/proxy/ProxyStreamConnectionClient.js.map +0 -1
  172. package/dist/src/logic/proxy/ProxyStreamConnectionServer.js.map +0 -1
  173. package/dist/src/logic/proxy/RemoteProxyServer.js.map +0 -1
  174. package/dist/src/logic/temporary-connection/RemoteTemporaryConnectionRpcServer.js.map +0 -1
  175. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcServer.js.map +0 -1
  176. package/src/logic/StreamPartEntryPointDiscovery.ts +0 -240
  177. package/test/unit/StreamPartEntrypointDiscovery.test.ts +0 -164
@@ -8,25 +8,24 @@ import {
8
8
  StreamMessageType
9
9
  } from '../../proto/packages/trackerless-network/protos/NetworkRpc'
10
10
  import { IProxyConnectionRpc } from '../../proto/packages/trackerless-network/protos/NetworkRpc.server'
11
- import { RemoteRandomGraphNode } from '../RemoteRandomGraphNode'
12
- import { ListeningRpcCommunicator, PeerDescriptor } from '@streamr/dht'
11
+ import { DeliveryRpcRemote } from '../DeliveryRpcRemote'
12
+ import { DhtCallContext, ListeningRpcCommunicator, PeerDescriptor } from '@streamr/dht'
13
13
  import { toProtoRpcClient } from '@streamr/proto-rpc'
14
- import { NetworkRpcClient } from '../../proto/packages/trackerless-network/protos/NetworkRpc.client'
14
+ import { DeliveryRpcClient } from '../../proto/packages/trackerless-network/protos/NetworkRpc.client'
15
15
  import { EventEmitter } from 'eventemitter3'
16
16
  import { EthereumAddress, Logger, binaryToHex, toEthereumAddress } from '@streamr/utils'
17
17
  import { StreamPartID } from '@streamr/protocol'
18
18
  import { NodeID, getNodeIdFromPeerDescriptor } from '../../identifiers'
19
- import { DhtCallContext } from '@streamr/dht/src/exports'
20
19
 
21
20
  const logger = new Logger(module)
22
21
 
23
22
  interface ProxyConnection {
24
23
  direction: ProxyDirection // Direction is from the client's point of view
25
24
  userId: EthereumAddress
26
- remote: RemoteRandomGraphNode
25
+ remote: DeliveryRpcRemote
27
26
  }
28
27
 
29
- interface ProxyStreamConnectionServerConfig {
28
+ interface ProxyConnectionRpcLocalConfig {
30
29
  ownPeerDescriptor: PeerDescriptor
31
30
  streamPartId: StreamPartID
32
31
  rpcCommunicator: ListeningRpcCommunicator
@@ -36,12 +35,12 @@ export interface Events {
36
35
  newConnection: (nodeId: NodeID) => void
37
36
  }
38
37
 
39
- export class ProxyStreamConnectionServer extends EventEmitter<Events> implements IProxyConnectionRpc {
38
+ export class ProxyConnectionRpcLocal extends EventEmitter<Events> implements IProxyConnectionRpc {
40
39
 
41
- private readonly config: ProxyStreamConnectionServerConfig
40
+ private readonly config: ProxyConnectionRpcLocalConfig
42
41
  private readonly connections: Map<NodeID, ProxyConnection> = new Map()
43
42
 
44
- constructor(config: ProxyStreamConnectionServerConfig) {
43
+ constructor(config: ProxyConnectionRpcLocalConfig) {
45
44
  super()
46
45
  this.config = config
47
46
  this.config.rpcCommunicator.registerRpcMethod(ProxyConnectionRequest, ProxyConnectionResponse, 'requestConnection',
@@ -66,14 +65,6 @@ export class ProxyStreamConnectionServer extends EventEmitter<Events> implements
66
65
  this.removeAllListeners()
67
66
  }
68
67
 
69
- getConnectedNodeIds(): NodeID[] {
70
- return Array.from(this.connections.keys())
71
- }
72
-
73
- getConnections(): ProxyConnection[] {
74
- return Array.from(this.connections.values())
75
- }
76
-
77
68
  getPropagationTargets(msg: StreamMessage): NodeID[] {
78
69
  if (msg.messageType === StreamMessageType.GROUP_KEY_REQUEST) {
79
70
  try {
@@ -103,11 +94,11 @@ export class ProxyStreamConnectionServer extends EventEmitter<Events> implements
103
94
  this.connections.set(senderId, {
104
95
  direction: request.direction,
105
96
  userId: toEthereumAddress(binaryToHex(request.userId, true)),
106
- remote: new RemoteRandomGraphNode(
97
+ remote: new DeliveryRpcRemote(
107
98
  this.config.ownPeerDescriptor,
108
99
  senderPeerDescriptor,
109
100
  this.config.streamPartId,
110
- toProtoRpcClient(new NetworkRpcClient(this.config.rpcCommunicator.getRpcClientTransport()))
101
+ toProtoRpcClient(new DeliveryRpcClient(this.config.rpcCommunicator.getRpcClientTransport()))
111
102
  )
112
103
  })
113
104
  const response: ProxyConnectionResponse = {
@@ -5,7 +5,7 @@ import { IProxyConnectionRpcClient } from '../../proto/packages/trackerless-netw
5
5
 
6
6
  const logger = new Logger(module)
7
7
 
8
- export class RemoteProxyServer extends Remote<IProxyConnectionRpcClient> {
8
+ export class ProxyConnectionRpcRemote extends Remote<IProxyConnectionRpcClient> {
9
9
 
10
10
  async requestConnection(direction: ProxyDirection, userId: EthereumAddress): Promise<boolean> {
11
11
  const request: ProxyConnectionRequest = {
@@ -2,25 +2,26 @@ import { ServerCallContext } from '@protobuf-ts/runtime-rpc'
2
2
  import { TemporaryConnectionRequest, TemporaryConnectionResponse } from '../../proto/packages/trackerless-network/protos/NetworkRpc'
3
3
  import { ITemporaryConnectionRpc } from '../../proto/packages/trackerless-network/protos/NetworkRpc.server'
4
4
  import { DhtCallContext, ListeningRpcCommunicator } from '@streamr/dht'
5
- import { NetworkRpcClient } from '../../proto/packages/trackerless-network/protos/NetworkRpc.client'
5
+ import { DeliveryRpcClient } from '../../proto/packages/trackerless-network/protos/NetworkRpc.client'
6
6
  import { NodeList } from '../NodeList'
7
7
  import { toProtoRpcClient } from '@streamr/proto-rpc'
8
- import { RemoteRandomGraphNode } from '../RemoteRandomGraphNode'
8
+ import { DeliveryRpcRemote } from '../DeliveryRpcRemote'
9
9
  import { PeerDescriptor } from '../../proto/packages/dht/protos/DhtRpc'
10
10
  import { getNodeIdFromPeerDescriptor } from '../../identifiers'
11
+ import { StreamPartID } from '@streamr/protocol'
11
12
 
12
- interface TemporaryConnectionRpcServerConfig {
13
- randomGraphId: string
13
+ interface TemporaryConnectionRpcLocalConfig {
14
+ streamPartId: StreamPartID
14
15
  rpcCommunicator: ListeningRpcCommunicator
15
16
  ownPeerDescriptor: PeerDescriptor
16
17
  }
17
18
 
18
- export class TemporaryConnectionRpcServer implements ITemporaryConnectionRpc {
19
+ export class TemporaryConnectionRpcLocal implements ITemporaryConnectionRpc {
19
20
 
20
- private readonly config: TemporaryConnectionRpcServerConfig
21
+ private readonly config: TemporaryConnectionRpcLocalConfig
21
22
  private readonly temporaryNodes: NodeList
22
23
 
23
- constructor(config: TemporaryConnectionRpcServerConfig) {
24
+ constructor(config: TemporaryConnectionRpcLocalConfig) {
24
25
  this.config = config
25
26
  this.temporaryNodes = new NodeList(getNodeIdFromPeerDescriptor(config.ownPeerDescriptor), 10)
26
27
  }
@@ -38,11 +39,11 @@ export class TemporaryConnectionRpcServer implements ITemporaryConnectionRpc {
38
39
  context: ServerCallContext
39
40
  ): Promise<TemporaryConnectionResponse> {
40
41
  const sender = (context as DhtCallContext).incomingSourceDescriptor!
41
- const remote = new RemoteRandomGraphNode(
42
+ const remote = new DeliveryRpcRemote(
42
43
  this.config.ownPeerDescriptor,
43
44
  sender,
44
- this.config.randomGraphId,
45
- toProtoRpcClient(new NetworkRpcClient(this.config.rpcCommunicator.getRpcClientTransport()))
45
+ this.config.streamPartId,
46
+ toProtoRpcClient(new DeliveryRpcClient(this.config.rpcCommunicator.getRpcClientTransport()))
46
47
  )
47
48
  this.temporaryNodes.add(remote)
48
49
  return {
@@ -5,7 +5,7 @@ import { ITemporaryConnectionRpcClient } from '../../proto/packages/trackerless-
5
5
 
6
6
  const logger = new Logger(module)
7
7
 
8
- export class RemoteTemporaryConnectionRpcServer extends Remote<ITemporaryConnectionRpcClient> {
8
+ export class TemporaryConnectionRpcRemote extends Remote<ITemporaryConnectionRpcClient> {
9
9
 
10
10
  async openConnection(): Promise<boolean> {
11
11
  try {
@@ -231,10 +231,6 @@ export interface PeerDescriptor {
231
231
  * @generated from protobuf field: optional uint32 region = 7;
232
232
  */
233
233
  region?: number;
234
- /**
235
- * @generated from protobuf field: optional string nodeName = 8;
236
- */
237
- nodeName?: string;
238
234
  }
239
235
  /**
240
236
  * @generated from protobuf message dht.ConnectivityMethod
@@ -972,8 +968,7 @@ class PeerDescriptor$Type extends MessageType$<PeerDescriptor> {
972
968
  { no: 4, name: "tcp", kind: "message", T: () => ConnectivityMethod },
973
969
  { no: 5, name: "websocket", kind: "message", T: () => ConnectivityMethod },
974
970
  { no: 6, name: "openInternet", kind: "scalar", opt: true, T: 8 /*ScalarType.BOOL*/ },
975
- { no: 7, name: "region", kind: "scalar", opt: true, T: 13 /*ScalarType.UINT32*/ },
976
- { no: 8, name: "nodeName", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ }
971
+ { no: 7, name: "region", kind: "scalar", opt: true, T: 13 /*ScalarType.UINT32*/ }
977
972
  ]);
978
973
  }
979
974
  }
@@ -15,7 +15,7 @@ import type { ProxyConnectionResponse } from "./NetworkRpc";
15
15
  import type { ProxyConnectionRequest } from "./NetworkRpc";
16
16
  import type { RpcTransport } from "@protobuf-ts/runtime-rpc";
17
17
  import type { ServiceInfo } from "@protobuf-ts/runtime-rpc";
18
- import { NetworkRpc } from "./NetworkRpc";
18
+ import { DeliveryRpc } from "./NetworkRpc";
19
19
  import type { LeaveStreamPartNotice } from "./NetworkRpc";
20
20
  import { stackIntercept } from "@protobuf-ts/runtime-rpc";
21
21
  import type { Empty } from "../../../google/protobuf/empty";
@@ -23,9 +23,9 @@ import type { StreamMessage } from "./NetworkRpc";
23
23
  import type { UnaryCall } from "@protobuf-ts/runtime-rpc";
24
24
  import type { RpcOptions } from "@protobuf-ts/runtime-rpc";
25
25
  /**
26
- * @generated from protobuf service NetworkRpc
26
+ * @generated from protobuf service DeliveryRpc
27
27
  */
28
- export interface INetworkRpcClient {
28
+ export interface IDeliveryRpcClient {
29
29
  /**
30
30
  * @generated from protobuf rpc: sendStreamMessage(StreamMessage) returns (google.protobuf.Empty);
31
31
  */
@@ -36,12 +36,12 @@ export interface INetworkRpcClient {
36
36
  leaveStreamPartNotice(input: LeaveStreamPartNotice, options?: RpcOptions): UnaryCall<LeaveStreamPartNotice, Empty>;
37
37
  }
38
38
  /**
39
- * @generated from protobuf service NetworkRpc
39
+ * @generated from protobuf service DeliveryRpc
40
40
  */
41
- export class NetworkRpcClient implements INetworkRpcClient, ServiceInfo {
42
- typeName = NetworkRpc.typeName;
43
- methods = NetworkRpc.methods;
44
- options = NetworkRpc.options;
41
+ export class DeliveryRpcClient implements IDeliveryRpcClient, ServiceInfo {
42
+ typeName = DeliveryRpc.typeName;
43
+ methods = DeliveryRpc.methods;
44
+ options = DeliveryRpc.options;
45
45
  constructor(private readonly _transport: RpcTransport) {
46
46
  }
47
47
  /**
@@ -14,9 +14,9 @@ import { Empty } from "../../../google/protobuf/empty";
14
14
  import { StreamMessage } from "./NetworkRpc";
15
15
  import { ServerCallContext } from "@protobuf-ts/runtime-rpc";
16
16
  /**
17
- * @generated from protobuf service NetworkRpc
17
+ * @generated from protobuf service DeliveryRpc
18
18
  */
19
- export interface INetworkRpc<T = ServerCallContext> {
19
+ export interface IDeliveryRpc<T = ServerCallContext> {
20
20
  /**
21
21
  * @generated from protobuf rpc: sendStreamMessage(StreamMessage) returns (google.protobuf.Empty);
22
22
  */
@@ -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
  ]);
@@ -4,10 +4,10 @@ import { 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
12
  import { ILayer1 } from '../../src/logic/ILayer1'
13
13
  import { RandomGraphNode } from '../../src/logic/RandomGraphNode'
@@ -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
 
@@ -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
  }
@@ -140,9 +137,9 @@ run().then(() => {
140
137
  console.log(foundData)
141
138
  console.log(currentNode.stack.getLayer0DhtNode().getKBucketPeers().length)
142
139
  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())
140
+ const streamPartDelivery = currentNode.stack.getStreamrNode().getStreamPartDelivery(streamParts[0])! as { layer1: ILayer1, node: RandomGraphNode }
141
+ console.log(streamPartDelivery.layer1.getKBucketPeers())
142
+ console.log(streamPartDelivery.node.getTargetNeighborIds())
146
143
  console.log(nodes[nodes.length - 1])
147
144
  if (publishInterval) {
148
145
  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,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
45
- return client.hasProxyConnection(proxyNodeId, direction)
44
+ const client = (proxiedNode.stack.getStreamrNode()!.getStreamPartDelivery(STREAM_PART_ID) as { client: ProxyClient }).client
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()],