@streamr/trackerless-network 100.2.2 → 100.2.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 (49) hide show
  1. package/README.md +1 -1
  2. package/dist/package.json +6 -6
  3. package/dist/src/NetworkStack.js +3 -5
  4. package/dist/src/NetworkStack.js.map +1 -1
  5. package/dist/src/logic/{RandomGraphNode.d.ts → ContentDeliveryLayerNode.d.ts} +6 -7
  6. package/dist/src/logic/{RandomGraphNode.js → ContentDeliveryLayerNode.js} +28 -42
  7. package/dist/src/logic/ContentDeliveryLayerNode.js.map +1 -0
  8. package/dist/src/logic/ContentDeliveryManager.d.ts +3 -3
  9. package/dist/src/logic/ContentDeliveryManager.js +4 -4
  10. package/dist/src/logic/ContentDeliveryManager.js.map +1 -1
  11. package/dist/src/logic/Layer1Node.d.ts +11 -12
  12. package/dist/src/logic/createContentDeliveryLayerNode.d.ts +10 -0
  13. package/dist/src/logic/{createRandomGraphNode.js → createContentDeliveryLayerNode.js} +6 -6
  14. package/dist/src/logic/createContentDeliveryLayerNode.js.map +1 -0
  15. package/dist/src/proto/packages/dht/protos/DhtRpc.client.d.ts +8 -0
  16. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js +4 -0
  17. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js.map +1 -1
  18. package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +10 -2
  19. package/dist/src/proto/packages/dht/protos/DhtRpc.js +1 -1
  20. package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
  21. package/dist/src/proto/packages/dht/protos/DhtRpc.server.d.ts +4 -0
  22. package/dist/test/benchmark/first-message.js +2 -1
  23. package/dist/test/benchmark/first-message.js.map +1 -1
  24. package/dist/test/utils/utils.d.ts +2 -2
  25. package/dist/test/utils/utils.js +6 -6
  26. package/dist/test/utils/utils.js.map +1 -1
  27. package/package.json +6 -6
  28. package/src/NetworkStack.ts +3 -5
  29. package/src/logic/{RandomGraphNode.ts → ContentDeliveryLayerNode.ts} +31 -47
  30. package/src/logic/ContentDeliveryManager.ts +7 -7
  31. package/src/logic/Layer1Node.ts +11 -21
  32. package/src/logic/{createRandomGraphNode.ts → createContentDeliveryLayerNode.ts} +5 -5
  33. package/src/proto/packages/dht/protos/DhtRpc.client.ts +8 -0
  34. package/src/proto/packages/dht/protos/DhtRpc.server.ts +4 -0
  35. package/src/proto/packages/dht/protos/DhtRpc.ts +11 -3
  36. package/test/benchmark/first-message.ts +3 -2
  37. package/test/end-to-end/{random-graph-with-real-connections.test.ts → content-delivery-layer-node-with-real-connections.test.ts} +45 -45
  38. package/test/end-to-end/proxy-connections.test.ts +2 -2
  39. package/test/integration/{RandomGraphNode-Layer1Node-Latencies.test.ts → ContentDeliveryLayerNode-Layer1Node-Latencies.test.ts} +45 -46
  40. package/test/integration/{RandomGraphNode-Layer1Node.test.ts → ContentDeliveryLayerNode-Layer1Node.test.ts} +46 -48
  41. package/test/integration/Propagation.test.ts +20 -15
  42. package/test/unit/{RandomGraphNode.test.ts → ContentDeliveryLayerNode.test.ts} +15 -13
  43. package/test/utils/mock/MockLayer0Node.ts +10 -0
  44. package/test/utils/mock/MockLayer1Node.ts +22 -4
  45. package/test/utils/mock/Transport.ts +10 -1
  46. package/test/utils/utils.ts +6 -6
  47. package/dist/src/logic/RandomGraphNode.js.map +0 -1
  48. package/dist/src/logic/createRandomGraphNode.d.ts +0 -10
  49. package/dist/src/logic/createRandomGraphNode.js.map +0 -1
@@ -1,27 +1,27 @@
1
1
  import { ConnectionManager, DhtNode, PeerDescriptor, Simulator, SimulatorTransport, getNodeIdFromPeerDescriptor, getRandomRegion } from '@streamr/dht'
