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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/package.json +6 -6
  2. package/dist/src/NetworkNode.js +1 -1
  3. package/dist/src/NetworkNode.js.map +1 -1
  4. package/dist/src/NetworkStack.d.ts +4 -3
  5. package/dist/src/NetworkStack.js +12 -12
  6. package/dist/src/NetworkStack.js.map +1 -1
  7. package/dist/src/logic/EntryPointDiscovery.d.ts +2 -2
  8. package/dist/src/logic/EntryPointDiscovery.js +4 -4
  9. package/dist/src/logic/EntryPointDiscovery.js.map +1 -1
  10. package/dist/src/logic/{ILayer0.d.ts → Layer0Node.d.ts} +5 -1
  11. package/dist/src/logic/{ILayer1.js → Layer0Node.js} +1 -1
  12. package/dist/src/logic/Layer0Node.js.map +1 -0
  13. package/dist/src/logic/{ILayer1.d.ts → Layer1Node.d.ts} +5 -5
  14. package/dist/src/logic/{ILayer0.js → Layer1Node.js} +1 -1
  15. package/dist/src/logic/Layer1Node.js.map +1 -0
  16. package/dist/src/logic/RandomGraphNode.d.ts +3 -3
  17. package/dist/src/logic/RandomGraphNode.js +9 -9
  18. package/dist/src/logic/RandomGraphNode.js.map +1 -1
  19. package/dist/src/logic/StreamrNode.d.ts +6 -6
  20. package/dist/src/logic/StreamrNode.js +29 -28
  21. package/dist/src/logic/StreamrNode.js.map +1 -1
  22. package/dist/src/logic/createRandomGraphNode.js +1 -1
  23. package/dist/src/logic/createRandomGraphNode.js.map +1 -1
  24. package/dist/src/logic/proxy/ProxyClient.d.ts +1 -1
  25. package/dist/src/logic/proxy/ProxyClient.js +2 -2
  26. package/dist/src/logic/proxy/ProxyClient.js.map +1 -1
  27. package/dist/src/proto/packages/dht/protos/DhtRpc.client.d.ts +10 -0
  28. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js +7 -0
  29. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js.map +1 -1
  30. package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +54 -114
  31. package/dist/src/proto/packages/dht/protos/DhtRpc.js +49 -47
  32. package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
  33. package/dist/src/proto/packages/dht/protos/DhtRpc.server.d.ts +6 -0
  34. package/dist/test/benchmark/first-message.js +9 -7
  35. package/dist/test/benchmark/first-message.js.map +1 -1
  36. package/dist/test/utils/utils.d.ts +3 -2
  37. package/dist/test/utils/utils.js +4 -4
  38. package/dist/test/utils/utils.js.map +1 -1
  39. package/package.json +6 -6
  40. package/src/NetworkNode.ts +1 -1
  41. package/src/NetworkStack.ts +14 -13
  42. package/src/logic/EntryPointDiscovery.ts +6 -6
  43. package/src/logic/{ILayer0.ts → Layer0Node.ts} +5 -1
  44. package/src/logic/{ILayer1.ts → Layer1Node.ts} +5 -5
  45. package/src/logic/RandomGraphNode.ts +12 -12
  46. package/src/logic/StreamrNode.ts +35 -34
  47. package/src/logic/createRandomGraphNode.ts +1 -1
  48. package/src/logic/proxy/ProxyClient.ts +3 -3
  49. package/src/proto/packages/dht/protos/DhtRpc.client.ts +13 -0
  50. package/src/proto/packages/dht/protos/DhtRpc.server.ts +6 -0
  51. package/src/proto/packages/dht/protos/DhtRpc.ts +87 -160
  52. package/test/benchmark/first-message.ts +11 -9
  53. package/test/end-to-end/proxy-and-full-node.test.ts +4 -4
  54. package/test/end-to-end/random-graph-with-real-connections.test.ts +20 -15
  55. package/test/integration/Inspect.test.ts +1 -1
  56. package/test/integration/Propagation.test.ts +13 -12
  57. package/test/integration/RandomGraphNode-Layer1Node-Latencies.test.ts +13 -12
  58. package/test/integration/RandomGraphNode-Layer1Node.test.ts +13 -12
  59. package/test/integration/StreamrNode.test.ts +11 -10
  60. package/test/integration/joining-streams-on-offline-peers.test.ts +2 -2
  61. package/test/integration/stream-without-default-entrypoints.test.ts +1 -1
  62. package/test/unit/EntrypointDiscovery.test.ts +7 -7
  63. package/test/unit/RandomGraphNode.test.ts +10 -9
  64. package/test/unit/StreamrNode.test.ts +2 -2
  65. package/test/utils/mock/{MockLayer0.ts → MockLayer0Node.ts} +21 -5
  66. package/test/utils/mock/{MockLayer1.ts → MockLayer1Node.ts} +2 -2
  67. package/test/utils/utils.ts +6 -5
  68. package/dist/src/logic/ILayer0.js.map +0 -1
  69. package/dist/src/logic/ILayer1.js.map +0 -1
