@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.
- package/dist/package.json +8 -8
- package/dist/src/NetworkNode.d.ts +1 -1
- package/dist/src/NetworkNode.js +3 -3
- package/dist/src/NetworkNode.js.map +1 -1
- package/dist/src/NetworkStack.js +2 -1
- package/dist/src/NetworkStack.js.map +1 -1
- package/dist/src/logic/DeliveryRpcLocal.d.ts +1 -1
- package/dist/src/logic/EntryPointDiscovery.d.ts +1 -1
- package/dist/src/logic/EntryPointDiscovery.js +5 -5
- package/dist/src/logic/EntryPointDiscovery.js.map +1 -1
- package/dist/src/logic/Layer0Node.d.ts +1 -1
- package/dist/src/logic/Layer1Node.d.ts +1 -1
- package/dist/src/logic/RandomGraphNode.d.ts +2 -1
- package/dist/src/logic/RandomGraphNode.js +7 -7
- package/dist/src/logic/RandomGraphNode.js.map +1 -1
- package/dist/src/logic/StreamrNode.d.ts +3 -2
- package/dist/src/logic/StreamrNode.js +42 -39
- package/dist/src/logic/StreamrNode.js.map +1 -1
- package/dist/src/logic/createRandomGraphNode.js +8 -7
- package/dist/src/logic/createRandomGraphNode.js.map +1 -1
- package/dist/src/logic/inspect/Inspector.d.ts +2 -2
- package/dist/src/logic/inspect/Inspector.js +2 -2
- package/dist/src/logic/inspect/Inspector.js.map +1 -1
- package/dist/src/logic/neighbor-discovery/Handshaker.d.ts +2 -1
- package/dist/src/logic/neighbor-discovery/Handshaker.js +3 -3
- package/dist/src/logic/neighbor-discovery/Handshaker.js.map +1 -1
- package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.d.ts +1 -1
- package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js +1 -1
- package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js.map +1 -1
- package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.d.ts +1 -1
- package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.js +2 -2
- package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.js.map +1 -1
- package/dist/src/logic/proxy/ProxyClient.d.ts +1 -1
- package/dist/src/logic/proxy/ProxyClient.js +4 -4
- package/dist/src/logic/proxy/ProxyClient.js.map +1 -1
- package/dist/src/logic/proxy/ProxyConnectionRpcLocal.d.ts +1 -1
- package/dist/src/logic/proxy/ProxyConnectionRpcLocal.js +1 -1
- package/dist/src/logic/proxy/ProxyConnectionRpcLocal.js.map +1 -1
- package/dist/src/logic/proxy/ProxyConnectionRpcRemote.js +1 -1
- package/dist/src/logic/proxy/ProxyConnectionRpcRemote.js.map +1 -1
- package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.d.ts +1 -1
- package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.js +2 -2
- package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.js.map +1 -1
- package/dist/src/proto/packages/dht/protos/DhtRpc.client.d.ts +77 -60
- package/dist/src/proto/packages/dht/protos/DhtRpc.client.js +71 -58
- package/dist/src/proto/packages/dht/protos/DhtRpc.client.js.map +1 -1
- package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +112 -136
- package/dist/src/proto/packages/dht/protos/DhtRpc.js +103 -107
- package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
- package/dist/src/proto/packages/dht/protos/DhtRpc.server.d.ts +37 -32
- package/dist/test/benchmark/first-message.js +1 -1
- package/dist/test/benchmark/first-message.js.map +1 -1
- package/dist/test/utils/utils.d.ts +1 -1
- package/dist/test/utils/utils.js +12 -9
- package/dist/test/utils/utils.js.map +1 -1
- package/karma.config.js +2 -2
- package/package.json +8 -8
- package/src/NetworkNode.ts +3 -3
- package/src/NetworkStack.ts +2 -1
- package/src/logic/DeliveryRpcLocal.ts +1 -1
- package/src/logic/EntryPointDiscovery.ts +6 -6
- package/src/logic/Layer0Node.ts +1 -1
- package/src/logic/Layer1Node.ts +1 -1
- package/src/logic/RandomGraphNode.ts +18 -12
- package/src/logic/StreamrNode.ts +31 -24
- package/src/logic/createRandomGraphNode.ts +8 -7
- package/src/logic/inspect/Inspector.ts +4 -4
- package/src/logic/neighbor-discovery/Handshaker.ts +15 -6
- package/src/logic/neighbor-discovery/NeighborUpdateManager.ts +2 -2
- package/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.ts +3 -3
- package/src/logic/proxy/ProxyClient.ts +6 -6
- package/src/logic/proxy/ProxyConnectionRpcLocal.ts +2 -2
- package/src/logic/proxy/ProxyConnectionRpcRemote.ts +2 -2
- package/src/logic/temporary-connection/TemporaryConnectionRpcLocal.ts +3 -3
- package/src/proto/packages/dht/protos/DhtRpc.client.ts +113 -97
- package/src/proto/packages/dht/protos/DhtRpc.server.ts +37 -32
- package/src/proto/packages/dht/protos/DhtRpc.ts +146 -178
- package/test/benchmark/first-message.ts +1 -1
- package/test/end-to-end/inspect.test.ts +6 -3
- package/test/end-to-end/proxy-and-full-node.test.ts +1 -0
- package/test/end-to-end/proxy-connections.test.ts +3 -1
- package/test/end-to-end/proxy-key-exchange.test.ts +1 -0
- package/test/end-to-end/random-graph-with-real-connections.test.ts +10 -10
- package/test/end-to-end/webrtc-full-node-network.test.ts +2 -1
- package/test/end-to-end/websocket-full-node-network.test.ts +3 -1
- package/test/integration/Handshakes.test.ts +1 -1
- package/test/integration/Inspect.test.ts +2 -2
- package/test/integration/NetworkStack.test.ts +4 -2
- package/test/integration/RandomGraphNode-Layer1Node-Latencies.test.ts +2 -2
- package/test/integration/RandomGraphNode-Layer1Node.test.ts +2 -2
- package/test/integration/StreamrNode.test.ts +1 -1
- package/test/integration/joining-streams-on-offline-peers.test.ts +12 -7
- package/test/integration/stream-without-default-entrypoints.test.ts +4 -3
- package/test/unit/DeliveryRpcLocal.test.ts +1 -1
- package/test/unit/EntrypointDiscovery.test.ts +3 -3
- package/test/unit/HandshakeRpcLocal.test.ts +2 -2
- package/test/unit/Handshaker.test.ts +3 -2
- package/test/unit/Inspector.test.ts +1 -1
- package/test/unit/NodeList.test.ts +1 -1
- package/test/unit/RandomGraphNode.test.ts +1 -1
- package/test/unit/StreamrNode.test.ts +1 -1
- package/test/utils/mock/MockLayer0Node.ts +1 -1
- package/test/utils/mock/Transport.ts +1 -1
- package/test/utils/utils.ts +13 -10
- 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
|
|
|
@@ -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,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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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().
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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) //
|
|
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
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
31
|
+
localPeerDescriptor: inspectorDescriptor,
|
|
32
32
|
streamPartId: StreamPartIDUtils.parse('stream#0'),
|
|
33
33
|
rpcCommunicator: new ListeningRpcCommunicator('inspector', new MockTransport()),
|
|
34
34
|
connectionLocker: mockConnectionLocker,
|
|
@@ -35,7 +35,7 @@ describe('RandomGraphNode', () => {
|
|
|
35
35
|
randomNodeView,
|
|
36
36
|
nearbyNodeView,
|
|
37
37
|
transport: new MockTransport(),
|
|
38
|
-
|
|
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
|
|
package/test/utils/utils.ts
CHANGED
|
@@ -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
|
-
|
|
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(
|
|
33
|
+
const mockCm = new SimulatorTransport(localPeerDescriptor, simulator)
|
|
34
34
|
await mockCm.start()
|
|
35
35
|
const layer1Node = new DhtNode({
|
|
36
36
|
transport: mockCm,
|
|
37
|
-
peerDescriptor:
|
|
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
|
-
|
|
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
|
|
62
|
-
timestamp: timestamp
|
|
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
|
|
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
|
-
})
|