2
2
  import { Logger, waitForCondition } from '@streamr/utils'
3
3
  import { range } from 'lodash'
4
- import { RandomGraphNode } from '../../src/logic/RandomGraphNode'
5
- import { createRandomGraphNode } from '../../src/logic/createRandomGraphNode'
4
+ import { ContentDeliveryLayerNode } from '../../src/logic/ContentDeliveryLayerNode'
5
+ import { createContentDeliveryLayerNode } from '../../src/logic/createContentDeliveryLayerNode'
6
6
  import { createMockPeerDescriptor } from '../utils/utils'
7
7
  import { StreamPartIDUtils } from '@streamr/protocol'
8
8
  import { Layer1Node } from '../../src/logic/Layer1Node'
9
9
 
10
10
  const logger = new Logger(module)
11
11
 
12
- describe('RandomGraphNode-DhtNode', () => {
13
- const nodeCount = 64
14
- let layer1Nodes: Layer1Node[]
15
- let dhtEntryPoint: Layer1Node
16
- let entryPointRandomGraphNode: RandomGraphNode
17
- let graphNodes: RandomGraphNode[]
12
+ describe('ContentDeliveryLayerNode-DhtNode', () => {
13
+ const otherNodeCount = 64
14
+ let entryPointLayer1Node: Layer1Node
15
+ let otherLayer1Nodes: Layer1Node[]
16
+ let entryPointContentDeliveryLayerNode: ContentDeliveryLayerNode
17
+ let otherContentDeliveryLayerNodes: ContentDeliveryLayerNode[]
18
18
 
19
19
  const streamPartId = StreamPartIDUtils.parse('stream#0')
20
20
  const entrypointDescriptor = createMockPeerDescriptor({
21
21
  region: getRandomRegion()
22
22
  })
23
23
 
24
- const peerDescriptors: PeerDescriptor[] = range(nodeCount).map(() => {
24
+ const peerDescriptors: PeerDescriptor[] = range(otherNodeCount).map(() => {
25
25
  return createMockPeerDescriptor({
26
26
  region: getRandomRegion()
27
27
  })
@@ -34,7 +34,7 @@ describe('RandomGraphNode-DhtNode', () => {
34
34
  )
35
35
  await entrypointCm.start()
36
36
 
37
- const cms: ConnectionManager[] = range(nodeCount).map((i) =>
37
+ const cms: ConnectionManager[] = range(otherNodeCount).map((i) =>
38
38
  new SimulatorTransport(
39
39
  peerDescriptors[i],
40
40
  simulator
@@ -42,21 +42,21 @@ describe('RandomGraphNode-DhtNode', () => {
42
42
  )
43
43
  await Promise.all(cms.map((cm) => cm.start()))
44
44
 
45
- dhtEntryPoint = new DhtNode({
45
+ entryPointLayer1Node = new DhtNode({
46
46
  transport: entrypointCm,
47
47
  peerDescriptor: entrypointDescriptor,
48
48
  serviceId: streamPartId
49
49
  })
50
50
 
51
- layer1Nodes = range(nodeCount).map((i) => new DhtNode({
51
+ otherLayer1Nodes = range(otherNodeCount).map((i) => new DhtNode({
52
52
  transport: cms[i],
53
53
  peerDescriptor: peerDescriptors[i],
54
54
  serviceId: streamPartId
55
55
  }))
56
56
 
57
- graphNodes = range(nodeCount).map((i) => createRandomGraphNode({
57
+ otherContentDeliveryLayerNodes = range(otherNodeCount).map((i) => createContentDeliveryLayerNode({
58
58
  streamPartId,
59
- layer1Node: layer1Nodes[i],
59
+ layer1Node: otherLayer1Nodes[i],
60
60
  transport: cms[i],
61
61
  connectionLocker: cms[i],
62
62
  localPeerDescriptor: peerDescriptors[i],
@@ -64,9 +64,9 @@ describe('RandomGraphNode-DhtNode', () => {
64
64
  isLocalNodeEntryPoint: () => false
65
65
  }))
66
66
 
67
- entryPointRandomGraphNode = createRandomGraphNode({
67
+ entryPointContentDeliveryLayerNode = createContentDeliveryLayerNode({
68
68
  streamPartId,
69
- layer1Node: dhtEntryPoint,
69
+ layer1Node: entryPointLayer1Node,
70
70
  transport: entrypointCm,
71
71
  connectionLocker: entrypointCm,
72
72
  localPeerDescriptor: entrypointDescriptor,
@@ -74,45 +74,43 @@ describe('RandomGraphNode-DhtNode', () => {
74
74
  isLocalNodeEntryPoint: () => false
75
75
  })
76
76
 
77
- await dhtEntryPoint.start()
78
- await dhtEntryPoint.joinDht([entrypointDescriptor])
79
- await Promise.all(layer1Nodes.map((node) => node.start()))
77
+ await entryPointLayer1Node.start()
78
+ await entryPointContentDeliveryLayerNode.start()
79
+ await entryPointLayer1Node.joinDht([entrypointDescriptor])
80
+ await Promise.all(otherLayer1Nodes.map((node) => node.start()))
80
81
  })
81
82
 
82
83
  afterEach(async () => {
83
- await dhtEntryPoint.stop()
84
- entryPointRandomGraphNode.stop()
85
- await Promise.all(layer1Nodes.map((node) => node.stop()))
86
- await Promise.all(graphNodes.map((node) => node.stop()))
84
+ await entryPointLayer1Node.stop()
85
+ entryPointContentDeliveryLayerNode.stop()
86
+ await Promise.all(otherLayer1Nodes.map((node) => node.stop()))
87
+ await Promise.all(otherContentDeliveryLayerNodes.map((node) => node.stop()))
87
88
  })
88
89
 
89
90
  it('happy path single node ', async () => {
90
- await entryPointRandomGraphNode.start()
91
- await layer1Nodes[0].joinDht([entrypointDescriptor])
91
+ await otherContentDeliveryLayerNodes[0].start()
92
+ await otherLayer1Nodes[0].joinDht([entrypointDescriptor])
92
93
 
93
- await graphNodes[0].start()
94
-
95
- await waitForCondition(() => graphNodes[0].getNeighbors().length === 1)
96
- expect(graphNodes[0].getNearbyNodeView().getIds().length).toEqual(1)
97
- expect(graphNodes[0].getNeighbors().length).toEqual(1)
94
+ await waitForCondition(() => otherContentDeliveryLayerNodes[0].getNeighbors().length === 1)
95
+ expect(otherContentDeliveryLayerNodes[0].getNearbyNodeView().getIds().length).toEqual(1)
96
+ expect(otherContentDeliveryLayerNodes[0].getNeighbors().length).toEqual(1)
98
97
  })
99
98
 
100
99
  it('happy path 4 nodes', async () => {
101
- entryPointRandomGraphNode.start()
102
- range(4).forEach((i) => graphNodes[i].start())
100
+ range(4).forEach((i) => otherContentDeliveryLayerNodes[i].start())
103
101
  await Promise.all(range(4).map(async (i) => {
104
- await layer1Nodes[i].joinDht([entrypointDescriptor])
102
+ await otherLayer1Nodes[i].joinDht([entrypointDescriptor])
105
103
  }))
106
104
 
107
- await waitForCondition(() => range(4).every((i) => graphNodes[i].getNeighbors().length === 4))
105
+ await waitForCondition(() => range(4).every((i) => otherContentDeliveryLayerNodes[i].getNeighbors().length === 4))
108
106
  range(4).forEach((i) => {
109
- expect(graphNodes[i].getNearbyNodeView().getIds().length).toBeGreaterThanOrEqual(4)
110
- expect(graphNodes[i].getNeighbors().length).toBeGreaterThanOrEqual(4)
107
+ expect(otherContentDeliveryLayerNodes[i].getNearbyNodeView().getIds().length).toBeGreaterThanOrEqual(4)
108
+ expect(otherContentDeliveryLayerNodes[i].getNeighbors().length).toBeGreaterThanOrEqual(4)
111
109
  })
112
110
 
113
111
  // Check bidirectionality
114
- const allNodes = graphNodes
115
- allNodes.push(entryPointRandomGraphNode)
112
+ const allNodes = otherContentDeliveryLayerNodes
113
+ allNodes.push(entryPointContentDeliveryLayerNode)
116
114
  range(5).forEach((i) => {
117
115
  allNodes[i].getNearbyNodeView().getIds().forEach((nodeId) => {
118
116
  const neighbor = allNodes.find((node) => {
@@ -125,30 +123,30 @@ describe('RandomGraphNode-DhtNode', () => {
125
123
  }, 10000)
126
124
 
127
125
  it('happy path 64 nodes', async () => {
128
- await Promise.all(range(nodeCount).map((i) => graphNodes[i].start()))
129
- await Promise.all(range(nodeCount).map((i) => {
130
- layer1Nodes[i].joinDht([entrypointDescriptor])
126
+ await Promise.all(range(otherNodeCount).map((i) => otherContentDeliveryLayerNodes[i].start()))
127
+ await Promise.all(range(otherNodeCount).map((i) => {
128
+ otherLayer1Nodes[i].joinDht([entrypointDescriptor])
131
129
  }))
132
- await Promise.all(graphNodes.map((node) =>
130
+ await Promise.all(otherContentDeliveryLayerNodes.map((node) =>
133
131
  waitForCondition(() => node.getNeighbors().length >= 4, 10000)
134
132
  ))
135
133
 
136
- const avg = graphNodes.reduce((acc, curr) => {
134
+ const avg = otherContentDeliveryLayerNodes.reduce((acc, curr) => {
137
135
  return acc + curr.getNeighbors().length
138
- }, 0) / nodeCount
136
+ }, 0) / otherNodeCount
139
137
 
140
138
  logger.info(`AVG Number of neighbors: ${avg}`)
141
- await Promise.all(graphNodes.map((node) =>
139
+ await Promise.all(otherContentDeliveryLayerNodes.map((node) =>
142
140
  waitForCondition(() => node.getOutgoingHandshakeCount() === 0)
143
141
  ))
144
142
  await waitForCondition(() => {
145
143
  let mismatchCounter = 0
146
- graphNodes.forEach((node) => {
144
+ otherContentDeliveryLayerNodes.forEach((node) => {
147
145
  const nodeId = node.getOwnNodeId()
148
146
  node.getNeighbors().forEach((neighbor) => {
149
147
  const neighborId = getNodeIdFromPeerDescriptor(neighbor)
150
- if (neighborId !== entryPointRandomGraphNode.getOwnNodeId()) {
151
- const neighbor = graphNodes.find((n) => n.getOwnNodeId() === neighborId)
148
+ if (neighborId !== entryPointContentDeliveryLayerNode.getOwnNodeId()) {
149
+ const neighbor = otherContentDeliveryLayerNodes.find((n) => n.getOwnNodeId() === neighborId)
152
150
  const neighborIds = neighbor!.getNeighbors().map((n) => getNodeIdFromPeerDescriptor(n))
153
151
  if (!neighborIds.includes(nodeId)) {
154
152
  mismatchCounter += 1
@@ -3,14 +3,14 @@ import { StreamPartIDUtils } from '@streamr/protocol'
3
3
  import { randomEthereumAddress } from '@streamr/test-utils'
4
4
  import { waitForCondition } from '@streamr/utils'
5
5
  import { range } from 'lodash'
6
- import { RandomGraphNode } from '../../src/logic/RandomGraphNode'
7
- import { createMockPeerDescriptor, createMockRandomGraphNodeAndDhtNode, createStreamMessage } from '../utils/utils'
6
+ import { ContentDeliveryLayerNode } from '../../src/logic/ContentDeliveryLayerNode'
7
+ import { createMockPeerDescriptor, createMockContentDeliveryLayerNodeAndDhtNode, createStreamMessage } from '../utils/utils'
8
8
  import { Layer1Node } from '../../src/logic/Layer1Node'
9
9
 
10
10
  describe('Propagation', () => {
11
11
  const entryPointDescriptor = createMockPeerDescriptor()
12
12
  let layer1Nodes: Layer1Node[]
13
- let randomGraphNodes: RandomGraphNode[]
13
+ let contentDeliveryLayerNodes: ContentDeliveryLayerNode[]
14
14
  const STREAM_PART_ID = StreamPartIDUtils.parse('testingtesting#0')
15
15
  let totalReceived: number
16
16
  const NUM_OF_NODES = 256
@@ -19,46 +19,51 @@ describe('Propagation', () => {
19
19
  const simulator = new Simulator()
20
20
  totalReceived = 0
21
21
  layer1Nodes = []
22
- randomGraphNodes = []
23
- const [entryPoint, node1] = await createMockRandomGraphNodeAndDhtNode(entryPointDescriptor, entryPointDescriptor, STREAM_PART_ID, simulator)
22
+ contentDeliveryLayerNodes = []
23
+ const [entryPoint, node1] = await createMockContentDeliveryLayerNodeAndDhtNode(
24
+ entryPointDescriptor,
25
+ entryPointDescriptor,
26
+ STREAM_PART_ID,
27
+ simulator
28
+ )
24
29
  await entryPoint.start()
25
30
  await entryPoint.joinDht([entryPointDescriptor])
26
31
  await node1.start()
27
32
  node1.on('message', () => {totalReceived += 1})
28
33
  layer1Nodes.push(entryPoint)
29
- randomGraphNodes.push(node1)
34
+ contentDeliveryLayerNodes.push(node1)
30
35
 
31
36
  await Promise.all(range(NUM_OF_NODES).map(async (_i) => {
32
37
  const descriptor = createMockPeerDescriptor()
33
- const [layer1, randomGraphNode] = await createMockRandomGraphNodeAndDhtNode(
38
+ const [layer1, contentDeliveryLayerNode] = await createMockContentDeliveryLayerNodeAndDhtNode(
34
39
  descriptor,
35
40
  entryPointDescriptor,
36
41
  STREAM_PART_ID,
37
42
  simulator
38
43
  )
39
44
  await layer1.start()
40
- await randomGraphNode.start()
45
+ await contentDeliveryLayerNode.start()
41
46
  await layer1.joinDht([entryPointDescriptor]).then(() => {
42
- randomGraphNode.on('message', () => { totalReceived += 1 })
47
+ contentDeliveryLayerNode.on('message', () => { totalReceived += 1 })
43
48
  layer1Nodes.push(layer1)
44
- randomGraphNodes.push(randomGraphNode)
49
+ contentDeliveryLayerNodes.push(contentDeliveryLayerNode)
45
50
  })
46
51
  }))
47
52
  }, 45000)
48
53
 
49
54
  afterEach(async () => {
50
- await Promise.all(randomGraphNodes.map((node) => node.stop()))
55
+ await Promise.all(contentDeliveryLayerNodes.map((node) => node.stop()))
51
56
  await Promise.all(layer1Nodes.map((node) => node.stop()))
52
57
  })
53
58
 
54
59
  it('All nodes receive messages', async () => {
55
60
  await waitForCondition(
56
- () => randomGraphNodes.every((node) => node.getNeighbors().length >= 3), 30000
61
+ () => contentDeliveryLayerNodes.every((node) => node.getNeighbors().length >= 3), 30000
57
62
  )
58
63
  await waitForCondition(() => {
59
- const avg = randomGraphNodes.reduce((acc, curr) => {
64
+ const avg = contentDeliveryLayerNodes.reduce((acc, curr) => {
60
65
  return acc + curr.getNeighbors().length
61
- }, 0) / randomGraphNodes.length
66
+ }, 0) / contentDeliveryLayerNodes.length
62
67
  return avg >= 4
63
68
  }, 20000)
64
69
  const msg = createStreamMessage(
@@ -66,7 +71,7 @@ describe('Propagation', () => {
66
71
  STREAM_PART_ID,
67
72
  randomEthereumAddress()
68
73
  )
69
- randomGraphNodes[0].broadcast(msg)
74
+ contentDeliveryLayerNodes[0].broadcast(msg)
70
75
  await waitForCondition(() => totalReceived >= NUM_OF_NODES, 10000)
71
76
  }, 45000)
72
77
  })
@@ -1,7 +1,7 @@
1
1
  import { waitForCondition } from '@streamr/utils'
2
2
  import { NodeList } from '../../src/logic/NodeList'
3
- import { RandomGraphNode } from '../../src/logic/RandomGraphNode'
4
- import { createRandomGraphNode } from '../../src/logic/createRandomGraphNode'
3
+ import { ContentDeliveryLayerNode } from '../../src/logic/ContentDeliveryLayerNode'
4
+ import { createContentDeliveryLayerNode } from '../../src/logic/createContentDeliveryLayerNode'
5
5
  import { MockHandshaker } from '../utils/mock/MockHandshaker'
6
6
  import { MockLayer1Node } from '../utils/mock/MockLayer1Node'
7
7
  import { MockNeighborFinder } from '../utils/mock/MockNeighborFinder'
@@ -11,9 +11,9 @@ import { createMockPeerDescriptor, createMockContentDeliveryRpcRemote, mockConne
11
11
  import { StreamPartIDUtils } from '@streamr/protocol'
12
12
  import { getNodeIdFromPeerDescriptor } from '@streamr/dht'
13
13
 
14
- describe('RandomGraphNode', () => {
14
+ describe('ContentDeliveryLayerNode', () => {
15
15
 
16
- let randomGraphNode: RandomGraphNode
16
+ let contentDeliveryLayerNode: ContentDeliveryLayerNode
17
17
  const peerDescriptor = createMockPeerDescriptor()
18
18
 
19
19
  let neighbors: NodeList
@@ -30,7 +30,7 @@ describe('RandomGraphNode', () => {
30
30
  nearbyNodeView = new NodeList(nodeId, 10)
31
31
  layer1Node = new MockLayer1Node()
32
32
 
33
- randomGraphNode = createRandomGraphNode({
33
+ contentDeliveryLayerNode = createContentDeliveryLayerNode({
34
34
  neighbors,
35
35
  randomNodeView,
36
36
  nearbyNodeView,
@@ -43,33 +43,33 @@ describe('RandomGraphNode', () => {
43
43
  neighborFinder: new MockNeighborFinder() as any,
44
44
  streamPartId: StreamPartIDUtils.parse('stream#0'),
45
45
  isLocalNodeEntryPoint: () => false
46
-
47
46
  })
48
- await randomGraphNode.start()
47
+ await contentDeliveryLayerNode.start()
49
48
  })
50
49
 
51
50
  afterEach(() => {
52
- randomGraphNode.stop()
51
+ contentDeliveryLayerNode.stop()
53
52
  })
54
53
 
55
54
  it('getNeighbors', () => {
56
55
  const mockRemote = createMockContentDeliveryRpcRemote()
57
56
  neighbors.add(mockRemote)
58
- const result = randomGraphNode.getNeighbors()
57
+ const result = contentDeliveryLayerNode.getNeighbors()
59
58
  expect(getNodeIdFromPeerDescriptor(result[0])).toEqual(getNodeIdFromPeerDescriptor(mockRemote.getPeerDescriptor()))
60
59
  })
61
60
 
62
61
  it('getNearbyNodeView', () => {
63
62
  const mockRemote = createMockContentDeliveryRpcRemote()
64
63
  nearbyNodeView.add(mockRemote)
65
- const ids = randomGraphNode.getNearbyNodeView().getIds()
64
+ const ids = contentDeliveryLayerNode.getNearbyNodeView().getIds()
66
65
  expect(ids[0]).toEqual(getNodeIdFromPeerDescriptor(mockRemote.getPeerDescriptor()))
67
66
  })
68
67
 
69
68
  it('Adds Closest Nodes from layer1 contactAdded event to nearbyNodeView', async () => {
70
69
  const peerDescriptor1 = createMockPeerDescriptor()
71
70
  const peerDescriptor2 = createMockPeerDescriptor()
72
- layer1Node.emit('contactAdded', peerDescriptor1, [peerDescriptor1, peerDescriptor2])
71
+ layer1Node.setClosestContacts([peerDescriptor1, peerDescriptor2])
72
+ layer1Node.emit('closestContactAdded', peerDescriptor1)
73
73
  await waitForCondition(() => nearbyNodeView.size() === 2)
74
74
  expect(nearbyNodeView.get(getNodeIdFromPeerDescriptor(peerDescriptor1))).toBeTruthy()
75
75
  expect(nearbyNodeView.get(getNodeIdFromPeerDescriptor(peerDescriptor2))).toBeTruthy()
@@ -78,7 +78,8 @@ describe('RandomGraphNode', () => {
78
78
  it('Adds Random Nodes from layer1 randomContactAdded event to randomNodeView', async () => {
79
79
  const peerDescriptor1 = createMockPeerDescriptor()
80
80
  const peerDescriptor2 = createMockPeerDescriptor()
81
- layer1Node.emit('randomContactAdded', peerDescriptor1, [peerDescriptor1, peerDescriptor2])
81
+ layer1Node.setRandomContacts([peerDescriptor1, peerDescriptor2])
82
+ layer1Node.emit('randomContactAdded', peerDescriptor1)
82
83
  await waitForCondition(() => randomNodeView.size() === 2)
83
84
  expect(randomNodeView.get(getNodeIdFromPeerDescriptor(peerDescriptor1))).toBeTruthy()
84
85
  expect(randomNodeView.get(getNodeIdFromPeerDescriptor(peerDescriptor2))).toBeTruthy()
@@ -88,7 +89,8 @@ describe('RandomGraphNode', () => {
88
89
  const peerDescriptor1 = createMockPeerDescriptor()
89
90
  const peerDescriptor2 = createMockPeerDescriptor()
90
91
  layer1Node.addNewRandomPeerToKBucket()
91
- layer1Node.emit('contactAdded', peerDescriptor1, [peerDescriptor1, peerDescriptor2])
92
+ layer1Node.setClosestContacts([peerDescriptor1, peerDescriptor2])
93
+ layer1Node.emit('closestContactAdded', peerDescriptor1)
92
94
  await waitForCondition(() => {
93
95
  return nearbyNodeView.size() === 3
94
96
  }, 20000)
@@ -48,6 +48,16 @@ export class MockLayer0Node extends EventEmitter implements Layer0Node {
48
48
  return []
49
49
  }
50
50
 
51
+ // eslint-disable-next-line class-methods-use-this
52
+ getConnectionCount(): number {
53
+ return 0
54
+ }
55
+
56
+ // eslint-disable-next-line class-methods-use-this
57
+ hasConnection(): boolean {
58
+ return false
59
+ }
60
+
51
61
  // eslint-disable-next-line class-methods-use-this
52
62
  getNeighbors(): PeerDescriptor[] {
53
63
  return []
@@ -1,19 +1,37 @@
1
- import { PeerDescriptor } from '@streamr/dht'
1
+ import { PeerDescriptor, RingContacts } from '@streamr/dht'
2
2
  import { EventEmitter } from 'eventemitter3'
3
3
  import { Layer1Node } from '../../../src/logic/Layer1Node'
4
4
  import { createMockPeerDescriptor } from '../utils'
5
5
 
6
6
  export class MockLayer1Node extends EventEmitter implements Layer1Node {
7
-
7
+
8
8
  private readonly kbucketPeers: PeerDescriptor[] = []
9
+ private closestContacts: PeerDescriptor[] = []
10
+ private randomContacts: PeerDescriptor[] = []
9
11
 
10
12
  // eslint-disable-next-line class-methods-use-this
11
13
  removeContact(): void {
12
14
  }
13
15
 
14
- // eslint-disable-next-line class-methods-use-this
15
16
  getClosestContacts(): PeerDescriptor[] {
16
- return []
17
+ return this.closestContacts
18
+ }
19
+
20
+ setClosestContacts(contacts: PeerDescriptor[]): void {
21
+ this.closestContacts = contacts
22
+ }
23
+
24
+ getRandomContacts(): PeerDescriptor[] {
25
+ return this.randomContacts
26
+ }
27
+
28
+ setRandomContacts(contacts: PeerDescriptor[]): void {
29
+ this.randomContacts = contacts
30
+ }
31
+
32
+ // eslint-disable-next-line class-methods-use-this
33
+ getRingContacts(): RingContacts {
34
+ return { left: [], right: [] }
17
35
  }
18
36
 
19
37
  getNeighbors(): PeerDescriptor[] {
@@ -19,7 +19,16 @@ export class MockTransport extends EventEmitter implements ITransport {
19
19
  }
20
20
 
21
21
  // eslint-disable-next-line class-methods-use-this
22
- stop(): void {
22
+ getConnectionCount(): number {
23
+ return 0
24
+ }
23
25
 
26
+ // eslint-disable-next-line class-methods-use-this
27
+ hasConnection(): boolean {
28
+ return false
29
+ }
30
+
31
+ // eslint-disable-next-line class-methods-use-this
32
+ stop(): void {
24
33
  }
25
34
  }
@@ -9,7 +9,7 @@ import {
9
9
  getRandomRegion,
10
10
  getRawFromDhtAddress
11
11
  } from '@streamr/dht'
12
- import { RandomGraphNode } from '../../src/logic/RandomGraphNode'
12
+ import { ContentDeliveryLayerNode } from '../../src/logic/ContentDeliveryLayerNode'
13
13
  import {
14
14
  ContentType,
15
15
  EncryptionType,
@@ -18,7 +18,7 @@ import {
18
18
  StreamMessage
19
19
  } from '../../src/proto/packages/trackerless-network/protos/NetworkRpc'
20
20
  import { ContentDeliveryRpcRemote } from '../../src/logic/ContentDeliveryRpcRemote'
21
- import { createRandomGraphNode } from '../../src/logic/createRandomGraphNode'
21
+ import { createContentDeliveryLayerNode } from '../../src/logic/createContentDeliveryLayerNode'
22
22
  import { HandshakeRpcRemote } from '../../src/logic/neighbor-discovery/HandshakeRpcRemote'
23
23
  import { NetworkNode, createNetworkNode } from '../../src/NetworkNode'
24
24
  import { EthereumAddress, hexToBinary, utf8ToBinary } from '@streamr/utils'
@@ -37,12 +37,12 @@ export const mockConnectionLocker: ConnectionLocker = {
37
37
  getWeakLockedConnectionCount: () => 0,
38
38
  }
39
39
 
40
- export const createMockRandomGraphNodeAndDhtNode = async (
40
+ export const createMockContentDeliveryLayerNodeAndDhtNode = async (
41
41
  localPeerDescriptor: PeerDescriptor,
42
42
  entryPointDescriptor: PeerDescriptor,
43
43
  streamPartId: StreamPartID,
44
44
  simulator: Simulator
45
- ): Promise<[ Layer1Node, RandomGraphNode ]> => {
45
+ ): Promise<[ Layer1Node, ContentDeliveryLayerNode ]> => {
46
46
  const mockCm = new SimulatorTransport(localPeerDescriptor, simulator)
47
47
  await mockCm.start()
48
48
  const layer1Node = new DhtNode({
@@ -52,7 +52,7 @@ export const createMockRandomGraphNodeAndDhtNode = async (
52
52
  entryPoints: [entryPointDescriptor],
53
53
  rpcRequestTimeout: 5000
54
54
  })
55
- const randomGraphNode = createRandomGraphNode({
55
+ const contentDeliveryLayerNode = createContentDeliveryLayerNode({
56
56
  streamPartId,
57
57
  transport: mockCm,
58
58
  layer1Node,
@@ -61,7 +61,7 @@ export const createMockRandomGraphNodeAndDhtNode = async (
61
61
  rpcRequestTimeout: 5000,
62
62
  isLocalNodeEntryPoint: () => false
63
63
  })
64
- return [layer1Node, randomGraphNode]
64
+ return [layer1Node, contentDeliveryLayerNode]
65
65
  }
66
66
 
67
67
  export const createStreamMessage = (
@@ -1 +0,0 @@
1
- {"version":3,"file":"RandomGraphNode.js","sourceRoot":"","sources":["../../../src/logic/RandomGraphNode.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import { StrictRandomGraphNodeConfig, RandomGraphNode } from './RandomGraphNode';
2
- import { MarkOptional } from 'ts-essentials';
3
- type RandomGraphNodeConfig = MarkOptional<StrictRandomGraphNodeConfig, 'nearbyNodeView' | 'randomNodeView' | 'neighbors' | 'leftNodeView' | 'rightNodeView' | 'propagation' | 'handshaker' | 'neighborFinder' | 'neighborUpdateManager' | 'neighborTargetCount' | 'rpcCommunicator' | 'nodeViewSize' | 'inspector' | 'temporaryConnectionRpcLocal'> & {
4
- maxContactCount?: number;
5
- minPropagationTargets?: number;
6
- acceptProxyConnections?: boolean;
7
- neighborUpdateInterval?: number;
8
- };
9
- export declare const createRandomGraphNode: (config: RandomGraphNodeConfig) => RandomGraphNode;
10
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"createRandomGraphNode.js","sourceRoot":"","sources":["../../../src/logic/createRandomGraphNode.ts"],"names":[],"mappings":"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"}