@streamr/trackerless-network 100.0.0-testnet-three.1 → 100.0.0-testnet-three.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/logic/Layer1Node.d.ts +2 -2
- package/dist/src/logic/RandomGraphNode.d.ts +5 -5
- package/dist/src/logic/RandomGraphNode.js +13 -13
- package/dist/src/logic/RandomGraphNode.js.map +1 -1
- package/dist/src/logic/StreamrNode.d.ts +1 -1
- package/dist/src/logic/StreamrNode.js +1 -1
- package/dist/src/logic/StreamrNode.js.map +1 -1
- package/dist/src/logic/createRandomGraphNode.d.ts +1 -1
- package/dist/src/logic/createRandomGraphNode.js +6 -5
- package/dist/src/logic/createRandomGraphNode.js.map +1 -1
- package/dist/src/logic/inspect/InspectSession.d.ts +1 -0
- package/dist/src/logic/inspect/InspectSession.js +3 -0
- package/dist/src/logic/inspect/InspectSession.js.map +1 -1
- package/dist/src/logic/inspect/Inspector.js +1 -1
- package/dist/src/logic/inspect/Inspector.js.map +1 -1
- package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.d.ts +3 -2
- package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js +1 -0
- package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js.map +1 -1
- package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.d.ts +3 -2
- package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.js +5 -4
- package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.js.map +1 -1
- package/dist/src/logic/proxy/ProxyClient.js +8 -6
- package/dist/src/logic/proxy/ProxyClient.js.map +1 -1
- package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.d.ts +1 -0
- package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.js +3 -0
- package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.js.map +1 -1
- package/dist/test/utils/utils.d.ts +1 -2
- package/dist/test/utils/utils.js +2 -7
- package/dist/test/utils/utils.js.map +1 -1
- package/package.json +6 -6
- package/src/logic/Layer1Node.ts +2 -2
- package/src/logic/RandomGraphNode.ts +16 -16
- package/src/logic/StreamrNode.ts +2 -2
- package/src/logic/createRandomGraphNode.ts +7 -6
- package/src/logic/inspect/InspectSession.ts +4 -0
- package/src/logic/inspect/Inspector.ts +1 -1
- package/src/logic/neighbor-discovery/NeighborUpdateManager.ts +4 -2
- package/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.ts +8 -6
- package/src/logic/proxy/ProxyClient.ts +14 -7
- package/src/logic/temporary-connection/TemporaryConnectionRpcLocal.ts +4 -0
- package/test/end-to-end/random-graph-with-real-connections.test.ts +4 -6
- package/test/integration/NetworkNode.test.ts +4 -9
- package/test/integration/StreamrNode.test.ts +4 -16
- package/test/integration/joining-streams-on-offline-peers.test.ts +7 -31
- package/test/integration/stream-without-default-entrypoints.test.ts +2 -6
- package/test/unit/InspectSession.test.ts +3 -4
- package/test/unit/Inspector.test.ts +3 -3
- package/test/unit/NeighborFinder.test.ts +3 -3
- package/test/unit/NeighborUpdateRpcLocal.test.ts +14 -10
- package/test/unit/NodeList.test.ts +4 -3
- package/test/unit/RandomGraphNode.test.ts +5 -5
- package/test/utils/utils.ts +2 -8
|
@@ -3,12 +3,12 @@ import { NodeList } from '../../src/logic/NodeList'
|
|
|
3
3
|
import { waitForCondition } from '@streamr/utils'
|
|
4
4
|
import { range } from 'lodash'
|
|
5
5
|
import { expect } from 'expect'
|
|
6
|
-
import { createMockDeliveryRpcRemote
|
|
7
|
-
import { DhtAddress, getNodeIdFromPeerDescriptor } from '@streamr/dht'
|
|
6
|
+
import { createMockDeliveryRpcRemote } from '../utils/utils'
|
|
7
|
+
import { DhtAddress, createRandomDhtAddress, getNodeIdFromPeerDescriptor } from '@streamr/dht'
|
|
8
8
|
|
|
9
9
|
describe('NeighborFinder', () => {
|
|
10
10
|
|
|
11
|
-
const nodeId =
|
|
11
|
+
const nodeId = createRandomDhtAddress()
|
|
12
12
|
let neighbors: NodeList
|
|
13
13
|
let nearbyNodeView: NodeList
|
|
14
14
|
let neighborFinder: NeighborFinder
|
|
@@ -13,7 +13,7 @@ describe('NeighborUpdateRpcLocal', () => {
|
|
|
13
13
|
|
|
14
14
|
const streamPartId = StreamPartIDUtils.parse('stream#0')
|
|
15
15
|
const localPeerDescriptor = createMockPeerDescriptor()
|
|
16
|
-
const
|
|
16
|
+
const neighborTargetCount = 4
|
|
17
17
|
|
|
18
18
|
let rpcLocal: NeighborUpdateRpcLocal
|
|
19
19
|
let neighbors: NodeList
|
|
@@ -34,11 +34,14 @@ describe('NeighborUpdateRpcLocal', () => {
|
|
|
34
34
|
|
|
35
35
|
beforeEach(() => {
|
|
36
36
|
rpcCommunicator = new ListeningRpcCommunicator('mock', new MockTransport())
|
|
37
|
-
neighbors = new NodeList(getNodeIdFromPeerDescriptor(localPeerDescriptor),
|
|
38
|
-
nearbyNodeView = new NodeList(getNodeIdFromPeerDescriptor(localPeerDescriptor),
|
|
37
|
+
neighbors = new NodeList(getNodeIdFromPeerDescriptor(localPeerDescriptor), neighborTargetCount + 1)
|
|
38
|
+
nearbyNodeView = new NodeList(getNodeIdFromPeerDescriptor(localPeerDescriptor), neighborTargetCount)
|
|
39
39
|
neighborFinder = {
|
|
40
40
|
start: jest.fn()
|
|
41
41
|
} as any
|
|
42
|
+
const connectionLocker = {
|
|
43
|
+
unlockConnection: jest.fn()
|
|
44
|
+
} as any
|
|
42
45
|
|
|
43
46
|
rpcLocal = new NeighborUpdateRpcLocal({
|
|
44
47
|
localPeerDescriptor,
|
|
@@ -47,7 +50,8 @@ describe('NeighborUpdateRpcLocal', () => {
|
|
|
47
50
|
neighborFinder,
|
|
48
51
|
streamPartId,
|
|
49
52
|
rpcCommunicator,
|
|
50
|
-
|
|
53
|
+
neighborTargetCount,
|
|
54
|
+
connectionLocker
|
|
51
55
|
})
|
|
52
56
|
})
|
|
53
57
|
|
|
@@ -56,21 +60,21 @@ describe('NeighborUpdateRpcLocal', () => {
|
|
|
56
60
|
})
|
|
57
61
|
|
|
58
62
|
it('response contains neighbor list of expected size', async () => {
|
|
59
|
-
addNeighbors(
|
|
63
|
+
addNeighbors(neighborTargetCount)
|
|
60
64
|
const res = await rpcLocal.neighborUpdate({
|
|
61
65
|
streamPartId,
|
|
62
66
|
neighborDescriptors: [localPeerDescriptor],
|
|
63
67
|
removeMe: false
|
|
64
68
|
}, { incomingSourceDescriptor: createMockPeerDescriptor() } as any)
|
|
65
|
-
expect(res.neighborDescriptors.length).toEqual(
|
|
69
|
+
expect(res.neighborDescriptors.length).toEqual(neighborTargetCount)
|
|
66
70
|
})
|
|
67
71
|
|
|
68
72
|
it('updates contacts based on callers neighbors', async () => {
|
|
69
|
-
addNeighbors(
|
|
73
|
+
addNeighbors(neighborTargetCount)
|
|
70
74
|
expect(nearbyNodeView.size()).toEqual(0)
|
|
71
75
|
await rpcLocal.neighborUpdate({
|
|
72
76
|
streamPartId,
|
|
73
|
-
neighborDescriptors: range(
|
|
77
|
+
neighborDescriptors: range(neighborTargetCount).map(() => createMockPeerDescriptor()),
|
|
74
78
|
removeMe: false
|
|
75
79
|
}, { incomingSourceDescriptor: createMockPeerDescriptor() } as any)
|
|
76
80
|
expect(nearbyNodeView.size()).toEqual(4)
|
|
@@ -112,10 +116,10 @@ describe('NeighborUpdateRpcLocal', () => {
|
|
|
112
116
|
DeliveryRpcClient
|
|
113
117
|
)
|
|
114
118
|
neighbors.add(neighbor)
|
|
115
|
-
addNeighbors(
|
|
119
|
+
addNeighbors(neighborTargetCount)
|
|
116
120
|
const res = await rpcLocal.neighborUpdate({
|
|
117
121
|
streamPartId,
|
|
118
|
-
neighborDescriptors: [localPeerDescriptor, ...range(
|
|
122
|
+
neighborDescriptors: [localPeerDescriptor, ...range(neighborTargetCount).map(() => createMockPeerDescriptor())],
|
|
119
123
|
removeMe: false
|
|
120
124
|
}, { incomingSourceDescriptor: caller } as any)
|
|
121
125
|
expect(res.removeMe).toEqual(true)
|
|
@@ -2,6 +2,7 @@ import {
|
|
|
2
2
|
ListeningRpcCommunicator,
|
|
3
3
|
NodeType,
|
|
4
4
|
PeerDescriptor,
|
|
5
|
+
createRandomDhtAddress,
|
|
5
6
|
getDhtAddressFromRaw,
|
|
6
7
|
getNodeIdFromPeerDescriptor,
|
|
7
8
|
} from '@streamr/dht'
|
|
@@ -11,7 +12,7 @@ import { DeliveryRpcRemote } from '../../src/logic/DeliveryRpcRemote'
|
|
|
11
12
|
import { NodeList } from '../../src/logic/NodeList'
|
|
12
13
|
import { formStreamPartDeliveryServiceId } from '../../src/logic/formStreamPartDeliveryServiceId'
|
|
13
14
|
import { DeliveryRpcClient } from '../../src/proto/packages/trackerless-network/protos/NetworkRpc.client'
|
|
14
|
-
import { createMockPeerDescriptor
|
|
15
|
+
import { createMockPeerDescriptor } from '../utils/utils'
|
|
15
16
|
import { MockTransport } from '../utils/mock/Transport'
|
|
16
17
|
|
|
17
18
|
const streamPartId = StreamPartIDUtils.parse('stream#0')
|
|
@@ -25,7 +26,7 @@ describe('NodeList', () => {
|
|
|
25
26
|
new Uint8Array([1, 1, 4]),
|
|
26
27
|
new Uint8Array([1, 1, 5])
|
|
27
28
|
]
|
|
28
|
-
const ownId =
|
|
29
|
+
const ownId = createRandomDhtAddress()
|
|
29
30
|
let nodeList: NodeList
|
|
30
31
|
|
|
31
32
|
const createRemoteGraphNode = (peerDescriptor: PeerDescriptor) => {
|
|
@@ -135,7 +136,7 @@ describe('NodeList', () => {
|
|
|
135
136
|
})
|
|
136
137
|
|
|
137
138
|
it('items are in insertion order', () => {
|
|
138
|
-
const list = new NodeList(
|
|
139
|
+
const list = new NodeList(createRandomDhtAddress(), 100)
|
|
139
140
|
const item1 = createRemoteGraphNode(createMockPeerDescriptor())
|
|
140
141
|
const item2 = createRemoteGraphNode(createMockPeerDescriptor())
|
|
141
142
|
const item3 = createRemoteGraphNode(createMockPeerDescriptor())
|
|
@@ -66,19 +66,19 @@ describe('RandomGraphNode', () => {
|
|
|
66
66
|
expect(ids[0]).toEqual(getNodeIdFromPeerDescriptor(mockRemote.getPeerDescriptor()))
|
|
67
67
|
})
|
|
68
68
|
|
|
69
|
-
it('Adds Closest Nodes from layer1
|
|
69
|
+
it('Adds Closest Nodes from layer1 contactAdded event to nearbyNodeView', async () => {
|
|
70
70
|
const peerDescriptor1 = createMockPeerDescriptor()
|
|
71
71
|
const peerDescriptor2 = createMockPeerDescriptor()
|
|
72
|
-
layer1Node.emit('
|
|
72
|
+
layer1Node.emit('contactAdded', peerDescriptor1, [peerDescriptor1, peerDescriptor2])
|
|
73
73
|
await waitForCondition(() => nearbyNodeView.size() === 2)
|
|
74
74
|
expect(nearbyNodeView.get(getNodeIdFromPeerDescriptor(peerDescriptor1))).toBeTruthy()
|
|
75
75
|
expect(nearbyNodeView.get(getNodeIdFromPeerDescriptor(peerDescriptor2))).toBeTruthy()
|
|
76
76
|
})
|
|
77
77
|
|
|
78
|
-
it('Adds Random Nodes from layer1
|
|
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('
|
|
81
|
+
layer1Node.emit('randomContactAdded', peerDescriptor1, [peerDescriptor1, peerDescriptor2])
|
|
82
82
|
await waitForCondition(() => randomNodeView.size() === 2)
|
|
83
83
|
expect(randomNodeView.get(getNodeIdFromPeerDescriptor(peerDescriptor1))).toBeTruthy()
|
|
84
84
|
expect(randomNodeView.get(getNodeIdFromPeerDescriptor(peerDescriptor2))).toBeTruthy()
|
|
@@ -88,7 +88,7 @@ describe('RandomGraphNode', () => {
|
|
|
88
88
|
const peerDescriptor1 = createMockPeerDescriptor()
|
|
89
89
|
const peerDescriptor2 = createMockPeerDescriptor()
|
|
90
90
|
layer1Node.addNewRandomPeerToKBucket()
|
|
91
|
-
layer1Node.emit('
|
|
91
|
+
layer1Node.emit('contactAdded', peerDescriptor1, [peerDescriptor1, peerDescriptor2])
|
|
92
92
|
await waitForCondition(() => {
|
|
93
93
|
return nearbyNodeView.size() === 3
|
|
94
94
|
}, 20000)
|
package/test/utils/utils.ts
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import { randomBytes } from 'crypto'
|
|
2
1
|
import {
|
|
3
2
|
ConnectionLocker,
|
|
4
|
-
DhtAddress,
|
|
5
3
|
DhtNode,
|
|
6
4
|
NodeType,
|
|
7
5
|
PeerDescriptor,
|
|
8
6
|
Simulator,
|
|
9
7
|
SimulatorTransport,
|
|
10
|
-
|
|
8
|
+
createRandomDhtAddress,
|
|
11
9
|
getRandomRegion,
|
|
12
10
|
getRawFromDhtAddress
|
|
13
11
|
} from '@streamr/dht'
|
|
@@ -91,14 +89,10 @@ export const createStreamMessage = (
|
|
|
91
89
|
return msg
|
|
92
90
|
}
|
|
93
91
|
|
|
94
|
-
export const createRandomNodeId = (): DhtAddress => {
|
|
95
|
-
return getDhtAddressFromRaw(randomBytes(10))
|
|
96
|
-
}
|
|
97
|
-
|
|
98
92
|
export const createMockPeerDescriptor = (opts?: Omit<Partial<PeerDescriptor>, 'nodeId' | 'type'>): PeerDescriptor => {
|
|
99
93
|
return {
|
|
100
94
|
...opts,
|
|
101
|
-
nodeId: getRawFromDhtAddress(
|
|
95
|
+
nodeId: getRawFromDhtAddress(createRandomDhtAddress()),
|
|
102
96
|
type: NodeType.NODEJS,
|
|
103
97
|
region: getRandomRegion()
|
|
104
98
|
}
|