@streamr/trackerless-network 100.0.0-pretestnet.2 → 100.0.0-pretestnet.4

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 (105) hide show
  1. package/dist/package.json +8 -8
  2. package/dist/src/NetworkNode.d.ts +1 -1
  3. package/dist/src/NetworkNode.js +3 -3
  4. package/dist/src/NetworkNode.js.map +1 -1
  5. package/dist/src/NetworkStack.js +2 -1
  6. package/dist/src/NetworkStack.js.map +1 -1
  7. package/dist/src/logic/DeliveryRpcLocal.d.ts +1 -1
  8. package/dist/src/logic/EntryPointDiscovery.d.ts +1 -1
  9. package/dist/src/logic/EntryPointDiscovery.js +5 -5
  10. package/dist/src/logic/EntryPointDiscovery.js.map +1 -1
  11. package/dist/src/logic/Layer0Node.d.ts +1 -1
  12. package/dist/src/logic/Layer1Node.d.ts +1 -1
  13. package/dist/src/logic/RandomGraphNode.d.ts +2 -1
  14. package/dist/src/logic/RandomGraphNode.js +7 -7
  15. package/dist/src/logic/RandomGraphNode.js.map +1 -1
  16. package/dist/src/logic/StreamrNode.d.ts +3 -2
  17. package/dist/src/logic/StreamrNode.js +42 -39
  18. package/dist/src/logic/StreamrNode.js.map +1 -1
  19. package/dist/src/logic/createRandomGraphNode.js +8 -7
  20. package/dist/src/logic/createRandomGraphNode.js.map +1 -1
  21. package/dist/src/logic/inspect/Inspector.d.ts +2 -2
  22. package/dist/src/logic/inspect/Inspector.js +2 -2
  23. package/dist/src/logic/inspect/Inspector.js.map +1 -1
  24. package/dist/src/logic/neighbor-discovery/Handshaker.d.ts +2 -1
  25. package/dist/src/logic/neighbor-discovery/Handshaker.js +3 -3
  26. package/dist/src/logic/neighbor-discovery/Handshaker.js.map +1 -1
  27. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.d.ts +1 -1
  28. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js +1 -1
  29. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js.map +1 -1
  30. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.d.ts +1 -1
  31. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.js +2 -2
  32. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.js.map +1 -1
  33. package/dist/src/logic/proxy/ProxyClient.d.ts +1 -1
  34. package/dist/src/logic/proxy/ProxyClient.js +4 -4
  35. package/dist/src/logic/proxy/ProxyClient.js.map +1 -1
  36. package/dist/src/logic/proxy/ProxyConnectionRpcLocal.d.ts +1 -1
  37. package/dist/src/logic/proxy/ProxyConnectionRpcLocal.js +1 -1
  38. package/dist/src/logic/proxy/ProxyConnectionRpcLocal.js.map +1 -1
  39. package/dist/src/logic/proxy/ProxyConnectionRpcRemote.js +1 -1
  40. package/dist/src/logic/proxy/ProxyConnectionRpcRemote.js.map +1 -1
  41. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.d.ts +1 -1
  42. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.js +2 -2
  43. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.js.map +1 -1
  44. package/dist/src/proto/packages/dht/protos/DhtRpc.client.d.ts +77 -60
  45. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js +71 -58
  46. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js.map +1 -1
  47. package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +112 -136
  48. package/dist/src/proto/packages/dht/protos/DhtRpc.js +103 -107
  49. package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
  50. package/dist/src/proto/packages/dht/protos/DhtRpc.server.d.ts +37 -32
  51. package/dist/test/benchmark/first-message.js +1 -1
  52. package/dist/test/benchmark/first-message.js.map +1 -1
  53. package/dist/test/utils/utils.d.ts +1 -1
  54. package/dist/test/utils/utils.js +12 -9
  55. package/dist/test/utils/utils.js.map +1 -1
  56. package/karma.config.js +2 -2
  57. package/package.json +8 -8
  58. package/src/NetworkNode.ts +3 -3
  59. package/src/NetworkStack.ts +2 -1
  60. package/src/logic/DeliveryRpcLocal.ts +1 -1
  61. package/src/logic/EntryPointDiscovery.ts +6 -6
  62. package/src/logic/Layer0Node.ts +1 -1
  63. package/src/logic/Layer1Node.ts +1 -1
  64. package/src/logic/RandomGraphNode.ts +18 -12
  65. package/src/logic/StreamrNode.ts +31 -24
  66. package/src/logic/createRandomGraphNode.ts +8 -7
  67. package/src/logic/inspect/Inspector.ts +4 -4
  68. package/src/logic/neighbor-discovery/Handshaker.ts +15 -6
  69. package/src/logic/neighbor-discovery/NeighborUpdateManager.ts +2 -2
  70. package/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.ts +3 -3
  71. package/src/logic/proxy/ProxyClient.ts +6 -6
  72. package/src/logic/proxy/ProxyConnectionRpcLocal.ts +2 -2
  73. package/src/logic/proxy/ProxyConnectionRpcRemote.ts +2 -2
  74. package/src/logic/temporary-connection/TemporaryConnectionRpcLocal.ts +3 -3
  75. package/src/proto/packages/dht/protos/DhtRpc.client.ts +113 -97
  76. package/src/proto/packages/dht/protos/DhtRpc.server.ts +37 -32
  77. package/src/proto/packages/dht/protos/DhtRpc.ts +146 -178
  78. package/test/benchmark/first-message.ts +1 -1
  79. package/test/end-to-end/inspect.test.ts +6 -3
  80. package/test/end-to-end/proxy-and-full-node.test.ts +1 -0
  81. package/test/end-to-end/proxy-connections.test.ts +3 -1
  82. package/test/end-to-end/proxy-key-exchange.test.ts +1 -0
  83. package/test/end-to-end/random-graph-with-real-connections.test.ts +10 -10
  84. package/test/end-to-end/webrtc-full-node-network.test.ts +2 -1
  85. package/test/end-to-end/websocket-full-node-network.test.ts +3 -1
  86. package/test/integration/Handshakes.test.ts +1 -1
  87. package/test/integration/Inspect.test.ts +2 -2
  88. package/test/integration/NetworkStack.test.ts +4 -2
  89. package/test/integration/RandomGraphNode-Layer1Node-Latencies.test.ts +2 -2
  90. package/test/integration/RandomGraphNode-Layer1Node.test.ts +2 -2
  91. package/test/integration/StreamrNode.test.ts +1 -1
  92. package/test/integration/joining-streams-on-offline-peers.test.ts +12 -7
  93. package/test/integration/stream-without-default-entrypoints.test.ts +4 -3
  94. package/test/unit/DeliveryRpcLocal.test.ts +1 -1
  95. package/test/unit/EntrypointDiscovery.test.ts +3 -3
  96. package/test/unit/HandshakeRpcLocal.test.ts +2 -2
  97. package/test/unit/Handshaker.test.ts +3 -2
  98. package/test/unit/Inspector.test.ts +1 -1
  99. package/test/unit/NodeList.test.ts +1 -1
  100. package/test/unit/RandomGraphNode.test.ts +1 -1
  101. package/test/unit/StreamrNode.test.ts +1 -1
  102. package/test/utils/mock/MockLayer0Node.ts +1 -1
  103. package/test/utils/mock/Transport.ts +1 -1
  104. package/test/utils/utils.ts +13 -10
  105. package/test/integration/NetworkStackStoppedDuringStart.test.ts +0 -37
