@streamr/trackerless-network 100.0.0-testnet-three.4 → 100.0.0-testnet-three.5
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 +6 -6
- package/dist/src/NetworkNode.js.map +1 -1
- package/package.json +6 -6
- package/src/NetworkNode.ts +1 -1
- package/test/end-to-end/inspect.test.ts +3 -3
- package/test/end-to-end/proxy-and-full-node.test.ts +12 -12
- package/test/end-to-end/proxy-connections.test.ts +7 -7
- package/test/end-to-end/proxy-key-exchange.test.ts +3 -3
- package/test/end-to-end/webrtc-full-node-network.test.ts +6 -6
- package/test/end-to-end/websocket-full-node-network.test.ts +6 -6
- package/test/integration/NetworkStack.test.ts +2 -2
- package/test/unit/GroupKeyResponseTranslator.test.ts +1 -1
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@streamr/trackerless-network",
|
|
3
|
-
"version": "100.0.0-testnet-three.
|
|
3
|
+
"version": "100.0.0-testnet-three.5",
|
|
4
4
|
"description": "Minimal and extendable implementation of the Streamr Network node.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -30,11 +30,11 @@
|
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@protobuf-ts/runtime": "^2.8.2",
|
|
32
32
|
"@protobuf-ts/runtime-rpc": "^2.8.2",
|
|
33
|
-
"@streamr/dht": "100.0.0-testnet-three.
|
|
34
|
-
"@streamr/proto-rpc": "100.0.0-testnet-three.
|
|
35
|
-
"@streamr/protocol": "100.0.0-testnet-three.
|
|
36
|
-
"@streamr/test-utils": "100.0.0-testnet-three.
|
|
37
|
-
"@streamr/utils": "100.0.0-testnet-three.
|
|
33
|
+
"@streamr/dht": "100.0.0-testnet-three.5",
|
|
34
|
+
"@streamr/proto-rpc": "100.0.0-testnet-three.5",
|
|
35
|
+
"@streamr/protocol": "100.0.0-testnet-three.5",
|
|
36
|
+
"@streamr/test-utils": "100.0.0-testnet-three.5",
|
|
37
|
+
"@streamr/utils": "100.0.0-testnet-three.5",
|
|
38
38
|
"eventemitter3": "^5.0.0",
|
|
39
39
|
"lodash": "^4.17.21",
|
|
40
40
|
"uuid": "^9.0.1",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkNode.js","sourceRoot":"","sources":["../../src/NetworkNode.ts"],"names":[],"mappings":";;;AAEA,iHAA6G;AAC7G,iDAA6D;AAC7D,0CAAwE;AAExE,mCAA6B;AAEtB,MAAM,iBAAiB,GAAG,CAAC,IAAoB,EAAe,EAAE;IACnE,OAAO,IAAI,WAAW,CAAC,IAAI,2BAAY,CAAC,IAAI,CAAC,CAAC,CAAA;AAClD,CAAC,CAAA;AAFY,QAAA,iBAAiB,qBAE7B;AAED,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AACjC;;GAEG;AACH,MAAa,WAAW;IAEX,KAAK,CAAc;IACX,gBAAgB,GAAqC,EAAE,CAAA;IAChE,OAAO,GAAG,KAAK,CAAA;IAEvB,gBAAgB;IAChB,YAAY,KAAmB;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE;YACjD,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC;oBACD,MAAM,UAAU,GAAG,iDAAuB,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAA;oBAChE,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;wBAC3C,QAAQ,CAAC,UAAU,CAAC,CAAA;oBACxB,CAAC;gBACL,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACX,MAAM,CAAC,KAAK,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAA;gBACvD,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAgB;QACxB,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAClC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAoB,EAAE,YAA0B;QAC1D,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;IAClE,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,aAA4B;QACxC,MAAM,GAAG,GAAG,iDAAuB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;QAC7D,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IACnC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,YAA0B,EAAE,mBAA2D;QAC9F,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAA;IACtE,CAAC;IAED,KAAK,CAAC,UAAU,CACZ,YAA0B,EAC1B,KAAuB,EACvB,SAAyB,EACzB,MAAuB,EACvB,eAAwB;QAExB,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,CAAC,CAAA;IACzG,CAAC;IAED,mBAAmB,CAAC,YAA0B;QAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAA;IACxE,CAAC;IAED,kBAAkB,CAAC,EAAgC;QAC/C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAClC,CAAC;IAED,wBAAwB,CAAC,YAA0B,EAAE,sBAAwC;QACzF,IAAI,CAAC,KAAK,CAAC,cAAc,
|
|
1
|
+
{"version":3,"file":"NetworkNode.js","sourceRoot":"","sources":["../../src/NetworkNode.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@streamr/trackerless-network",
|
|
3
|
-
"version": "100.0.0-testnet-three.
|
|
3
|
+
"version": "100.0.0-testnet-three.5",
|
|
4
4
|
"description": "Minimal and extendable implementation of the Streamr Network node.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -30,11 +30,11 @@
|
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@protobuf-ts/runtime": "^2.8.2",
|
|
32
32
|
"@protobuf-ts/runtime-rpc": "^2.8.2",
|
|
33
|
-
"@streamr/dht": "100.0.0-testnet-three.
|
|
34
|
-
"@streamr/proto-rpc": "100.0.0-testnet-three.
|
|
35
|
-
"@streamr/protocol": "100.0.0-testnet-three.
|
|
36
|
-
"@streamr/test-utils": "100.0.0-testnet-three.
|
|
37
|
-
"@streamr/utils": "100.0.0-testnet-three.
|
|
33
|
+
"@streamr/dht": "100.0.0-testnet-three.5",
|
|
34
|
+
"@streamr/proto-rpc": "100.0.0-testnet-three.5",
|
|
35
|
+
"@streamr/protocol": "100.0.0-testnet-three.5",
|
|
36
|
+
"@streamr/test-utils": "100.0.0-testnet-three.5",
|
|
37
|
+
"@streamr/utils": "100.0.0-testnet-three.5",
|
|
38
38
|
"eventemitter3": "^5.0.0",
|
|
39
39
|
"lodash": "^4.17.21",
|
|
40
40
|
"uuid": "^9.0.1",
|
package/src/NetworkNode.ts
CHANGED
|
@@ -73,7 +73,7 @@ export class NetworkNode {
|
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
setStreamPartEntryPoints(streamPartId: StreamPartID, contactPeerDescriptors: PeerDescriptor[]): void {
|
|
76
|
-
this.stack.getStreamrNode()
|
|
76
|
+
this.stack.getStreamrNode().setStreamPartEntryPoints(streamPartId, contactPeerDescriptors)
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
removeMessageListener(cb: (msg: StreamMessage) => void): void {
|
|
@@ -96,9 +96,9 @@ describe('inspect', () => {
|
|
|
96
96
|
await inspectedNode.start()
|
|
97
97
|
await inspectorNode.start()
|
|
98
98
|
|
|
99
|
-
publisherNode.stack.getStreamrNode()
|
|
100
|
-
inspectedNode.stack.getStreamrNode()
|
|
101
|
-
inspectorNode.stack.getStreamrNode()
|
|
99
|
+
publisherNode.stack.getStreamrNode().joinStreamPart(STREAM_PART_ID)
|
|
100
|
+
inspectedNode.stack.getStreamrNode().joinStreamPart(STREAM_PART_ID)
|
|
101
|
+
inspectorNode.stack.getStreamrNode().joinStreamPart(STREAM_PART_ID)
|
|
102
102
|
|
|
103
103
|
await waitForCondition(() =>
|
|
104
104
|
publisherNode.stack.getStreamrNode().getNeighbors(STREAM_PART_ID).length === 2
|
|
@@ -65,11 +65,11 @@ describe('proxy and full node', () => {
|
|
|
65
65
|
}
|
|
66
66
|
})
|
|
67
67
|
await proxyNode.start()
|
|
68
|
-
proxyNode.stack.getStreamrNode()
|
|
69
|
-
proxyNode.stack.getStreamrNode()
|
|
70
|
-
proxyNode.stack.getStreamrNode()
|
|
71
|
-
proxyNode.stack.getStreamrNode()
|
|
72
|
-
proxyNode.stack.getStreamrNode()
|
|
68
|
+
proxyNode.stack.getStreamrNode().joinStreamPart(proxiedStreamPart)
|
|
69
|
+
proxyNode.stack.getStreamrNode().joinStreamPart(regularStreamPart1)
|
|
70
|
+
proxyNode.stack.getStreamrNode().joinStreamPart(regularStreamPart2)
|
|
71
|
+
proxyNode.stack.getStreamrNode().joinStreamPart(regularStreamPart3)
|
|
72
|
+
proxyNode.stack.getStreamrNode().joinStreamPart(regularStreamPart4)
|
|
73
73
|
|
|
74
74
|
proxiedNode = createNetworkNode({
|
|
75
75
|
layer0: {
|
|
@@ -90,14 +90,14 @@ describe('proxy and full node', () => {
|
|
|
90
90
|
expect(proxiedNode.stack.getLayer0Node().hasJoined()).toBe(false)
|
|
91
91
|
|
|
92
92
|
await Promise.all([
|
|
93
|
-
waitForEvent3(proxyNode.stack.getStreamrNode()
|
|
93
|
+
waitForEvent3(proxyNode.stack.getStreamrNode() as any, 'newMessage'),
|
|
94
94
|
proxiedNode.broadcast(createMessage(regularStreamPart1))
|
|
95
95
|
])
|
|
96
96
|
|
|
97
97
|
expect(proxiedNode.stack.getLayer0Node().hasJoined()).toBe(true)
|
|
98
98
|
|
|
99
99
|
await Promise.all([
|
|
100
|
-
waitForEvent3(proxyNode.stack.getStreamrNode()
|
|
100
|
+
waitForEvent3(proxyNode.stack.getStreamrNode() as any, 'newMessage'),
|
|
101
101
|
proxiedNode.broadcast(createMessage(proxiedStreamPart))
|
|
102
102
|
])
|
|
103
103
|
|
|
@@ -110,13 +110,13 @@ describe('proxy and full node', () => {
|
|
|
110
110
|
expect(proxiedNode.stack.getLayer0Node().hasJoined()).toBe(false)
|
|
111
111
|
|
|
112
112
|
await Promise.all([
|
|
113
|
-
waitForEvent3(proxyNode.stack.getStreamrNode()
|
|
113
|
+
waitForEvent3(proxyNode.stack.getStreamrNode() as any, 'newMessage', 5000,
|
|
114
114
|
(streamMessage: InternalStreamMessage) => streamMessage.messageId!.streamId === StreamPartIDUtils.getStreamID(regularStreamPart1)),
|
|
115
|
-
waitForEvent3(proxyNode.stack.getStreamrNode()
|
|
115
|
+
waitForEvent3(proxyNode.stack.getStreamrNode() as any, 'newMessage', 5000,
|
|
116
116
|
(streamMessage: InternalStreamMessage) => streamMessage.messageId!.streamId === StreamPartIDUtils.getStreamID(regularStreamPart2)),
|
|
117
|
-
waitForEvent3(proxyNode.stack.getStreamrNode()
|
|
117
|
+
waitForEvent3(proxyNode.stack.getStreamrNode() as any, 'newMessage', 5000,
|
|
118
118
|
(streamMessage: InternalStreamMessage) => streamMessage.messageId!.streamId === StreamPartIDUtils.getStreamID(regularStreamPart3)),
|
|
119
|
-
waitForEvent3(proxyNode.stack.getStreamrNode()
|
|
119
|
+
waitForEvent3(proxyNode.stack.getStreamrNode() as any, 'newMessage', 5000,
|
|
120
120
|
(streamMessage: InternalStreamMessage) => streamMessage.messageId!.streamId === StreamPartIDUtils.getStreamID(regularStreamPart4)),
|
|
121
121
|
proxiedNode.broadcast(createMessage(regularStreamPart1)),
|
|
122
122
|
proxiedNode.broadcast(createMessage(regularStreamPart2)),
|
|
@@ -127,7 +127,7 @@ describe('proxy and full node', () => {
|
|
|
127
127
|
expect(proxiedNode.stack.getLayer0Node().hasJoined()).toBe(true)
|
|
128
128
|
|
|
129
129
|
await Promise.all([
|
|
130
|
-
waitForEvent3(proxyNode.stack.getStreamrNode()
|
|
130
|
+
waitForEvent3(proxyNode.stack.getStreamrNode() as any, 'newMessage'),
|
|
131
131
|
proxiedNode.broadcast(createMessage(proxiedStreamPart))
|
|
132
132
|
])
|
|
133
133
|
|
|
@@ -46,14 +46,14 @@ describe('Proxy connections', () => {
|
|
|
46
46
|
let proxiedNode: NetworkNode
|
|
47
47
|
|
|
48
48
|
const hasConnectionFromProxy = (proxyNode: NetworkNode): boolean => {
|
|
49
|
-
const delivery = proxyNode.stack.getStreamrNode()
|
|
49
|
+
const delivery = proxyNode.stack.getStreamrNode().getStreamPartDelivery(STREAM_PART_ID)
|
|
50
50
|
return (delivery !== undefined)
|
|
51
51
|
? ((delivery as { node: RandomGraphNode }).node).hasProxyConnection(proxiedNode.getNodeId())
|
|
52
52
|
: false
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
const hasConnectionToProxy = (proxyNodeId: DhtAddress, direction: ProxyDirection): boolean => {
|
|
56
|
-
const client = (proxiedNode.stack.getStreamrNode()
|
|
56
|
+
const client = (proxiedNode.stack.getStreamrNode().getStreamPartDelivery(STREAM_PART_ID) as { client: ProxyClient }).client
|
|
57
57
|
return client.hasConnection(proxyNodeId, direction)
|
|
58
58
|
}
|
|
59
59
|
|
|
@@ -77,7 +77,7 @@ describe('Proxy connections', () => {
|
|
|
77
77
|
})
|
|
78
78
|
await proxyNode1.start()
|
|
79
79
|
proxyNode1.setStreamPartEntryPoints(STREAM_PART_ID, [proxyNodeDescriptor1])
|
|
80
|
-
proxyNode1.stack.getStreamrNode()
|
|
80
|
+
proxyNode1.stack.getStreamrNode().joinStreamPart(STREAM_PART_ID)
|
|
81
81
|
proxyNode2 = createNetworkNode({
|
|
82
82
|
layer0: {
|
|
83
83
|
entryPoints: [proxyNodeDescriptor1],
|
|
@@ -90,7 +90,7 @@ describe('Proxy connections', () => {
|
|
|
90
90
|
})
|
|
91
91
|
await proxyNode2.start()
|
|
92
92
|
proxyNode2.setStreamPartEntryPoints(STREAM_PART_ID, [proxyNodeDescriptor1])
|
|
93
|
-
proxyNode2.stack.getStreamrNode()
|
|
93
|
+
proxyNode2.stack.getStreamrNode().joinStreamPart(STREAM_PART_ID)
|
|
94
94
|
proxiedNode = createNetworkNode({
|
|
95
95
|
layer0: {
|
|
96
96
|
entryPoints: [proxyNode1.getPeerDescriptor()],
|
|
@@ -109,7 +109,7 @@ describe('Proxy connections', () => {
|
|
|
109
109
|
it('happy path publishing', async () => {
|
|
110
110
|
await proxiedNode.setProxies(STREAM_PART_ID, [proxyNode1.getPeerDescriptor()], ProxyDirection.PUBLISH, PROXIED_NODE_USER_ID, 1)
|
|
111
111
|
await Promise.all([
|
|
112
|
-
waitForEvent3(proxyNode1.stack.getStreamrNode()
|
|
112
|
+
waitForEvent3(proxyNode1.stack.getStreamrNode() as any, 'newMessage'),
|
|
113
113
|
proxiedNode.broadcast(MESSAGE)
|
|
114
114
|
])
|
|
115
115
|
})
|
|
@@ -117,7 +117,7 @@ describe('Proxy connections', () => {
|
|
|
117
117
|
it('happy path subscribing', async () => {
|
|
118
118
|
await proxiedNode.setProxies(STREAM_PART_ID, [proxyNode1.getPeerDescriptor()], ProxyDirection.SUBSCRIBE, PROXIED_NODE_USER_ID, 1)
|
|
119
119
|
await Promise.all([
|
|
120
|
-
waitForEvent3(proxiedNode.stack.getStreamrNode()
|
|
120
|
+
waitForEvent3(proxiedNode.stack.getStreamrNode() as any, 'newMessage'),
|
|
121
121
|
proxyNode1.broadcast(MESSAGE)
|
|
122
122
|
])
|
|
123
123
|
})
|
|
@@ -196,7 +196,7 @@ describe('Proxy connections', () => {
|
|
|
196
196
|
await proxyNode1.leave(STREAM_PART_ID)
|
|
197
197
|
await waitForCondition(() => hasConnectionToProxy(proxyNode1.getNodeId(), ProxyDirection.SUBSCRIBE))
|
|
198
198
|
expect(hasConnectionFromProxy(proxyNode1)).toBe(false)
|
|
199
|
-
proxyNode1.stack.getStreamrNode()
|
|
199
|
+
proxyNode1.stack.getStreamrNode().joinStreamPart(STREAM_PART_ID)
|
|
200
200
|
await waitForCondition(() => hasConnectionToProxy(proxyNode1.getNodeId(), ProxyDirection.SUBSCRIBE), 25000)
|
|
201
201
|
// TODO why wait is needed?
|
|
202
202
|
await wait(100)
|
|
@@ -44,7 +44,7 @@ describe('proxy group key exchange', () => {
|
|
|
44
44
|
})
|
|
45
45
|
await proxyNode.start()
|
|
46
46
|
proxyNode.setStreamPartEntryPoints(STREAM_PART_ID, [proxyNodeDescriptor])
|
|
47
|
-
proxyNode.stack.getStreamrNode()
|
|
47
|
+
proxyNode.stack.getStreamrNode().joinStreamPart(STREAM_PART_ID)
|
|
48
48
|
publisher = createNetworkNode({
|
|
49
49
|
layer0: {
|
|
50
50
|
entryPoints: [proxyNodeDescriptor],
|
|
@@ -98,7 +98,7 @@ describe('proxy group key exchange', () => {
|
|
|
98
98
|
})
|
|
99
99
|
|
|
100
100
|
await Promise.all([
|
|
101
|
-
waitForEvent3(publisher.stack.getStreamrNode()
|
|
101
|
+
waitForEvent3(publisher.stack.getStreamrNode() as any, 'newMessage'),
|
|
102
102
|
subscriber.broadcast(request)
|
|
103
103
|
])
|
|
104
104
|
})
|
|
@@ -130,7 +130,7 @@ describe('proxy group key exchange', () => {
|
|
|
130
130
|
})
|
|
131
131
|
|
|
132
132
|
await Promise.all([
|
|
133
|
-
waitForEvent3(subscriber.stack.getStreamrNode()
|
|
133
|
+
waitForEvent3(subscriber.stack.getStreamrNode() as any, 'newMessage'),
|
|
134
134
|
publisher.broadcast(response)
|
|
135
135
|
])
|
|
136
136
|
})
|
|
@@ -33,8 +33,8 @@ describe('Full node network with WebRTC connections', () => {
|
|
|
33
33
|
}
|
|
34
34
|
})
|
|
35
35
|
await entryPoint.start()
|
|
36
|
-
entryPoint.getStreamrNode()
|
|
37
|
-
entryPoint.getStreamrNode()
|
|
36
|
+
entryPoint.getStreamrNode().setStreamPartEntryPoints(streamPartId, [epPeerDescriptor])
|
|
37
|
+
entryPoint.getStreamrNode().joinStreamPart(streamPartId)
|
|
38
38
|
|
|
39
39
|
await Promise.all(range(NUM_OF_NODES).map(async () => {
|
|
40
40
|
const peerDescriptor = createMockPeerDescriptor()
|
|
@@ -62,15 +62,15 @@ describe('Full node network with WebRTC connections', () => {
|
|
|
62
62
|
it('happy path', async () => {
|
|
63
63
|
await Promise.all(nodes.map((node) =>
|
|
64
64
|
waitForCondition(() => {
|
|
65
|
-
return node.getStreamrNode()
|
|
65
|
+
return node.getStreamrNode().getNeighbors(streamPartId).length >= 3
|
|
66
66
|
}
|
|
67
67
|
, 30000)
|
|
68
68
|
))
|
|
69
69
|
let receivedMessageCount = 0
|
|
70
70
|
const successIds: string[] = []
|
|
71
71
|
nodes.forEach((node) => {
|
|
72
|
-
node.getStreamrNode()
|
|
73
|
-
successIds.push(getNodeIdFromPeerDescriptor(node.getStreamrNode()
|
|
72
|
+
node.getStreamrNode().on('newMessage', () => {
|
|
73
|
+
successIds.push(getNodeIdFromPeerDescriptor(node.getStreamrNode().getPeerDescriptor()))
|
|
74
74
|
receivedMessageCount += 1
|
|
75
75
|
})
|
|
76
76
|
})
|
|
@@ -79,7 +79,7 @@ describe('Full node network with WebRTC connections', () => {
|
|
|
79
79
|
streamPartId,
|
|
80
80
|
randomEthereumAddress()
|
|
81
81
|
)
|
|
82
|
-
entryPoint.getStreamrNode()
|
|
82
|
+
entryPoint.getStreamrNode().broadcast(msg)
|
|
83
83
|
await waitForCondition(() => receivedMessageCount === NUM_OF_NODES)
|
|
84
84
|
}, 120000)
|
|
85
85
|
|
|
@@ -30,8 +30,8 @@ describe('Full node network with WebSocket connections only', () => {
|
|
|
30
30
|
}
|
|
31
31
|
})
|
|
32
32
|
await entryPoint.start()
|
|
33
|
-
entryPoint.getStreamrNode()
|
|
34
|
-
entryPoint.getStreamrNode()
|
|
33
|
+
entryPoint.getStreamrNode().setStreamPartEntryPoints(streamPartId, [epPeerDescriptor])
|
|
34
|
+
entryPoint.getStreamrNode().joinStreamPart(streamPartId)
|
|
35
35
|
|
|
36
36
|
await Promise.all(range(NUM_OF_NODES).map(async (i) => {
|
|
37
37
|
const node = new NetworkStack({
|
|
@@ -60,15 +60,15 @@ describe('Full node network with WebSocket connections only', () => {
|
|
|
60
60
|
it('happy path', async () => {
|
|
61
61
|
await Promise.all(nodes.map((node) =>
|
|
62
62
|
waitForCondition(() => {
|
|
63
|
-
return node.getStreamrNode()
|
|
63
|
+
return node.getStreamrNode().getNeighbors(streamPartId).length >= 4
|
|
64
64
|
}
|
|
65
65
|
, 30000)
|
|
66
66
|
))
|
|
67
67
|
let receivedMessageCount = 0
|
|
68
68
|
const successIds: string[] = []
|
|
69
69
|
nodes.forEach((node) => {
|
|
70
|
-
node.getStreamrNode()
|
|
71
|
-
successIds.push(getNodeIdFromPeerDescriptor(node.getStreamrNode()
|
|
70
|
+
node.getStreamrNode().on('newMessage', () => {
|
|
71
|
+
successIds.push(getNodeIdFromPeerDescriptor(node.getStreamrNode().getPeerDescriptor()))
|
|
72
72
|
receivedMessageCount += 1
|
|
73
73
|
})
|
|
74
74
|
})
|
|
@@ -78,7 +78,7 @@ describe('Full node network with WebSocket connections only', () => {
|
|
|
78
78
|
streamPartId,
|
|
79
79
|
randomEthereumAddress()
|
|
80
80
|
)
|
|
81
|
-
entryPoint.getStreamrNode()
|
|
81
|
+
entryPoint.getStreamrNode().broadcast(msg)
|
|
82
82
|
await waitForCondition(() => receivedMessageCount === NUM_OF_NODES)
|
|
83
83
|
}, 220000)
|
|
84
84
|
|
|
@@ -34,9 +34,9 @@ describe('NetworkStack', () => {
|
|
|
34
34
|
})
|
|
35
35
|
|
|
36
36
|
await stack1.start()
|
|
37
|
-
stack1.getStreamrNode()
|
|
37
|
+
stack1.getStreamrNode().setStreamPartEntryPoints(STREAM_PART_ID, [epDescriptor])
|
|
38
38
|
await stack2.start()
|
|
39
|
-
stack2.getStreamrNode()
|
|
39
|
+
stack2.getStreamrNode().setStreamPartEntryPoints(STREAM_PART_ID, [epDescriptor])
|
|
40
40
|
})
|
|
41
41
|
|
|
42
42
|
afterEach(async () => {
|