@@ -1,14 +1,15 @@
1
- import { DhtNode, Simulator } from '@streamr/dht'
1
+ import { Simulator } from '@streamr/dht'
2
2
  import { StreamPartIDUtils } from '@streamr/protocol'
3
3
  import { randomEthereumAddress } from '@streamr/test-utils'
4
4
  import { waitForCondition } from '@streamr/utils'
5
5
  import { range } from 'lodash'
6
6
  import { RandomGraphNode } from '../../src/logic/RandomGraphNode'
7
7
  import { createMockPeerDescriptor, createMockRandomGraphNodeAndDhtNode, createStreamMessage } from '../utils/utils'
8
+ import { Layer1Node } from '../../src/logic/Layer1Node'
8
9
 
9
10
  describe('Propagation', () => {
10
11
  const entryPointDescriptor = createMockPeerDescriptor()
11
- let dhtNodes: DhtNode[]
12
+ let layer1Nodes: Layer1Node[]
12
13
  let randomGraphNodes: RandomGraphNode[]
13
14
  const STREAM_PART_ID = StreamPartIDUtils.parse('testingtesting#0')
14
15
  let totalReceived: number
@@ -17,38 +18,38 @@ describe('Propagation', () => {
17
18
  beforeEach(async () => {
18
19
  totalReceived = 0
19
20
  const simulator = new Simulator()
20
- dhtNodes = []
21
+ layer1Nodes = []
21
22
  randomGraphNodes = []
22
23
  const [entryPoint, node1] = await createMockRandomGraphNodeAndDhtNode(entryPointDescriptor, entryPointDescriptor, STREAM_PART_ID, simulator)
23
24
  await entryPoint.start()
24
25
  await entryPoint.joinDht([entryPointDescriptor])
25
26
  await node1.start()
26
27
  node1.on('message', () => {totalReceived += 1})
27
- dhtNodes.push(entryPoint)
28
+ layer1Nodes.push(entryPoint)
28
29
  randomGraphNodes.push(node1)
29
30
 
30
31
  await Promise.all(range(NUM_OF_NODES).map(async (_i) => {
31
32
  const descriptor = createMockPeerDescriptor()
32
- const [dht, graph] = await createMockRandomGraphNodeAndDhtNode(
33
+ const [layer1, randomGraphNode] = await createMockRandomGraphNodeAndDhtNode(
33
34
  descriptor,
34
35
  entryPointDescriptor,
35
36
  STREAM_PART_ID,
36
37
  simulator
37
38
  )
38
- await dht.start()
39
- await graph.start()
39
+ await layer1.start()
40
+ await randomGraphNode.start()
40
41
  // eslint-disable-next-line promise/always-return
41
- await dht.joinDht([entryPointDescriptor]).then(() => {
42
- graph.on('message', () => { totalReceived += 1 })
43
- dhtNodes.push(dht)
44
- randomGraphNodes.push(graph)
42
+ await layer1.joinDht([entryPointDescriptor]).then(() => {
43
+ randomGraphNode.on('message', () => { totalReceived += 1 })
44
+ layer1Nodes.push(layer1)
45
+ randomGraphNodes.push(randomGraphNode)
45
46
  })
46
47
  }))
47
48
  }, 45000)
48
49
 
49
50
  afterEach(async () => {
50
51
  await Promise.all(randomGraphNodes.map((node) => node.stop()))
51
- await Promise.all(dhtNodes.map((node) => node.stop()))
52
+ await Promise.all(layer1Nodes.map((node) => node.stop()))
52
53
  })
53
54
 
54
55
  it('All nodes receive messages', async () => {
@@ -5,11 +5,12 @@ import { RandomGraphNode } from '../../src/logic/RandomGraphNode'
5
5
  import { createRandomGraphNode } from '../../src/logic/createRandomGraphNode'
6
6
  import { createMockPeerDescriptor } from '../utils/utils'
7
7
  import { StreamPartIDUtils } from '@streamr/protocol'
8
+ import { Layer1Node } from '../../src/logic/Layer1Node'
8
9
 
9
10
  describe('RandomGraphNode-DhtNode-Latencies', () => {
10
11
  const numOfNodes = 64
11
- let dhtNodes: DhtNode[]
12
- let dhtEntryPoint: DhtNode
12
+ let layer1Nodes: Layer1Node[]
13
+ let dhtEntryPoint: Layer1Node
13
14
  let entryPointRandomGraphNode: RandomGraphNode
14
15
  let graphNodes: RandomGraphNode[]
15
16
 
@@ -32,41 +33,41 @@ describe('RandomGraphNode-DhtNode-Latencies', () => {
32
33
  peerDescriptor: entrypointDescriptor,
33
34
  serviceId: streamPartId
34
35
  })
35
- dhtNodes = range(numOfNodes).map((i) => new DhtNode({
36
+ layer1Nodes = range(numOfNodes).map((i) => new DhtNode({
36
37
  transport: cms[i],
37
38
  peerDescriptor: peerDescriptors[i],
38
39
  serviceId: streamPartId
39
40
  }))
40
41
  graphNodes = range(numOfNodes).map((i) => createRandomGraphNode({
41
42
  streamPartId,
42
- layer1: dhtNodes[i],
43
- P2PTransport: cms[i],
43
+ layer1Node: layer1Nodes[i],
44
+ transport: cms[i],
44
45
  connectionLocker: cms[i],
45
46
  ownPeerDescriptor: peerDescriptors[i]
46
47
  }))
47
48
  entryPointRandomGraphNode = createRandomGraphNode({
48
49
  streamPartId,
49
- layer1: dhtEntryPoint,
50
- P2PTransport: entrypointCm,
50
+ layer1Node: dhtEntryPoint,
51
+ transport: entrypointCm,
51
52
  connectionLocker: entrypointCm,
52
53
  ownPeerDescriptor: entrypointDescriptor
53
54
  })
54
55
 
55
56
  await dhtEntryPoint.start()
56
57
  await dhtEntryPoint.joinDht([entrypointDescriptor])
57
- await Promise.all(dhtNodes.map((node) => node.start()))
58
+ await Promise.all(layer1Nodes.map((node) => node.start()))
58
59
  })
59
60
 
60
61
  afterEach(async () => {
61
62
  dhtEntryPoint.stop()
62
63
  entryPointRandomGraphNode.stop()
63
- await Promise.all(dhtNodes.map((node) => node.stop()))
64
+ await Promise.all(layer1Nodes.map((node) => node.stop()))
64
65
  await Promise.all(graphNodes.map((node) => node.stop()))
65
66
  Simulator.useFakeTimers(false)
66
67
  })
67
68
 
68
69
  it('happy path single node', async () => {
69
- await dhtNodes[0].joinDht([entrypointDescriptor])
70
+ await layer1Nodes[0].joinDht([entrypointDescriptor])
70
71
  entryPointRandomGraphNode.start()
71
72
  await graphNodes[0].start()
72
73
  await Promise.all([
@@ -81,7 +82,7 @@ describe('RandomGraphNode-DhtNode-Latencies', () => {
81
82
  entryPointRandomGraphNode.start()
82
83
  range(4).forEach((i) => graphNodes[i].start())
83
84
  await Promise.all(range(4).map(async (i) => {
84
- await dhtNodes[i].joinDht([entrypointDescriptor])
85
+ await layer1Nodes[i].joinDht([entrypointDescriptor])
85
86
  }))
86
87
  await Promise.all(range(4).map((i) => {
87
88
  return waitForCondition(() => {
@@ -109,7 +110,7 @@ describe('RandomGraphNode-DhtNode-Latencies', () => {
109
110
  it('happy path 64 nodes', async () => {
110
111
  await Promise.all(range(numOfNodes).map((i) => graphNodes[i].start()))
111
112
  await Promise.all(range(numOfNodes).map((i) => {
112
- dhtNodes[i].joinDht([entrypointDescriptor])
113
+ layer1Nodes[i].joinDht([entrypointDescriptor])
113
114
  }))
114
115
  await Promise.all(graphNodes.map((node) =>
115
116
  waitForCondition(() => node.getTargetNeighborIds().length >= 4, 10000)
@@ -5,13 +5,14 @@ import { RandomGraphNode } from '../../src/logic/RandomGraphNode'
5
5
  import { createRandomGraphNode } from '../../src/logic/createRandomGraphNode'
6
6
  import { createMockPeerDescriptor } from '../utils/utils'
7
7
  import { StreamPartIDUtils } from '@streamr/protocol'
8
+ import { Layer1Node } from '../../src/logic/Layer1Node'
8
9
 
9
10
  const logger = new Logger(module)
10
11
 
11
12
  describe('RandomGraphNode-DhtNode', () => {
12
13
  const numOfNodes = 64
13
- let dhtNodes: DhtNode[]
14
- let dhtEntryPoint: DhtNode
14
+ let layer1Nodes: Layer1Node[]
15
+ let dhtEntryPoint: Layer1Node
15
16
  let entryPointRandomGraphNode: RandomGraphNode
16
17
  let graphNodes: RandomGraphNode[]
17
18
 
@@ -49,7 +50,7 @@ describe('RandomGraphNode-DhtNode', () => {
49
50
  serviceId: streamPartId
50
51
  })
51
52
 
52
- dhtNodes = range(numOfNodes).map((i) => new DhtNode({
53
+ layer1Nodes = range(numOfNodes).map((i) => new DhtNode({
53
54
  transport: cms[i],
54
55
  peerDescriptor: peerDescriptors[i],
55
56
  serviceId: streamPartId
@@ -57,8 +58,8 @@ describe('RandomGraphNode-DhtNode', () => {
57
58
 
58
59
  graphNodes = range(numOfNodes).map((i) => createRandomGraphNode({
59
60
  streamPartId,
60
- layer1: dhtNodes[i],
61
- P2PTransport: cms[i],
61
+ layer1Node: layer1Nodes[i],
62
+ transport: cms[i],
62
63
  connectionLocker: cms[i],
63
64
  ownPeerDescriptor: peerDescriptors[i],
64
65
  neighborUpdateInterval: 2000
@@ -66,8 +67,8 @@ describe('RandomGraphNode-DhtNode', () => {
66
67
 
67
68
  entryPointRandomGraphNode = createRandomGraphNode({
68
69
  streamPartId,
69
- layer1: dhtEntryPoint,
70
- P2PTransport: entrypointCm,
70
+ layer1Node: dhtEntryPoint,
71
+ transport: entrypointCm,
71
72
  connectionLocker: entrypointCm,
72
73
  ownPeerDescriptor: entrypointDescriptor,
73
74
  neighborUpdateInterval: 2000
@@ -75,20 +76,20 @@ describe('RandomGraphNode-DhtNode', () => {
75
76
 
76
77
  await dhtEntryPoint.start()
77
78
  await dhtEntryPoint.joinDht([entrypointDescriptor])
78
- await Promise.all(dhtNodes.map((node) => node.start()))
79
+ await Promise.all(layer1Nodes.map((node) => node.start()))
79
80
  })
80
81
 
81
82
  afterEach(async () => {
82
83
  await dhtEntryPoint.stop()
83
84
  entryPointRandomGraphNode.stop()
84
- await Promise.all(dhtNodes.map((node) => node.stop()))
85
+ await Promise.all(layer1Nodes.map((node) => node.stop()))
85
86
  await Promise.all(graphNodes.map((node) => node.stop()))
86
87
  Simulator.useFakeTimers(false)
87
88
  })
88
89
 
89
90
  it('happy path single node ', async () => {
90
91
  await entryPointRandomGraphNode.start()
91
- await dhtNodes[0].joinDht([entrypointDescriptor])
92
+ await layer1Nodes[0].joinDht([entrypointDescriptor])
92
93
 
93
94
  await graphNodes[0].start()
94
95
 
@@ -101,7 +102,7 @@ describe('RandomGraphNode-DhtNode', () => {
101
102
  entryPointRandomGraphNode.start()
102
103
  range(4).forEach((i) => graphNodes[i].start())
103
104
  await Promise.all(range(4).map(async (i) => {
104
- await dhtNodes[i].joinDht([entrypointDescriptor])
105
+ await layer1Nodes[i].joinDht([entrypointDescriptor])
105
106
  }))
106
107
 
107
108
  await waitForCondition(() => range(4).every((i) => graphNodes[i].getTargetNeighborIds().length === 4))
@@ -126,7 +127,7 @@ describe('RandomGraphNode-DhtNode', () => {
126
127
  it('happy path 64 nodes', async () => {
127
128
  await Promise.all(range(numOfNodes).map((i) => graphNodes[i].start()))
128
129
  await Promise.all(range(numOfNodes).map((i) => {
129
- dhtNodes[i].joinDht([entrypointDescriptor])
130
+ layer1Nodes[i].joinDht([entrypointDescriptor])
130
131
  }))
131
132
  await Promise.all(graphNodes.map((node) =>
132
133
  waitForCondition(() => node.getTargetNeighborIds().length >= 4, 10000)
@@ -10,11 +10,12 @@ import { waitForEvent3, waitForCondition } from '@streamr/utils'
10
10
  import { createStreamMessage } from '../utils/utils'
11
11
  import { StreamPartIDUtils } from '@streamr/protocol'
12
12
  import { randomEthereumAddress } from '@streamr/test-utils'
13
+ import { Layer0Node } from '../../src/logic/Layer0Node'
13
14
 
14
15
  describe('StreamrNode', () => {
15
16
 
16
- let layer01: DhtNode
17
- let layer02: DhtNode
17
+ let layer0Node1: Layer0Node
18
+ let layer0Node2: Layer0Node
18
19
  let transport1: SimulatorTransport
19
20
  let transport2: SimulatorTransport
20
21
  let node1: StreamrNode
@@ -49,30 +50,30 @@ describe('StreamrNode', () => {
49
50
  await transport1.start()
50
51
  transport2 = new SimulatorTransport(peerDescriptor2, simulator)
51
52
  await transport2.start()
52
- layer01 = new DhtNode({
53
+ layer0Node1 = new DhtNode({
53
54
  transport: transport1,
54
55
  peerDescriptor: peerDescriptor1,
55
56
  entryPoints: [peerDescriptor1]
56
57
  })
57
- layer02 = new DhtNode({
58
+ layer0Node2 = new DhtNode({
58
59
  transport: transport2,
59
60
  peerDescriptor: peerDescriptor2,
60
61
  entryPoints: [peerDescriptor1]
61
62
  })
62
63
  await Promise.all([
63
- layer01.start(),
64
- layer02.start()
64
+ layer0Node1.start(),
65
+ layer0Node2.start()
65
66
  ])
66
67
  await Promise.all([
67
- layer01.joinDht([peerDescriptor1]),
68
- layer02.joinDht([peerDescriptor1])
68
+ layer0Node1.joinDht([peerDescriptor1]),
69
+ layer0Node2.joinDht([peerDescriptor1])
69
70
  ])
70
71
 
71
72
  node1 = new StreamrNode({})
72
73
  node2 = new StreamrNode({})
73
- await node1.start(layer01, transport1, transport1)
74
+ await node1.start(layer0Node1, transport1, transport1)
74
75
  node1.setStreamPartEntryPoints(STREAM_PART_ID, [peerDescriptor1])
75
- await node2.start(layer02, transport2, transport2)
76
+ await node2.start(layer0Node2, transport2, transport2)
76
77
  node2.setStreamPartEntryPoints(STREAM_PART_ID, [peerDescriptor1])
77
78
  })
78
79
 
@@ -86,8 +86,8 @@ describe('Joining stream parts on offline nodes', () => {
86
86
  let messageReceived = false
87
87
 
88
88
  // store offline peer descriptors to DHT
89
- await entryPoint.getLayer0DhtNode().storeDataToDht(streamPartIdToDataKey(STREAM_PART_ID), Any.pack(offlineDescriptor1, PeerDescriptor))
90
- await entryPoint.getLayer0DhtNode().storeDataToDht(streamPartIdToDataKey(STREAM_PART_ID), Any.pack(offlineDescriptor2, PeerDescriptor))
89
+ await entryPoint.getLayer0Node().storeDataToDht(streamPartIdToDataKey(STREAM_PART_ID), Any.pack(offlineDescriptor1, PeerDescriptor))
90
+ await entryPoint.getLayer0Node().storeDataToDht(streamPartIdToDataKey(STREAM_PART_ID), Any.pack(offlineDescriptor2, PeerDescriptor))
91
91
 
92
92
  node1.getStreamrNode().joinStreamPart(STREAM_PART_ID)
93
93
  node1.getStreamrNode().on('newMessage', () => { messageReceived = true })
@@ -119,7 +119,7 @@ describe('stream without default entrypoints', () => {
119
119
  await nodes[i].join(STREAM_PART_ID, { minCount: (i > 0) ? 1 : 0, timeout: 15000 })
120
120
  }
121
121
  await waitForCondition(async () => {
122
- const entryPointData = await nodes[15].stack.getLayer0DhtNode().getDataFromDht(streamPartIdToDataKey(STREAM_PART_ID))
122
+ const entryPointData = await nodes[15].stack.getLayer0Node().getDataFromDht(streamPartIdToDataKey(STREAM_PART_ID))
123
123
  return entryPointData.length >= 7
124
124
  }, 15000)
125
125
 
@@ -5,7 +5,7 @@ import { range } from 'lodash'
5
5
  import { EntryPointDiscovery } from '../../src/logic/EntryPointDiscovery'
6
6
  import { Any } from '../../src/proto/google/protobuf/any'
7
7
  import { DataEntry } from '../../src/proto/packages/dht/protos/DhtRpc'
8
- import { MockLayer1 } from '../utils/mock/MockLayer1'
8
+ import { MockLayer1Node } from '../utils/mock/MockLayer1Node'
9
9
  import { createMockPeerDescriptor } from '../utils/utils'
10
10
 
11
11
  const STREAM_PART_ID = StreamPartIDUtils.parse('stream#0')
@@ -52,7 +52,7 @@ describe('EntryPointDiscovery', () => {
52
52
 
53
53
  const fakeDeleteEntryPointData = async (): Promise<void> => {}
54
54
 
55
- const addNodesToStreamPart = (layer1: MockLayer1, count: number) => {
55
+ const addNodesToStreamPart = (layer1: MockLayer1Node, count: number) => {
56
56
  range(count).forEach(() => {
57
57
  layer1.addNewRandomPeerToKBucket()
58
58
  layer1.addNewRandomPeerToKBucket()
@@ -61,15 +61,15 @@ describe('EntryPointDiscovery', () => {
61
61
  })
62
62
  }
63
63
 
64
- let layer1: MockLayer1
64
+ let layer1Node: MockLayer1Node
65
65
 
66
66
  beforeEach(() => {
67
67
  storeCalled = 0
68
- layer1 = new MockLayer1()
68
+ layer1Node = new MockLayer1Node()
69
69
  entryPointDiscoveryWithData = new EntryPointDiscovery({
70
70
  ownPeerDescriptor: peerDescriptor,
71
71
  streamPartId: STREAM_PART_ID,
72
- layer1,
72
+ layer1Node,
73
73
  getEntryPointData: fakeGetEntryPointData,
74
74
  storeEntryPointData: fakeStoreEntryPointData,
75
75
  deleteEntryPointData: fakeDeleteEntryPointData,
@@ -78,7 +78,7 @@ describe('EntryPointDiscovery', () => {
78
78
  entryPointDiscoveryWithoutData = new EntryPointDiscovery({
79
79
  ownPeerDescriptor: peerDescriptor,
80
80
  streamPartId: STREAM_PART_ID,
81
- layer1,
81
+ layer1Node,
82
82
  getEntryPointData: fakeEmptyGetEntryPointData,
83
83
  storeEntryPointData: fakeStoreEntryPointData,
84
84
  deleteEntryPointData: fakeDeleteEntryPointData,
@@ -115,7 +115,7 @@ describe('EntryPointDiscovery', () => {
115
115
  })
116
116
 
117
117
  it('store on stream without saturated entrypoint count', async () => {
118
- addNodesToStreamPart(layer1, 4)
118
+ addNodesToStreamPart(layer1Node, 4)
119
119
  await entryPointDiscoveryWithData.storeSelfAsEntryPointIfNecessary(0)
120
120
  expect(storeCalled).toEqual(1)
121
121
  })
@@ -4,7 +4,7 @@ import { NodeList } from '../../src/logic/NodeList'
4
4
  import { RandomGraphNode } from '../../src/logic/RandomGraphNode'
5
5
  import { createRandomGraphNode } from '../../src/logic/createRandomGraphNode'
6
6
  import { MockHandshaker } from '../utils/mock/MockHandshaker'
7
- import { MockLayer1 } from '../utils/mock/MockLayer1'
7
+ import { MockLayer1Node } from '../utils/mock/MockLayer1Node'
8
8
  import { MockNeighborFinder } from '../utils/mock/MockNeighborFinder'
9
9
  import { MockNeighborUpdateManager } from '../utils/mock/MockNeighborUpdateManager'
10
10
  import { MockTransport } from '../utils/mock/Transport'
@@ -20,22 +20,23 @@ describe('RandomGraphNode', () => {
20
20
  let nearbyNodeView: NodeList
21
21
  let randomNodeView: NodeList
22
22
 
23
- let layer1: MockLayer1
23
+ let layer1Node: MockLayer1Node
24
+
24
25
  beforeEach(async () => {
25
26
  const nodeId = getNodeIdFromPeerDescriptor(peerDescriptor)
26
27
 
27
28
  targetNeighbors = new NodeList(nodeId, 10)
28
29
  randomNodeView = new NodeList(nodeId, 10)
29
30
  nearbyNodeView = new NodeList(nodeId, 10)
30
- layer1 = new MockLayer1()
31
+ layer1Node = new MockLayer1Node()
31
32
 
32
33
  randomGraphNode = createRandomGraphNode({
33
34
  targetNeighbors,
34
35
  randomNodeView,
35
36
  nearbyNodeView,
36
- P2PTransport: new MockTransport(),
37
+ transport: new MockTransport(),
37
38
  ownPeerDescriptor: peerDescriptor,
38
- layer1,
39
+ layer1Node,
39
40
  connectionLocker: mockConnectionLocker,
40
41
  handshaker: new MockHandshaker(),
41
42
  neighborUpdateManager: new MockNeighborUpdateManager(),
@@ -67,7 +68,7 @@ describe('RandomGraphNode', () => {
67
68
  it('Adds Closest Nodes from layer1 newContact event to nearbyNodeView', async () => {
68
69
  const peerDescriptor1 = createMockPeerDescriptor()
69
70
  const peerDescriptor2 = createMockPeerDescriptor()
70
- layer1.emit('newContact', peerDescriptor1, [peerDescriptor1, peerDescriptor2])
71
+ layer1Node.emit('newContact', peerDescriptor1, [peerDescriptor1, peerDescriptor2])
71
72
  await waitForCondition(() => nearbyNodeView.size() === 2)
72
73
  expect(nearbyNodeView.get(getNodeIdFromPeerDescriptor(peerDescriptor1))).toBeTruthy()
73
74
  expect(nearbyNodeView.get(getNodeIdFromPeerDescriptor(peerDescriptor2))).toBeTruthy()
@@ -76,7 +77,7 @@ describe('RandomGraphNode', () => {
76
77
  it('Adds Random Nodes from layer1 newRandomContact event to randomNodeView', async () => {
77
78
  const peerDescriptor1 = createMockPeerDescriptor()
78
79
  const peerDescriptor2 = createMockPeerDescriptor()
79
- layer1.emit('newRandomContact', peerDescriptor1, [peerDescriptor1, peerDescriptor2])
80
+ layer1Node.emit('newRandomContact', peerDescriptor1, [peerDescriptor1, peerDescriptor2])
80
81
  await waitForCondition(() => randomNodeView.size() === 2)
81
82
  expect(randomNodeView.get(getNodeIdFromPeerDescriptor(peerDescriptor1))).toBeTruthy()
82
83
  expect(randomNodeView.get(getNodeIdFromPeerDescriptor(peerDescriptor2))).toBeTruthy()
@@ -85,8 +86,8 @@ describe('RandomGraphNode', () => {
85
86
  it('Adds Nodes from layer1 KBucket to nearbyNodeView if its size is below nodeViewSize', async () => {
86
87
  const peerDescriptor1 = createMockPeerDescriptor()
87
88
  const peerDescriptor2 = createMockPeerDescriptor()
88
- layer1.addNewRandomPeerToKBucket()
89
- layer1.emit('newContact', peerDescriptor1, [peerDescriptor1, peerDescriptor2])
89
+ layer1Node.addNewRandomPeerToKBucket()
90
+ layer1Node.emit('newContact', peerDescriptor1, [peerDescriptor1, peerDescriptor2])
90
91
  await waitForCondition(() => nearbyNodeView.size() === 3)
91
92
  expect(nearbyNodeView.get(getNodeIdFromPeerDescriptor(peerDescriptor1))).toBeTruthy()
92
93
  expect(nearbyNodeView.get(getNodeIdFromPeerDescriptor(peerDescriptor2))).toBeTruthy()
@@ -3,7 +3,7 @@ import { StreamPartIDUtils } from '@streamr/protocol'
3
3
  import { randomEthereumAddress } from '@streamr/test-utils'
4
4
  import { waitForCondition } from '@streamr/utils'
5
5
  import { StreamrNode } from '../../src/logic/StreamrNode'
6
- import { MockLayer0 } from '../utils/mock/MockLayer0'
6
+ import { MockLayer0Node } from '../utils/mock/MockLayer0Node'
7
7
  import { MockTransport } from '../utils/mock/Transport'
8
8
  import { createMockPeerDescriptor, createStreamMessage, mockConnectionLocker } from '../utils/utils'
9
9
  import { ProxyDirection } from '../../src/proto/packages/trackerless-network/protos/NetworkRpc'
@@ -15,7 +15,7 @@ describe('StreamrNode', () => {
15
15
 
16
16
  beforeEach(async () => {
17
17
  node = new StreamrNode({})
18
- const mockLayer0 = new MockLayer0(peerDescriptor)
18
+ const mockLayer0 = new MockLayer0Node(peerDescriptor)
19
19
  await node.start(mockLayer0, new MockTransport(), mockConnectionLocker)
20
20
  })
21
21
 
@@ -1,8 +1,8 @@
1
- import { PeerDescriptor, DataEntry } from '@streamr/dht'
2
- import { ILayer0 } from '../../../src/logic/ILayer0'
1
+ import { PeerDescriptor, DataEntry, ITransport } from '@streamr/dht'
2
+ import { Layer0Node } from '../../../src/logic/Layer0Node'
3
3
  import { EventEmitter } from 'eventemitter3'
4
4
 
5
- export class MockLayer0 extends EventEmitter implements ILayer0 {
5
+ export class MockLayer0Node extends EventEmitter implements Layer0Node {
6
6
 
7
7
  private readonly peerDescriptor: PeerDescriptor
8
8
 
@@ -11,6 +11,16 @@ export class MockLayer0 extends EventEmitter implements ILayer0 {
11
11
  this.peerDescriptor = peerDescriptor
12
12
  }
13
13
 
14
+ // eslint-disable-next-line class-methods-use-this
15
+ joinDht(): Promise<void> {
16
+ throw new Error('not implemented')
17
+ }
18
+
19
+ // eslint-disable-next-line class-methods-use-this
20
+ hasJoined(): boolean {
21
+ throw new Error('not implemented')
22
+ }
23
+
14
24
  getPeerDescriptor(): PeerDescriptor {
15
25
  return this.peerDescriptor
16
26
  }
@@ -22,7 +32,6 @@ export class MockLayer0 extends EventEmitter implements ILayer0 {
22
32
 
23
33
  // eslint-disable-next-line class-methods-use-this
24
34
  async deleteDataFromDht(): Promise<void> {
25
-
26
35
  }
27
36
 
28
37
  // eslint-disable-next-line class-methods-use-this
@@ -45,8 +54,15 @@ export class MockLayer0 extends EventEmitter implements ILayer0 {
45
54
  }
46
55
 
47
56
  // eslint-disable-next-line class-methods-use-this
48
- async stop(): Promise<void> {
57
+ getTransport(): ITransport {
58
+ throw new Error('not implemented')
59
+ }
49
60
 
61
+ // eslint-disable-next-line class-methods-use-this
62
+ async start(): Promise<void> {
50
63
  }
51
64
 
65
+ // eslint-disable-next-line class-methods-use-this
66
+ async stop(): Promise<void> {
67
+ }
52
68
  }
@@ -1,9 +1,9 @@
1
1
  import { PeerDescriptor } from '@streamr/dht'
2
2
  import { EventEmitter } from 'eventemitter3'
3
- import { ILayer1 } from '../../../src/logic/ILayer1'
3
+ import { Layer1Node } from '../../../src/logic/Layer1Node'
4
4
  import { createMockPeerDescriptor } from '../utils'
5
5
 
6
- export class MockLayer1 extends EventEmitter implements ILayer1 {
6
+ export class MockLayer1Node extends EventEmitter implements Layer1Node {
7
7
 
8
8
  private readonly kbucketPeers: PeerDescriptor[] = []
9
9
 
@@ -15,6 +15,7 @@ import { NetworkNode, createNetworkNode } from '../../src/NetworkNode'
15
15
  import { EthereumAddress, hexToBinary, utf8ToBinary } from '@streamr/utils'
16
16
  import { StreamPartID, StreamPartIDUtils } from '@streamr/protocol'
17
17
  import { NodeID } from '../../src/identifiers'
18
+ import { Layer1Node } from '../../src/logic/Layer1Node'
18
19
 
19
20
  export const mockConnectionLocker: ConnectionLocker = {
20
21
  lockConnection: () => {},
@@ -28,10 +29,10 @@ export const createMockRandomGraphNodeAndDhtNode = async (
28
29
  entryPointDescriptor: PeerDescriptor,
29
30
  streamPartId: StreamPartID,
30
31
  simulator: Simulator
31
- ): Promise<[ DhtNode, RandomGraphNode ]> => {
32
+ ): Promise<[ Layer1Node, RandomGraphNode ]> => {
32
33
  const mockCm = new SimulatorTransport(ownPeerDescriptor, simulator)
33
34
  await mockCm.start()
34
- const dhtNode = new DhtNode({
35
+ const layer1Node = new DhtNode({
35
36
  transport: mockCm,
36
37
  peerDescriptor: ownPeerDescriptor,
37
38
  numberOfNodesPerKBucket: 4,
@@ -39,12 +40,12 @@ export const createMockRandomGraphNodeAndDhtNode = async (
39
40
  })
40
41
  const randomGraphNode = createRandomGraphNode({
41
42
  streamPartId,
42
- P2PTransport: mockCm,
43
- layer1: dhtNode,
43
+ transport: mockCm,
44
+ layer1Node,
44
45
  connectionLocker: mockCm,
45
46
  ownPeerDescriptor
46
47
  })
47
- return [dhtNode, randomGraphNode]
48
+ return [layer1Node, randomGraphNode]
48
49
  }
49
50
 
50
51
  export const createStreamMessage = (
@@ -1 +0,0 @@
1
- {"version":3,"file":"ILayer0.js","sourceRoot":"","sources":["../../../src/logic/ILayer0.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ILayer1.js","sourceRoot":"","sources":["../../../src/logic/ILayer1.ts"],"names":[],"mappings":""}