@@ -59,21 +59,24 @@ describe('inspect', () => {
59
59
  publisherNode = createNetworkNode({
60
60
  layer0: {
61
61
  entryPoints: [publisherDescriptor],
62
- peerDescriptor: publisherDescriptor
62
+ peerDescriptor: publisherDescriptor,
63
+ websocketServerEnableTls: false
63
64
  }
64
65
  })
65
66
 
66
67
  inspectedNode = createNetworkNode({
67
68
  layer0: {
68
69
  entryPoints: [publisherDescriptor],
69
- peerDescriptor: inspectedDescriptor
70
+ peerDescriptor: inspectedDescriptor,
71
+ websocketServerEnableTls: false
70
72
  }
71
73
  })
72
74
 
73
75
  inspectorNode = createNetworkNode({
74
76
  layer0: {
75
77
  entryPoints: [publisherDescriptor],
76
- peerDescriptor: inspectorDescriptor
78
+ peerDescriptor: inspectorDescriptor,
79
+ websocketServerEnableTls: false
77
80
  }
78
81
  })
79
82
 
@@ -45,6 +45,7 @@ describe('proxy and full node', () => {
45
45
  layer0: {
46
46
  entryPoints: [proxyNodeDescriptor],
47
47
  peerDescriptor: proxyNodeDescriptor,
48
+ websocketServerEnableTls: false
48
49
  },
49
50
  networkNode: {
50
51
  acceptProxyConnections: true
@@ -57,6 +57,7 @@ describe('Proxy connections', () => {
57
57
  layer0: {
58
58
  entryPoints: [proxyNodeDescriptor1],
59
59
  peerDescriptor: proxyNodeDescriptor1,
60
+ websocketServerEnableTls: false
60
61
  },
61
62
  networkNode: {
62
63
  acceptProxyConnections: true
@@ -69,6 +70,7 @@ describe('Proxy connections', () => {
69
70
  layer0: {
70
71
  entryPoints: [proxyNodeDescriptor1],
71
72
  peerDescriptor: proxyNodeDescriptor2,
73
+ websocketServerEnableTls: false
72
74
  },
73
75
  networkNode: {
74
76
  acceptProxyConnections: true
@@ -179,7 +181,7 @@ describe('Proxy connections', () => {
179
181
  PROXIED_NODE_USER_ID
180
182
  )
181
183
  expect(proxiedNode.hasStreamPart(STREAM_PART_ID)).toBe(true)
182
- proxyNode1.leave(STREAM_PART_ID)
184
+ await proxyNode1.leave(STREAM_PART_ID)
183
185
  await waitForCondition(() => hasConnectionToProxy(proxyNode1.getNodeId(), ProxyDirection.SUBSCRIBE))
184
186
  expect(hasConnectionFromProxy(proxyNode1)).toBe(false)
185
187
  proxyNode1.stack.getStreamrNode()!.joinStreamPart(STREAM_PART_ID)
@@ -33,6 +33,7 @@ describe('proxy group key exchange', () => {
33
33
  layer0: {
34
34
  entryPoints: [proxyNodeDescriptor],
35
35
  peerDescriptor: proxyNodeDescriptor,
36
+ websocketServerEnableTls: false
36
37
  },
37
38
  networkNode: {
38
39
  acceptProxyConnections: true
@@ -33,12 +33,12 @@ describe('random graph with real connections', () => {
33
33
  const websocketPortRange = { min: 12222, max: 12225 }
34
34
 
35
35
  beforeEach(async () => {
36
- epDhtNode = new DhtNode({ peerDescriptor: epPeerDescriptor })
36
+ epDhtNode = new DhtNode({ peerDescriptor: epPeerDescriptor, websocketServerEnableTls: false })
37
37
  await epDhtNode.start()
38
- dhtNode1 = new DhtNode({ websocketPortRange, entryPoints: [epPeerDescriptor] })
39
- dhtNode2 = new DhtNode({ websocketPortRange, entryPoints: [epPeerDescriptor] })
40
- dhtNode3 = new DhtNode({ websocketPortRange, entryPoints: [epPeerDescriptor] })
41
- dhtNode4 = new DhtNode({ websocketPortRange, entryPoints: [epPeerDescriptor] })
38
+ dhtNode1 = new DhtNode({ websocketPortRange, entryPoints: [epPeerDescriptor], websocketServerEnableTls: false })
39
+ dhtNode2 = new DhtNode({ websocketPortRange, entryPoints: [epPeerDescriptor], websocketServerEnableTls: false })
40
+ dhtNode3 = new DhtNode({ websocketPortRange, entryPoints: [epPeerDescriptor], websocketServerEnableTls: false })
41
+ dhtNode4 = new DhtNode({ websocketPortRange, entryPoints: [epPeerDescriptor], websocketServerEnableTls: false })
42
42
  await dhtNode1.start()
43
43
  await dhtNode2.start()
44
44
  await dhtNode3.start()
@@ -50,7 +50,7 @@ describe('random graph with real connections', () => {
50
50
  layer1Node: epDhtNode,
51
51
  transport: epDhtNode.getTransport(),
52
52
  connectionLocker: epDhtNode.getTransport() as ConnectionManager,
53
- ownPeerDescriptor: epPeerDescriptor
53
+ localPeerDescriptor: epPeerDescriptor
54
54
  }
55
55
  )
56
56
  randomGraphNode2 = createRandomGraphNode({
@@ -58,28 +58,28 @@ describe('random graph with real connections', () => {
58
58
  layer1Node: dhtNode1,
59
59
  transport: dhtNode1.getTransport(),
60
60
  connectionLocker: dhtNode1.getTransport() as ConnectionManager,
61
- ownPeerDescriptor: dhtNode1.getPeerDescriptor()
61
+ localPeerDescriptor: dhtNode1.getLocalPeerDescriptor()
62
62
  })
63
63
  randomGraphNode3 = createRandomGraphNode({
64
64
  streamPartId,
65
65
  layer1Node: dhtNode2,
66
66
  transport: dhtNode2.getTransport(),
67
67
  connectionLocker: dhtNode2.getTransport() as ConnectionManager,
68
- ownPeerDescriptor: dhtNode2.getPeerDescriptor()
68
+ localPeerDescriptor: dhtNode2.getLocalPeerDescriptor()
69
69
  })
70
70
  randomGraphNode4 = createRandomGraphNode({
71
71
  streamPartId,
72
72
  layer1Node: dhtNode3,
73
73
  transport: dhtNode3.getTransport(),
74
74
  connectionLocker: dhtNode3.getTransport() as ConnectionManager,
75
- ownPeerDescriptor: dhtNode3.getPeerDescriptor()
75
+ localPeerDescriptor: dhtNode3.getLocalPeerDescriptor()
76
76
  })
77
77
  randomGraphNode5 = createRandomGraphNode({
78
78
  streamPartId,
79
79
  layer1Node: dhtNode4,
80
80
  transport: dhtNode4.getTransport(),
81
81
  connectionLocker: dhtNode4.getTransport() as ConnectionManager,
82
- ownPeerDescriptor: dhtNode4.getPeerDescriptor()
82
+ localPeerDescriptor: dhtNode4.getLocalPeerDescriptor()
83
83
  })
84
84
  await epDhtNode.joinDht([epPeerDescriptor])
85
85
  await Promise.all([
@@ -29,7 +29,8 @@ describe('Full node network with WebRTC connections', () => {
29
29
  entryPoint = new NetworkStack({
30
30
  layer0: {
31
31
  entryPoints: [epPeerDescriptor],
32
- peerDescriptor: epPeerDescriptor
32
+ peerDescriptor: epPeerDescriptor,
33
+ websocketServerEnableTls: false
33
34
  }
34
35
  })
35
36
  await entryPoint.start()
@@ -26,6 +26,7 @@ describe('Full node network with WebSocket connections only', () => {
26
26
  layer0: {
27
27
  entryPoints: [epPeerDescriptor],
28
28
  peerDescriptor: epPeerDescriptor,
29
+ websocketServerEnableTls: false
29
30
  }
30
31
  })
31
32
  await entryPoint.start()
@@ -37,7 +38,8 @@ describe('Full node network with WebSocket connections only', () => {
37
38
  layer0: {
38
39
  entryPoints: [epPeerDescriptor],
39
40
  websocketPortRange: { min: 15556 + i, max: 15556 + i },
40
- numberOfNodesPerKBucket: 4
41
+ numberOfNodesPerKBucket: 4,
42
+ websocketServerEnableTls: false
41
43
  }
42
44
  })
43
45
  nodes.push(node)
@@ -87,7 +87,7 @@ describe('Handshakes', () => {
87
87
  nodeView = new NodeList(handshakerNodeId, 10)
88
88
  targetNeighbors = new NodeList(handshakerNodeId, 4)
89
89
  handshaker = new Handshaker({
90
- ownPeerDescriptor: peerDescriptor2,
90
+ localPeerDescriptor: peerDescriptor2,
91
91
  streamPartId,
92
92
  nearbyNodeView: nodeView,
93
93
  randomNodeView: nodeView,
@@ -39,7 +39,7 @@ describe('inspect', () => {
39
39
 
40
40
  beforeEach(async () => {
41
41
  Simulator.useFakeTimers()
42
- simulator = new Simulator(LatencyType.RANDOM)
42
+ simulator = new Simulator(LatencyType.REAL)
43
43
 
44
44
  publisherNode = await initiateNode(publisherDescriptor, simulator)
45
45
  inspectorNode = await initiateNode(inspectorPeerDescriptor, simulator)
@@ -82,7 +82,7 @@ describe('inspect', () => {
82
82
  }, 200)
83
83
 
84
84
  for (const node of inspectedNodes) {
85
- const result = await inspectorNode.getStreamrNode().inspect(node.getLayer0Node().getPeerDescriptor(), streamPartId)
85
+ const result = await inspectorNode.getStreamrNode().inspect(node.getLayer0Node().getLocalPeerDescriptor(), streamPartId)
86
86
  expect(result).toEqual(true)
87
87
  }
88
88
  }, 25000)
@@ -21,13 +21,15 @@ describe('NetworkStack', () => {
21
21
  stack1 = new NetworkStack({
22
22
  layer0: {
23
23
  peerDescriptor: epDescriptor,
24
- entryPoints: [epDescriptor]
24
+ entryPoints: [epDescriptor],
25
+ websocketServerEnableTls: false
25
26
  }
26
27
  })
27
28
  stack2 = new NetworkStack({
28
29
  layer0: {
29
30
  websocketPortRange: { min: 32223, max: 32223 },
30
- entryPoints: [epDescriptor]
31
+ entryPoints: [epDescriptor],
32
+ websocketServerEnableTls: false
31
33
  }
32
34
  })
33
35
 
@@ -43,14 +43,14 @@ describe('RandomGraphNode-DhtNode-Latencies', () => {
43
43
  layer1Node: layer1Nodes[i],
44
44
  transport: cms[i],
45
45
  connectionLocker: cms[i],
46
- ownPeerDescriptor: peerDescriptors[i]
46
+ localPeerDescriptor: peerDescriptors[i]
47
47
  }))
48
48
  entryPointRandomGraphNode = createRandomGraphNode({
49
49
  streamPartId,
50
50
  layer1Node: dhtEntryPoint,
51
51
  transport: entrypointCm,
52
52
  connectionLocker: entrypointCm,
53
- ownPeerDescriptor: entrypointDescriptor
53
+ localPeerDescriptor: entrypointDescriptor
54
54
  })
55
55
 
56
56
  await dhtEntryPoint.start()
@@ -61,7 +61,7 @@ describe('RandomGraphNode-DhtNode', () => {
61
61
  layer1Node: layer1Nodes[i],
62
62
  transport: cms[i],
63
63
  connectionLocker: cms[i],
64
- ownPeerDescriptor: peerDescriptors[i],
64
+ localPeerDescriptor: peerDescriptors[i],
65
65
  neighborUpdateInterval: 2000
66
66
  }))
67
67
 
@@ -70,7 +70,7 @@ describe('RandomGraphNode-DhtNode', () => {
70
70
  layer1Node: dhtEntryPoint,
71
71
  transport: entrypointCm,
72
72
  connectionLocker: entrypointCm,
73
- ownPeerDescriptor: entrypointDescriptor,
73
+ localPeerDescriptor: entrypointDescriptor,
74
74
  neighborUpdateInterval: 2000
75
75
  })
76
76
 
@@ -136,7 +136,7 @@ describe('StreamrNode', () => {
136
136
  waitForCondition(() => node1.getNeighbors(STREAM_PART_ID).length === 1),
137
137
  waitForCondition(() => node2.getNeighbors(STREAM_PART_ID).length === 1)
138
138
  ])
139
- node2.leaveStreamPart(STREAM_PART_ID)
139
+ await node2.leaveStreamPart(STREAM_PART_ID)
140
140
  await waitForCondition(() => node1.getNeighbors(STREAM_PART_ID).length === 0)
141
141
  })
142
142
 
@@ -1,4 +1,4 @@
1
- import { NodeType, PeerDescriptor, Simulator, SimulatorTransport, LatencyType } from '@streamr/dht'
1
+ import { NodeType, PeerDescriptor, Simulator, SimulatorTransport, LatencyType, getRandomRegion } 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'
@@ -13,27 +13,32 @@ describe('Joining stream parts on offline nodes', () => {
13
13
 
14
14
  const entryPointPeerDescriptor: PeerDescriptor = {
15
15
  kademliaId: new Uint8Array([1, 2, 3]),
16
- type: NodeType.NODEJS
16
+ type: NodeType.NODEJS,
17
+ region: getRandomRegion()
17
18
  }
18
19
 
19
20
  const node1PeerDescriptor: PeerDescriptor = {
20
21
  kademliaId: new Uint8Array([1, 1, 1]),
21
- type: NodeType.NODEJS
22
+ type: NodeType.NODEJS,
23
+ region: getRandomRegion()
22
24
  }
23
25
 
24
26
  const node2PeerDescriptor: PeerDescriptor = {
25
27
  kademliaId: new Uint8Array([2, 2, 2]),
26
- type: NodeType.NODEJS
28
+ type: NodeType.NODEJS,
29
+ region: getRandomRegion()
27
30
  }
28
31
 
29
32
  const offlineDescriptor1: PeerDescriptor = {
30
33
  kademliaId: new Uint8Array([3, 3, 3]),
31
- type: NodeType.NODEJS
34
+ type: NodeType.NODEJS,
35
+ region: getRandomRegion()
32
36
  }
33
37
 
34
38
  const offlineDescriptor2: PeerDescriptor = {
35
39
  kademliaId: new Uint8Array([4, 4, 4]),
36
- type: NodeType.NODEJS
40
+ type: NodeType.NODEJS,
41
+ region: getRandomRegion()
37
42
  }
38
43
 
39
44
  let entryPoint: NetworkStack
@@ -42,7 +47,7 @@ describe('Joining stream parts on offline nodes', () => {
42
47
  let simulator: Simulator
43
48
 
44
49
  beforeEach(async () => {
45
- simulator = new Simulator(LatencyType.RANDOM)
50
+ simulator = new Simulator(LatencyType.REAL)
46
51
  const entryPointTransport = new SimulatorTransport(entryPointPeerDescriptor, simulator)
47
52
  entryPoint = new NetworkStack({
48
53
  layer0: {
@@ -1,4 +1,4 @@
1
- import { LatencyType, NodeType, PeerDescriptor, Simulator, SimulatorTransport } from '@streamr/dht'
1
+ import { LatencyType, NodeType, PeerDescriptor, Simulator, SimulatorTransport, getRandomRegion } from '@streamr/dht'
2
2
  import {
3
3
  MessageID,
4
4
  MessageRef,
@@ -21,7 +21,8 @@ describe('stream without default entrypoints', () => {
21
21
  let numOfReceivedMessages: number
22
22
  const entryPointPeerDescriptor: PeerDescriptor = {
23
23
  kademliaId: new Uint8Array([1, 2, 3]),
24
- type: NodeType.NODEJS
24
+ type: NodeType.NODEJS,
25
+ region: getRandomRegion()
25
26
  }
26
27
 
27
28
  const streamMessage = new StreamMessage({
@@ -43,7 +44,7 @@ describe('stream without default entrypoints', () => {
43
44
 
44
45
  beforeEach(async () => {
45
46
  Simulator.useFakeTimers()
46
- const simulator = new Simulator(LatencyType.RANDOM)
47
+ const simulator = new Simulator(LatencyType.REAL)
47
48
  nodes = []
48
49
  numOfReceivedMessages = 0
49
50
  const entryPointTransport = new SimulatorTransport(entryPointPeerDescriptor, simulator)
@@ -35,7 +35,7 @@ describe('DeliveryRpcLocal', () => {
35
35
  broadcast: mockBroadcast,
36
36
  onLeaveNotice: mockOnLeaveNotice,
37
37
  markForInspection: mockMarkForInspection,
38
- ownPeerDescriptor: peerDescriptor,
38
+ localPeerDescriptor: peerDescriptor,
39
39
  streamPartId: StreamPartIDUtils.parse('stream#0'),
40
40
  rpcCommunicator: new ListeningRpcCommunicator('random-graph-node', new MockTransport())
41
41
  })
@@ -67,7 +67,7 @@ describe('EntryPointDiscovery', () => {
67
67
  storeCalled = 0
68
68
  layer1Node = new MockLayer1Node()
69
69
  entryPointDiscoveryWithData = new EntryPointDiscovery({
70
- ownPeerDescriptor: peerDescriptor,
70
+ localPeerDescriptor: peerDescriptor,
71
71
  streamPartId: STREAM_PART_ID,
72
72
  layer1Node,
73
73
  getEntryPointData: fakeGetEntryPointData,
@@ -76,7 +76,7 @@ describe('EntryPointDiscovery', () => {
76
76
  storeInterval: 2000
77
77
  })
78
78
  entryPointDiscoveryWithoutData = new EntryPointDiscovery({
79
- ownPeerDescriptor: peerDescriptor,
79
+ localPeerDescriptor: peerDescriptor,
80
80
  streamPartId: STREAM_PART_ID,
81
81
  layer1Node,
82
82
  getEntryPointData: fakeEmptyGetEntryPointData,
@@ -106,7 +106,7 @@ describe('EntryPointDiscovery', () => {
106
106
  const res = await entryPointDiscoveryWithoutData.discoverEntryPointsFromDht(0)
107
107
  expect(res.entryPointsFromDht).toEqual(true)
108
108
  expect(res.discoveredEntryPoints.length).toBe(1)
109
- expect(areEqualPeerDescriptors(res.discoveredEntryPoints[0], peerDescriptor)).toBe(true) // ownPeerDescriptor
109
+ expect(areEqualPeerDescriptors(res.discoveredEntryPoints[0], peerDescriptor)).toBe(true) // localPeerDescriptor
110
110
  })
111
111
 
112
112
  it('store on empty stream', async () => {
@@ -13,14 +13,14 @@ describe('HandshakeRpcLocal', () => {
13
13
 
14
14
  let rpcLocal: HandshakeRpcLocal
15
15
 
16
- const ownPeerDescriptor = createMockPeerDescriptor()
16
+ const localPeerDescriptor = createMockPeerDescriptor()
17
17
 
18
18
  let targetNeighbors: NodeList
19
19
  let ongoingHandshakes: Set<NodeID>
20
20
  let handshakeWithInterleaving: jest.Mock
21
21
 
22
22
  beforeEach(() => {
23
- targetNeighbors = new NodeList(getNodeIdFromPeerDescriptor(ownPeerDescriptor), 10)
23
+ targetNeighbors = new NodeList(getNodeIdFromPeerDescriptor(localPeerDescriptor), 10)
24
24
  ongoingHandshakes = new Set()
25
25
 
26
26
  handshakeWithInterleaving = jest.fn()
@@ -33,14 +33,15 @@ describe('Handshaker', () => {
33
33
  randomNodeView = new NodeList(nodeId, 20)
34
34
 
35
35
  handshaker = new Handshaker({
36
- ownPeerDescriptor: peerDescriptor,
36
+ localPeerDescriptor: peerDescriptor,
37
37
  streamPartId,
38
38
  connectionLocker: mockConnectionLocker,
39
39
  targetNeighbors,
40
40
  nearbyNodeView,
41
41
  randomNodeView,
42
42
  rpcCommunicator,
43
- maxNeighborCount
43
+ maxNeighborCount,
44
+ rpcRequestTimeout: 5000
44
45
  })
45
46
  })
46
47
 
@@ -28,7 +28,7 @@ describe('Inspector', () => {
28
28
  beforeEach(() => {
29
29
  mockConnect = jest.fn(() => {})
30
30
  inspector = new Inspector({
31
- ownPeerDescriptor: inspectorDescriptor,
31
+ localPeerDescriptor: inspectorDescriptor,
32
32
  streamPartId: StreamPartIDUtils.parse('stream#0'),
33
33
  rpcCommunicator: new ListeningRpcCommunicator('inspector', new MockTransport()),
34
34
  connectionLocker: mockConnectionLocker,
@@ -60,7 +60,7 @@ describe('NodeList', () => {
60
60
  }
61
61
  })
62
62
 
63
- afterEach(async ()=> {
63
+ afterEach(async () => {
64
64
  // eslint-disable-next-line @typescript-eslint/prefer-for-of
65
65
  for (let i = 0; i < mockTransports.length; i++) {
66
66
  await mockTransports[i].stop()
@@ -35,7 +35,7 @@ describe('RandomGraphNode', () => {
35
35
  randomNodeView,
36
36
  nearbyNodeView,
37
37
  transport: new MockTransport(),
38
- ownPeerDescriptor: peerDescriptor,
38
+ localPeerDescriptor: peerDescriptor,
39
39
  layer1Node,
40
40
  connectionLocker: mockConnectionLocker,
41
41
  handshaker: new MockHandshaker(),
@@ -48,7 +48,7 @@ describe('StreamrNode', () => {
48
48
  it('can leave stream part', async () => {
49
49
  node.joinStreamPart(streamPartId)
50
50
  expect(node.hasStreamPart(streamPartId)).toEqual(true)
51
- node.leaveStreamPart(streamPartId)
51
+ await node.leaveStreamPart(streamPartId)
52
52
  expect(node.hasStreamPart(streamPartId)).toEqual(false)
53
53
  })
54
54
 
@@ -21,7 +21,7 @@ export class MockLayer0Node extends EventEmitter implements Layer0Node {
21
21
  throw new Error('not implemented')
22
22
  }
23
23
 
24
- getPeerDescriptor(): PeerDescriptor {
24
+ getLocalPeerDescriptor(): PeerDescriptor {
25
25
  return this.peerDescriptor
26
26
  }
27
27
 
@@ -9,7 +9,7 @@ export class MockTransport extends EventEmitter implements ITransport {
9
9
  }
10
10
 
11
11
  // eslint-disable-next-line class-methods-use-this
12
- getPeerDescriptor(): PeerDescriptor {
12
+ getLocalPeerDescriptor(): PeerDescriptor {
13
13
  return PeerDescriptor.create()
14
14
  }
15
15
 
@@ -1,5 +1,5 @@
1
1
  import { randomBytes } from 'crypto'
2
- import { ConnectionLocker, DhtNode, NodeType, PeerDescriptor, Simulator, SimulatorTransport } from '@streamr/dht'
2
+ import { ConnectionLocker, DhtNode, NodeType, PeerDescriptor, Simulator, SimulatorTransport, getRandomRegion } from '@streamr/dht'
3
3
  import { RandomGraphNode } from '../../src/logic/RandomGraphNode'
4
4
  import {
5
5
  ContentType,
@@ -25,25 +25,27 @@ export const mockConnectionLocker: ConnectionLocker = {
25
25
  }
26
26
 
27
27
  export const createMockRandomGraphNodeAndDhtNode = async (
28
- ownPeerDescriptor: PeerDescriptor,
28
+ localPeerDescriptor: PeerDescriptor,
29
29
  entryPointDescriptor: PeerDescriptor,
30
30
  streamPartId: StreamPartID,
31
31
  simulator: Simulator
32
32
  ): Promise<[ Layer1Node, RandomGraphNode ]> => {
33
- const mockCm = new SimulatorTransport(ownPeerDescriptor, simulator)
33
+ const mockCm = new SimulatorTransport(localPeerDescriptor, simulator)
34
34
  await mockCm.start()
35
35
  const layer1Node = new DhtNode({
36
36
  transport: mockCm,
37
- peerDescriptor: ownPeerDescriptor,
37
+ peerDescriptor: localPeerDescriptor,
38
38
  numberOfNodesPerKBucket: 4,
39
- entryPoints: [entryPointDescriptor]
39
+ entryPoints: [entryPointDescriptor],
40
+ rpcRequestTimeout: 5000
40
41
  })
41
42
  const randomGraphNode = createRandomGraphNode({
42
43
  streamPartId,
43
44
  transport: mockCm,
44
45
  layer1Node,
45
46
  connectionLocker: mockCm,
46
- ownPeerDescriptor
47
+ localPeerDescriptor,
48
+ rpcRequestTimeout: 5000
47
49
  })
48
50
  return [layer1Node, randomGraphNode]
49
51
  }
@@ -58,8 +60,8 @@ export const createStreamMessage = (
58
60
  const messageId: MessageID = {
59
61
  streamId: StreamPartIDUtils.getStreamID(streamPartId),
60
62
  streamPartition: StreamPartIDUtils.getStreamPartition(streamPartId),
61
- sequenceNumber: sequenceNumber || 0,
62
- timestamp: timestamp || Date.now(),
63
+ sequenceNumber: sequenceNumber ?? 0,
64
+ timestamp: timestamp ?? Date.now(),
63
65
  publisherId: hexToBinary(publisherId),
64
66
  messageChainId: 'messageChain0',
65
67
  }
@@ -82,12 +84,13 @@ export const createMockPeerDescriptor = (opts?: Omit<Partial<PeerDescriptor>, 'k
82
84
  return {
83
85
  ...opts,
84
86
  kademliaId: hexToBinary(createRandomNodeId()),
85
- type: NodeType.NODEJS
87
+ type: NodeType.NODEJS,
88
+ region: getRandomRegion()
86
89
  }
87
90
  }
88
91
 
89
92
  export const createMockDeliveryRpcRemote = (remotePeerDescriptor?: PeerDescriptor): DeliveryRpcRemote => {
90
- return new DeliveryRpcRemote(createMockPeerDescriptor(), remotePeerDescriptor || createMockPeerDescriptor(), 'mock', {} as any)
93
+ return new DeliveryRpcRemote(createMockPeerDescriptor(), remotePeerDescriptor ?? createMockPeerDescriptor(), 'mock', {} as any)
91
94
  }
92
95
 
93
96
  export const createMockHandshakeRpcRemote = (): HandshakeRpcRemote => {
@@ -1,37 +0,0 @@
1
- import { NetworkStack } from '../../src/NetworkStack'
2
- import { createMockPeerDescriptor } from '../utils/utils'
3
-
4
- describe('NetworkStack can be stopped during start', () => {
5
-
6
- const epDescriptor = createMockPeerDescriptor({
7
- websocket: { host: '127.0.0.1', port: 32224, tls: false },
8
- })
9
- let entryPoint: NetworkStack
10
- let node: NetworkStack
11
-
12
- beforeEach(async () => {
13
- entryPoint = new NetworkStack({
14
- layer0: {
15
- peerDescriptor: epDescriptor,
16
- entryPoints: [epDescriptor]
17
- }
18
- })
19
- node = new NetworkStack({
20
- layer0: {
21
- peerDescriptor: createMockPeerDescriptor(),
22
- entryPoints: [epDescriptor]
23
- }
24
- })
25
- await entryPoint.start()
26
- })
27
-
28
- afterEach(async () => {
29
- await entryPoint.stop()
30
- })
31
-
32
- it('Can be stopped during start', async () => {
33
- setImmediate(() => node.stop())
34
- await node.start()
35
- })
36
-
37
- })