@streamr/trackerless-network 100.0.0-testnet-three.2 → 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 +4 -4
- package/dist/src/logic/RandomGraphNode.js +11 -11
- package/dist/src/logic/RandomGraphNode.js.map +1 -1
- package/dist/src/logic/createRandomGraphNode.js +2 -1
- 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 +2 -1
- 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 +2 -1
- package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.js +1 -0
- 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 +13 -13
- package/src/logic/createRandomGraphNode.ts +2 -1
- package/src/logic/inspect/InspectSession.ts +4 -0
- package/src/logic/inspect/Inspector.ts +1 -1
- package/src/logic/neighbor-discovery/NeighborUpdateManager.ts +3 -1
- package/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.ts +3 -1
- 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 +5 -1
- package/test/unit/NodeList.test.ts +4 -3
- package/test/unit/RandomGraphNode.test.ts +5 -5
- package/test/utils/utils.ts +2 -8
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { DhtAddress, PeerDescriptor } from '@streamr/dht';
|
|
2
2
|
export interface Layer1NodeEvents {
|
|
3
|
-
|
|
3
|
+
contactAdded: (peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => void;
|
|
4
4
|
contactRemoved: (peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => void;
|
|
5
|
-
|
|
5
|
+
randomContactAdded: (peerDescriptor: PeerDescriptor, randomPeers: PeerDescriptor[]) => void;
|
|
6
6
|
randomContactRemoved: (peerDescriptor: PeerDescriptor, randomPeers: PeerDescriptor[]) => void;
|
|
7
7
|
}
|
|
8
8
|
export interface Layer1Node {
|
|
@@ -47,11 +47,11 @@ export declare class RandomGraphNode extends EventEmitter<Events> {
|
|
|
47
47
|
constructor(config: StrictRandomGraphNodeConfig);
|
|
48
48
|
start(): Promise<void>;
|
|
49
49
|
private registerDefaultServerMethods;
|
|
50
|
-
private
|
|
51
|
-
private
|
|
50
|
+
private onContactAdded;
|
|
51
|
+
private onContactRemoved;
|
|
52
52
|
private updateNearbyNodeView;
|
|
53
|
-
private
|
|
54
|
-
private
|
|
53
|
+
private onRandomContactAdded;
|
|
54
|
+
private onRandomContactRemoved;
|
|
55
55
|
private onNodeDisconnected;
|
|
56
56
|
private getNeighborCandidatesFromLayer1;
|
|
57
57
|
hasProxyConnection(nodeId: DhtAddress): boolean;
|
|
@@ -54,10 +54,10 @@ class RandomGraphNode extends eventemitter3_1.EventEmitter {
|
|
|
54
54
|
async start() {
|
|
55
55
|
this.started = true;
|
|
56
56
|
this.registerDefaultServerMethods();
|
|
57
|
-
(0, utils_1.addManagedEventListener)(this.config.layer1Node, '
|
|
58
|
-
(0, utils_1.addManagedEventListener)(this.config.layer1Node, 'contactRemoved', (_peerDescriptor, closestPeers) => this.
|
|
59
|
-
(0, utils_1.addManagedEventListener)(this.config.layer1Node, '
|
|
60
|
-
(0, utils_1.addManagedEventListener)(this.config.layer1Node, 'randomContactRemoved', (_peerDescriptor, randomPeers) => this.
|
|
57
|
+
(0, utils_1.addManagedEventListener)(this.config.layer1Node, 'contactAdded', (_peerDescriptor, closestPeers) => this.onContactAdded(closestPeers), this.abortController.signal);
|
|
58
|
+
(0, utils_1.addManagedEventListener)(this.config.layer1Node, 'contactRemoved', (_peerDescriptor, closestPeers) => this.onContactRemoved(closestPeers), this.abortController.signal);
|
|
59
|
+
(0, utils_1.addManagedEventListener)(this.config.layer1Node, 'randomContactAdded', (_peerDescriptor, randomPeers) => this.onRandomContactAdded(randomPeers), this.abortController.signal);
|
|
60
|
+
(0, utils_1.addManagedEventListener)(this.config.layer1Node, 'randomContactRemoved', (_peerDescriptor, randomPeers) => this.onRandomContactRemoved(randomPeers), this.abortController.signal);
|
|
61
61
|
(0, utils_1.addManagedEventListener)(this.config.transport, 'disconnected', (peerDescriptor) => this.onNodeDisconnected(peerDescriptor), this.abortController.signal);
|
|
62
62
|
(0, utils_1.addManagedEventListener)(this.config.neighbors, 'nodeAdded', (id, _remote) => {
|
|
63
63
|
this.config.propagation.onNeighborJoined(id);
|
|
@@ -68,7 +68,7 @@ class RandomGraphNode extends eventemitter3_1.EventEmitter {
|
|
|
68
68
|
}
|
|
69
69
|
const candidates = this.getNeighborCandidatesFromLayer1();
|
|
70
70
|
if (candidates.length > 0) {
|
|
71
|
-
this.
|
|
71
|
+
this.onContactAdded(candidates);
|
|
72
72
|
}
|
|
73
73
|
this.config.neighborFinder.start();
|
|
74
74
|
await this.config.neighborUpdateManager.start();
|
|
@@ -79,7 +79,7 @@ class RandomGraphNode extends eventemitter3_1.EventEmitter {
|
|
|
79
79
|
this.config.rpcCommunicator.registerRpcMethod(NetworkRpc_1.TemporaryConnectionRequest, NetworkRpc_1.TemporaryConnectionResponse, 'openConnection', (req, context) => this.config.temporaryConnectionRpcLocal.openConnection(req, context));
|
|
80
80
|
this.config.rpcCommunicator.registerRpcNotification(NetworkRpc_1.CloseTemporaryConnection, 'closeConnection', (req, context) => this.config.temporaryConnectionRpcLocal.closeConnection(req, context));
|
|
81
81
|
}
|
|
82
|
-
|
|
82
|
+
onContactAdded(closestNodes) {
|
|
83
83
|
logger.trace(`New nearby contact found`);
|
|
84
84
|
if (this.isStopped()) {
|
|
85
85
|
return;
|
|
@@ -89,7 +89,7 @@ class RandomGraphNode extends eventemitter3_1.EventEmitter {
|
|
|
89
89
|
this.config.neighborFinder.start();
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
|
-
|
|
92
|
+
onContactRemoved(closestNodes) {
|
|
93
93
|
logger.trace(`Nearby contact removed`);
|
|
94
94
|
if (this.isStopped()) {
|
|
95
95
|
return;
|
|
@@ -105,7 +105,7 @@ class RandomGraphNode extends eventemitter3_1.EventEmitter {
|
|
|
105
105
|
this.config.nearbyNodeView.add(new DeliveryRpcRemote_1.DeliveryRpcRemote(this.config.localPeerDescriptor, descriptor, this.config.rpcCommunicator, NetworkRpc_client_1.DeliveryRpcClient, this.config.rpcRequestTimeout));
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
|
-
|
|
108
|
+
onRandomContactAdded(randomNodes) {
|
|
109
109
|
if (this.isStopped()) {
|
|
110
110
|
return;
|
|
111
111
|
}
|
|
@@ -114,7 +114,7 @@ class RandomGraphNode extends eventemitter3_1.EventEmitter {
|
|
|
114
114
|
this.config.neighborFinder.start();
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
|
-
|
|
117
|
+
onRandomContactRemoved(randomNodes) {
|
|
118
118
|
logger.trace(`New nearby contact found`);
|
|
119
119
|
if (this.isStopped()) {
|
|
120
120
|
return;
|
|
@@ -167,7 +167,8 @@ class RandomGraphNode extends eventemitter3_1.EventEmitter {
|
|
|
167
167
|
(0, utils_2.markAndCheckDuplicate)(this.duplicateDetectors, msg.messageId, msg.previousMessageRef);
|
|
168
168
|
}
|
|
169
169
|
this.emit('message', msg);
|
|
170
|
-
this.config.
|
|
170
|
+
const skipBackPropagation = previousNode !== undefined && !this.config.temporaryConnectionRpcLocal.hasNode(previousNode);
|
|
171
|
+
this.config.propagation.feedUnseenMessage(msg, this.getPropagationTargets(msg), skipBackPropagation ? previousNode : null);
|
|
171
172
|
}
|
|
172
173
|
inspect(peerDescriptor) {
|
|
173
174
|
return this.config.inspector.inspect(peerDescriptor);
|
|
@@ -177,7 +178,6 @@ class RandomGraphNode extends eventemitter3_1.EventEmitter {
|
|
|
177
178
|
if (this.config.proxyConnectionRpcLocal) {
|
|
178
179
|
propagationTargets = propagationTargets.concat(this.config.proxyConnectionRpcLocal.getPropagationTargets(msg));
|
|
179
180
|
}
|
|
180
|
-
propagationTargets = propagationTargets.filter((target) => !this.config.inspector.isInspected(target));
|
|
181
181
|
propagationTargets = propagationTargets.concat(this.config.temporaryConnectionRpcLocal.getNodes().getIds());
|
|
182
182
|
return propagationTargets;
|
|
183
183
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RandomGraphNode.js","sourceRoot":"","sources":["../../../src/logic/RandomGraphNode.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RandomGraphNode.js","sourceRoot":"","sources":["../../../src/logic/RandomGraphNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -73,7 +73,8 @@ const createConfigWithDefaults = (config) => {
|
|
|
73
73
|
streamPartId: config.streamPartId,
|
|
74
74
|
rpcCommunicator,
|
|
75
75
|
neighborUpdateInterval,
|
|
76
|
-
neighborTargetCount
|
|
76
|
+
neighborTargetCount,
|
|
77
|
+
connectionLocker: config.connectionLocker
|
|
77
78
|
});
|
|
78
79
|
const inspector = config.inspector ?? new Inspector_1.Inspector({
|
|
79
80
|
localPeerDescriptor: config.localPeerDescriptor,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createRandomGraphNode.js","sourceRoot":"","sources":["../../../src/logic/createRandomGraphNode.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"createRandomGraphNode.js","sourceRoot":"","sources":["../../../src/logic/createRandomGraphNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ export declare class InspectSession extends EventEmitter<Events> {
|
|
|
13
13
|
constructor(config: InspectSessionConfig);
|
|
14
14
|
markMessage(senderId: DhtAddress, messageId: MessageID): void;
|
|
15
15
|
getInspectedMessageCount(): number;
|
|
16
|
+
onlyMarkedByInspectedNode(): boolean;
|
|
16
17
|
stop(): void;
|
|
17
18
|
}
|
|
18
19
|
export {};
|
|
@@ -32,6 +32,9 @@ class InspectSession extends eventemitter3_1.EventEmitter {
|
|
|
32
32
|
getInspectedMessageCount() {
|
|
33
33
|
return this.inspectionMessages.size;
|
|
34
34
|
}
|
|
35
|
+
onlyMarkedByInspectedNode() {
|
|
36
|
+
return Array.from(this.inspectionMessages.values()).every((value) => value === true);
|
|
37
|
+
}
|
|
35
38
|
stop() {
|
|
36
39
|
this.emit('done');
|
|
37
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InspectSession.js","sourceRoot":"","sources":["../../../../src/logic/inspect/InspectSession.ts"],"names":[],"mappings":";;;AAAA,iDAA4C;AAE5C,0CAA4C;AAW5C,MAAM,gBAAgB,GAAG,CAAC,SAAoB,EAAU,EAAE;IACtD,OAAO,GAAG,IAAA,mBAAW,EAAC,SAAS,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,cAAc,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,cAAc,EAAE,CAAA;AACjI,CAAC,CAAA;AACD,MAAa,cAAe,SAAQ,4BAAoB;IAEpD,2EAA2E;IAC1D,kBAAkB,GAAyB,IAAI,GAAG,EAAE,CAAA;IACpD,aAAa,CAAY;IAE1C,YAAY,MAA4B;QACpC,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAA;IAC7C,CAAC;IAED,WAAW,CAAC,QAAoB,EAAE,SAAoB;QAClD,MAAM,UAAU,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAA;QAC9C,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,KAAK,IAAI,CAAC,aAAa,CAAC,CAAA;QAC5E,CAAC;aAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC;eAC3C,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,KAAK;eACjD,QAAQ,KAAK,IAAI,CAAC,aAAa,EACpC,CAAC;YACC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACrB,CAAC;aAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC;eAC3C,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC;YACtD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACrB,CAAC;IACL,CAAC;IAED,wBAAwB;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAA;IACvC,CAAC;IAED,IAAI;QACA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACrB,CAAC;CACJ;
|
|
1
|
+
{"version":3,"file":"InspectSession.js","sourceRoot":"","sources":["../../../../src/logic/inspect/InspectSession.ts"],"names":[],"mappings":";;;AAAA,iDAA4C;AAE5C,0CAA4C;AAW5C,MAAM,gBAAgB,GAAG,CAAC,SAAoB,EAAU,EAAE;IACtD,OAAO,GAAG,IAAA,mBAAW,EAAC,SAAS,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,cAAc,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,cAAc,EAAE,CAAA;AACjI,CAAC,CAAA;AACD,MAAa,cAAe,SAAQ,4BAAoB;IAEpD,2EAA2E;IAC1D,kBAAkB,GAAyB,IAAI,GAAG,EAAE,CAAA;IACpD,aAAa,CAAY;IAE1C,YAAY,MAA4B;QACpC,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAA;IAC7C,CAAC;IAED,WAAW,CAAC,QAAoB,EAAE,SAAoB;QAClD,MAAM,UAAU,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAA;QAC9C,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,KAAK,IAAI,CAAC,aAAa,CAAC,CAAA;QAC5E,CAAC;aAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC;eAC3C,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,KAAK;eACjD,QAAQ,KAAK,IAAI,CAAC,aAAa,EACpC,CAAC;YACC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACrB,CAAC;aAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC;eAC3C,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC;YACtD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACrB,CAAC;IACL,CAAC;IAED,wBAAwB;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAA;IACvC,CAAC;IAED,yBAAyB;QACrB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAA;IACxF,CAAC;IAED,IAAI;QACA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACrB,CAAC;CACJ;AArCD,wCAqCC"}
|
|
@@ -56,7 +56,7 @@ class Inspector {
|
|
|
56
56
|
await this.closeInspectConnection(peerDescriptor, lockId);
|
|
57
57
|
this.sessions.delete(nodeId);
|
|
58
58
|
}
|
|
59
|
-
return success || session.getInspectedMessageCount() < 1;
|
|
59
|
+
return success || session.getInspectedMessageCount() < 1 || session.onlyMarkedByInspectedNode();
|
|
60
60
|
}
|
|
61
61
|
markMessage(sender, messageId) {
|
|
62
62
|
this.sessions.forEach((session) => session.markMessage(sender, messageId));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Inspector.js","sourceRoot":"","sources":["../../../../src/logic/inspect/Inspector.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Inspector.js","sourceRoot":"","sources":["../../../../src/logic/inspect/Inspector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ListeningRpcCommunicator, PeerDescriptor } from '@streamr/dht';
|
|
1
|
+
import { ConnectionLocker, ListeningRpcCommunicator, PeerDescriptor } from '@streamr/dht';
|
|
2
2
|
import { NeighborFinder } from './NeighborFinder';
|
|
3
3
|
import { NodeList } from '../NodeList';
|
|
4
4
|
import { StreamPartID } from '@streamr/protocol';
|
|
@@ -7,6 +7,7 @@ interface NeighborUpdateManagerConfig {
|
|
|
7
7
|
neighbors: NodeList;
|
|
8
8
|
nearbyNodeView: NodeList;
|
|
9
9
|
neighborFinder: NeighborFinder;
|
|
10
|
+
connectionLocker: ConnectionLocker;
|
|
10
11
|
streamPartId: StreamPartID;
|
|
11
12
|
rpcCommunicator: ListeningRpcCommunicator;
|
|
12
13
|
neighborUpdateInterval: number;
|
|
@@ -32,6 +32,7 @@ class NeighborUpdateManager {
|
|
|
32
32
|
if (res.removeMe) {
|
|
33
33
|
const nodeId = (0, dht_1.getNodeIdFromPeerDescriptor)(neighbor.getPeerDescriptor());
|
|
34
34
|
this.config.neighbors.remove(nodeId);
|
|
35
|
+
this.config.connectionLocker.unlockConnection(neighbor.getPeerDescriptor(), this.config.streamPartId);
|
|
35
36
|
this.config.neighborFinder.start([nodeId]);
|
|
36
37
|
}
|
|
37
38
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeighborUpdateManager.js","sourceRoot":"","sources":["../../../../src/logic/neighbor-discovery/NeighborUpdateManager.ts"],"names":[],"mappings":";;;AAAA,2FAA2F;AAC3F,
|
|
1
|
+
{"version":3,"file":"NeighborUpdateManager.js","sourceRoot":"","sources":["../../../../src/logic/neighbor-discovery/NeighborUpdateManager.ts"],"names":[],"mappings":";;;AAAA,2FAA2F;AAC3F,sCAAsH;AACtH,yGAA2G;AAC3G,0CAA2D;AAG3D,uEAAmE;AACnE,qEAAiE;AAejE,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,qBAAqB;IAEb,eAAe,CAAiB;IAChC,MAAM,CAA6B;IACnC,QAAQ,CAAwB;IAEjD,YAAY,MAAmC;QAC3C,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;QAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,+CAAsB,CAAC,MAAM,CAAC,CAAA;QAClD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,iBAAiB,CAAC,2BAAc,EAAE,2BAAc,EAAE,gBAAgB,EAC1F,CAAC,GAAmB,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;IACrF,CAAC;IAED,KAAK,CAAC,KAAK;QACP,MAAM,IAAA,0BAAkB,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;IACrI,CAAC;IAED,IAAI;QACA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAA;IAChC,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC5B,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAA;QAC/C,MAAM,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAA;QAC1G,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;YAC3E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAA;YAChI,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACf,MAAM,MAAM,GAAG,IAAA,iCAA2B,EAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAA;gBACxE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;gBACpC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,iBAAiB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;gBACrG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;YAC9C,CAAC;QACL,CAAC,CAAC,CAAC,CAAA;IACP,CAAC;IAEO,YAAY,CAAC,oBAAoC;QACrD,OAAO,IAAI,iDAAuB,CAC9B,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAC/B,oBAAoB,EACpB,IAAI,CAAC,MAAM,CAAC,eAAe,EAC3B,2CAAuB,CAC1B,CAAA;IACL,CAAC;CACJ;AA5CD,sDA4CC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ServerCallContext } from '@protobuf-ts/runtime-rpc';
|
|
2
|
-
import { ListeningRpcCommunicator, PeerDescriptor } from '@streamr/dht';
|
|
2
|
+
import { ConnectionLocker, ListeningRpcCommunicator, PeerDescriptor } from '@streamr/dht';
|
|
3
3
|
import { NeighborUpdate } from '../../proto/packages/trackerless-network/protos/NetworkRpc';
|
|
4
4
|
import { INeighborUpdateRpc } from '../../proto/packages/trackerless-network/protos/NetworkRpc.server';
|
|
5
5
|
import { NodeList } from '../NodeList';
|
|
@@ -11,6 +11,7 @@ interface NeighborUpdateRpcLocalConfig {
|
|
|
11
11
|
neighbors: NodeList;
|
|
12
12
|
nearbyNodeView: NodeList;
|
|
13
13
|
neighborFinder: NeighborFinder;
|
|
14
|
+
connectionLocker: ConnectionLocker;
|
|
14
15
|
rpcCommunicator: ListeningRpcCommunicator;
|
|
15
16
|
neighborTargetCount: number;
|
|
16
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeighborUpdateRpcLocal.js","sourceRoot":"","sources":["../../../../src/logic/neighbor-discovery/NeighborUpdateRpcLocal.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"NeighborUpdateRpcLocal.js","sourceRoot":"","sources":["../../../../src/logic/neighbor-discovery/NeighborUpdateRpcLocal.ts"],"names":[],"mappings":";;;AACA,sCAAsI;AAEtI,yGAAqG;AAGrG,4DAAwD;AAexD,MAAa,sBAAsB;IAEd,MAAM,CAA8B;IAErD,YAAY,MAAoC;QAC5C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAEO,cAAc,CAAC,mBAAqC;QACxD,MAAM,SAAS,GAAG,IAAA,iCAA2B,EAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAA;QAC9E,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,cAAc,EAAE,EAAE;YACrE,MAAM,MAAM,GAAG,IAAA,iCAA2B,EAAC,cAAc,CAAC,CAAA;YAC1D,OAAO,MAAM,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACnF,CAAC,CAAC,CAAA;QACF,kBAAkB,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CACzE,IAAI,qCAAiB,CACjB,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAC/B,cAAc,EACd,IAAI,CAAC,MAAM,CAAC,eAAe,EAC3B,qCAAiB,CACpB,CAAC,CACL,CAAA;IACL,CAAC;IAEO,cAAc,CAAC,QAAiB;QACpC,OAAO;YACH,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;YACtC,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;YACnG,QAAQ;SACX,CAAA;IACL,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,cAAc,CAAC,OAAuB,EAAE,OAA0B;QACpE,MAAM,oBAAoB,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QAClF,MAAM,QAAQ,GAAG,IAAA,iCAA2B,EAAC,oBAAoB,CAAC,CAAA;QAClE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;QAChD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QACpC,CAAC;aAAM,CAAC;YACJ,MAAM,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB;gBACtF,0GAA0G;gBAC1G,yGAAyG;gBACzG,WAAW;mBACR,OAAO,CAAC,mBAAmB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAA;YAC3E,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,CAAA;YACtC,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;gBACtC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;YACjG,CAAC;YACD,OAAO,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAA;QACnD,CAAC;IACL,CAAC;CACJ;AAtDD,wDAsDC"}
|
|
@@ -115,7 +115,7 @@ class ProxyClient extends eventemitter3_1.EventEmitter {
|
|
|
115
115
|
getInvalidConnections() {
|
|
116
116
|
return Array.from(this.connections.keys()).filter((id) => {
|
|
117
117
|
return !this.definition.nodes.has(id)
|
|
118
|
-
|| this.definition.direction !== this.connections.get(id);
|
|
118
|
+
|| this.definition.direction !== this.connections.get(id).direction;
|
|
119
119
|
});
|
|
120
120
|
}
|
|
121
121
|
async openRandomConnections(connectionCount) {
|
|
@@ -128,7 +128,7 @@ class ProxyClient extends eventemitter3_1.EventEmitter {
|
|
|
128
128
|
const accepted = await rpcRemote.requestConnection(direction, userId);
|
|
129
129
|
if (accepted) {
|
|
130
130
|
this.config.connectionLocker.lockConnection(peerDescriptor, SERVICE_ID);
|
|
131
|
-
this.connections.set(nodeId, direction);
|
|
131
|
+
this.connections.set(nodeId, { peerDescriptor, direction });
|
|
132
132
|
const remote = new DeliveryRpcRemote_1.DeliveryRpcRemote(this.config.localPeerDescriptor, peerDescriptor, this.rpcCommunicator, NetworkRpc_client_1.DeliveryRpcClient);
|
|
133
133
|
this.neighbors.add(remote);
|
|
134
134
|
this.propagation.onNeighborJoined(nodeId);
|
|
@@ -155,12 +155,14 @@ class ProxyClient extends eventemitter3_1.EventEmitter {
|
|
|
155
155
|
});
|
|
156
156
|
const server = this.neighbors.get(nodeId);
|
|
157
157
|
server?.leaveStreamPartNotice(this.config.streamPartId, false);
|
|
158
|
-
this.removeConnection(nodeId);
|
|
158
|
+
this.removeConnection(this.connections.get(nodeId).peerDescriptor);
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
|
-
removeConnection(
|
|
161
|
+
removeConnection(peerDescriptor) {
|
|
162
|
+
const nodeId = (0, dht_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
|
|
162
163
|
this.connections.delete(nodeId);
|
|
163
164
|
this.neighbors.remove(nodeId);
|
|
165
|
+
this.config.connectionLocker.unlockConnection(peerDescriptor, SERVICE_ID);
|
|
164
166
|
}
|
|
165
167
|
broadcast(msg, previousNode) {
|
|
166
168
|
if (!previousNode) {
|
|
@@ -170,7 +172,7 @@ class ProxyClient extends eventemitter3_1.EventEmitter {
|
|
|
170
172
|
this.propagation.feedUnseenMessage(msg, this.neighbors.getIds(), previousNode ?? null);
|
|
171
173
|
}
|
|
172
174
|
hasConnection(nodeId, direction) {
|
|
173
|
-
return this.connections.has(nodeId) && this.connections.get(nodeId) === direction;
|
|
175
|
+
return this.connections.has(nodeId) && this.connections.get(nodeId).direction === direction;
|
|
174
176
|
}
|
|
175
177
|
getDirection() {
|
|
176
178
|
return this.definition.direction;
|
|
@@ -179,7 +181,7 @@ class ProxyClient extends eventemitter3_1.EventEmitter {
|
|
|
179
181
|
const nodeId = (0, dht_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
|
|
180
182
|
if (this.connections.has(nodeId)) {
|
|
181
183
|
this.config.connectionLocker.unlockConnection(peerDescriptor, SERVICE_ID);
|
|
182
|
-
this.removeConnection(
|
|
184
|
+
this.removeConnection(peerDescriptor);
|
|
183
185
|
await (0, exports.retry)(() => this.updateConnections(), 'updating proxy connections', this.abortController.signal);
|
|
184
186
|
}
|
|
185
187
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProxyClient.js","sourceRoot":"","sources":["../../../../src/logic/proxy/ProxyClient.ts"],"names":[],"mappings":";;;AAAA,sCAOqB;AAErB,0CAAuF;AACvF,iDAA4C;AAC5C,mCAAmC;AACnC,2FAMmE;AACnE,yGAA+H;AAE/H,0CAAsC;AACtC,4DAAwD;AACxD,0DAAsD;AACtD,4DAAwD;AACxD,oCAAgD;AAChD,yEAAqE;AACrE,wFAAoF;AAEpF,4CAA4C;AACrC,MAAM,KAAK,GAAG,KAAK,EAAK,IAAsB,EAAE,WAAmB,EAAE,WAAwB,EAAE,KAAK,GAAG,KAAK,EAAc,EAAE;IAC/H,iDAAiD;IACjD,OAAO,IAAI,EAAE,CAAC;QACV,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAA;YAC3B,OAAO,MAAM,CAAA;QACjB,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,UAAU,WAAW,yBAAyB,EAAE;gBACxD,SAAS,EAAE,KAAK;aACnB,CAAC,CAAA;QACN,CAAC;QACD,MAAM,IAAA,YAAI,EAAC,KAAK,EAAE,WAAW,CAAC,CAAA;IAClC,CAAC;AACL,CAAC,CAAA;AAbY,QAAA,KAAK,SAajB;
|
|
1
|
+
{"version":3,"file":"ProxyClient.js","sourceRoot":"","sources":["../../../../src/logic/proxy/ProxyClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ export declare class TemporaryConnectionRpcLocal implements ITemporaryConnection
|
|
|
14
14
|
private readonly temporaryNodes;
|
|
15
15
|
constructor(config: TemporaryConnectionRpcLocalConfig);
|
|
16
16
|
getNodes(): NodeList;
|
|
17
|
+
hasNode(node: DhtAddress): boolean;
|
|
17
18
|
removeNode(nodeId: DhtAddress): void;
|
|
18
19
|
openConnection(_request: TemporaryConnectionRequest, context: ServerCallContext): Promise<TemporaryConnectionResponse>;
|
|
19
20
|
closeConnection(_request: CloseTemporaryConnection, context: ServerCallContext): Promise<Empty>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemporaryConnectionRpcLocal.js","sourceRoot":"","sources":["../../../../src/logic/temporary-connection/TemporaryConnectionRpcLocal.ts"],"names":[],"mappings":";;;AAOA,sCAAgH;AAChH,yGAAqG;AACrG,0CAAsC;AACtC,4DAAwD;AASxD,MAAa,2BAA2B;IAEnB,MAAM,CAAmC;IACzC,cAAc,CAAU;IAEzC,YAAY,MAAyC;QACjD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,4CAA4C;QAC5C,IAAI,CAAC,cAAc,GAAG,IAAI,mBAAQ,CAAC,IAAA,iCAA2B,EAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,EAAE,CAAC,CAAA;IACnG,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,cAAc,CAAA;IAC9B,CAAC;IAED,UAAU,CAAC,MAAkB;QACzB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACtC,CAAC;IAED,KAAK,CAAC,cAAc,CAChB,QAAoC,EACpC,OAA0B;QAE1B,MAAM,MAAM,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QACpE,MAAM,MAAM,GAAG,IAAI,qCAAiB,CAChC,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAC/B,MAAM,EACN,IAAI,CAAC,MAAM,CAAC,eAAe,EAC3B,qCAAiB,CACpB,CAAA;QACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC/B,OAAO;YACH,QAAQ,EAAE,IAAI;SACjB,CAAA;IACL,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,QAAkC,EAAE,OAA0B;QAChF,MAAM,QAAQ,GAAG,IAAA,iCAA2B,EAAE,OAA0B,CAAC,wBAAyB,CAAC,CAAA;QACnG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;QACzB,OAAO,EAAE,CAAA;IACb,CAAC;CACJ;
|
|
1
|
+
{"version":3,"file":"TemporaryConnectionRpcLocal.js","sourceRoot":"","sources":["../../../../src/logic/temporary-connection/TemporaryConnectionRpcLocal.ts"],"names":[],"mappings":";;;AAOA,sCAAgH;AAChH,yGAAqG;AACrG,0CAAsC;AACtC,4DAAwD;AASxD,MAAa,2BAA2B;IAEnB,MAAM,CAAmC;IACzC,cAAc,CAAU;IAEzC,YAAY,MAAyC;QACjD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,4CAA4C;QAC5C,IAAI,CAAC,cAAc,GAAG,IAAI,mBAAQ,CAAC,IAAA,iCAA2B,EAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,EAAE,CAAC,CAAA;IACnG,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,cAAc,CAAA;IAC9B,CAAC;IAED,OAAO,CAAC,IAAgB;QACpB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACxC,CAAC;IAED,UAAU,CAAC,MAAkB;QACzB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACtC,CAAC;IAED,KAAK,CAAC,cAAc,CAChB,QAAoC,EACpC,OAA0B;QAE1B,MAAM,MAAM,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QACpE,MAAM,MAAM,GAAG,IAAI,qCAAiB,CAChC,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAC/B,MAAM,EACN,IAAI,CAAC,MAAM,CAAC,eAAe,EAC3B,qCAAiB,CACpB,CAAA;QACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC/B,OAAO;YACH,QAAQ,EAAE,IAAI;SACjB,CAAA;IACL,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,QAAkC,EAAE,OAA0B;QAChF,MAAM,QAAQ,GAAG,IAAA,iCAA2B,EAAE,OAA0B,CAAC,wBAAyB,CAAC,CAAA;QACnG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;QACzB,OAAO,EAAE,CAAA;IACb,CAAC;CACJ;AA7CD,kEA6CC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ConnectionLocker,
|
|
1
|
+
import { ConnectionLocker, PeerDescriptor, Simulator } from '@streamr/dht';
|
|
2
2
|
import { RandomGraphNode } from '../../src/logic/RandomGraphNode';
|
|
3
3
|
import { StreamMessage } from '../../src/proto/packages/trackerless-network/protos/NetworkRpc';
|
|
4
4
|
import { DeliveryRpcRemote } from '../../src/logic/DeliveryRpcRemote';
|
|
@@ -10,7 +10,6 @@ import { Layer1Node } from '../../src/logic/Layer1Node';
|
|
|
10
10
|
export declare const mockConnectionLocker: ConnectionLocker;
|
|
11
11
|
export declare const createMockRandomGraphNodeAndDhtNode: (localPeerDescriptor: PeerDescriptor, entryPointDescriptor: PeerDescriptor, streamPartId: StreamPartID, simulator: Simulator) => Promise<[Layer1Node, RandomGraphNode]>;
|
|
12
12
|
export declare const createStreamMessage: (content: string, streamPartId: StreamPartID, publisherId: EthereumAddress, timestamp?: number, sequenceNumber?: number) => StreamMessage;
|
|
13
|
-
export declare const createRandomNodeId: () => DhtAddress;
|
|
14
13
|
export declare const createMockPeerDescriptor: (opts?: Omit<Partial<PeerDescriptor>, 'nodeId' | 'type'>) => PeerDescriptor;
|
|
15
14
|
export declare const createMockDeliveryRpcRemote: (remotePeerDescriptor?: PeerDescriptor) => DeliveryRpcRemote;
|
|
16
15
|
export declare const createMockHandshakeRpcRemote: () => HandshakeRpcRemote;
|
package/dist/test/utils/utils.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createNetworkNodeWithSimulator = exports.createMockHandshakeRpcRemote = exports.createMockDeliveryRpcRemote = exports.createMockPeerDescriptor = exports.
|
|
4
|
-
const crypto_1 = require("crypto");
|
|
3
|
+
exports.createNetworkNodeWithSimulator = exports.createMockHandshakeRpcRemote = exports.createMockDeliveryRpcRemote = exports.createMockPeerDescriptor = exports.createStreamMessage = exports.createMockRandomGraphNodeAndDhtNode = exports.mockConnectionLocker = void 0;
|
|
5
4
|
const dht_1 = require("@streamr/dht");
|
|
6
5
|
const NetworkRpc_1 = require("../../src/proto/packages/trackerless-network/protos/NetworkRpc");
|
|
7
6
|
const DeliveryRpcRemote_1 = require("../../src/logic/DeliveryRpcRemote");
|
|
@@ -61,14 +60,10 @@ const createStreamMessage = (content, streamPartId, publisherId, timestamp, sequ
|
|
|
61
60
|
return msg;
|
|
62
61
|
};
|
|
63
62
|
exports.createStreamMessage = createStreamMessage;
|
|
64
|
-
const createRandomNodeId = () => {
|
|
65
|
-
return (0, dht_1.getDhtAddressFromRaw)((0, crypto_1.randomBytes)(10));
|
|
66
|
-
};
|
|
67
|
-
exports.createRandomNodeId = createRandomNodeId;
|
|
68
63
|
const createMockPeerDescriptor = (opts) => {
|
|
69
64
|
return {
|
|
70
65
|
...opts,
|
|
71
|
-
nodeId: (0, dht_1.getRawFromDhtAddress)((0,
|
|
66
|
+
nodeId: (0, dht_1.getRawFromDhtAddress)((0, dht_1.createRandomDhtAddress)()),
|
|
72
67
|
type: dht_1.NodeType.NODEJS,
|
|
73
68
|
region: (0, dht_1.getRandomRegion)()
|
|
74
69
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../test/utils/utils.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../test/utils/utils.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.3",
|
|
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.3",
|
|
34
|
+
"@streamr/proto-rpc": "100.0.0-testnet-three.3",
|
|
35
|
+
"@streamr/protocol": "100.0.0-testnet-three.3",
|
|
36
|
+
"@streamr/test-utils": "100.0.0-testnet-three.3",
|
|
37
|
+
"@streamr/utils": "100.0.0-testnet-three.3",
|
|
38
38
|
"eventemitter3": "^5.0.0",
|
|
39
39
|
"lodash": "^4.17.21",
|
|
40
40
|
"uuid": "^9.0.1",
|
package/src/logic/Layer1Node.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { DhtAddress, PeerDescriptor } from '@streamr/dht'
|
|
2
2
|
|
|
3
3
|
export interface Layer1NodeEvents {
|
|
4
|
-
|
|
4
|
+
contactAdded: (peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => void
|
|
5
5
|
contactRemoved: (peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => void
|
|
6
|
-
|
|
6
|
+
randomContactAdded: (peerDescriptor: PeerDescriptor, randomPeers: PeerDescriptor[]) => void
|
|
7
7
|
randomContactRemoved: (peerDescriptor: PeerDescriptor, randomPeers: PeerDescriptor[]) => void
|
|
8
8
|
}
|
|
9
9
|
|
|
@@ -115,26 +115,26 @@ export class RandomGraphNode extends EventEmitter<Events> {
|
|
|
115
115
|
this.registerDefaultServerMethods()
|
|
116
116
|
addManagedEventListener<any, any>(
|
|
117
117
|
this.config.layer1Node as any,
|
|
118
|
-
'
|
|
119
|
-
(_peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => this.
|
|
118
|
+
'contactAdded',
|
|
119
|
+
(_peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => this.onContactAdded(closestPeers),
|
|
120
120
|
this.abortController.signal
|
|
121
121
|
)
|
|
122
122
|
addManagedEventListener<any, any>(
|
|
123
123
|
this.config.layer1Node as any,
|
|
124
124
|
'contactRemoved',
|
|
125
|
-
(_peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => this.
|
|
125
|
+
(_peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => this.onContactRemoved(closestPeers),
|
|
126
126
|
this.abortController.signal
|
|
127
127
|
)
|
|
128
128
|
addManagedEventListener<any, any>(
|
|
129
129
|
this.config.layer1Node as any,
|
|
130
|
-
'
|
|
131
|
-
(_peerDescriptor: PeerDescriptor, randomPeers: PeerDescriptor[]) => this.
|
|
130
|
+
'randomContactAdded',
|
|
131
|
+
(_peerDescriptor: PeerDescriptor, randomPeers: PeerDescriptor[]) => this.onRandomContactAdded(randomPeers),
|
|
132
132
|
this.abortController.signal
|
|
133
133
|
)
|
|
134
134
|
addManagedEventListener<any, any>(
|
|
135
135
|
this.config.layer1Node as any,
|
|
136
136
|
'randomContactRemoved',
|
|
137
|
-
(_peerDescriptor: PeerDescriptor, randomPeers: PeerDescriptor[]) => this.
|
|
137
|
+
(_peerDescriptor: PeerDescriptor, randomPeers: PeerDescriptor[]) => this.onRandomContactRemoved(randomPeers),
|
|
138
138
|
this.abortController.signal
|
|
139
139
|
)
|
|
140
140
|
addManagedEventListener<any, any>(
|
|
@@ -162,7 +162,7 @@ export class RandomGraphNode extends EventEmitter<Events> {
|
|
|
162
162
|
}
|
|
163
163
|
const candidates = this.getNeighborCandidatesFromLayer1()
|
|
164
164
|
if (candidates.length > 0) {
|
|
165
|
-
this.
|
|
165
|
+
this.onContactAdded(candidates)
|
|
166
166
|
}
|
|
167
167
|
this.config.neighborFinder.start()
|
|
168
168
|
await this.config.neighborUpdateManager.start()
|
|
@@ -179,7 +179,7 @@ export class RandomGraphNode extends EventEmitter<Events> {
|
|
|
179
179
|
(req: TemporaryConnectionRequest, context) => this.config.temporaryConnectionRpcLocal.closeConnection(req, context))
|
|
180
180
|
}
|
|
181
181
|
|
|
182
|
-
private
|
|
182
|
+
private onContactAdded(closestNodes: PeerDescriptor[]): void {
|
|
183
183
|
logger.trace(`New nearby contact found`)
|
|
184
184
|
if (this.isStopped()) {
|
|
185
185
|
return
|
|
@@ -190,7 +190,7 @@ export class RandomGraphNode extends EventEmitter<Events> {
|
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
192
|
|
|
193
|
-
private
|
|
193
|
+
private onContactRemoved(closestNodes: PeerDescriptor[]): void {
|
|
194
194
|
logger.trace(`Nearby contact removed`)
|
|
195
195
|
if (this.isStopped()) {
|
|
196
196
|
return
|
|
@@ -225,7 +225,7 @@ export class RandomGraphNode extends EventEmitter<Events> {
|
|
|
225
225
|
}
|
|
226
226
|
}
|
|
227
227
|
|
|
228
|
-
private
|
|
228
|
+
private onRandomContactAdded(randomNodes: PeerDescriptor[]): void {
|
|
229
229
|
if (this.isStopped()) {
|
|
230
230
|
return
|
|
231
231
|
}
|
|
@@ -243,7 +243,7 @@ export class RandomGraphNode extends EventEmitter<Events> {
|
|
|
243
243
|
}
|
|
244
244
|
}
|
|
245
245
|
|
|
246
|
-
private
|
|
246
|
+
private onRandomContactRemoved(randomNodes: PeerDescriptor[]): void {
|
|
247
247
|
logger.trace(`New nearby contact found`)
|
|
248
248
|
if (this.isStopped()) {
|
|
249
249
|
return
|
|
@@ -311,7 +311,8 @@ export class RandomGraphNode extends EventEmitter<Events> {
|
|
|
311
311
|
markAndCheckDuplicate(this.duplicateDetectors, msg.messageId!, msg.previousMessageRef)
|
|
312
312
|
}
|
|
313
313
|
this.emit('message', msg)
|
|
314
|
-
this.config.
|
|
314
|
+
const skipBackPropagation = previousNode !== undefined && !this.config.temporaryConnectionRpcLocal.hasNode(previousNode)
|
|
315
|
+
this.config.propagation.feedUnseenMessage(msg, this.getPropagationTargets(msg), skipBackPropagation ? previousNode : null)
|
|
315
316
|
}
|
|
316
317
|
|
|
317
318
|
inspect(peerDescriptor: PeerDescriptor): Promise<boolean> {
|
|
@@ -323,7 +324,6 @@ export class RandomGraphNode extends EventEmitter<Events> {
|
|
|
323
324
|
if (this.config.proxyConnectionRpcLocal) {
|
|
324
325
|
propagationTargets = propagationTargets.concat(this.config.proxyConnectionRpcLocal.getPropagationTargets(msg))
|
|
325
326
|
}
|
|
326
|
-
propagationTargets = propagationTargets.filter((target) => !this.config.inspector.isInspected(target ))
|
|
327
327
|
propagationTargets = propagationTargets.concat(this.config.temporaryConnectionRpcLocal.getNodes().getIds())
|
|
328
328
|
return propagationTargets
|
|
329
329
|
}
|
|
@@ -86,7 +86,8 @@ const createConfigWithDefaults = (config: RandomGraphNodeConfig): StrictRandomGr
|
|
|
86
86
|
streamPartId: config.streamPartId,
|
|
87
87
|
rpcCommunicator,
|
|
88
88
|
neighborUpdateInterval,
|
|
89
|
-
neighborTargetCount
|
|
89
|
+
neighborTargetCount,
|
|
90
|
+
connectionLocker: config.connectionLocker
|
|
90
91
|
})
|
|
91
92
|
const inspector = config.inspector ?? new Inspector({
|
|
92
93
|
localPeerDescriptor: config.localPeerDescriptor,
|
|
@@ -44,6 +44,10 @@ export class InspectSession extends EventEmitter<Events> {
|
|
|
44
44
|
return this.inspectionMessages.size
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
+
onlyMarkedByInspectedNode(): boolean {
|
|
48
|
+
return Array.from(this.inspectionMessages.values()).every((value) => value === true)
|
|
49
|
+
}
|
|
50
|
+
|
|
47
51
|
stop(): void {
|
|
48
52
|
this.emit('done')
|
|
49
53
|
}
|
|
@@ -80,7 +80,7 @@ export class Inspector {
|
|
|
80
80
|
await this.closeInspectConnection(peerDescriptor, lockId)
|
|
81
81
|
this.sessions.delete(nodeId)
|
|
82
82
|
}
|
|
83
|
-
return success || session.getInspectedMessageCount() < 1
|
|
83
|
+
return success || session.getInspectedMessageCount() < 1 || session.onlyMarkedByInspectedNode()
|
|
84
84
|
}
|
|
85
85
|
|
|
86
86
|
markMessage(sender: DhtAddress, messageId: MessageID): void {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { NeighborUpdate } from '../../proto/packages/trackerless-network/protos/NetworkRpc'
|
|
2
|
-
import { ListeningRpcCommunicator, PeerDescriptor, getNodeIdFromPeerDescriptor } from '@streamr/dht'
|
|
2
|
+
import { ConnectionLocker, ListeningRpcCommunicator, PeerDescriptor, getNodeIdFromPeerDescriptor } from '@streamr/dht'
|
|
3
3
|
import { NeighborUpdateRpcClient } from '../../proto/packages/trackerless-network/protos/NetworkRpc.client'
|
|
4
4
|
import { Logger, scheduleAtInterval } from '@streamr/utils'
|
|
5
5
|
import { NeighborFinder } from './NeighborFinder'
|
|
@@ -13,6 +13,7 @@ interface NeighborUpdateManagerConfig {
|
|
|
13
13
|
neighbors: NodeList
|
|
14
14
|
nearbyNodeView: NodeList
|
|
15
15
|
neighborFinder: NeighborFinder
|
|
16
|
+
connectionLocker: ConnectionLocker
|
|
16
17
|
streamPartId: StreamPartID
|
|
17
18
|
rpcCommunicator: ListeningRpcCommunicator
|
|
18
19
|
neighborUpdateInterval: number
|
|
@@ -51,6 +52,7 @@ export class NeighborUpdateManager {
|
|
|
51
52
|
if (res.removeMe) {
|
|
52
53
|
const nodeId = getNodeIdFromPeerDescriptor(neighbor.getPeerDescriptor())
|
|
53
54
|
this.config.neighbors.remove(nodeId)
|
|
55
|
+
this.config.connectionLocker.unlockConnection(neighbor.getPeerDescriptor(), this.config.streamPartId)
|
|
54
56
|
this.config.neighborFinder.start([nodeId])
|
|
55
57
|
}
|
|
56
58
|
}))
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ServerCallContext } from '@protobuf-ts/runtime-rpc'
|
|
2
|
-
import { DhtCallContext, ListeningRpcCommunicator, PeerDescriptor, getNodeIdFromPeerDescriptor } from '@streamr/dht'
|
|
2
|
+
import { ConnectionLocker, DhtCallContext, ListeningRpcCommunicator, PeerDescriptor, getNodeIdFromPeerDescriptor } from '@streamr/dht'
|
|
3
3
|
import { NeighborUpdate } from '../../proto/packages/trackerless-network/protos/NetworkRpc'
|
|
4
4
|
import { DeliveryRpcClient } from '../../proto/packages/trackerless-network/protos/NetworkRpc.client'
|
|
5
5
|
import { INeighborUpdateRpc } from '../../proto/packages/trackerless-network/protos/NetworkRpc.server'
|
|
@@ -14,6 +14,7 @@ interface NeighborUpdateRpcLocalConfig {
|
|
|
14
14
|
neighbors: NodeList
|
|
15
15
|
nearbyNodeView: NodeList
|
|
16
16
|
neighborFinder: NeighborFinder
|
|
17
|
+
connectionLocker: ConnectionLocker
|
|
17
18
|
rpcCommunicator: ListeningRpcCommunicator
|
|
18
19
|
neighborTargetCount: number
|
|
19
20
|
}
|
|
@@ -67,6 +68,7 @@ export class NeighborUpdateRpcLocal implements INeighborUpdateRpc {
|
|
|
67
68
|
this.config.neighborFinder.start()
|
|
68
69
|
} else {
|
|
69
70
|
this.config.neighbors.remove(senderId)
|
|
71
|
+
this.config.connectionLocker.unlockConnection(senderPeerDescriptor, this.config.streamPartId)
|
|
70
72
|
}
|
|
71
73
|
return this.createResponse(isOverNeighborCount)
|
|
72
74
|
}
|
|
@@ -58,6 +58,11 @@ interface ProxyDefinition {
|
|
|
58
58
|
userId: EthereumAddress
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
+
interface ProxyConnection {
|
|
62
|
+
peerDescriptor: PeerDescriptor
|
|
63
|
+
direction: ProxyDirection
|
|
64
|
+
}
|
|
65
|
+
|
|
61
66
|
interface Events {
|
|
62
67
|
message: (message: StreamMessage) => void
|
|
63
68
|
}
|
|
@@ -73,7 +78,7 @@ export class ProxyClient extends EventEmitter<Events> {
|
|
|
73
78
|
private readonly config: ProxyClientConfig
|
|
74
79
|
private readonly duplicateDetectors: Map<string, DuplicateMessageDetector> = new Map()
|
|
75
80
|
private definition?: ProxyDefinition
|
|
76
|
-
private readonly connections: Map<DhtAddress,
|
|
81
|
+
private readonly connections: Map<DhtAddress, ProxyConnection> = new Map()
|
|
77
82
|
private readonly propagation: Propagation
|
|
78
83
|
private readonly neighbors: NodeList
|
|
79
84
|
private readonly abortController: AbortController
|
|
@@ -159,7 +164,7 @@ export class ProxyClient extends EventEmitter<Events> {
|
|
|
159
164
|
private getInvalidConnections(): DhtAddress[] {
|
|
160
165
|
return Array.from(this.connections.keys()).filter((id) => {
|
|
161
166
|
return !this.definition!.nodes.has(id)
|
|
162
|
-
|| this.definition!.direction !== this.connections.get(id)
|
|
167
|
+
|| this.definition!.direction !== this.connections.get(id)!.direction
|
|
163
168
|
})
|
|
164
169
|
}
|
|
165
170
|
|
|
@@ -183,7 +188,7 @@ export class ProxyClient extends EventEmitter<Events> {
|
|
|
183
188
|
const accepted = await rpcRemote.requestConnection(direction, userId)
|
|
184
189
|
if (accepted) {
|
|
185
190
|
this.config.connectionLocker.lockConnection(peerDescriptor, SERVICE_ID)
|
|
186
|
-
this.connections.set(nodeId, direction)
|
|
191
|
+
this.connections.set(nodeId, { peerDescriptor, direction })
|
|
187
192
|
const remote = new DeliveryRpcRemote(
|
|
188
193
|
this.config.localPeerDescriptor,
|
|
189
194
|
peerDescriptor,
|
|
@@ -216,13 +221,15 @@ export class ProxyClient extends EventEmitter<Events> {
|
|
|
216
221
|
})
|
|
217
222
|
const server = this.neighbors.get(nodeId)
|
|
218
223
|
server?.leaveStreamPartNotice(this.config.streamPartId, false)
|
|
219
|
-
this.removeConnection(nodeId)
|
|
224
|
+
this.removeConnection(this.connections.get(nodeId)!.peerDescriptor)
|
|
220
225
|
}
|
|
221
226
|
}
|
|
222
227
|
|
|
223
|
-
private removeConnection(
|
|
228
|
+
private removeConnection(peerDescriptor: PeerDescriptor): void {
|
|
229
|
+
const nodeId = getNodeIdFromPeerDescriptor(peerDescriptor)
|
|
224
230
|
this.connections.delete(nodeId)
|
|
225
231
|
this.neighbors.remove(nodeId)
|
|
232
|
+
this.config.connectionLocker.unlockConnection(peerDescriptor, SERVICE_ID)
|
|
226
233
|
}
|
|
227
234
|
|
|
228
235
|
broadcast(msg: StreamMessage, previousNode?: DhtAddress): void {
|
|
@@ -234,7 +241,7 @@ export class ProxyClient extends EventEmitter<Events> {
|
|
|
234
241
|
}
|
|
235
242
|
|
|
236
243
|
hasConnection(nodeId: DhtAddress, direction: ProxyDirection): boolean {
|
|
237
|
-
return this.connections.has(nodeId) && this.connections.get(nodeId) === direction
|
|
244
|
+
return this.connections.has(nodeId) && this.connections.get(nodeId)!.direction === direction
|
|
238
245
|
}
|
|
239
246
|
|
|
240
247
|
getDirection(): ProxyDirection {
|
|
@@ -245,7 +252,7 @@ export class ProxyClient extends EventEmitter<Events> {
|
|
|
245
252
|
const nodeId = getNodeIdFromPeerDescriptor(peerDescriptor)
|
|
246
253
|
if (this.connections.has(nodeId)) {
|
|
247
254
|
this.config.connectionLocker.unlockConnection(peerDescriptor, SERVICE_ID)
|
|
248
|
-
this.removeConnection(
|
|
255
|
+
this.removeConnection(peerDescriptor)
|
|
249
256
|
await retry(() => this.updateConnections(), 'updating proxy connections', this.abortController.signal)
|
|
250
257
|
}
|
|
251
258
|
}
|
|
@@ -32,6 +32,10 @@ export class TemporaryConnectionRpcLocal implements ITemporaryConnectionRpc {
|
|
|
32
32
|
return this.temporaryNodes
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
+
hasNode(node: DhtAddress): boolean {
|
|
36
|
+
return this.temporaryNodes.has(node)
|
|
37
|
+
}
|
|
38
|
+
|
|
35
39
|
removeNode(nodeId: DhtAddress): void {
|
|
36
40
|
this.temporaryNodes.remove(nodeId)
|
|
37
41
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { ConnectionManager, DhtNode, PeerDescriptor
|
|
1
|
+
import { ConnectionManager, DhtNode, PeerDescriptor } from '@streamr/dht'
|
|
2
2
|
import { RandomGraphNode } from '../../src/logic/RandomGraphNode'
|
|
3
3
|
import { waitForCondition } from '@streamr/utils'
|
|
4
|
-
import { createStreamMessage } from '../utils/utils'
|
|
4
|
+
import { createMockPeerDescriptor, createStreamMessage } from '../utils/utils'
|
|
5
5
|
import { createRandomGraphNode } from '../../src/logic/createRandomGraphNode'
|
|
6
6
|
import { StreamPartIDUtils } from '@streamr/protocol'
|
|
7
7
|
import { randomEthereumAddress } from '@streamr/test-utils'
|
|
@@ -10,11 +10,9 @@ import { Layer1Node } from '../../src/logic/Layer1Node'
|
|
|
10
10
|
|
|
11
11
|
describe('random graph with real connections', () => {
|
|
12
12
|
|
|
13
|
-
const epPeerDescriptor: PeerDescriptor = {
|
|
14
|
-
nodeId: Uint8Array.from([1, 2, 3]),
|
|
15
|
-
type: NodeType.NODEJS,
|
|
13
|
+
const epPeerDescriptor: PeerDescriptor = createMockPeerDescriptor({
|
|
16
14
|
websocket: { host: '127.0.0.1', port: 12221, tls: false }
|
|
17
|
-
}
|
|
15
|
+
})
|
|
18
16
|
|
|
19
17
|
const streamPartId = StreamPartIDUtils.parse('random-graph#0')
|
|
20
18
|
// Currently the nodes here are practically layer0 nodes acting as layer1 nodes, for the purpose of this test
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PeerDescriptor, Simulator, SimulatorTransport } from '@streamr/dht'
|
|
2
2
|
import {
|
|
3
3
|
ContentType,
|
|
4
4
|
EncryptionType,
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
} from '@streamr/protocol'
|
|
11
11
|
import { EthereumAddress, hexToBinary, utf8ToBinary, waitForCondition } from '@streamr/utils'
|
|
12
12
|
import { NetworkNode, createNetworkNode } from '../../src/NetworkNode'
|
|
13
|
+
import { createMockPeerDescriptor } from '../utils/utils'
|
|
13
14
|
|
|
14
15
|
const STREAM_PART_ID = StreamPartIDUtils.parse('test#0')
|
|
15
16
|
|
|
@@ -21,15 +22,9 @@ describe('NetworkNode', () => {
|
|
|
21
22
|
let node1: NetworkNode
|
|
22
23
|
let node2: NetworkNode
|
|
23
24
|
|
|
24
|
-
const pd1: PeerDescriptor =
|
|
25
|
-
nodeId: new Uint8Array([1, 2, 3]),
|
|
26
|
-
type: NodeType.NODEJS
|
|
27
|
-
}
|
|
25
|
+
const pd1: PeerDescriptor = createMockPeerDescriptor()
|
|
28
26
|
|
|
29
|
-
const pd2: PeerDescriptor =
|
|
30
|
-
nodeId: new Uint8Array([1, 1, 1]),
|
|
31
|
-
type: NodeType.NODEJS
|
|
32
|
-
}
|
|
27
|
+
const pd2: PeerDescriptor = createMockPeerDescriptor()
|
|
33
28
|
|
|
34
29
|
beforeEach(async () => {
|
|
35
30
|
const simulator = new Simulator()
|
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
DhtNode,
|
|
3
|
-
PeerDescriptor,
|
|
4
|
-
Simulator,
|
|
5
|
-
SimulatorTransport,
|
|
6
|
-
NodeType
|
|
7
|
-
} from '@streamr/dht'
|
|
1
|
+
import { DhtNode, PeerDescriptor, Simulator, SimulatorTransport } from '@streamr/dht'
|
|
8
2
|
import { StreamrNode, Events } from '../../src/logic/StreamrNode'
|
|
9
3
|
import { waitForEvent3, waitForCondition } from '@streamr/utils'
|
|
10
|
-
import { createStreamMessage } from '../utils/utils'
|
|
4
|
+
import { createMockPeerDescriptor, createStreamMessage } from '../utils/utils'
|
|
11
5
|
import { StreamPartIDUtils } from '@streamr/protocol'
|
|
12
6
|
import { randomEthereumAddress } from '@streamr/test-utils'
|
|
13
7
|
import { Layer0Node } from '../../src/logic/Layer0Node'
|
|
@@ -21,14 +15,8 @@ describe('StreamrNode', () => {
|
|
|
21
15
|
let node1: StreamrNode
|
|
22
16
|
let node2: StreamrNode
|
|
23
17
|
|
|
24
|
-
const peerDescriptor1: PeerDescriptor =
|
|
25
|
-
|
|
26
|
-
type: NodeType.NODEJS
|
|
27
|
-
}
|
|
28
|
-
const peerDescriptor2: PeerDescriptor = {
|
|
29
|
-
nodeId: new Uint8Array([1, 1, 1]),
|
|
30
|
-
type: NodeType.NODEJS
|
|
31
|
-
}
|
|
18
|
+
const peerDescriptor1: PeerDescriptor = createMockPeerDescriptor()
|
|
19
|
+
const peerDescriptor2: PeerDescriptor = createMockPeerDescriptor()
|
|
32
20
|
const STREAM_PART_ID = StreamPartIDUtils.parse('test#0')
|
|
33
21
|
|
|
34
22
|
const msg = createStreamMessage(
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PeerDescriptor, Simulator, SimulatorTransport, LatencyType } 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'
|
|
5
5
|
import { Any } from '../../src/proto/google/protobuf/any'
|
|
6
|
-
import { createStreamMessage } from '../utils/utils'
|
|
6
|
+
import { createMockPeerDescriptor, createStreamMessage } from '../utils/utils'
|
|
7
7
|
import { waitForCondition } from '@streamr/utils'
|
|
8
8
|
import { randomEthereumAddress } from '@streamr/test-utils'
|
|
9
9
|
|
|
@@ -11,35 +11,11 @@ const STREAM_PART_ID = StreamPartIDUtils.parse('stream#0')
|
|
|
11
11
|
|
|
12
12
|
describe('Joining stream parts on offline nodes', () => {
|
|
13
13
|
|
|
14
|
-
const entryPointPeerDescriptor: PeerDescriptor =
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const node1PeerDescriptor: PeerDescriptor = {
|
|
21
|
-
nodeId: new Uint8Array([1, 1, 1]),
|
|
22
|
-
type: NodeType.NODEJS,
|
|
23
|
-
region: getRandomRegion()
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
const node2PeerDescriptor: PeerDescriptor = {
|
|
27
|
-
nodeId: new Uint8Array([2, 2, 2]),
|
|
28
|
-
type: NodeType.NODEJS,
|
|
29
|
-
region: getRandomRegion()
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
const offlineDescriptor1: PeerDescriptor = {
|
|
33
|
-
nodeId: new Uint8Array([3, 3, 3]),
|
|
34
|
-
type: NodeType.NODEJS,
|
|
35
|
-
region: getRandomRegion()
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
const offlineDescriptor2: PeerDescriptor = {
|
|
39
|
-
nodeId: new Uint8Array([4, 4, 4]),
|
|
40
|
-
type: NodeType.NODEJS,
|
|
41
|
-
region: getRandomRegion()
|
|
42
|
-
}
|
|
14
|
+
const entryPointPeerDescriptor: PeerDescriptor = createMockPeerDescriptor()
|
|
15
|
+
const node1PeerDescriptor: PeerDescriptor = createMockPeerDescriptor()
|
|
16
|
+
const node2PeerDescriptor: PeerDescriptor = createMockPeerDescriptor()
|
|
17
|
+
const offlineDescriptor1: PeerDescriptor = createMockPeerDescriptor()
|
|
18
|
+
const offlineDescriptor2: PeerDescriptor = createMockPeerDescriptor()
|
|
43
19
|
|
|
44
20
|
let entryPoint: NetworkStack
|
|
45
21
|
let node1: NetworkStack
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LatencyType,
|
|
1
|
+
import { LatencyType, PeerDescriptor, Simulator, SimulatorTransport } from '@streamr/dht'
|
|
2
2
|
import {
|
|
3
3
|
ContentType,
|
|
4
4
|
EncryptionType,
|
|
@@ -22,11 +22,7 @@ describe('stream without default entrypoints', () => {
|
|
|
22
22
|
let entrypoint: NetworkNode
|
|
23
23
|
let nodes: NetworkNode[]
|
|
24
24
|
let receivedMessageCount: number
|
|
25
|
-
const entryPointPeerDescriptor: PeerDescriptor =
|
|
26
|
-
nodeId: new Uint8Array([1, 2, 3]),
|
|
27
|
-
type: NodeType.NODEJS,
|
|
28
|
-
region: getRandomRegion()
|
|
29
|
-
}
|
|
25
|
+
const entryPointPeerDescriptor: PeerDescriptor = createMockPeerDescriptor()
|
|
30
26
|
|
|
31
27
|
const streamMessage = new StreamMessage({
|
|
32
28
|
messageId: new MessageID(
|
|
@@ -2,8 +2,7 @@ import { InspectSession, Events } from '../../src/logic/inspect/InspectSession'
|
|
|
2
2
|
import { MessageID } from '../../src/proto/packages/trackerless-network/protos/NetworkRpc'
|
|
3
3
|
import { waitForEvent3 } from '../../../utils/dist/src/waitForEvent3'
|
|
4
4
|
import { utf8ToBinary } from '@streamr/utils'
|
|
5
|
-
import {
|
|
6
|
-
import { DhtAddress } from '@streamr/dht'
|
|
5
|
+
import { DhtAddress, createRandomDhtAddress } from '@streamr/dht'
|
|
7
6
|
|
|
8
7
|
describe('InspectSession', () => {
|
|
9
8
|
|
|
@@ -31,8 +30,8 @@ describe('InspectSession', () => {
|
|
|
31
30
|
}
|
|
32
31
|
|
|
33
32
|
beforeEach(() => {
|
|
34
|
-
inspectedNode =
|
|
35
|
-
anotherNode =
|
|
33
|
+
inspectedNode = createRandomDhtAddress()
|
|
34
|
+
anotherNode = createRandomDhtAddress()
|
|
36
35
|
inspectSession = new InspectSession({
|
|
37
36
|
inspectedNode
|
|
38
37
|
})
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { ListeningRpcCommunicator, getNodeIdFromPeerDescriptor } from '@streamr/dht'
|
|
1
|
+
import { ListeningRpcCommunicator, createRandomDhtAddress, getNodeIdFromPeerDescriptor } from '@streamr/dht'
|
|
2
2
|
import { utf8ToBinary } from '@streamr/utils'
|
|
3
3
|
import { Inspector } from '../../src/logic/inspect/Inspector'
|
|
4
4
|
import { MockTransport } from '../utils/mock/Transport'
|
|
5
|
-
import { createMockPeerDescriptor,
|
|
5
|
+
import { createMockPeerDescriptor, mockConnectionLocker } from '../utils/utils'
|
|
6
6
|
import { StreamPartIDUtils } from '@streamr/protocol'
|
|
7
7
|
|
|
8
8
|
describe('Inspector', () => {
|
|
@@ -12,7 +12,7 @@ describe('Inspector', () => {
|
|
|
12
12
|
|
|
13
13
|
const inspectedDescriptor = createMockPeerDescriptor()
|
|
14
14
|
|
|
15
|
-
const nodeId =
|
|
15
|
+
const nodeId = createRandomDhtAddress()
|
|
16
16
|
let mockConnect: jest.Mock
|
|
17
17
|
|
|
18
18
|
const messageRef = {
|
|
@@ -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
|
|
@@ -39,6 +39,9 @@ describe('NeighborUpdateRpcLocal', () => {
|
|
|
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
|
-
neighborTargetCount
|
|
53
|
+
neighborTargetCount,
|
|
54
|
+
connectionLocker
|
|
51
55
|
})
|
|
52
56
|
})
|
|
53
57
|
|
|
@@ -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
|
}
|