@streamr/trackerless-network 100.0.0-testnet-three.1 → 100.0.0-testnet-three.3

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 (52) hide show
  1. package/dist/src/logic/Layer1Node.d.ts +2 -2
  2. package/dist/src/logic/RandomGraphNode.d.ts +5 -5
  3. package/dist/src/logic/RandomGraphNode.js +13 -13
  4. package/dist/src/logic/RandomGraphNode.js.map +1 -1
  5. package/dist/src/logic/StreamrNode.d.ts +1 -1
  6. package/dist/src/logic/StreamrNode.js +1 -1
  7. package/dist/src/logic/StreamrNode.js.map +1 -1
  8. package/dist/src/logic/createRandomGraphNode.d.ts +1 -1
  9. package/dist/src/logic/createRandomGraphNode.js +6 -5
  10. package/dist/src/logic/createRandomGraphNode.js.map +1 -1
  11. package/dist/src/logic/inspect/InspectSession.d.ts +1 -0
  12. package/dist/src/logic/inspect/InspectSession.js +3 -0
  13. package/dist/src/logic/inspect/InspectSession.js.map +1 -1
  14. package/dist/src/logic/inspect/Inspector.js +1 -1
  15. package/dist/src/logic/inspect/Inspector.js.map +1 -1
  16. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.d.ts +3 -2
  17. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js +1 -0
  18. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js.map +1 -1
  19. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.d.ts +3 -2
  20. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.js +5 -4
  21. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.js.map +1 -1
  22. package/dist/src/logic/proxy/ProxyClient.js +8 -6
  23. package/dist/src/logic/proxy/ProxyClient.js.map +1 -1
  24. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.d.ts +1 -0
  25. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.js +3 -0
  26. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.js.map +1 -1
  27. package/dist/test/utils/utils.d.ts +1 -2
  28. package/dist/test/utils/utils.js +2 -7
  29. package/dist/test/utils/utils.js.map +1 -1
  30. package/package.json +6 -6
  31. package/src/logic/Layer1Node.ts +2 -2
  32. package/src/logic/RandomGraphNode.ts +16 -16
  33. package/src/logic/StreamrNode.ts +2 -2
  34. package/src/logic/createRandomGraphNode.ts +7 -6
  35. package/src/logic/inspect/InspectSession.ts +4 -0
  36. package/src/logic/inspect/Inspector.ts +1 -1
  37. package/src/logic/neighbor-discovery/NeighborUpdateManager.ts +4 -2
  38. package/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.ts +8 -6
  39. package/src/logic/proxy/ProxyClient.ts +14 -7
  40. package/src/logic/temporary-connection/TemporaryConnectionRpcLocal.ts +4 -0
  41. package/test/end-to-end/random-graph-with-real-connections.test.ts +4 -6
  42. package/test/integration/NetworkNode.test.ts +4 -9
  43. package/test/integration/StreamrNode.test.ts +4 -16
  44. package/test/integration/joining-streams-on-offline-peers.test.ts +7 -31
  45. package/test/integration/stream-without-default-entrypoints.test.ts +2 -6
  46. package/test/unit/InspectSession.test.ts +3 -4
  47. package/test/unit/Inspector.test.ts +3 -3
  48. package/test/unit/NeighborFinder.test.ts +3 -3
  49. package/test/unit/NeighborUpdateRpcLocal.test.ts +14 -10
  50. package/test/unit/NodeList.test.ts +4 -3
  51. package/test/unit/RandomGraphNode.test.ts +5 -5
  52. package/test/utils/utils.ts +2 -8
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createNetworkNodeWithSimulator = exports.createMockHandshakeRpcRemote = exports.createMockDeliveryRpcRemote = exports.createMockPeerDescriptor = exports.createRandomNodeId = exports.createStreamMessage = exports.createMockRandomGraphNodeAndDhtNode = exports.mockConnectionLocker = void 0;
4
- const crypto_1 = require("crypto");
3
+ exports.createNetworkNodeWithSimulator = exports.createMockHandshakeRpcRemote = exports.createMockDeliveryRpcRemote = exports.createMockPeerDescriptor = exports.createStreamMessage = exports.createMockRandomGraphNodeAndDhtNode = exports.mockConnectionLocker = void 0;
5
4
  const dht_1 = require("@streamr/dht");
6
5
  const NetworkRpc_1 = require("../../src/proto/packages/trackerless-network/protos/NetworkRpc");
7
6
  const DeliveryRpcRemote_1 = require("../../src/logic/DeliveryRpcRemote");
@@ -61,14 +60,10 @@ const createStreamMessage = (content, streamPartId, publisherId, timestamp, sequ
61
60
  return msg;
62
61
  };
63
62
  exports.createStreamMessage = createStreamMessage;
