@streamr/trackerless-network 0.0.1-tatum.6 → 0.0.1-tatum.7
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 +10 -8
- package/dist/src/NetworkNode.js +1 -1
- package/dist/src/NetworkNode.js.map +1 -1
- package/dist/src/NetworkStack.d.ts +1 -3
- package/dist/src/NetworkStack.js +18 -47
- package/dist/src/NetworkStack.js.map +1 -1
- package/dist/src/identifiers.js +2 -2
- package/dist/src/identifiers.js.map +1 -1
- package/dist/src/logic/{StreamNodeServer.d.ts → DeliveryRpcLocal.d.ts} +6 -5
- package/dist/src/logic/{StreamNodeServer.js → DeliveryRpcLocal.js} +5 -5
- package/dist/src/logic/{StreamNodeServer.js.map → DeliveryRpcLocal.js.map} +1 -1
- package/dist/src/logic/{RemoteRandomGraphNode.d.ts → DeliveryRpcRemote.d.ts} +2 -2
- package/dist/src/logic/{RemoteRandomGraphNode.js → DeliveryRpcRemote.js} +5 -5
- package/dist/src/logic/DeliveryRpcRemote.js.map +1 -0
- package/dist/src/logic/{StreamPartEntryPointDiscovery.d.ts → EntryPointDiscovery.d.ts} +8 -10
- package/dist/src/logic/{StreamPartEntryPointDiscovery.js → EntryPointDiscovery.js} +14 -36
- package/dist/src/logic/EntryPointDiscovery.js.map +1 -0
- package/dist/src/logic/ILayer0.d.ts +3 -6
- package/dist/src/logic/NodeList.d.ts +10 -10
- package/dist/src/logic/NodeList.js.map +1 -1
- package/dist/src/logic/RandomGraphNode.d.ts +8 -12
- package/dist/src/logic/RandomGraphNode.js +41 -40
- package/dist/src/logic/RandomGraphNode.js.map +1 -1
- package/dist/src/logic/StreamrNode.d.ts +9 -12
- package/dist/src/logic/StreamrNode.js +53 -63
- package/dist/src/logic/StreamrNode.js.map +1 -1
- package/dist/src/logic/createRandomGraphNode.d.ts +6 -1
- package/dist/src/logic/createRandomGraphNode.js +17 -23
- package/dist/src/logic/createRandomGraphNode.js.map +1 -1
- package/dist/src/logic/formStreamPartDeliveryServiceId.d.ts +2 -0
- package/dist/src/logic/formStreamPartDeliveryServiceId.js +8 -0
- package/dist/src/logic/formStreamPartDeliveryServiceId.js.map +1 -0
- package/dist/src/logic/inspect/Inspector.d.ts +3 -2
- package/dist/src/logic/inspect/Inspector.js +5 -5
- package/dist/src/logic/inspect/Inspector.js.map +1 -1
- package/dist/src/logic/neighbor-discovery/{HandshakerServer.d.ts → HandshakeRpcLocal.d.ts} +10 -10
- package/dist/src/logic/neighbor-discovery/{HandshakerServer.js → HandshakeRpcLocal.js} +13 -13
- package/dist/src/logic/neighbor-discovery/HandshakeRpcLocal.js.map +1 -0
- package/dist/src/logic/neighbor-discovery/{RemoteHandshaker.d.ts → HandshakeRpcRemote.d.ts} +1 -1
- package/dist/src/logic/neighbor-discovery/{RemoteHandshaker.js → HandshakeRpcRemote.js} +8 -7
- package/dist/src/logic/neighbor-discovery/HandshakeRpcRemote.js.map +1 -0
- package/dist/src/logic/neighbor-discovery/Handshaker.d.ts +8 -7
- package/dist/src/logic/neighbor-discovery/Handshaker.js +23 -24
- package/dist/src/logic/neighbor-discovery/Handshaker.js.map +1 -1
- package/dist/src/logic/neighbor-discovery/NeighborFinder.d.ts +1 -1
- package/dist/src/logic/neighbor-discovery/NeighborFinder.js +1 -1
- package/dist/src/logic/neighbor-discovery/NeighborFinder.js.map +1 -1
- package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.d.ts +3 -2
- package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js +5 -5
- package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js.map +1 -1
- package/dist/src/logic/neighbor-discovery/{NeighborUpdateManagerServer.d.ts → NeighborUpdateRpcLocal.d.ts} +6 -6
- package/dist/src/logic/neighbor-discovery/{NeighborUpdateManagerServer.js → NeighborUpdateRpcLocal.js} +9 -9
- package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.js.map +1 -0
- package/dist/src/logic/neighbor-discovery/{RemoteNeighborUpdateManager.d.ts → NeighborUpdateRpcRemote.d.ts} +1 -1
- package/dist/src/logic/neighbor-discovery/{RemoteNeighborUpdateManager.js → NeighborUpdateRpcRemote.js} +5 -5
- package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcRemote.js.map +1 -0
- package/dist/src/logic/propagation/Propagation.js +2 -2
- package/dist/src/logic/propagation/Propagation.js.map +1 -1
- package/dist/src/logic/proxy/{ProxyStreamConnectionClient.d.ts → ProxyClient.d.ts} +6 -9
- package/dist/src/logic/proxy/{ProxyStreamConnectionClient.js → ProxyClient.js} +23 -21
- package/dist/src/logic/proxy/ProxyClient.js.map +1 -0
- package/dist/src/logic/proxy/{ProxyStreamConnectionServer.d.ts → ProxyConnectionRpcLocal.d.ts} +5 -5
- package/dist/src/logic/proxy/{ProxyStreamConnectionServer.js → ProxyConnectionRpcLocal.js} +6 -6
- package/dist/src/logic/proxy/ProxyConnectionRpcLocal.js.map +1 -0
- package/dist/src/logic/proxy/{RemoteProxyServer.d.ts → ProxyConnectionRpcRemote.d.ts} +1 -1
- package/dist/src/logic/proxy/{RemoteProxyServer.js → ProxyConnectionRpcRemote.js} +4 -4
- package/dist/src/logic/proxy/ProxyConnectionRpcRemote.js.map +1 -0
- package/dist/src/logic/temporary-connection/{TemporaryConnectionRpcServer.d.ts → TemporaryConnectionRpcLocal.d.ts} +5 -4
- package/dist/src/logic/temporary-connection/{TemporaryConnectionRpcServer.js → TemporaryConnectionRpcLocal.js} +6 -6
- package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.js.map +1 -0
- package/dist/src/logic/temporary-connection/{RemoteTemporaryConnectionRpcServer.d.ts → TemporaryConnectionRpcRemote.d.ts} +1 -1
- package/dist/src/logic/temporary-connection/{RemoteTemporaryConnectionRpcServer.js → TemporaryConnectionRpcRemote.js} +4 -4
- package/dist/src/logic/temporary-connection/TemporaryConnectionRpcRemote.js.map +1 -0
- package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +0 -4
- package/dist/src/proto/packages/dht/protos/DhtRpc.js +1 -2
- package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
- package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.d.ts +4 -4
- package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.js +7 -7
- package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.js.map +1 -1
- package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.d.ts +10 -10
- package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.js +7 -7
- package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.js.map +1 -1
- package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.server.d.ts +2 -2
- package/dist/test/benchmark/first-message.js +10 -13
- package/dist/test/benchmark/first-message.js.map +1 -1
- package/dist/test/utils/utils.d.ts +5 -5
- package/dist/test/utils/utils.js +14 -13
- package/dist/test/utils/utils.js.map +1 -1
- package/package.json +10 -8
- package/protos/NetworkRpc.proto +5 -5
- package/src/NetworkNode.ts +1 -1
- package/src/NetworkStack.ts +20 -62
- package/src/identifiers.ts +3 -3
- package/src/logic/{StreamNodeServer.ts → DeliveryRpcLocal.ts} +8 -7
- package/src/logic/{RemoteRandomGraphNode.ts → DeliveryRpcRemote.ts} +3 -3
- package/src/logic/{StreamPartEntryPointDiscovery.ts → EntryPointDiscovery.ts} +18 -42
- package/src/logic/ILayer0.ts +3 -6
- package/src/logic/NodeList.ts +12 -12
- package/src/logic/RandomGraphNode.ts +61 -62
- package/src/logic/StreamrNode.ts +59 -73
- package/src/logic/createRandomGraphNode.ts +28 -26
- package/src/logic/formStreamPartDeliveryServiceId.ts +5 -0
- package/src/logic/inspect/Inspector.ts +8 -7
- package/src/logic/neighbor-discovery/{HandshakerServer.ts → HandshakeRpcLocal.ts} +20 -20
- package/src/logic/neighbor-discovery/{RemoteHandshaker.ts → HandshakeRpcRemote.ts} +6 -5
- package/src/logic/neighbor-discovery/Handshaker.ts +38 -38
- package/src/logic/neighbor-discovery/NeighborFinder.ts +2 -2
- package/src/logic/neighbor-discovery/NeighborUpdateManager.ts +13 -10
- package/src/logic/neighbor-discovery/{NeighborUpdateManagerServer.ts → NeighborUpdateRpcLocal.ts} +15 -15
- package/src/logic/neighbor-discovery/{RemoteNeighborUpdateManager.ts → NeighborUpdateRpcRemote.ts} +2 -2
- package/src/logic/propagation/Propagation.ts +2 -2
- package/src/logic/proxy/{ProxyStreamConnectionClient.ts → ProxyClient.ts} +27 -27
- package/src/logic/proxy/{ProxyStreamConnectionServer.ts → ProxyConnectionRpcLocal.ts} +10 -11
- package/src/logic/proxy/{RemoteProxyServer.ts → ProxyConnectionRpcRemote.ts} +1 -1
- package/src/logic/temporary-connection/{TemporaryConnectionRpcServer.ts → TemporaryConnectionRpcLocal.ts} +11 -10
- package/src/logic/temporary-connection/{RemoteTemporaryConnectionRpcServer.ts → TemporaryConnectionRpcRemote.ts} +1 -1
- package/src/proto/packages/dht/protos/DhtRpc.ts +1 -6
- package/src/proto/packages/trackerless-network/protos/NetworkRpc.client.ts +8 -8
- package/src/proto/packages/trackerless-network/protos/NetworkRpc.server.ts +2 -2
- package/src/proto/packages/trackerless-network/protos/NetworkRpc.ts +14 -14
- package/test/benchmark/first-message.ts +10 -13
- package/test/end-to-end/inspect.test.ts +12 -12
- package/test/end-to-end/proxy-and-full-node.test.ts +13 -14
- package/test/end-to-end/proxy-connections.test.ts +9 -11
- package/test/end-to-end/proxy-key-exchange.test.ts +12 -13
- package/test/end-to-end/random-graph-with-real-connections.test.ts +7 -7
- package/test/end-to-end/webrtc-full-node-network.test.ts +8 -8
- package/test/end-to-end/websocket-full-node-network.test.ts +8 -10
- package/test/integration/{RemoteRandomGraphNode.test.ts → DeliveryRpcRemote.test.ts} +17 -14
- package/test/integration/{RemoteHandshaker.test.ts → HandshakeRpcRemote.test.ts} +10 -9
- package/test/integration/Handshakes.test.ts +23 -20
- package/test/integration/Inspect.test.ts +3 -2
- package/test/integration/{RemoteNeighborUpdateManager.test.ts → NeighborUpdateRpcRemote.test.ts} +12 -10
- package/test/integration/NetworkNode.test.ts +9 -8
- package/test/integration/NetworkRpc.test.ts +5 -7
- package/test/integration/NetworkStack.test.ts +13 -15
- package/test/integration/Propagation.test.ts +2 -2
- package/test/integration/RandomGraphNode-Layer1Node-Latencies.test.ts +10 -8
- package/test/integration/RandomGraphNode-Layer1Node.test.ts +17 -17
- package/test/integration/StreamrNode.test.ts +5 -3
- package/test/integration/joining-streams-on-offline-peers.test.ts +16 -18
- package/test/integration/stream-without-default-entrypoints.test.ts +11 -13
- package/test/unit/{StreamNodeServer.test.ts → DeliveryRpcLocal.test.ts} +8 -8
- package/test/unit/{StreamPartEntrypointDiscovery.test.ts → EntrypointDiscovery.test.ts} +23 -40
- package/test/unit/{HandshakerServer.test.ts → HandshakeRpcLocal.test.ts} +26 -24
- package/test/unit/Handshaker.test.ts +10 -8
- package/test/unit/Inspector.test.ts +4 -3
- package/test/unit/NeighborFinder.test.ts +5 -5
- package/test/unit/NodeList.test.ts +22 -13
- package/test/unit/{RemoteProxyServer.test.ts → ProxyConnectionRpcRemote.test.ts} +4 -4
- package/test/unit/RandomGraphNode.test.ts +6 -5
- package/test/unit/StreamMessageTranslator.test.ts +10 -9
- package/test/unit/StreamrNode.test.ts +8 -8
- package/test/utils/mock/MockLayer0.ts +7 -26
- package/test/utils/mock/MockLayer1.ts +3 -8
- package/test/utils/mock/MockNeighborFinder.ts +1 -2
- package/test/utils/mock/MockNeighborUpdateManager.ts +1 -2
- package/test/utils/mock/Transport.ts +2 -2
- package/test/utils/utils.ts +13 -12
- package/dist/src/logic/RemoteRandomGraphNode.js.map +0 -1
- package/dist/src/logic/StreamPartEntryPointDiscovery.js.map +0 -1
- package/dist/src/logic/neighbor-discovery/HandshakerServer.js.map +0 -1
- package/dist/src/logic/neighbor-discovery/NeighborUpdateManagerServer.js.map +0 -1
- package/dist/src/logic/neighbor-discovery/RemoteHandshaker.js.map +0 -1
- package/dist/src/logic/neighbor-discovery/RemoteNeighborUpdateManager.js.map +0 -1
- package/dist/src/logic/proxy/ProxyStreamConnectionClient.js.map +0 -1
- package/dist/src/logic/proxy/ProxyStreamConnectionServer.js.map +0 -1
- package/dist/src/logic/proxy/RemoteProxyServer.js.map +0 -1
- package/dist/src/logic/temporary-connection/RemoteTemporaryConnectionRpcServer.js.map +0 -1
- package/dist/src/logic/temporary-connection/TemporaryConnectionRpcServer.js.map +0 -1
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@streamr/trackerless-network",
|
|
3
|
-
"version": "0.0.1-tatum.
|
|
3
|
+
"version": "0.0.1-tatum.7",
|
|
4
4
|
"description": "Minimal and extendable implementation of the Streamr Network node.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -30,20 +30,22 @@
|
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@protobuf-ts/runtime": "^2.8.2",
|
|
32
32
|
"@protobuf-ts/runtime-rpc": "^2.8.2",
|
|
33
|
-
"@streamr/dht": "0.0.1-tatum.
|
|
34
|
-
"@streamr/proto-rpc": "0.0.1-tatum.
|
|
35
|
-
"@streamr/protocol": "0.0.1-tatum.
|
|
36
|
-
"@streamr/test-utils": "0.0.1-tatum.
|
|
37
|
-
"@streamr/utils": "0.0.1-tatum.
|
|
33
|
+
"@streamr/dht": "0.0.1-tatum.7",
|
|
34
|
+
"@streamr/proto-rpc": "0.0.1-tatum.7",
|
|
35
|
+
"@streamr/protocol": "0.0.1-tatum.7",
|
|
36
|
+
"@streamr/test-utils": "0.0.1-tatum.7",
|
|
37
|
+
"@streamr/utils": "0.0.1-tatum.7",
|
|
38
38
|
"eventemitter3": "^5.0.0",
|
|
39
39
|
"lodash": "^4.17.21",
|
|
40
|
+
"uuid": "^9.0.1",
|
|
40
41
|
"yallist": "^4.0.0"
|
|
41
42
|
},
|
|
42
43
|
"devDependencies": {
|
|
43
44
|
"@streamr/browser-test-runner": "^0.0.1",
|
|
44
|
-
"@types/lodash": "^4.14.
|
|
45
|
+
"@types/lodash": "^4.14.200",
|
|
46
|
+
"@types/uuid": "^9.0.6",
|
|
45
47
|
"@types/yallist": "^4.0.1",
|
|
46
|
-
"commander": "^11.
|
|
48
|
+
"commander": "^11.1.0",
|
|
47
49
|
"expect": "^29.6.2",
|
|
48
50
|
"express": "^4.17.1",
|
|
49
51
|
"ts-essentials": "^9.4.1",
|
package/dist/src/NetworkNode.js
CHANGED
|
@@ -71,7 +71,7 @@ class NetworkNode {
|
|
|
71
71
|
return this.stack.getStreamrNode().getNeighbors(streamPartId);
|
|
72
72
|
}
|
|
73
73
|
hasStreamPart(streamPartId) {
|
|
74
|
-
return this.stack.getStreamrNode().
|
|
74
|
+
return this.stack.getStreamrNode().hasStreamPart(streamPartId);
|
|
75
75
|
}
|
|
76
76
|
async stop() {
|
|
77
77
|
this.stopped = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkNode.js","sourceRoot":"","sources":["../../src/NetworkNode.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"NetworkNode.js","sourceRoot":"","sources":["../../src/NetworkNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,9 +24,7 @@ export declare class NetworkStack extends EventEmitter<NetworkStackEvents> {
|
|
|
24
24
|
}): Promise<void>;
|
|
25
25
|
broadcast(msg: StreamMessage): Promise<void>;
|
|
26
26
|
start(doJoin?: boolean): Promise<void>;
|
|
27
|
-
private
|
|
28
|
-
private waitForFirstConnection;
|
|
29
|
-
private joinLayer0IfRequired;
|
|
27
|
+
private ensureConnectedToControlLayer;
|
|
30
28
|
getStreamrNode(): StreamrNode;
|
|
31
29
|
getLayer0DhtNode(): DhtNode;
|
|
32
30
|
getMetricsContext(): MetricsContext;
|
package/dist/src/NetworkStack.js
CHANGED
|
@@ -7,26 +7,6 @@ const utils_1 = require("@streamr/utils");
|
|
|
7
7
|
const eventemitter3_1 = require("eventemitter3");
|
|
8
8
|
const protocol_1 = require("@streamr/protocol");
|
|
9
9
|
const NetworkRpc_1 = require("./proto/packages/trackerless-network/protos/NetworkRpc");
|
|
10
|
-
class ReadinessListener {
|
|
11
|
-
constructor(networkStack, dhtNode) {
|
|
12
|
-
this.emitter = new eventemitter3_1.EventEmitter();
|
|
13
|
-
this.onDone = () => {
|
|
14
|
-
this.networkStack.off('stopped', this.onDone);
|
|
15
|
-
this.dhtNode.off('connected', this.onDone);
|
|
16
|
-
this.emitter.emit('done');
|
|
17
|
-
};
|
|
18
|
-
this.networkStack = networkStack;
|
|
19
|
-
this.dhtNode = dhtNode;
|
|
20
|
-
this.networkStack.on('stopped', this.onDone);
|
|
21
|
-
this.dhtNode.on('connected', this.onDone);
|
|
22
|
-
}
|
|
23
|
-
async waitUntilReady(timeout) {
|
|
24
|
-
if (this.dhtNode.getNumberOfConnections() === 0) {
|
|
25
|
-
await (0, utils_1.waitForEvent3)(this.emitter, 'done', timeout);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
const DEFAULT_FIRST_CONNECTION_TIMEOUT = 5000;
|
|
30
10
|
class NetworkStack extends eventemitter3_1.EventEmitter {
|
|
31
11
|
constructor(options) {
|
|
32
12
|
super();
|
|
@@ -38,7 +18,6 @@ class NetworkStack extends eventemitter3_1.EventEmitter {
|
|
|
38
18
|
});
|
|
39
19
|
this.streamrNode = new StreamrNode_1.StreamrNode({
|
|
40
20
|
...options.networkNode,
|
|
41
|
-
nodeName: options.networkNode?.nodeName ?? options.layer0?.nodeName,
|
|
42
21
|
metricsContext: this.metricsContext
|
|
43
22
|
});
|
|
44
23
|
}
|
|
@@ -46,7 +25,7 @@ class NetworkStack extends eventemitter3_1.EventEmitter {
|
|
|
46
25
|
if (this.getStreamrNode().isProxiedStreamPart(streamPartId)) {
|
|
47
26
|
throw new Error(`Cannot join to ${streamPartId} as proxy connections have been set`);
|
|
48
27
|
}
|
|
49
|
-
await this.
|
|
28
|
+
await this.ensureConnectedToControlLayer();
|
|
50
29
|
this.getStreamrNode().joinStreamPart(streamPartId);
|
|
51
30
|
if (neighborRequirement !== undefined) {
|
|
52
31
|
await (0, utils_1.waitForCondition)(() => {
|
|
@@ -59,47 +38,39 @@ class NetworkStack extends eventemitter3_1.EventEmitter {
|
|
|
59
38
|
if (this.getStreamrNode().isProxiedStreamPart(streamPartId, NetworkRpc_1.ProxyDirection.SUBSCRIBE) && (msg.messageType === NetworkRpc_1.StreamMessageType.MESSAGE)) {
|
|
60
39
|
throw new Error(`Cannot broadcast to ${streamPartId} as proxy subscribe connections have been set`);
|
|
61
40
|
}
|
|
62
|
-
|
|
41
|
+
// TODO could combine these two calls to isProxiedStreamPart?
|
|
42
|
+
if (!this.streamrNode.isProxiedStreamPart(streamPartId)) {
|
|
43
|
+
await this.ensureConnectedToControlLayer();
|
|
44
|
+
}
|
|
63
45
|
this.getStreamrNode().broadcast(msg);
|
|
64
46
|
}
|
|
65
47
|
async start(doJoin = true) {
|
|
66
48
|
await this.layer0DhtNode.start();
|
|
67
49
|
const connectionManager = this.layer0DhtNode.getTransport();
|
|
68
|
-
if ((this.options.layer0?.entryPoints !== undefined) && (this.options.layer0.entryPoints.some((entryPoint) => (0, dht_1.
|
|
50
|
+
if ((this.options.layer0?.entryPoints !== undefined) && (this.options.layer0.entryPoints.some((entryPoint) => (0, dht_1.areEqualPeerDescriptors)(entryPoint, this.layer0DhtNode.getPeerDescriptor())))) {
|
|
69
51
|
await this.layer0DhtNode?.joinDht(this.options.layer0.entryPoints);
|
|
70
52
|
}
|
|
71
53
|
else {
|
|
72
54
|
if (doJoin) {
|
|
73
|
-
|
|
55
|
+
// in practice there aren't be existing connections and therefore this always connects
|
|
56
|
+
await this.ensureConnectedToControlLayer();
|
|
74
57
|
}
|
|
75
58
|
}
|
|
76
59
|
await this.streamrNode?.start(this.layer0DhtNode, connectionManager, connectionManager);
|
|
77
60
|
}
|
|
78
|
-
async
|
|
79
|
-
setImmediate(async () => {
|
|
80
|
-
if (this.options.layer0?.entryPoints !== undefined) {
|
|
81
|
-
// TODO should catch possible rejection?
|
|
82
|
-
await this.layer0DhtNode?.joinDht(this.options.layer0.entryPoints);
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
|
-
await this.waitForFirstConnection();
|
|
86
|
-
}
|
|
87
|
-
async waitForFirstConnection() {
|
|
88
|
-
const readinessListener = new ReadinessListener(this, this.layer0DhtNode);
|
|
89
|
-
const timeout = this.options.networkNode?.firstConnectionTimeout ?? DEFAULT_FIRST_CONNECTION_TIMEOUT;
|
|
90
|
-
await readinessListener.waitUntilReady(timeout);
|
|
91
|
-
}
|
|
92
|
-
async joinLayer0IfRequired(streamPartId) {
|
|
93
|
-
if (this.streamrNode.isProxiedStreamPart(streamPartId)) {
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
61
|
+
async ensureConnectedToControlLayer() {
|
|
96
62
|
// TODO we could wrap joinDht with pOnce and call it here (no else-if needed in that case)
|
|
97
63
|
if (!this.layer0DhtNode.hasJoined()) {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
64
|
+
setImmediate(async () => {
|
|
65
|
+
if (this.options.layer0?.entryPoints !== undefined) {
|
|
66
|
+
// TODO should catch possible rejection?
|
|
67
|
+
// the question mark is there to avoid problems when stop() is called before start()
|
|
68
|
+
// -> TODO change to exlamation mark if we don't support that (and remove NetworkStackStoppedDuringStart.test)
|
|
69
|
+
await this.layer0DhtNode?.joinDht(this.options.layer0.entryPoints);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
102
72
|
}
|
|
73
|
+
await this.layer0DhtNode.waitForNetworkConnectivity();
|
|
103
74
|
}
|
|
104
75
|
getStreamrNode() {
|
|
105
76
|
return this.streamrNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkStack.js","sourceRoot":"","sources":["../../src/NetworkStack.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"NetworkStack.js","sourceRoot":"","sources":["../../src/NetworkStack.ts"],"names":[],"mappings":"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"}
|
package/dist/src/identifiers.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getNodeIdFromPeerDescriptor = void 0;
|
|
4
|
-
const
|
|
4
|
+
const utils_1 = require("@streamr/utils");
|
|
5
5
|
const getNodeIdFromPeerDescriptor = (peerDescriptor) => {
|
|
6
|
-
return (0,
|
|
6
|
+
return (0, utils_1.binaryToHex)(peerDescriptor.kademliaId);
|
|
7
7
|
};
|
|
8
8
|
exports.getNodeIdFromPeerDescriptor = getNodeIdFromPeerDescriptor;
|
|
9
9
|
//# sourceMappingURL=identifiers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identifiers.js","sourceRoot":"","sources":["../../src/identifiers.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"identifiers.js","sourceRoot":"","sources":["../../src/identifiers.ts"],"names":[],"mappings":";;;AACA,0CAA2D;AAIpD,MAAM,2BAA2B,GAAG,CAAC,cAA8B,EAAU,EAAE;IAClF,OAAO,IAAA,mBAAW,EAAC,cAAc,CAAC,UAAU,CAAsB,CAAA;AACtE,CAAC,CAAA;AAFY,QAAA,2BAA2B,+BAEvC"}
|
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
import { ListeningRpcCommunicator, PeerDescriptor } from '@streamr/dht';
|
|
2
2
|
import { Empty } from '../proto/google/protobuf/empty';
|
|
3
3
|
import { LeaveStreamPartNotice, MessageID, MessageRef, StreamMessage } from '../proto/packages/trackerless-network/protos/NetworkRpc';
|
|
4
|
-
import {
|
|
4
|
+
import { IDeliveryRpc } from '../proto/packages/trackerless-network/protos/NetworkRpc.server';
|
|
5
5
|
import { ServerCallContext } from '@protobuf-ts/runtime-rpc';
|
|
6
6
|
import { NodeID } from '../identifiers';
|
|
7
|
-
|
|
7
|
+
import { StreamPartID } from '@streamr/protocol';
|
|
8
|
+
export interface DeliveryRpcLocalConfig {
|
|
8
9
|
ownPeerDescriptor: PeerDescriptor;
|
|
9
|
-
|
|
10
|
+
streamPartId: StreamPartID;
|
|
10
11
|
markAndCheckDuplicate: (messageId: MessageID, previousMessageRef?: MessageRef) => boolean;
|
|
11
12
|
broadcast: (message: StreamMessage, previousNode?: NodeID) => void;
|
|
12
13
|
onLeaveNotice(senderId: NodeID): void;
|
|
13
14
|
markForInspection(senderId: NodeID, messageId: MessageID): void;
|
|
14
15
|
rpcCommunicator: ListeningRpcCommunicator;
|
|
15
16
|
}
|
|
16
|
-
export declare class
|
|
17
|
+
export declare class DeliveryRpcLocal implements IDeliveryRpc {
|
|
17
18
|
private readonly config;
|
|
18
|
-
constructor(config:
|
|
19
|
+
constructor(config: DeliveryRpcLocalConfig);
|
|
19
20
|
sendStreamMessage(message: StreamMessage, context: ServerCallContext): Promise<Empty>;
|
|
20
21
|
leaveStreamPartNotice(message: LeaveStreamPartNotice, context: ServerCallContext): Promise<Empty>;
|
|
21
22
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.DeliveryRpcLocal = void 0;
|
|
4
4
|
const empty_1 = require("../proto/google/protobuf/empty");
|
|
5
5
|
const identifiers_1 = require("../identifiers");
|
|
6
|
-
class
|
|
6
|
+
class DeliveryRpcLocal {
|
|
7
7
|
constructor(config) {
|
|
8
8
|
this.config = config;
|
|
9
9
|
}
|
|
@@ -16,7 +16,7 @@ class StreamNodeServer {
|
|
|
16
16
|
return empty_1.Empty;
|
|
17
17
|
}
|
|
18
18
|
async leaveStreamPartNotice(message, context) {
|
|
19
|
-
if (message.
|
|
19
|
+
if (message.streamPartId === this.config.streamPartId) {
|
|
20
20
|
const senderPeerDescriptor = context.incomingSourceDescriptor;
|
|
21
21
|
const senderId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(senderPeerDescriptor);
|
|
22
22
|
this.config.onLeaveNotice(senderId);
|
|
@@ -24,5 +24,5 @@ class StreamNodeServer {
|
|
|
24
24
|
return empty_1.Empty;
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
exports.
|
|
28
|
-
//# sourceMappingURL=
|
|
27
|
+
exports.DeliveryRpcLocal = DeliveryRpcLocal;
|
|
28
|
+
//# sourceMappingURL=DeliveryRpcLocal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"DeliveryRpcLocal.js","sourceRoot":"","sources":["../../../src/logic/DeliveryRpcLocal.ts"],"names":[],"mappings":";;;AACA,0DAAsD;AAStD,gDAAoE;AAapE,MAAa,gBAAgB;IAIzB,YAAY,MAA8B;QACtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,OAAsB,EAAE,OAA0B;QACtE,MAAM,YAAY,GAAG,IAAA,yCAA2B,EAAE,OAA0B,CAAC,wBAAyB,CAAC,CAAA;QACvG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE,OAAO,CAAC,SAAU,CAAC,CAAA;QAC/D,IAAI,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,SAAU,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAAE;YACnF,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;SAC/C;QACD,OAAO,aAAK,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,OAA8B,EAAE,OAA0B;QAClF,IAAI,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;YACnD,MAAM,oBAAoB,GAAI,OAA0B,CAAC,wBAAyB,CAAA;YAClF,MAAM,QAAQ,GAAG,IAAA,yCAA2B,EAAC,oBAAoB,CAAC,CAAA;YAClE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;SACtC;QACD,OAAO,aAAK,CAAA;IAChB,CAAC;CACJ;AAzBD,4CAyBC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Remote } from '@streamr/dht';
|
|
2
2
|
import { StreamMessage } from '../proto/packages/trackerless-network/protos/NetworkRpc';
|
|
3
|
-
import {
|
|
4
|
-
export declare class
|
|
3
|
+
import { IDeliveryRpcClient } from '../proto/packages/trackerless-network/protos/NetworkRpc.client';
|
|
4
|
+
export declare class DeliveryRpcRemote extends Remote<IDeliveryRpcClient> {
|
|
5
5
|
sendStreamMessage(msg: StreamMessage): Promise<void>;
|
|
6
6
|
leaveStreamPartNotice(): void;
|
|
7
7
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.DeliveryRpcRemote = void 0;
|
|
4
4
|
const dht_1 = require("@streamr/dht");
|
|
5
5
|
const utils_1 = require("@streamr/utils");
|
|
6
6
|
const logger = new utils_1.Logger(module);
|
|
7
|
-
class
|
|
7
|
+
class DeliveryRpcRemote extends dht_1.Remote {
|
|
8
8
|
async sendStreamMessage(msg) {
|
|
9
9
|
const options = this.formDhtRpcOptions({
|
|
10
10
|
notification: true
|
|
@@ -15,7 +15,7 @@ class RemoteRandomGraphNode extends dht_1.Remote {
|
|
|
15
15
|
}
|
|
16
16
|
leaveStreamPartNotice() {
|
|
17
17
|
const notification = {
|
|
18
|
-
|
|
18
|
+
streamPartId: this.getServiceId()
|
|
19
19
|
};
|
|
20
20
|
const options = this.formDhtRpcOptions({
|
|
21
21
|
notification: true
|
|
@@ -25,5 +25,5 @@ class RemoteRandomGraphNode extends dht_1.Remote {
|
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
-
exports.
|
|
29
|
-
//# sourceMappingURL=
|
|
28
|
+
exports.DeliveryRpcRemote = DeliveryRpcRemote;
|
|
29
|
+
//# sourceMappingURL=DeliveryRpcRemote.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeliveryRpcRemote.js","sourceRoot":"","sources":["../../../src/logic/DeliveryRpcRemote.ts"],"names":[],"mappings":";;;AAAA,sCAAqC;AACrC,0CAAuC;AAOvC,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,iBAAkB,SAAQ,YAA0B;IAE7D,KAAK,CAAC,iBAAiB,CAAC,GAAkB;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACnC,YAAY,EAAE,IAAI;SACrB,CAAC,CAAA;QACF,IAAI,CAAC,SAAS,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACxD,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAC/C,CAAC,CAAC,CAAA;IACN,CAAC;IAED,qBAAqB;QACjB,MAAM,YAAY,GAA0B;YACxC,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE;SACpC,CAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACnC,YAAY,EAAE,IAAI;SACrB,CAAC,CAAA;QACF,IAAI,CAAC,SAAS,EAAE,CAAC,qBAAqB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACrE,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAA;QACxD,CAAC,CAAC,CAAA;IACN,CAAC;CACJ;AAtBD,8CAsBC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DataEntry, PeerDescriptor
|
|
1
|
+
import { DataEntry, PeerDescriptor } from '@streamr/dht';
|
|
2
2
|
import { StreamPartID } from '@streamr/protocol';
|
|
3
3
|
import { Any } from '../proto/google/protobuf/any';
|
|
4
4
|
import { ILayer1 } from './ILayer1';
|
|
@@ -8,26 +8,24 @@ interface FindEntryPointsResult {
|
|
|
8
8
|
discoveredEntryPoints: PeerDescriptor[];
|
|
9
9
|
}
|
|
10
10
|
export declare const NETWORK_SPLIT_AVOIDANCE_LIMIT = 4;
|
|
11
|
-
interface
|
|
11
|
+
interface EntryPointDiscoveryConfig {
|
|
12
12
|
streamPartId: StreamPartID;
|
|
13
13
|
ownPeerDescriptor: PeerDescriptor;
|
|
14
14
|
layer1: ILayer1;
|
|
15
|
-
getEntryPointData: (key: Uint8Array) => Promise<
|
|
16
|
-
getEntryPointDataViaNode: (key: Uint8Array, node: PeerDescriptor) => Promise<DataEntry[]>;
|
|
15
|
+
getEntryPointData: (key: Uint8Array) => Promise<DataEntry[]>;
|
|
17
16
|
storeEntryPointData: (key: Uint8Array, data: Any) => Promise<PeerDescriptor[]>;
|
|
18
17
|
deleteEntryPointData: (key: Uint8Array) => Promise<void>;
|
|
19
|
-
|
|
18
|
+
storeInterval?: number;
|
|
20
19
|
}
|
|
21
|
-
export declare class
|
|
20
|
+
export declare class EntryPointDiscovery {
|
|
22
21
|
private readonly abortController;
|
|
23
22
|
private readonly config;
|
|
24
|
-
private readonly
|
|
23
|
+
private readonly storeInterval;
|
|
25
24
|
private readonly networkSplitAvoidedNodes;
|
|
26
|
-
constructor(config:
|
|
27
|
-
discoverEntryPointsFromDht(knownEntryPointCount: number
|
|
25
|
+
constructor(config: EntryPointDiscoveryConfig);
|
|
26
|
+
discoverEntryPointsFromDht(knownEntryPointCount: number): Promise<FindEntryPointsResult>;
|
|
28
27
|
private discoverEntryPoints;
|
|
29
28
|
private queryEntrypoints;
|
|
30
|
-
private queryEntryPointsViaNode;
|
|
31
29
|
storeSelfAsEntryPointIfNecessary(currentEntrypointCount: number): Promise<void>;
|
|
32
30
|
private storeSelfAsEntryPoint;
|
|
33
31
|
private keepSelfAsEntryPoint;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.EntryPointDiscovery = exports.NETWORK_SPLIT_AVOIDANCE_LIMIT = exports.streamPartIdToDataKey = void 0;
|
|
4
4
|
const dht_1 = require("@streamr/dht");
|
|
5
5
|
const utils_1 = require("@streamr/utils");
|
|
6
6
|
const crypto_1 = require("crypto");
|
|
@@ -37,21 +37,21 @@ const exponentialRunOff = async (task, description, abortSignal, baseDelay = 500
|
|
|
37
37
|
const logger = new utils_1.Logger(module);
|
|
38
38
|
const ENTRYPOINT_STORE_LIMIT = 8;
|
|
39
39
|
exports.NETWORK_SPLIT_AVOIDANCE_LIMIT = 4;
|
|
40
|
-
class
|
|
40
|
+
class EntryPointDiscovery {
|
|
41
41
|
constructor(config) {
|
|
42
42
|
this.networkSplitAvoidedNodes = new Set();
|
|
43
43
|
this.config = config;
|
|
44
44
|
this.abortController = new AbortController();
|
|
45
|
-
this.
|
|
45
|
+
this.storeInterval = this.config.storeInterval ?? 60000;
|
|
46
46
|
}
|
|
47
|
-
async discoverEntryPointsFromDht(knownEntryPointCount
|
|
47
|
+
async discoverEntryPointsFromDht(knownEntryPointCount) {
|
|
48
48
|
if (knownEntryPointCount > 0) {
|
|
49
49
|
return {
|
|
50
50
|
entryPointsFromDht: false,
|
|
51
51
|
discoveredEntryPoints: []
|
|
52
52
|
};
|
|
53
53
|
}
|
|
54
|
-
const discoveredEntryPoints = await this.discoverEntryPoints(
|
|
54
|
+
const discoveredEntryPoints = await this.discoverEntryPoints();
|
|
55
55
|
if (discoveredEntryPoints.length === 0) {
|
|
56
56
|
discoveredEntryPoints.push(this.config.ownPeerDescriptor);
|
|
57
57
|
}
|
|
@@ -60,10 +60,9 @@ class StreamPartEntryPointDiscovery {
|
|
|
60
60
|
entryPointsFromDht: true
|
|
61
61
|
};
|
|
62
62
|
}
|
|
63
|
-
async discoverEntryPoints(
|
|
63
|
+
async discoverEntryPoints() {
|
|
64
64
|
const dataKey = (0, exports.streamPartIdToDataKey)(this.config.streamPartId);
|
|
65
|
-
const discoveredEntryPoints =
|
|
66
|
-
await this.queryEntryPointsViaNode(dataKey, forwardingNode) : await this.queryEntrypoints(dataKey);
|
|
65
|
+
const discoveredEntryPoints = await this.queryEntrypoints(dataKey);
|
|
67
66
|
const filtered = discoveredEntryPoints.filter((node) => !this.networkSplitAvoidedNodes.has((0, identifiers_1.getNodeIdFromPeerDescriptor)(node)));
|
|
68
67
|
// If all discovered entry points have previously been detected as offline, try again
|
|
69
68
|
if (filtered.length > 0) {
|
|
@@ -74,31 +73,10 @@ class StreamPartEntryPointDiscovery {
|
|
|
74
73
|
}
|
|
75
74
|
}
|
|
76
75
|
async queryEntrypoints(key) {
|
|
77
|
-
logger.trace(`Finding data from dht node ${this.config.ownPeerDescriptor
|
|
76
|
+
logger.trace(`Finding data from dht node ${(0, identifiers_1.getNodeIdFromPeerDescriptor)(this.config.ownPeerDescriptor)}`);
|
|
78
77
|
try {
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
return parseEntryPointData(results.dataEntries);
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
return [];
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
catch (err) {
|
|
88
|
-
return [];
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
// TODO remove this method in NET-1122
|
|
92
|
-
async queryEntryPointsViaNode(key, node) {
|
|
93
|
-
logger.trace(`Finding data via node ${this.config.ownPeerDescriptor.nodeName}`);
|
|
94
|
-
try {
|
|
95
|
-
const results = await this.config.getEntryPointDataViaNode(key, node);
|
|
96
|
-
if (results) {
|
|
97
|
-
return parseEntryPointData(results);
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
return [];
|
|
101
|
-
}
|
|
78
|
+
const result = await this.config.getEntryPointData(key);
|
|
79
|
+
return parseEntryPointData(result);
|
|
102
80
|
}
|
|
103
81
|
catch (err) {
|
|
104
82
|
return [];
|
|
@@ -133,14 +111,14 @@ class StreamPartEntryPointDiscovery {
|
|
|
133
111
|
try {
|
|
134
112
|
const discovered = await this.discoverEntryPoints();
|
|
135
113
|
if (discovered.length < ENTRYPOINT_STORE_LIMIT
|
|
136
|
-
|| discovered.some((peerDescriptor) => (0, dht_1.
|
|
114
|
+
|| discovered.some((peerDescriptor) => (0, dht_1.areEqualPeerDescriptors)(peerDescriptor, this.config.ownPeerDescriptor))) {
|
|
137
115
|
await this.storeSelfAsEntryPoint();
|
|
138
116
|
}
|
|
139
117
|
}
|
|
140
118
|
catch (err) {
|
|
141
119
|
logger.debug(`Failed to keep self as entrypoint for ${this.config.streamPartId}`);
|
|
142
120
|
}
|
|
143
|
-
}, this.
|
|
121
|
+
}, this.storeInterval, false, this.abortController.signal);
|
|
144
122
|
}
|
|
145
123
|
async avoidNetworkSplit() {
|
|
146
124
|
await exponentialRunOff(async () => {
|
|
@@ -163,5 +141,5 @@ class StreamPartEntryPointDiscovery {
|
|
|
163
141
|
await this.config.deleteEntryPointData((0, exports.streamPartIdToDataKey)(this.config.streamPartId));
|
|
164
142
|
}
|
|
165
143
|
}
|
|
166
|
-
exports.
|
|
167
|
-
//# sourceMappingURL=
|
|
144
|
+
exports.EntryPointDiscovery = EntryPointDiscovery;
|
|
145
|
+
//# sourceMappingURL=EntryPointDiscovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntryPointDiscovery.js","sourceRoot":"","sources":["../../../src/logic/EntryPointDiscovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
import { DataEntry, ITransport, PeerDescriptor
|
|
1
|
+
import { DataEntry, ITransport, PeerDescriptor } from '@streamr/dht';
|
|
2
2
|
import { Any } from '../proto/google/protobuf/any';
|
|
3
3
|
export interface ILayer0 extends ITransport {
|
|
4
4
|
getPeerDescriptor(): PeerDescriptor;
|
|
5
|
-
|
|
6
|
-
getDataFromDht(key: Uint8Array): Promise<RecursiveFindResult>;
|
|
7
|
-
findDataViaPeer(key: Uint8Array, node: PeerDescriptor): Promise<DataEntry[]>;
|
|
5
|
+
getDataFromDht(key: Uint8Array): Promise<DataEntry[]>;
|
|
8
6
|
storeDataToDht(key: Uint8Array, data: Any): Promise<PeerDescriptor[]>;
|
|
9
7
|
deleteDataFromDht(key: Uint8Array): Promise<void>;
|
|
10
|
-
|
|
11
|
-
isJoinOngoing(): boolean;
|
|
8
|
+
waitForNetworkConnectivity(): Promise<void>;
|
|
12
9
|
stop(): Promise<void>;
|
|
13
10
|
}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
import { PeerDescriptor } from '@streamr/dht';
|
|
2
|
-
import {
|
|
2
|
+
import { DeliveryRpcRemote } from './DeliveryRpcRemote';
|
|
3
3
|
import { EventEmitter } from 'eventemitter3';
|
|
4
4
|
import { NodeID } from '../identifiers';
|
|
5
5
|
export interface Events {
|
|
6
|
-
nodeAdded: (id: NodeID, remote:
|
|
6
|
+
nodeAdded: (id: NodeID, remote: DeliveryRpcRemote) => any;
|
|
7
7
|
}
|
|
8
8
|
export declare class NodeList extends EventEmitter<Events> {
|
|
9
9
|
private readonly nodes;
|
|
10
10
|
private readonly limit;
|
|
11
11
|
private ownId;
|
|
12
12
|
constructor(ownId: NodeID, limit: number);
|
|
13
|
-
add(remote:
|
|
13
|
+
add(remote: DeliveryRpcRemote): void;
|
|
14
14
|
remove(peerDescriptor: PeerDescriptor): void;
|
|
15
15
|
removeById(nodeId: NodeID): void;
|
|
16
16
|
hasNode(peerDescriptor: PeerDescriptor): boolean;
|
|
17
17
|
hasNodeById(nodeId: NodeID): boolean;
|
|
18
|
-
replaceAll(neighbors:
|
|
18
|
+
replaceAll(neighbors: DeliveryRpcRemote[]): void;
|
|
19
19
|
getIds(): NodeID[];
|
|
20
|
-
get(id: NodeID):
|
|
20
|
+
get(id: NodeID): DeliveryRpcRemote | undefined;
|
|
21
21
|
size(exclude?: NodeID[]): number;
|
|
22
|
-
getRandom(exclude: NodeID[]):
|
|
23
|
-
getClosest(exclude: NodeID[]):
|
|
24
|
-
getClosestAndFurthest(exclude: NodeID[]):
|
|
25
|
-
getFurthest(exclude: NodeID[]):
|
|
26
|
-
getAll():
|
|
22
|
+
getRandom(exclude: NodeID[]): DeliveryRpcRemote | undefined;
|
|
23
|
+
getClosest(exclude: NodeID[]): DeliveryRpcRemote | undefined;
|
|
24
|
+
getClosestAndFurthest(exclude: NodeID[]): DeliveryRpcRemote[];
|
|
25
|
+
getFurthest(exclude: NodeID[]): DeliveryRpcRemote | undefined;
|
|
26
|
+
getAll(): DeliveryRpcRemote[];
|
|
27
27
|
stop(): void;
|
|
28
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeList.js","sourceRoot":"","sources":["../../../src/logic/NodeList.ts"],"names":[],"mappings":";;;AACA,mCAA+B;AAE/B,iDAA4C;AAC5C,gDAAoE;AAMpE,MAAM,uBAAuB,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"NodeList.js","sourceRoot":"","sources":["../../../src/logic/NodeList.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,17 +6,18 @@ import { IHandshaker } from './neighbor-discovery/Handshaker';
|
|
|
6
6
|
import { Propagation } from './propagation/Propagation';
|
|
7
7
|
import { INeighborFinder } from './neighbor-discovery/NeighborFinder';
|
|
8
8
|
import { INeighborUpdateManager } from './neighbor-discovery/NeighborUpdateManager';
|
|
9
|
-
import {
|
|
9
|
+
import { ProxyConnectionRpcLocal } from './proxy/ProxyConnectionRpcLocal';
|
|
10
10
|
import { IInspector } from './inspect/Inspector';
|
|
11
|
-
import {
|
|
11
|
+
import { TemporaryConnectionRpcLocal } from './temporary-connection/TemporaryConnectionRpcLocal';
|
|
12
12
|
import { NodeID } from '../identifiers';
|
|
13
13
|
import { ILayer1 } from './ILayer1';
|
|
14
|
+
import { StreamPartID } from '@streamr/protocol';
|
|
14
15
|
export interface Events {
|
|
15
16
|
message: (message: StreamMessage) => void;
|
|
16
17
|
targetNeighborConnected: (nodeId: NodeID) => void;
|
|
17
18
|
}
|
|
18
19
|
export interface StrictRandomGraphNodeConfig {
|
|
19
|
-
|
|
20
|
+
streamPartId: StreamPartID;
|
|
20
21
|
layer1: ILayer1;
|
|
21
22
|
P2PTransport: ITransport;
|
|
22
23
|
connectionLocker: ConnectionLocker;
|
|
@@ -31,21 +32,15 @@ export interface StrictRandomGraphNodeConfig {
|
|
|
31
32
|
propagation: Propagation;
|
|
32
33
|
rpcCommunicator: ListeningRpcCommunicator;
|
|
33
34
|
numOfTargetNeighbors: number;
|
|
34
|
-
maxNumberOfContacts: number;
|
|
35
|
-
minPropagationTargets: number;
|
|
36
|
-
name: string;
|
|
37
|
-
acceptProxyConnections: boolean;
|
|
38
|
-
neighborUpdateInterval: number;
|
|
39
35
|
inspector: IInspector;
|
|
40
|
-
|
|
41
|
-
|
|
36
|
+
temporaryConnectionRpcLocal: TemporaryConnectionRpcLocal;
|
|
37
|
+
proxyConnectionRpcLocal?: ProxyConnectionRpcLocal;
|
|
42
38
|
}
|
|
43
39
|
export declare class RandomGraphNode extends EventEmitter<Events> {
|
|
44
|
-
private stopped;
|
|
45
40
|
private started;
|
|
46
41
|
private readonly duplicateDetectors;
|
|
47
42
|
private config;
|
|
48
|
-
private readonly
|
|
43
|
+
private readonly deliveryRpcLocal;
|
|
49
44
|
private abortController;
|
|
50
45
|
constructor(config: StrictRandomGraphNodeConfig);
|
|
51
46
|
start(): Promise<void>;
|
|
@@ -66,4 +61,5 @@ export declare class RandomGraphNode extends EventEmitter<Events> {
|
|
|
66
61
|
getNumberOfOutgoingHandshakes(): number;
|
|
67
62
|
getTargetNeighborIds(): NodeID[];
|
|
68
63
|
getNearbyNodeView(): NodeList;
|
|
64
|
+
private isStopped;
|
|
69
65
|
}
|