64
- const createRandomNodeId = () => {
65
- return (0, dht_1.getDhtAddressFromRaw)((0, crypto_1.randomBytes)(10));
66
- };
67
- exports.createRandomNodeId = createRandomNodeId;
68
63
  const createMockPeerDescriptor = (opts) => {
69
64
  return {
70
65
  ...opts,
71
- nodeId: (0, dht_1.getRawFromDhtAddress)((0, exports.createRandomNodeId)()),
66
+ nodeId: (0, dht_1.getRawFromDhtAddress)((0, dht_1.createRandomDhtAddress)()),
72
67
  type: dht_1.NodeType.NODEJS,
73
68
  region: (0, dht_1.getRandomRegion)()
74
69
  };
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../test/utils/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../test/utils/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@streamr/trackerless-network",
3
- "version": "100.0.0-testnet-three.1",
3
+ "version": "100.0.0-testnet-three.3",
4
4
  "description": "Minimal and extendable implementation of the Streamr Network node.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -30,11 +30,11 @@
30
30
  "dependencies": {
31
31
  "@protobuf-ts/runtime": "^2.8.2",
32
32
  "@protobuf-ts/runtime-rpc": "^2.8.2",
33
- "@streamr/dht": "100.0.0-testnet-three.1",
34
- "@streamr/proto-rpc": "100.0.0-testnet-three.1",
35
- "@streamr/protocol": "100.0.0-testnet-three.1",
36
- "@streamr/test-utils": "100.0.0-testnet-three.1",
37
- "@streamr/utils": "100.0.0-testnet-three.1",
33
+ "@streamr/dht": "100.0.0-testnet-three.3",
34
+ "@streamr/proto-rpc": "100.0.0-testnet-three.3",
35
+ "@streamr/protocol": "100.0.0-testnet-three.3",
36
+ "@streamr/test-utils": "100.0.0-testnet-three.3",
37
+ "@streamr/utils": "100.0.0-testnet-three.3",
38
38
  "eventemitter3": "^5.0.0",
39
39
  "lodash": "^4.17.21",
40
40
  "uuid": "^9.0.1",
@@ -1,9 +1,9 @@
1
1
  import { DhtAddress, PeerDescriptor } from '@streamr/dht'
2
2
 
3
3
  export interface Layer1NodeEvents {
4
- newContact: (peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => void
4
+ contactAdded: (peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => void
5
5
  contactRemoved: (peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => void
6
- newRandomContact: (peerDescriptor: PeerDescriptor, randomPeers: PeerDescriptor[]) => void
6
+ randomContactAdded: (peerDescriptor: PeerDescriptor, randomPeers: PeerDescriptor[]) => void
7
7
  randomContactRemoved: (peerDescriptor: PeerDescriptor, randomPeers: PeerDescriptor[]) => void
8
8
  }
9
9
 
@@ -56,7 +56,7 @@ export interface StrictRandomGraphNodeConfig {
56
56
  neighborUpdateManager: NeighborUpdateManager
57
57
  propagation: Propagation
58
58
  rpcCommunicator: ListeningRpcCommunicator
59
- neighborCount: number
59
+ neighborTargetCount: number
60
60
  inspector: Inspector
61
61
  temporaryConnectionRpcLocal: TemporaryConnectionRpcLocal
62
62
  isLocalNodeEntryPoint: () => boolean
@@ -115,26 +115,26 @@ export class RandomGraphNode extends EventEmitter<Events> {
115
115
  this.registerDefaultServerMethods()
116
116
  addManagedEventListener<any, any>(
117
117
  this.config.layer1Node as any,
118
- 'newContact',
119
- (_peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => this.newContact(closestPeers),
118
+ 'contactAdded',
119
+ (_peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => this.onContactAdded(closestPeers),
120
120
  this.abortController.signal
121
121
  )
122
122
  addManagedEventListener<any, any>(
123
123
  this.config.layer1Node as any,
124
124
  'contactRemoved',
125
- (_peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => this.removedContact(closestPeers),
125
+ (_peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => this.onContactRemoved(closestPeers),
126
126
  this.abortController.signal
127
127
  )
128
128
  addManagedEventListener<any, any>(
129
129
  this.config.layer1Node as any,
130
- 'newRandomContact',
131
- (_peerDescriptor: PeerDescriptor, randomPeers: PeerDescriptor[]) => this.newRandomContact(randomPeers),
130
+ 'randomContactAdded',
131
+ (_peerDescriptor: PeerDescriptor, randomPeers: PeerDescriptor[]) => this.onRandomContactAdded(randomPeers),
132
132
  this.abortController.signal
133
133
  )
134
134
  addManagedEventListener<any, any>(
135
135
  this.config.layer1Node as any,
136
136
  'randomContactRemoved',
137
- (_peerDescriptor: PeerDescriptor, randomPeers: PeerDescriptor[]) => this.removedRandomContact(randomPeers),
137
+ (_peerDescriptor: PeerDescriptor, randomPeers: PeerDescriptor[]) => this.onRandomContactRemoved(randomPeers),
138
138
  this.abortController.signal
139
139
  )
140
140
  addManagedEventListener<any, any>(
@@ -162,7 +162,7 @@ export class RandomGraphNode extends EventEmitter<Events> {
162
162
  }
163
163
  const candidates = this.getNeighborCandidatesFromLayer1()
164
164
  if (candidates.length > 0) {
165
- this.newContact(candidates)
165
+ this.onContactAdded(candidates)
166
166
  }
167
167
  this.config.neighborFinder.start()
168
168
  await this.config.neighborUpdateManager.start()
@@ -179,18 +179,18 @@ export class RandomGraphNode extends EventEmitter<Events> {
179
179
  (req: TemporaryConnectionRequest, context) => this.config.temporaryConnectionRpcLocal.closeConnection(req, context))
180
180
  }
181
181
 
182
- private newContact(closestNodes: PeerDescriptor[]): void {
182
+ private onContactAdded(closestNodes: PeerDescriptor[]): void {
183
183
  logger.trace(`New nearby contact found`)
184
184
  if (this.isStopped()) {
185
185
  return
186
186
  }
187
187
  this.updateNearbyNodeView(closestNodes)
188
- if (this.config.neighbors.size() < this.config.neighborCount) {
188
+ if (this.config.neighbors.size() < this.config.neighborTargetCount) {
189
189
  this.config.neighborFinder.start()
190
190
  }
191
191
  }
192
192
 
193
- private removedContact(closestNodes: PeerDescriptor[]): void {
193
+ private onContactRemoved(closestNodes: PeerDescriptor[]): void {
194
194
  logger.trace(`Nearby contact removed`)
195
195
  if (this.isStopped()) {
196
196
  return
@@ -225,7 +225,7 @@ export class RandomGraphNode extends EventEmitter<Events> {
225
225
  }
226
226
  }
227
227
 
228
- private newRandomContact(randomNodes: PeerDescriptor[]): void {
228
+ private onRandomContactAdded(randomNodes: PeerDescriptor[]): void {
229
229
  if (this.isStopped()) {
230
230
  return
231
231
  }
@@ -238,12 +238,12 @@ export class RandomGraphNode extends EventEmitter<Events> {
238
238
  this.config.rpcRequestTimeout
239
239
  )
240
240
  ))
241
- if (this.config.neighbors.size() < this.config.neighborCount) {
241
+ if (this.config.neighbors.size() < this.config.neighborTargetCount) {
242
242
  this.config.neighborFinder.start()
243
243
  }
244
244
  }
245
245
 
246
- private removedRandomContact(randomNodes: PeerDescriptor[]): void {
246
+ private onRandomContactRemoved(randomNodes: PeerDescriptor[]): void {
247
247
  logger.trace(`New nearby contact found`)
248
248
  if (this.isStopped()) {
249
249
  return
@@ -311,7 +311,8 @@ export class RandomGraphNode extends EventEmitter<Events> {
311
311
  markAndCheckDuplicate(this.duplicateDetectors, msg.messageId!, msg.previousMessageRef)
312
312
  }
313
313
  this.emit('message', msg)
314
- this.config.propagation.feedUnseenMessage(msg, this.getPropagationTargets(msg), previousNode ?? null)
314
+ const skipBackPropagation = previousNode !== undefined && !this.config.temporaryConnectionRpcLocal.hasNode(previousNode)
315
+ this.config.propagation.feedUnseenMessage(msg, this.getPropagationTargets(msg), skipBackPropagation ? previousNode : null)
315
316
  }
316
317
 
317
318
  inspect(peerDescriptor: PeerDescriptor): Promise<boolean> {
@@ -323,7 +324,6 @@ export class RandomGraphNode extends EventEmitter<Events> {
323
324
  if (this.config.proxyConnectionRpcLocal) {
324
325
  propagationTargets = propagationTargets.concat(this.config.proxyConnectionRpcLocal.getPropagationTargets(msg))
325
326
  }
326
- propagationTargets = propagationTargets.filter((target) => !this.config.inspector.isInspected(target ))
327
327
  propagationTargets = propagationTargets.concat(this.config.temporaryConnectionRpcLocal.getNodes().getIds())
328
328
  return propagationTargets
329
329
  }
@@ -52,7 +52,7 @@ interface Metrics extends MetricsDefinition {
52
52
 
53
53
  export interface StreamrNodeConfig {
54
54
  metricsContext?: MetricsContext
55
- streamPartitionNeighborCount?: number
55
+ streamPartitionNeighborTargetCount?: number
56
56
  streamPartitionMinPropagationTargets?: number
57
57
  acceptProxyConnections?: boolean
58
58
  rpcRequestTimeout?: number
@@ -222,7 +222,7 @@ export class StreamrNode extends EventEmitter<Events> {
222
222
  connectionLocker: this.connectionLocker!,
223
223
  localPeerDescriptor: this.layer0Node!.getLocalPeerDescriptor(),
224
224
  minPropagationTargets: this.config.streamPartitionMinPropagationTargets,
225
- neighborCount: this.config.streamPartitionNeighborCount,
225
+ neighborTargetCount: this.config.streamPartitionNeighborTargetCount,
226
226
  acceptProxyConnections: this.config.acceptProxyConnections,
227
227
  rpcRequestTimeout: this.config.rpcRequestTimeout,
228
228
  isLocalNodeEntryPoint
@@ -14,7 +14,7 @@ import { formStreamPartDeliveryServiceId } from './formStreamPartDeliveryService
14
14
 
15
15
  type RandomGraphNodeConfig = MarkOptional<StrictRandomGraphNodeConfig,
16
16
  'nearbyNodeView' | 'randomNodeView' | 'neighbors' | 'propagation'
17
- | 'handshaker' | 'neighborFinder' | 'neighborUpdateManager' | 'neighborCount'
17
+ | 'handshaker' | 'neighborFinder' | 'neighborUpdateManager' | 'neighborTargetCount'
18
18
  | 'rpcCommunicator' | 'nodeViewSize'
19
19
  | 'inspector' | 'temporaryConnectionRpcLocal'> & {
20
20
  maxContactCount?: number
@@ -29,7 +29,7 @@ const createConfigWithDefaults = (config: RandomGraphNodeConfig): StrictRandomGr
29
29
  formStreamPartDeliveryServiceId(config.streamPartId),
30
30
  config.transport
31
31
  )
32
- const neighborCount = config.neighborCount ?? 4
32
+ const neighborTargetCount = config.neighborTargetCount ?? 4
33
33
  const maxContactCount = config.maxContactCount ?? 20
34
34
  const minPropagationTargets = config.minPropagationTargets ?? 2
35
35
  const acceptProxyConnections = config.acceptProxyConnections ?? false
@@ -69,14 +69,14 @@ const createConfigWithDefaults = (config: RandomGraphNodeConfig): StrictRandomGr
69
69
  nearbyNodeView,
70
70
  randomNodeView,
71
71
  neighbors,
72
- maxNeighborCount: neighborCount,
72
+ maxNeighborCount: neighborTargetCount,
73
73
  rpcRequestTimeout: config.rpcRequestTimeout
74
74
  })
75
75
  const neighborFinder = config.neighborFinder ?? new NeighborFinder({
76
76
  neighbors,
77
77
  nearbyNodeView,
78
78
  doFindNeighbors: (excludedIds) => handshaker.attemptHandshakesOnContacts(excludedIds),
79
- minCount: neighborCount
79
+ minCount: neighborTargetCount
80
80
  })
81
81
  const neighborUpdateManager = config.neighborUpdateManager ?? new NeighborUpdateManager({
82
82
  neighbors,
@@ -86,7 +86,8 @@ const createConfigWithDefaults = (config: RandomGraphNodeConfig): StrictRandomGr
86
86
  streamPartId: config.streamPartId,
87
87
  rpcCommunicator,
88
88
  neighborUpdateInterval,
89
- neighborCount
89
+ neighborTargetCount,
90
+ connectionLocker: config.connectionLocker
90
91
  })
91
92
  const inspector = config.inspector ?? new Inspector({
92
93
  localPeerDescriptor: config.localPeerDescriptor,
@@ -104,7 +105,7 @@ const createConfigWithDefaults = (config: RandomGraphNodeConfig): StrictRandomGr
104
105
  neighborFinder,
105
106
  neighborUpdateManager,
106
107
  propagation,
107
- neighborCount,
108
+ neighborTargetCount,
108
109
  nodeViewSize: maxContactCount,
109
110
  proxyConnectionRpcLocal,
110
111
  inspector,
@@ -44,6 +44,10 @@ export class InspectSession extends EventEmitter<Events> {
44
44
  return this.inspectionMessages.size
45
45
  }
46
46
 
47
+ onlyMarkedByInspectedNode(): boolean {
48
+ return Array.from(this.inspectionMessages.values()).every((value) => value === true)
49
+ }
50
+
47
51
  stop(): void {
48
52
  this.emit('done')
49
53
  }
@@ -80,7 +80,7 @@ export class Inspector {
80
80
  await this.closeInspectConnection(peerDescriptor, lockId)
81
81
  this.sessions.delete(nodeId)
82
82
  }
83
- return success || session.getInspectedMessageCount() < 1
83
+ return success || session.getInspectedMessageCount() < 1 || session.onlyMarkedByInspectedNode()
84
84
  }
85
85
 
86
86
  markMessage(sender: DhtAddress, messageId: MessageID): void {
@@ -1,5 +1,5 @@
1
1
  import { NeighborUpdate } from '../../proto/packages/trackerless-network/protos/NetworkRpc'
2
- import { ListeningRpcCommunicator, PeerDescriptor, getNodeIdFromPeerDescriptor } from '@streamr/dht'
2
+ import { ConnectionLocker, ListeningRpcCommunicator, PeerDescriptor, getNodeIdFromPeerDescriptor } from '@streamr/dht'
3
3
  import { NeighborUpdateRpcClient } from '../../proto/packages/trackerless-network/protos/NetworkRpc.client'
4
4
  import { Logger, scheduleAtInterval } from '@streamr/utils'
5
5
  import { NeighborFinder } from './NeighborFinder'
@@ -13,10 +13,11 @@ interface NeighborUpdateManagerConfig {
13
13
  neighbors: NodeList
14
14
  nearbyNodeView: NodeList
15
15
  neighborFinder: NeighborFinder
16
+ connectionLocker: ConnectionLocker
16
17
  streamPartId: StreamPartID
17
18
  rpcCommunicator: ListeningRpcCommunicator
18
19
  neighborUpdateInterval: number
19
- neighborCount: number
20
+ neighborTargetCount: number
20
21
  }
21
22
 
22
23
  const logger = new Logger(module)
@@ -51,6 +52,7 @@ export class NeighborUpdateManager {
51
52
  if (res.removeMe) {
52
53
  const nodeId = getNodeIdFromPeerDescriptor(neighbor.getPeerDescriptor())
53
54
  this.config.neighbors.remove(nodeId)
55
+ this.config.connectionLocker.unlockConnection(neighbor.getPeerDescriptor(), this.config.streamPartId)
54
56
  this.config.neighborFinder.start([nodeId])
55
57
  }
56
58
  }))
@@ -1,5 +1,5 @@
1
1
  import { ServerCallContext } from '@protobuf-ts/runtime-rpc'
2
- import { DhtCallContext, ListeningRpcCommunicator, PeerDescriptor, getNodeIdFromPeerDescriptor } from '@streamr/dht'
2
+ import { ConnectionLocker, DhtCallContext, ListeningRpcCommunicator, PeerDescriptor, getNodeIdFromPeerDescriptor } from '@streamr/dht'
3
3
  import { NeighborUpdate } from '../../proto/packages/trackerless-network/protos/NetworkRpc'
4
4
  import { DeliveryRpcClient } from '../../proto/packages/trackerless-network/protos/NetworkRpc.client'
5
5
  import { INeighborUpdateRpc } from '../../proto/packages/trackerless-network/protos/NetworkRpc.server'
@@ -14,8 +14,9 @@ interface NeighborUpdateRpcLocalConfig {
14
14
  neighbors: NodeList
15
15
  nearbyNodeView: NodeList
16
16
  neighborFinder: NeighborFinder
17
+ connectionLocker: ConnectionLocker
17
18
  rpcCommunicator: ListeningRpcCommunicator
18
- neighborCount: number
19
+ neighborTargetCount: number
19
20
  }
20
21
 
21
22
  export class NeighborUpdateRpcLocal implements INeighborUpdateRpc {
@@ -58,15 +59,16 @@ export class NeighborUpdateRpcLocal implements INeighborUpdateRpc {
58
59
  if (!this.config.neighbors.has(senderId)) {
59
60
  return this.createResponse(true)
60
61
  } else {
61
- const isOverNeighborCount = this.config.neighbors.size() > this.config.neighborCount
62
- // Motivation: We don't know the remote's neighborCount setting here. We only ask to cut connections
63
- // if the remote has a "sufficient" number of neighbors, where "sufficient" means our neighborCount
62
+ const isOverNeighborCount = this.config.neighbors.size() > this.config.neighborTargetCount
63
+ // Motivation: We don't know the remote's neighborTargetCount setting here. We only ask to cut connections
64
+ // if the remote has a "sufficient" number of neighbors, where "sufficient" means our neighborTargetCount
64
65
  // setting.
65
- && message.neighborDescriptors.length > this.config.neighborCount
66
+ && message.neighborDescriptors.length > this.config.neighborTargetCount
66
67
  if (!isOverNeighborCount) {
67
68
  this.config.neighborFinder.start()
68
69
  } else {
69
70
  this.config.neighbors.remove(senderId)
71
+ this.config.connectionLocker.unlockConnection(senderPeerDescriptor, this.config.streamPartId)
70
72
  }
71
73
  return this.createResponse(isOverNeighborCount)
72
74
  }
@@ -58,6 +58,11 @@ interface ProxyDefinition {
58
58
  userId: EthereumAddress
59
59
  }
60
60
 
61
+ interface ProxyConnection {
62
+ peerDescriptor: PeerDescriptor
63
+ direction: ProxyDirection
64
+ }
65
+
61
66
  interface Events {
62
67
  message: (message: StreamMessage) => void
63
68
  }
@@ -73,7 +78,7 @@ export class ProxyClient extends EventEmitter<Events> {
73
78
  private readonly config: ProxyClientConfig
74
79
  private readonly duplicateDetectors: Map<string, DuplicateMessageDetector> = new Map()
75
80
  private definition?: ProxyDefinition
76
- private readonly connections: Map<DhtAddress, ProxyDirection> = new Map()
81
+ private readonly connections: Map<DhtAddress, ProxyConnection> = new Map()
77
82
  private readonly propagation: Propagation
78
83
  private readonly neighbors: NodeList
79
84
  private readonly abortController: AbortController
@@ -159,7 +164,7 @@ export class ProxyClient extends EventEmitter<Events> {
159
164
  private getInvalidConnections(): DhtAddress[] {
160
165
  return Array.from(this.connections.keys()).filter((id) => {
161
166
  return !this.definition!.nodes.has(id)
162
- || this.definition!.direction !== this.connections.get(id)
167
+ || this.definition!.direction !== this.connections.get(id)!.direction
163
168
  })
164
169
  }
165
170
 
@@ -183,7 +188,7 @@ export class ProxyClient extends EventEmitter<Events> {
183
188
  const accepted = await rpcRemote.requestConnection(direction, userId)
184
189
  if (accepted) {
185
190
  this.config.connectionLocker.lockConnection(peerDescriptor, SERVICE_ID)
186
- this.connections.set(nodeId, direction)
191
+ this.connections.set(nodeId, { peerDescriptor, direction })
187
192
  const remote = new DeliveryRpcRemote(
188
193
  this.config.localPeerDescriptor,
189
194
  peerDescriptor,
@@ -216,13 +221,15 @@ export class ProxyClient extends EventEmitter<Events> {
216
221
  })
217
222
  const server = this.neighbors.get(nodeId)
218
223
  server?.leaveStreamPartNotice(this.config.streamPartId, false)
219
- this.removeConnection(nodeId)
224
+ this.removeConnection(this.connections.get(nodeId)!.peerDescriptor)
220
225
  }
221
226
  }
222
227
 
223
- private removeConnection(nodeId: DhtAddress): void {
228
+ private removeConnection(peerDescriptor: PeerDescriptor): void {
229
+ const nodeId = getNodeIdFromPeerDescriptor(peerDescriptor)
224
230
  this.connections.delete(nodeId)
225
231
  this.neighbors.remove(nodeId)
232
+ this.config.connectionLocker.unlockConnection(peerDescriptor, SERVICE_ID)
226
233
  }
227
234
 
228
235
  broadcast(msg: StreamMessage, previousNode?: DhtAddress): void {
@@ -234,7 +241,7 @@ export class ProxyClient extends EventEmitter<Events> {
234
241
  }
235
242
 
236
243
  hasConnection(nodeId: DhtAddress, direction: ProxyDirection): boolean {
237
- return this.connections.has(nodeId) && this.connections.get(nodeId) === direction
244
+ return this.connections.has(nodeId) && this.connections.get(nodeId)!.direction === direction
238
245
  }
239
246
 
240
247
  getDirection(): ProxyDirection {
@@ -245,7 +252,7 @@ export class ProxyClient extends EventEmitter<Events> {
245
252
  const nodeId = getNodeIdFromPeerDescriptor(peerDescriptor)
246
253
  if (this.connections.has(nodeId)) {
247
254
  this.config.connectionLocker.unlockConnection(peerDescriptor, SERVICE_ID)
248
- this.removeConnection(nodeId)
255
+ this.removeConnection(peerDescriptor)
249
256
  await retry(() => this.updateConnections(), 'updating proxy connections', this.abortController.signal)
250
257
  }
251
258
  }
@@ -32,6 +32,10 @@ export class TemporaryConnectionRpcLocal implements ITemporaryConnectionRpc {
32
32
  return this.temporaryNodes
33
33
  }
34
34
 
35
+ hasNode(node: DhtAddress): boolean {
36
+ return this.temporaryNodes.has(node)
37
+ }
38
+
35
39
  removeNode(nodeId: DhtAddress): void {
36
40
  this.temporaryNodes.remove(nodeId)
37
41
  }
@@ -1,7 +1,7 @@
1
- import { ConnectionManager, DhtNode, PeerDescriptor, NodeType } from '@streamr/dht'
1
+ import { ConnectionManager, DhtNode, PeerDescriptor } from '@streamr/dht'
2
2
  import { RandomGraphNode } from '../../src/logic/RandomGraphNode'
3
3
  import { waitForCondition } from '@streamr/utils'
4
- import { createStreamMessage } from '../utils/utils'
4
+ import { createMockPeerDescriptor, createStreamMessage } from '../utils/utils'
5
5
  import { createRandomGraphNode } from '../../src/logic/createRandomGraphNode'
6
6
  import { StreamPartIDUtils } from '@streamr/protocol'
7
7
  import { randomEthereumAddress } from '@streamr/test-utils'
@@ -10,11 +10,9 @@ import { Layer1Node } from '../../src/logic/Layer1Node'
10
10
 
11
11
  describe('random graph with real connections', () => {
12
12
 
13
- const epPeerDescriptor: PeerDescriptor = {
14
- nodeId: Uint8Array.from([1, 2, 3]),
15
- type: NodeType.NODEJS,
13
+ const epPeerDescriptor: PeerDescriptor = createMockPeerDescriptor({
16
14
  websocket: { host: '127.0.0.1', port: 12221, tls: false }
17
- }
15
+ })
18
16
 
19
17
  const streamPartId = StreamPartIDUtils.parse('random-graph#0')
20
18
  // Currently the nodes here are practically layer0 nodes acting as layer1 nodes, for the purpose of this test
@@ -1,4 +1,4 @@
1
- import { NodeType, PeerDescriptor, Simulator, SimulatorTransport } from '@streamr/dht'
1
+ import { PeerDescriptor, Simulator, SimulatorTransport } from '@streamr/dht'
2
2
  import {
3
3
  ContentType,
4
4
  EncryptionType,
@@ -10,6 +10,7 @@ import {
10
10
  } from '@streamr/protocol'
11
11
  import { EthereumAddress, hexToBinary, utf8ToBinary, waitForCondition } from '@streamr/utils'
12
12
  import { NetworkNode, createNetworkNode } from '../../src/NetworkNode'
13
+ import { createMockPeerDescriptor } from '../utils/utils'
13
14
 
14
15
  const STREAM_PART_ID = StreamPartIDUtils.parse('test#0')
15
16
 
@@ -21,15 +22,9 @@ describe('NetworkNode', () => {
21
22
  let node1: NetworkNode
22
23
  let node2: NetworkNode
23
24
 
24
- const pd1: PeerDescriptor = {
25
- nodeId: new Uint8Array([1, 2, 3]),
26
- type: NodeType.NODEJS
27
- }
25
+ const pd1: PeerDescriptor = createMockPeerDescriptor()
28
26
 
29
- const pd2: PeerDescriptor = {
30
- nodeId: new Uint8Array([1, 1, 1]),
31
- type: NodeType.NODEJS
32
- }
27
+ const pd2: PeerDescriptor = createMockPeerDescriptor()
33
28
 
34
29
  beforeEach(async () => {
35
30
  const simulator = new Simulator()
@@ -1,13 +1,7 @@
1
- import {
2
- DhtNode,
3
- PeerDescriptor,
4
- Simulator,
5
- SimulatorTransport,
6
- NodeType
7
- } from '@streamr/dht'
1
+ import { DhtNode, PeerDescriptor, Simulator, SimulatorTransport } from '@streamr/dht'
8
2
  import { StreamrNode, Events } from '../../src/logic/StreamrNode'
9
3
  import { waitForEvent3, waitForCondition } from '@streamr/utils'
10
- import { createStreamMessage } from '../utils/utils'
4
+ import { createMockPeerDescriptor, createStreamMessage } from '../utils/utils'
11
5
  import { StreamPartIDUtils } from '@streamr/protocol'
12
6
  import { randomEthereumAddress } from '@streamr/test-utils'
13
7
  import { Layer0Node } from '../../src/logic/Layer0Node'
@@ -21,14 +15,8 @@ describe('StreamrNode', () => {
21
15
  let node1: StreamrNode
22
16
  let node2: StreamrNode
23
17
 
24
- const peerDescriptor1: PeerDescriptor = {
25
- nodeId: new Uint8Array([1, 2, 3]),
26
- type: NodeType.NODEJS
27
- }
28
- const peerDescriptor2: PeerDescriptor = {
29
- nodeId: new Uint8Array([1, 1, 1]),
30
- type: NodeType.NODEJS
31
- }
18
+ const peerDescriptor1: PeerDescriptor = createMockPeerDescriptor()
19
+ const peerDescriptor2: PeerDescriptor = createMockPeerDescriptor()
32
20
  const STREAM_PART_ID = StreamPartIDUtils.parse('test#0')
33
21
 
34
22
  const msg = createStreamMessage(
@@ -1,9 +1,9 @@
1
- import { NodeType, PeerDescriptor, Simulator, SimulatorTransport, LatencyType, getRandomRegion } from '@streamr/dht'
1
+ import { PeerDescriptor, Simulator, SimulatorTransport, LatencyType } from '@streamr/dht'
2
2
  import { NetworkStack } from '../../src/NetworkStack'
3
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
- import { createStreamMessage } from '../utils/utils'
6
+ import { createMockPeerDescriptor, createStreamMessage } from '../utils/utils'
7
7
  import { waitForCondition } from '@streamr/utils'
8
8
  import { randomEthereumAddress } from '@streamr/test-utils'
9
9
 
@@ -11,35 +11,11 @@ const STREAM_PART_ID = StreamPartIDUtils.parse('stream#0')
11
11
 
12
12
  describe('Joining stream parts on offline nodes', () => {
13
13
 
14
- const entryPointPeerDescriptor: PeerDescriptor = {
15
- nodeId: new Uint8Array([1, 2, 3]),
16
- type: NodeType.NODEJS,
17
- region: getRandomRegion()
18
- }
19
-
20
- const node1PeerDescriptor: PeerDescriptor = {
21
- nodeId: new Uint8Array([1, 1, 1]),
22
- type: NodeType.NODEJS,
23
- region: getRandomRegion()
24
- }
25
-
26
- const node2PeerDescriptor: PeerDescriptor = {
27
- nodeId: new Uint8Array([2, 2, 2]),
28
- type: NodeType.NODEJS,
29
- region: getRandomRegion()
30
- }
31
-
32
- const offlineDescriptor1: PeerDescriptor = {
33
- nodeId: new Uint8Array([3, 3, 3]),
34
- type: NodeType.NODEJS,
35
- region: getRandomRegion()
36
- }
37
-
38
- const offlineDescriptor2: PeerDescriptor = {
39
- nodeId: new Uint8Array([4, 4, 4]),
40
- type: NodeType.NODEJS,
41
- region: getRandomRegion()
42
- }
14
+ const entryPointPeerDescriptor: PeerDescriptor = createMockPeerDescriptor()
15
+ const node1PeerDescriptor: PeerDescriptor = createMockPeerDescriptor()
16
+ const node2PeerDescriptor: PeerDescriptor = createMockPeerDescriptor()
17
+ const offlineDescriptor1: PeerDescriptor = createMockPeerDescriptor()
18
+ const offlineDescriptor2: PeerDescriptor = createMockPeerDescriptor()
43
19
 
44
20
  let entryPoint: NetworkStack
45
21
  let node1: NetworkStack
@@ -1,4 +1,4 @@
1
- import { LatencyType, NodeType, PeerDescriptor, Simulator, SimulatorTransport, getRandomRegion } from '@streamr/dht'
1
+ import { LatencyType, PeerDescriptor, Simulator, SimulatorTransport } from '@streamr/dht'
2
2
  import {
3
3
  ContentType,
4
4
  EncryptionType,
@@ -22,11 +22,7 @@ describe('stream without default entrypoints', () => {
22
22
  let entrypoint: NetworkNode
23
23
  let nodes: NetworkNode[]
24
24
  let receivedMessageCount: number
25
- const entryPointPeerDescriptor: PeerDescriptor = {
26
- nodeId: new Uint8Array([1, 2, 3]),
27
- type: NodeType.NODEJS,
28
- region: getRandomRegion()
29
- }
25
+ const entryPointPeerDescriptor: PeerDescriptor = createMockPeerDescriptor()
30
26
 
31
27
  const streamMessage = new StreamMessage({
32
28
  messageId: new MessageID(
@@ -2,8 +2,7 @@ import { InspectSession, Events } from '../../src/logic/inspect/InspectSession'
2
2
  import { MessageID } from '../../src/proto/packages/trackerless-network/protos/NetworkRpc'
3
3
  import { waitForEvent3 } from '../../../utils/dist/src/waitForEvent3'
4
4
  import { utf8ToBinary } from '@streamr/utils'
5
- import { createRandomNodeId } from '../utils/utils'
6
- import { DhtAddress } from '@streamr/dht'
5
+ import { DhtAddress, createRandomDhtAddress } from '@streamr/dht'
7
6
 
8
7
  describe('InspectSession', () => {
9
8
 
@@ -31,8 +30,8 @@ describe('InspectSession', () => {
31
30
  }
32
31
 
33
32
  beforeEach(() => {
34
- inspectedNode = createRandomNodeId()
35
- anotherNode = createRandomNodeId()
33
+ inspectedNode = createRandomDhtAddress()
34
+ anotherNode = createRandomDhtAddress()
36
35
  inspectSession = new InspectSession({
37
36
  inspectedNode
38
37
  })
@@ -1,8 +1,8 @@
1
- import { ListeningRpcCommunicator, getNodeIdFromPeerDescriptor } from '@streamr/dht'
1
+ import { ListeningRpcCommunicator, createRandomDhtAddress, getNodeIdFromPeerDescriptor } from '@streamr/dht'
2
2
  import { utf8ToBinary } from '@streamr/utils'
3
3
  import { Inspector } from '../../src/logic/inspect/Inspector'
4
4
  import { MockTransport } from '../utils/mock/Transport'
5
- import { createMockPeerDescriptor, createRandomNodeId, mockConnectionLocker } from '../utils/utils'
5
+ import { createMockPeerDescriptor, mockConnectionLocker } from '../utils/utils'
6
6
  import { StreamPartIDUtils } from '@streamr/protocol'
7
7
 
8
8
  describe('Inspector', () => {
@@ -12,7 +12,7 @@ describe('Inspector', () => {
12
12
 
13
13
  const inspectedDescriptor = createMockPeerDescriptor()
14
14
 
15
- const nodeId = createRandomNodeId()
15
+ const nodeId = createRandomDhtAddress()
16
16
  let mockConnect: jest.Mock
17
17
 
18
18
  const messageRef = {