@streamr/trackerless-network 100.2.5-beta.1 → 101.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/package.json +6 -6
- package/dist/src/NetworkNode.js +1 -1
- package/dist/src/NetworkNode.js.map +1 -1
- package/dist/src/NetworkStack.d.ts +5 -5
- package/dist/src/NetworkStack.js +21 -21
- package/dist/src/NetworkStack.js.map +1 -1
- package/dist/src/exports.d.ts +2 -2
- package/dist/src/exports.js +2 -2
- package/dist/src/exports.js.map +1 -1
- package/dist/src/logic/ContentDeliveryLayerNode.d.ts +5 -5
- package/dist/src/logic/ContentDeliveryLayerNode.js +85 -85
- package/dist/src/logic/ContentDeliveryLayerNode.js.map +1 -1
- package/dist/src/logic/ContentDeliveryManager.d.ts +11 -12
- package/dist/src/logic/ContentDeliveryManager.js +65 -61
- package/dist/src/logic/ContentDeliveryManager.js.map +1 -1
- package/dist/src/logic/ContentDeliveryRpcLocal.d.ts +5 -5
- package/dist/src/logic/ContentDeliveryRpcLocal.js +9 -9
- package/dist/src/logic/ContentDeliveryRpcLocal.js.map +1 -1
- package/dist/src/logic/{Layer0Node.d.ts → ControlLayerNode.d.ts} +1 -1
- package/dist/src/logic/{Layer0Node.js → ControlLayerNode.js} +1 -1
- package/dist/src/logic/ControlLayerNode.js.map +1 -0
- package/dist/src/logic/{Layer1Node.d.ts → DiscoveryLayerNode.d.ts} +8 -8
- package/dist/src/logic/{Layer1Node.js → DiscoveryLayerNode.js} +1 -1
- package/dist/src/logic/DiscoveryLayerNode.js.map +1 -0
- package/dist/src/logic/PeerDescriptorStoreManager.d.ts +28 -0
- package/dist/src/logic/PeerDescriptorStoreManager.js +79 -0
- package/dist/src/logic/PeerDescriptorStoreManager.js.map +1 -0
- package/dist/src/logic/StreamPartNetworkSplitAvoidance.d.ts +5 -5
- package/dist/src/logic/StreamPartNetworkSplitAvoidance.js +8 -8
- package/dist/src/logic/StreamPartNetworkSplitAvoidance.js.map +1 -1
- package/dist/src/logic/StreamPartReconnect.d.ts +5 -5
- package/dist/src/logic/StreamPartReconnect.js +10 -10
- package/dist/src/logic/StreamPartReconnect.js.map +1 -1
- package/dist/src/logic/createContentDeliveryLayerNode.d.ts +3 -3
- package/dist/src/logic/createContentDeliveryLayerNode.js +34 -34
- package/dist/src/logic/createContentDeliveryLayerNode.js.map +1 -1
- package/dist/src/logic/inspect/InspectSession.d.ts +3 -3
- package/dist/src/logic/inspect/InspectSession.js +5 -5
- package/dist/src/logic/inspect/InspectSession.js.map +1 -1
- package/dist/src/logic/inspect/Inspector.d.ts +2 -2
- package/dist/src/logic/inspect/Inspector.js +8 -8
- package/dist/src/logic/inspect/Inspector.js.map +1 -1
- package/dist/src/logic/neighbor-discovery/HandshakeRpcLocal.d.ts +4 -4
- package/dist/src/logic/neighbor-discovery/HandshakeRpcLocal.js +24 -24
- package/dist/src/logic/neighbor-discovery/HandshakeRpcLocal.js.map +1 -1
- package/dist/src/logic/neighbor-discovery/HandshakeRpcRemote.d.ts +1 -1
- package/dist/src/logic/neighbor-discovery/HandshakeRpcRemote.js +4 -4
- package/dist/src/logic/neighbor-discovery/HandshakeRpcRemote.js.map +1 -1
- package/dist/src/logic/neighbor-discovery/Handshaker.d.ts +3 -3
- package/dist/src/logic/neighbor-discovery/Handshaker.js +37 -37
- package/dist/src/logic/neighbor-discovery/Handshaker.js.map +1 -1
- package/dist/src/logic/neighbor-discovery/NeighborFinder.d.ts +3 -3
- package/dist/src/logic/neighbor-discovery/NeighborFinder.js +9 -9
- package/dist/src/logic/neighbor-discovery/NeighborFinder.js.map +1 -1
- package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.d.ts +3 -3
- package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js +12 -12
- package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js.map +1 -1
- package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.d.ts +3 -3
- package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.js +14 -14
- package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.js.map +1 -1
- package/dist/src/logic/proxy/ProxyClient.d.ts +3 -3
- package/dist/src/logic/proxy/ProxyClient.js +25 -25
- package/dist/src/logic/proxy/ProxyClient.js.map +1 -1
- package/dist/src/logic/proxy/ProxyConnectionRpcLocal.d.ts +3 -3
- package/dist/src/logic/proxy/ProxyConnectionRpcLocal.js +10 -10
- package/dist/src/logic/proxy/ProxyConnectionRpcLocal.js.map +1 -1
- package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.d.ts +3 -3
- package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.js +11 -11
- package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.js.map +1 -1
- package/dist/src/proto/packages/dht/protos/DhtRpc.client.d.ts +4 -4
- package/dist/src/proto/packages/dht/protos/DhtRpc.client.js +8 -8
- package/dist/src/proto/packages/dht/protos/DhtRpc.client.js.map +1 -1
- package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +11 -3
- package/dist/src/proto/packages/dht/protos/DhtRpc.js +7 -5
- package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
- package/dist/src/proto/packages/dht/protos/DhtRpc.server.d.ts +2 -2
- package/dist/src/proto/packages/proto-rpc/protos/ProtoRpc.js +1 -1
- package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.js +1 -1
- package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.d.ts +6 -23
- package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.js +5 -23
- package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.js.map +1 -1
- package/dist/test/benchmark/first-message.js +7 -7
- package/dist/test/benchmark/first-message.js.map +1 -1
- package/dist/test/utils/utils.d.ts +2 -2
- package/dist/test/utils/utils.js +3 -3
- package/dist/test/utils/utils.js.map +1 -1
- package/package.json +6 -6
- package/protos/NetworkRpc.proto +3 -9
- package/src/NetworkNode.ts +1 -1
- package/src/NetworkStack.ts +24 -24
- package/src/exports.ts +2 -2
- package/src/logic/ContentDeliveryLayerNode.ts +112 -112
- package/src/logic/ContentDeliveryManager.ts +71 -67
- package/src/logic/ContentDeliveryRpcLocal.ts +12 -12
- package/src/logic/{Layer0Node.ts → ControlLayerNode.ts} +1 -1
- package/src/logic/{Layer1Node.ts → DiscoveryLayerNode.ts} +8 -8
- package/src/logic/PeerDescriptorStoreManager.ts +97 -0
- package/src/logic/StreamPartNetworkSplitAvoidance.ts +11 -11
- package/src/logic/StreamPartReconnect.ts +12 -12
- package/src/logic/createContentDeliveryLayerNode.ts +38 -38
- package/src/logic/inspect/InspectSession.ts +6 -6
- package/src/logic/inspect/Inspector.ts +9 -9
- package/src/logic/neighbor-discovery/HandshakeRpcLocal.ts +26 -26
- package/src/logic/neighbor-discovery/HandshakeRpcRemote.ts +6 -6
- package/src/logic/neighbor-discovery/Handshaker.ts +45 -45
- package/src/logic/neighbor-discovery/NeighborFinder.ts +10 -10
- package/src/logic/neighbor-discovery/NeighborUpdateManager.ts +14 -14
- package/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.ts +17 -17
- package/src/logic/proxy/ProxyClient.ts +26 -26
- package/src/logic/proxy/ProxyConnectionRpcLocal.ts +12 -12
- package/src/logic/temporary-connection/TemporaryConnectionRpcLocal.ts +13 -13
- package/src/proto/google/protobuf/any.ts +1 -1
- package/src/proto/google/protobuf/empty.ts +1 -1
- package/src/proto/google/protobuf/timestamp.ts +1 -1
- package/src/proto/packages/dht/protos/DhtRpc.client.ts +9 -9
- package/src/proto/packages/dht/protos/DhtRpc.server.ts +3 -3
- package/src/proto/packages/dht/protos/DhtRpc.ts +15 -5
- package/src/proto/packages/proto-rpc/protos/ProtoRpc.ts +1 -1
- package/src/proto/packages/trackerless-network/protos/NetworkRpc.client.ts +1 -1
- package/src/proto/packages/trackerless-network/protos/NetworkRpc.server.ts +1 -1
- package/src/proto/packages/trackerless-network/protos/NetworkRpc.ts +10 -27
- package/test/benchmark/StreamPartIdDataKeyDistribution.test.ts +1 -1
- package/test/benchmark/first-message.ts +9 -9
- package/test/end-to-end/content-delivery-layer-node-with-real-connections.test.ts +12 -12
- package/test/end-to-end/proxy-and-full-node.test.ts +4 -4
- package/test/integration/ContentDeliveryLayerNode-Layer1Node-Latencies.test.ts +19 -19
- package/test/integration/ContentDeliveryLayerNode-Layer1Node.test.ts +19 -19
- package/test/integration/ContentDeliveryManager.test.ts +11 -11
- package/test/integration/Inspect.test.ts +1 -1
- package/test/integration/Propagation.test.ts +6 -6
- package/test/integration/joining-streams-on-offline-peers.test.ts +3 -3
- package/test/integration/stream-without-default-entrypoints.test.ts +2 -2
- package/test/integration/streamEntryPointReplacing.test.ts +2 -2
- package/test/unit/ContentDeliveryLayerNode.test.ts +11 -11
- package/test/unit/ContentDeliveryManager.test.ts +2 -2
- package/test/unit/{EntrypointDiscovery.test.ts → PeerDescriptorStoreManager.test.ts} +28 -29
- package/test/unit/StreamPartIDDataKey.test.ts +1 -1
- package/test/unit/StreamPartNetworkSplitAvoidance.test.ts +8 -8
- package/test/unit/StreamPartReconnect.test.ts +9 -9
- package/test/utils/fake/FakePeerDescriptorStoreManager.ts +29 -0
- package/test/utils/mock/{MockLayer0Node.ts → MockControlLayerNode.ts} +2 -2
- package/test/utils/mock/{MockLayer1Node.ts → MockDiscoveryLayerNode.ts} +2 -2
- package/test/utils/utils.ts +5 -5
- package/dist/src/logic/EntryPointDiscovery.d.ts +0 -27
- package/dist/src/logic/EntryPointDiscovery.js +0 -80
- package/dist/src/logic/EntryPointDiscovery.js.map +0 -1
- package/dist/src/logic/Layer0Node.js.map +0 -1
- package/dist/src/logic/Layer1Node.js.map +0 -1
- package/src/logic/EntryPointDiscovery.ts +0 -100
- package/test/utils/fake/FakeEntryPointDiscovery.ts +0 -29
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@streamr/trackerless-network",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "101.0.0-beta.1",
|
|
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": "
|
|
34
|
-
"@streamr/proto-rpc": "
|
|
35
|
-
"@streamr/protocol": "
|
|
36
|
-
"@streamr/test-utils": "
|
|
37
|
-
"@streamr/utils": "
|
|
33
|
+
"@streamr/dht": "101.0.0-beta.1",
|
|
34
|
+
"@streamr/proto-rpc": "101.0.0-beta.1",
|
|
35
|
+
"@streamr/protocol": "101.0.0-beta.1",
|
|
36
|
+
"@streamr/test-utils": "101.0.0-beta.1",
|
|
37
|
+
"@streamr/utils": "101.0.0-beta.1",
|
|
38
38
|
"eventemitter3": "^5.0.0",
|
|
39
39
|
"lodash": "^4.17.21",
|
|
40
40
|
"uuid": "^9.0.1",
|
package/dist/src/NetworkNode.js
CHANGED
|
@@ -79,7 +79,7 @@ class NetworkNode {
|
|
|
79
79
|
await this.stack.stop();
|
|
80
80
|
}
|
|
81
81
|
getPeerDescriptor() {
|
|
82
|
-
return this.stack.
|
|
82
|
+
return this.stack.getControlLayerNode().getLocalPeerDescriptor();
|
|
83
83
|
}
|
|
84
84
|
getMetricsContext() {
|
|
85
85
|
return this.stack.getMetricsContext();
|
|
@@ -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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"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { DhtNodeOptions, PeerDescriptor } from '@streamr/dht';
|
|
2
2
|
import { StreamPartID } from '@streamr/protocol';
|
|
3
3
|
import { MetricsContext } from '@streamr/utils';
|
|
4
|
-
import { ContentDeliveryManager,
|
|
5
|
-
import {
|
|
4
|
+
import { ContentDeliveryManager, ContentDeliveryManagerOptions } from './logic/ContentDeliveryManager';
|
|
5
|
+
import { ControlLayerNode } from './logic/ControlLayerNode';
|
|
6
6
|
import { NodeInfoResponse, StreamMessage } from './proto/packages/trackerless-network/protos/NetworkRpc';
|
|
7
7
|
export interface NetworkOptions {
|
|
8
8
|
layer0?: DhtNodeOptions;
|
|
9
|
-
networkNode?:
|
|
9
|
+
networkNode?: ContentDeliveryManagerOptions;
|
|
10
10
|
metricsContext?: MetricsContext;
|
|
11
11
|
}
|
|
12
12
|
export type NodeInfo = Required<NodeInfoResponse>;
|
|
13
13
|
export declare class NetworkStack {
|
|
14
|
-
private
|
|
14
|
+
private controlLayerNode?;
|
|
15
15
|
private contentDeliveryManager?;
|
|
16
16
|
private stopped;
|
|
17
17
|
private readonly metricsContext;
|
|
@@ -27,7 +27,7 @@ export declare class NetworkStack {
|
|
|
27
27
|
start(doJoin?: boolean): Promise<void>;
|
|
28
28
|
private ensureConnectedToControlLayer;
|
|
29
29
|
getContentDeliveryManager(): ContentDeliveryManager;
|
|
30
|
-
|
|
30
|
+
getControlLayerNode(): ControlLayerNode;
|
|
31
31
|
getMetricsContext(): MetricsContext;
|
|
32
32
|
fetchNodeInfo(node: PeerDescriptor): Promise<NodeInfo>;
|
|
33
33
|
createNodeInfo(): NodeInfo;
|
package/dist/src/NetworkStack.js
CHANGED
|
@@ -35,7 +35,7 @@ if (typeof window === 'object') {
|
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
37
|
class NetworkStack {
|
|
38
|
-
|
|
38
|
+
controlLayerNode;
|
|
39
39
|
contentDeliveryManager;
|
|
40
40
|
stopped = false;
|
|
41
41
|
metricsContext;
|
|
@@ -45,7 +45,7 @@ class NetworkStack {
|
|
|
45
45
|
constructor(options) {
|
|
46
46
|
this.options = options;
|
|
47
47
|
this.metricsContext = options.metricsContext ?? new utils_1.MetricsContext();
|
|
48
|
-
this.
|
|
48
|
+
this.controlLayerNode = new dht_1.DhtNode({
|
|
49
49
|
...options.layer0,
|
|
50
50
|
metricsContext: this.metricsContext
|
|
51
51
|
});
|
|
@@ -81,49 +81,49 @@ class NetworkStack {
|
|
|
81
81
|
}
|
|
82
82
|
async start(doJoin = true) {
|
|
83
83
|
logger.info('Starting a Streamr Network Node');
|
|
84
|
-
await this.
|
|
85
|
-
logger.info(`Node id is ${(0, dht_1.getNodeIdFromPeerDescriptor)(this.
|
|
86
|
-
const connectionManager = this.
|
|
87
|
-
if ((this.options.layer0?.entryPoints !== undefined) && (this.options.layer0.entryPoints.some((entryPoint) => (0, dht_1.areEqualPeerDescriptors)(entryPoint, this.
|
|
88
|
-
await this.
|
|
84
|
+
await this.controlLayerNode.start();
|
|
85
|
+
logger.info(`Node id is ${(0, dht_1.getNodeIdFromPeerDescriptor)(this.controlLayerNode.getLocalPeerDescriptor())}`);
|
|
86
|
+
const connectionManager = this.controlLayerNode.getTransport();
|
|
87
|
+
if ((this.options.layer0?.entryPoints !== undefined) && (this.options.layer0.entryPoints.some((entryPoint) => (0, dht_1.areEqualPeerDescriptors)(entryPoint, this.controlLayerNode.getLocalPeerDescriptor())))) {
|
|
88
|
+
await this.controlLayerNode?.joinDht(this.options.layer0.entryPoints);
|
|
89
89
|
}
|
|
90
90
|
else if (doJoin) {
|
|
91
91
|
// in practice there aren't be existing connections and therefore this always connects
|
|
92
92
|
await this.ensureConnectedToControlLayer();
|
|
93
93
|
}
|
|
94
94
|
// TODO: remove undefined checks here. Assume that start is approproately awaited before stop is called.
|
|
95
|
-
await this.contentDeliveryManager?.start(this.
|
|
95
|
+
await this.contentDeliveryManager?.start(this.controlLayerNode, connectionManager, connectionManager);
|
|
96
96
|
if (this.contentDeliveryManager) {
|
|
97
97
|
const infoRpcCommunicator = new dht_1.ListeningRpcCommunicator(NodeInfoRpcLocal_1.NODE_INFO_RPC_SERVICE_ID, this.getConnectionManager());
|
|
98
98
|
this.nodeInfoRpcLocal = new NodeInfoRpcLocal_1.NodeInfoRpcLocal(this, infoRpcCommunicator);
|
|
99
|
-
this.nodeInfoClient = new NodeInfoClient_1.NodeInfoClient(this.
|
|
99
|
+
this.nodeInfoClient = new NodeInfoClient_1.NodeInfoClient(this.controlLayerNode.getLocalPeerDescriptor(), infoRpcCommunicator);
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
102
|
async ensureConnectedToControlLayer() {
|
|
103
103
|
// TODO we could wrap joinDht with pOnce and call it here (no else-if needed in that case)
|
|
104
|
-
if (!this.
|
|
104
|
+
if (!this.controlLayerNode.hasJoined()) {
|
|
105
105
|
setImmediate(async () => {
|
|
106
106
|
if (this.options.layer0?.entryPoints !== undefined) {
|
|
107
107
|
// TODO should catch possible rejection?
|
|
108
108
|
// the question mark is there to avoid problems when stop() is called before start()
|
|
109
109
|
// -> TODO change to exlamation mark if we don't support that (and remove NetworkStackStoppedDuringStart.test)
|
|
110
|
-
await this.
|
|
110
|
+
await this.controlLayerNode?.joinDht(this.options.layer0.entryPoints);
|
|
111
111
|
}
|
|
112
112
|
});
|
|
113
|
-
await this.
|
|
113
|
+
await this.controlLayerNode.waitForNetworkConnectivity();
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
116
|
getContentDeliveryManager() {
|
|
117
117
|
return this.contentDeliveryManager;
|
|
118
118
|
}
|
|
119
|
-
|
|
120
|
-
return this.
|
|
119
|
+
getControlLayerNode() {
|
|
120
|
+
return this.controlLayerNode;
|
|
121
121
|
}
|
|
122
122
|
getMetricsContext() {
|
|
123
123
|
return this.metricsContext;
|
|
124
124
|
}
|
|
125
125
|
async fetchNodeInfo(node) {
|
|
126
|
-
if (!(0, dht_1.areEqualPeerDescriptors)(node, this.
|
|
126
|
+
if (!(0, dht_1.areEqualPeerDescriptors)(node, this.getControlLayerNode().getLocalPeerDescriptor())) {
|
|
127
127
|
return this.nodeInfoClient.getInfo(node);
|
|
128
128
|
}
|
|
129
129
|
else {
|
|
@@ -132,10 +132,10 @@ class NetworkStack {
|
|
|
132
132
|
}
|
|
133
133
|
createNodeInfo() {
|
|
134
134
|
return {
|
|
135
|
-
peerDescriptor: this.
|
|
135
|
+
peerDescriptor: this.getControlLayerNode().getLocalPeerDescriptor(),
|
|
136
136
|
controlLayer: {
|
|
137
|
-
connections: this.
|
|
138
|
-
neighbors: this.
|
|
137
|
+
connections: this.getControlLayerNode().getConnectionsView().getConnections(),
|
|
138
|
+
neighbors: this.getControlLayerNode().getNeighbors()
|
|
139
139
|
},
|
|
140
140
|
streamPartitions: this.getContentDeliveryManager().getNodeInfo(),
|
|
141
141
|
version: package_json_1.version
|
|
@@ -145,16 +145,16 @@ class NetworkStack {
|
|
|
145
145
|
return this.options;
|
|
146
146
|
}
|
|
147
147
|
getConnectionManager() {
|
|
148
|
-
return this.
|
|
148
|
+
return this.controlLayerNode.getTransport();
|
|
149
149
|
}
|
|
150
150
|
async stop() {
|
|
151
151
|
if (!this.stopped) {
|
|
152
152
|
this.stopped = true;
|
|
153
153
|
(0, lodash_1.pull)(instances, this);
|
|
154
154
|
await this.contentDeliveryManager.destroy();
|
|
155
|
-
await this.
|
|
155
|
+
await this.controlLayerNode.stop();
|
|
156
156
|
this.contentDeliveryManager = undefined;
|
|
157
|
-
this.
|
|
157
|
+
this.controlLayerNode = undefined;
|
|
158
158
|
}
|
|
159
159
|
}
|
|
160
160
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkStack.js","sourceRoot":"","sources":["../../src/NetworkStack.ts"],"names":[],"mappings":";;;AAAA,sCAQqB;AACrB,gDAA0E;AAC1E,0CAAyE;AACzE,mCAA6B;AAC7B,kDAA+D;AAC/D,
|
|
1
|
+
{"version":3,"file":"NetworkStack.js","sourceRoot":"","sources":["../../src/NetworkStack.ts"],"names":[],"mappings":"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"}
|
package/dist/src/exports.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { NetworkStack, NetworkOptions, NodeInfo } from './NetworkStack';
|
|
2
2
|
export { NetworkNode, createNetworkNode } from './NetworkNode';
|
|
3
|
-
export {
|
|
3
|
+
export { ContentDeliveryManagerOptions } from './logic/ContentDeliveryManager';
|
|
4
4
|
export { ProxyDirection, GroupKeyRequest, GroupKeyResponse } from './proto/packages/trackerless-network/protos/NetworkRpc';
|
|
5
|
-
export { streamPartIdToDataKey } from './logic/
|
|
5
|
+
export { streamPartIdToDataKey } from './logic/ContentDeliveryManager';
|
|
6
6
|
export { convertStreamMessageToBytes, convertBytesToStreamMessage, convertGroupKeyRequestToBytes, convertBytesToGroupKeyRequest, convertGroupKeyResponseToBytes, convertBytesToGroupKeyResponse } from './logic/protocol-integration/stream-message/oldStreamMessageBinaryUtils';
|
package/dist/src/exports.js
CHANGED
|
@@ -10,8 +10,8 @@ var NetworkRpc_1 = require("./proto/packages/trackerless-network/protos/NetworkR
|
|
|
10
10
|
Object.defineProperty(exports, "ProxyDirection", { enumerable: true, get: function () { return NetworkRpc_1.ProxyDirection; } });
|
|
11
11
|
Object.defineProperty(exports, "GroupKeyRequest", { enumerable: true, get: function () { return NetworkRpc_1.GroupKeyRequest; } });
|
|
12
12
|
Object.defineProperty(exports, "GroupKeyResponse", { enumerable: true, get: function () { return NetworkRpc_1.GroupKeyResponse; } });
|
|
13
|
-
var
|
|
14
|
-
Object.defineProperty(exports, "streamPartIdToDataKey", { enumerable: true, get: function () { return
|
|
13
|
+
var ContentDeliveryManager_1 = require("./logic/ContentDeliveryManager");
|
|
14
|
+
Object.defineProperty(exports, "streamPartIdToDataKey", { enumerable: true, get: function () { return ContentDeliveryManager_1.streamPartIdToDataKey; } });
|
|
15
15
|
var oldStreamMessageBinaryUtils_1 = require("./logic/protocol-integration/stream-message/oldStreamMessageBinaryUtils");
|
|
16
16
|
Object.defineProperty(exports, "convertStreamMessageToBytes", { enumerable: true, get: function () { return oldStreamMessageBinaryUtils_1.convertStreamMessageToBytes; } });
|
|
17
17
|
Object.defineProperty(exports, "convertBytesToStreamMessage", { enumerable: true, get: function () { return oldStreamMessageBinaryUtils_1.convertBytesToStreamMessage; } });
|
package/dist/src/exports.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../../src/exports.ts"],"names":[],"mappings":";;;AAAA,+CAAuE;AAA9D,4GAAA,YAAY,OAAA;AACrB,6CAA8D;AAArD,0GAAA,WAAW,OAAA;AAAE,gHAAA,iBAAiB,OAAA;AAEvC,qFAA0H;AAAjH,4GAAA,cAAc,OAAA;AAAE,6GAAA,eAAe,OAAA;AAAE,8GAAA,gBAAgB,OAAA;AAC1D,
|
|
1
|
+
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../../src/exports.ts"],"names":[],"mappings":";;;AAAA,+CAAuE;AAA9D,4GAAA,YAAY,OAAA;AACrB,6CAA8D;AAArD,0GAAA,WAAW,OAAA;AAAE,gHAAA,iBAAiB,OAAA;AAEvC,qFAA0H;AAAjH,4GAAA,cAAc,OAAA;AAAE,6GAAA,eAAe,OAAA;AAAE,8GAAA,gBAAgB,OAAA;AAC1D,yEAAsE;AAA7D,+HAAA,qBAAqB,OAAA;AAC9B,uHAOgF;AAN5E,0IAAA,2BAA2B,OAAA;AAC3B,0IAAA,2BAA2B,OAAA;AAC3B,4IAAA,6BAA6B,OAAA;AAC7B,4IAAA,6BAA6B,OAAA;AAC7B,6IAAA,8BAA8B,OAAA;AAC9B,6IAAA,8BAA8B,OAAA"}
|
|
@@ -9,16 +9,16 @@ import { NeighborUpdateManager } from './neighbor-discovery/NeighborUpdateManage
|
|
|
9
9
|
import { ProxyConnectionRpcLocal } from './proxy/ProxyConnectionRpcLocal';
|
|
10
10
|
import { Inspector } from './inspect/Inspector';
|
|
11
11
|
import { TemporaryConnectionRpcLocal } from './temporary-connection/TemporaryConnectionRpcLocal';
|
|
12
|
-
import {
|
|
12
|
+
import { DiscoveryLayerNode } from './DiscoveryLayerNode';
|
|
13
13
|
import { StreamPartID } from '@streamr/protocol';
|
|
14
14
|
export interface Events {
|
|
15
15
|
message: (message: StreamMessage) => void;
|
|
16
16
|
neighborConnected: (nodeId: DhtAddress) => void;
|
|
17
17
|
entryPointLeaveDetected: () => void;
|
|
18
18
|
}
|
|
19
|
-
export interface
|
|
19
|
+
export interface StrictContentDeliveryLayerNodeOptions {
|
|
20
20
|
streamPartId: StreamPartID;
|
|
21
|
-
|
|
21
|
+
discoveryLayerNode: DiscoveryLayerNode;
|
|
22
22
|
transport: ITransport;
|
|
23
23
|
connectionLocker: ConnectionLocker;
|
|
24
24
|
localPeerDescriptor: PeerDescriptor;
|
|
@@ -43,10 +43,10 @@ export interface StrictContentDeliveryLayerNodeConfig {
|
|
|
43
43
|
export declare class ContentDeliveryLayerNode extends EventEmitter<Events> {
|
|
44
44
|
private started;
|
|
45
45
|
private readonly duplicateDetectors;
|
|
46
|
-
private
|
|
46
|
+
private options;
|
|
47
47
|
private readonly contentDeliveryRpcLocal;
|
|
48
48
|
private abortController;
|
|
49
|
-
constructor(
|
|
49
|
+
constructor(options: StrictContentDeliveryLayerNodeOptions);
|
|
50
50
|
start(): Promise<void>;
|
|
51
51
|
private registerDefaultServerMethods;
|
|
52
52
|
private onRingContactsUpdated;
|
|
@@ -14,93 +14,93 @@ const logger = new utils_1.Logger(module);
|
|
|
14
14
|
class ContentDeliveryLayerNode extends eventemitter3_1.EventEmitter {
|
|
15
15
|
started = false;
|
|
16
16
|
duplicateDetectors;
|
|
17
|
-
|
|
17
|
+
options;
|
|
18
18
|
contentDeliveryRpcLocal;
|
|
19
19
|
abortController = new AbortController();
|
|
20
|
-
constructor(
|
|
20
|
+
constructor(options) {
|
|
21
21
|
super();
|
|
22
|
-
this.
|
|
22
|
+
this.options = options;
|
|
23
23
|
this.duplicateDetectors = new Map();
|
|
24
24
|
this.contentDeliveryRpcLocal = new ContentDeliveryRpcLocal_1.ContentDeliveryRpcLocal({
|
|
25
|
-
localPeerDescriptor: this.
|
|
26
|
-
streamPartId: this.
|
|
27
|
-
rpcCommunicator: this.
|
|
25
|
+
localPeerDescriptor: this.options.localPeerDescriptor,
|
|
26
|
+
streamPartId: this.options.streamPartId,
|
|
27
|
+
rpcCommunicator: this.options.rpcCommunicator,
|
|
28
28
|
markAndCheckDuplicate: (msg, prev) => (0, utils_2.markAndCheckDuplicate)(this.duplicateDetectors, msg, prev),
|
|
29
29
|
broadcast: (message, previousNode) => this.broadcast(message, previousNode),
|
|
30
|
-
onLeaveNotice: (
|
|
30
|
+
onLeaveNotice: (remoteNodeId, sourceIsStreamEntryPoint) => {
|
|
31
31
|
if (this.abortController.signal.aborted) {
|
|
32
32
|
return;
|
|
33
33
|
}
|
|
34
|
-
const contact = this.
|
|
35
|
-
|| this.
|
|
36
|
-
|| this.
|
|
37
|
-
|| this.
|
|
34
|
+
const contact = this.options.nearbyNodeView.get(remoteNodeId)
|
|
35
|
+
|| this.options.randomNodeView.get(remoteNodeId)
|
|
36
|
+
|| this.options.neighbors.get(remoteNodeId)
|
|
37
|
+
|| this.options.proxyConnectionRpcLocal?.getConnection(remoteNodeId)?.remote;
|
|
38
38
|
// TODO: check integrity of notifier?
|
|
39
39
|
if (contact) {
|
|
40
|
-
this.
|
|
41
|
-
this.
|
|
42
|
-
this.
|
|
43
|
-
this.
|
|
44
|
-
this.
|
|
45
|
-
this.
|
|
46
|
-
this.
|
|
47
|
-
this.
|
|
40
|
+
this.options.discoveryLayerNode.removeContact(remoteNodeId);
|
|
41
|
+
this.options.neighbors.remove(remoteNodeId);
|
|
42
|
+
this.options.nearbyNodeView.remove(remoteNodeId);
|
|
43
|
+
this.options.randomNodeView.remove(remoteNodeId);
|
|
44
|
+
this.options.leftNodeView.remove(remoteNodeId);
|
|
45
|
+
this.options.rightNodeView.remove(remoteNodeId);
|
|
46
|
+
this.options.neighborFinder.start([remoteNodeId]);
|
|
47
|
+
this.options.proxyConnectionRpcLocal?.removeConnection(remoteNodeId);
|
|
48
48
|
}
|
|
49
49
|
if (sourceIsStreamEntryPoint) {
|
|
50
50
|
this.emit('entryPointLeaveDetected');
|
|
51
51
|
}
|
|
52
52
|
},
|
|
53
|
-
markForInspection: (
|
|
53
|
+
markForInspection: (remoteNodeId, messageId) => this.options.inspector.markMessage(remoteNodeId, messageId)
|
|
54
54
|
});
|
|
55
55
|
}
|
|
56
56
|
async start() {
|
|
57
57
|
this.started = true;
|
|
58
58
|
this.registerDefaultServerMethods();
|
|
59
|
-
(0, utils_1.addManagedEventListener)(this.
|
|
60
|
-
(0, utils_1.addManagedEventListener)(this.
|
|
61
|
-
(0, utils_1.addManagedEventListener)(this.
|
|
62
|
-
(0, utils_1.addManagedEventListener)(this.
|
|
63
|
-
(0, utils_1.addManagedEventListener)(this.
|
|
64
|
-
(0, utils_1.addManagedEventListener)(this.
|
|
65
|
-
(0, utils_1.addManagedEventListener)(this.
|
|
66
|
-
(0, utils_1.addManagedEventListener)(this.
|
|
67
|
-
this.
|
|
68
|
-
this.
|
|
59
|
+
(0, utils_1.addManagedEventListener)(this.options.discoveryLayerNode, 'nearbyContactAdded', () => this.onNearbyContactAdded(), this.abortController.signal);
|
|
60
|
+
(0, utils_1.addManagedEventListener)(this.options.discoveryLayerNode, 'nearbyContactRemoved', () => this.onNearbyContactRemoved(), this.abortController.signal);
|
|
61
|
+
(0, utils_1.addManagedEventListener)(this.options.discoveryLayerNode, 'randomContactAdded', () => this.onRandomContactAdded(), this.abortController.signal);
|
|
62
|
+
(0, utils_1.addManagedEventListener)(this.options.discoveryLayerNode, 'randomContactRemoved', () => this.onRandomContactRemoved(), this.abortController.signal);
|
|
63
|
+
(0, utils_1.addManagedEventListener)(this.options.discoveryLayerNode, 'ringContactAdded', () => this.onRingContactsUpdated(), this.abortController.signal);
|
|
64
|
+
(0, utils_1.addManagedEventListener)(this.options.discoveryLayerNode, 'ringContactRemoved', () => this.onRingContactsUpdated(), this.abortController.signal);
|
|
65
|
+
(0, utils_1.addManagedEventListener)(this.options.transport, 'disconnected', (peerDescriptor) => this.onNodeDisconnected(peerDescriptor), this.abortController.signal);
|
|
66
|
+
(0, utils_1.addManagedEventListener)(this.options.neighbors, 'nodeAdded', (id, remote) => {
|
|
67
|
+
this.options.propagation.onNeighborJoined(id);
|
|
68
|
+
this.options.connectionLocker.weakLockConnection((0, dht_1.getNodeIdFromPeerDescriptor)(remote.getPeerDescriptor()), this.options.streamPartId);
|
|
69
69
|
this.emit('neighborConnected', id);
|
|
70
70
|
}, this.abortController.signal);
|
|
71
|
-
(0, utils_1.addManagedEventListener)(this.
|
|
72
|
-
this.
|
|
71
|
+
(0, utils_1.addManagedEventListener)(this.options.neighbors, 'nodeRemoved', (_id, remote) => {
|
|
72
|
+
this.options.connectionLocker.weakUnlockConnection((0, dht_1.getNodeIdFromPeerDescriptor)(remote.getPeerDescriptor()), this.options.streamPartId);
|
|
73
73
|
}, this.abortController.signal);
|
|
74
|
-
if (this.
|
|
75
|
-
(0, utils_1.addManagedEventListener)(this.
|
|
74
|
+
if (this.options.proxyConnectionRpcLocal !== undefined) {
|
|
75
|
+
(0, utils_1.addManagedEventListener)(this.options.proxyConnectionRpcLocal, 'newConnection', (id) => this.options.propagation.onNeighborJoined(id), this.abortController.signal);
|
|
76
76
|
}
|
|
77
|
-
this.
|
|
78
|
-
await this.
|
|
77
|
+
this.options.neighborFinder.start();
|
|
78
|
+
await this.options.neighborUpdateManager.start();
|
|
79
79
|
}
|
|
80
80
|
registerDefaultServerMethods() {
|
|
81
|
-
this.
|
|
82
|
-
this.
|
|
83
|
-
this.
|
|
84
|
-
this.
|
|
81
|
+
this.options.rpcCommunicator.registerRpcNotification(NetworkRpc_1.StreamMessage, 'sendStreamMessage', (msg, context) => this.contentDeliveryRpcLocal.sendStreamMessage(msg, context));
|
|
82
|
+
this.options.rpcCommunicator.registerRpcNotification(NetworkRpc_1.LeaveStreamPartNotice, 'leaveStreamPartNotice', (req, context) => this.contentDeliveryRpcLocal.leaveStreamPartNotice(req, context));
|
|
83
|
+
this.options.rpcCommunicator.registerRpcMethod(NetworkRpc_1.TemporaryConnectionRequest, NetworkRpc_1.TemporaryConnectionResponse, 'openConnection', (req, context) => this.options.temporaryConnectionRpcLocal.openConnection(req, context));
|
|
84
|
+
this.options.rpcCommunicator.registerRpcNotification(NetworkRpc_1.CloseTemporaryConnection, 'closeConnection', (req, context) => this.options.temporaryConnectionRpcLocal.closeConnection(req, context));
|
|
85
85
|
}
|
|
86
86
|
onRingContactsUpdated() {
|
|
87
87
|
logger.trace('onRingContactsUpdated');
|
|
88
88
|
if (this.isStopped()) {
|
|
89
89
|
return;
|
|
90
90
|
}
|
|
91
|
-
const contacts = this.
|
|
92
|
-
this.
|
|
93
|
-
this.
|
|
91
|
+
const contacts = this.options.discoveryLayerNode.getRingContacts();
|
|
92
|
+
this.options.leftNodeView.replaceAll(contacts.left.map((peer) => new ContentDeliveryRpcRemote_1.ContentDeliveryRpcRemote(this.options.localPeerDescriptor, peer, this.options.rpcCommunicator, NetworkRpc_client_1.ContentDeliveryRpcClient, this.options.rpcRequestTimeout)));
|
|
93
|
+
this.options.rightNodeView.replaceAll(contacts.right.map((peer) => new ContentDeliveryRpcRemote_1.ContentDeliveryRpcRemote(this.options.localPeerDescriptor, peer, this.options.rpcCommunicator, NetworkRpc_client_1.ContentDeliveryRpcClient, this.options.rpcRequestTimeout)));
|
|
94
94
|
}
|
|
95
95
|
onNearbyContactAdded() {
|
|
96
96
|
logger.trace(`New nearby contact found`);
|
|
97
97
|
if (this.isStopped()) {
|
|
98
98
|
return;
|
|
99
99
|
}
|
|
100
|
-
const closestContacts = this.
|
|
100
|
+
const closestContacts = this.options.discoveryLayerNode.getClosestContacts();
|
|
101
101
|
this.updateNearbyNodeView(closestContacts);
|
|
102
|
-
if (this.
|
|
103
|
-
this.
|
|
102
|
+
if (this.options.neighbors.size() < this.options.neighborTargetCount) {
|
|
103
|
+
this.options.neighborFinder.start();
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
106
|
onNearbyContactRemoved() {
|
|
@@ -108,26 +108,26 @@ class ContentDeliveryLayerNode extends eventemitter3_1.EventEmitter {
|
|
|
108
108
|
if (this.isStopped()) {
|
|
109
109
|
return;
|
|
110
110
|
}
|
|
111
|
-
const closestContacts = this.
|
|
111
|
+
const closestContacts = this.options.discoveryLayerNode.getClosestContacts();
|
|
112
112
|
this.updateNearbyNodeView(closestContacts);
|
|
113
113
|
}
|
|
114
114
|
updateNearbyNodeView(nodes) {
|
|
115
|
-
this.
|
|
116
|
-
for (const descriptor of this.
|
|
117
|
-
if (this.
|
|
115
|
+
this.options.nearbyNodeView.replaceAll(Array.from(nodes).map((descriptor) => new ContentDeliveryRpcRemote_1.ContentDeliveryRpcRemote(this.options.localPeerDescriptor, descriptor, this.options.rpcCommunicator, NetworkRpc_client_1.ContentDeliveryRpcClient, this.options.rpcRequestTimeout)));
|
|
116
|
+
for (const descriptor of this.options.discoveryLayerNode.getNeighbors()) {
|
|
117
|
+
if (this.options.nearbyNodeView.size() >= this.options.nodeViewSize) {
|
|
118
118
|
break;
|
|
119
119
|
}
|
|
120
|
-
this.
|
|
120
|
+
this.options.nearbyNodeView.add(new ContentDeliveryRpcRemote_1.ContentDeliveryRpcRemote(this.options.localPeerDescriptor, descriptor, this.options.rpcCommunicator, NetworkRpc_client_1.ContentDeliveryRpcClient, this.options.rpcRequestTimeout));
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
123
|
onRandomContactAdded() {
|
|
124
124
|
if (this.isStopped()) {
|
|
125
125
|
return;
|
|
126
126
|
}
|
|
127
|
-
const randomContacts = this.
|
|
128
|
-
this.
|
|
129
|
-
if (this.
|
|
130
|
-
this.
|
|
127
|
+
const randomContacts = this.options.discoveryLayerNode.getRandomContacts(RANDOM_NODE_VIEW_SIZE);
|
|
128
|
+
this.options.randomNodeView.replaceAll(randomContacts.map((descriptor) => new ContentDeliveryRpcRemote_1.ContentDeliveryRpcRemote(this.options.localPeerDescriptor, descriptor, this.options.rpcCommunicator, NetworkRpc_client_1.ContentDeliveryRpcClient, this.options.rpcRequestTimeout)));
|
|
129
|
+
if (this.options.neighbors.size() < this.options.neighborTargetCount) {
|
|
130
|
+
this.options.neighborFinder.start();
|
|
131
131
|
}
|
|
132
132
|
}
|
|
133
133
|
onRandomContactRemoved() {
|
|
@@ -135,20 +135,20 @@ class ContentDeliveryLayerNode extends eventemitter3_1.EventEmitter {
|
|
|
135
135
|
if (this.isStopped()) {
|
|
136
136
|
return;
|
|
137
137
|
}
|
|
138
|
-
const randomContacts = this.
|
|
139
|
-
this.
|
|
138
|
+
const randomContacts = this.options.discoveryLayerNode.getRandomContacts(RANDOM_NODE_VIEW_SIZE);
|
|
139
|
+
this.options.randomNodeView.replaceAll(randomContacts.map((descriptor) => new ContentDeliveryRpcRemote_1.ContentDeliveryRpcRemote(this.options.localPeerDescriptor, descriptor, this.options.rpcCommunicator, NetworkRpc_client_1.ContentDeliveryRpcClient, this.options.rpcRequestTimeout)));
|
|
140
140
|
}
|
|
141
141
|
onNodeDisconnected(peerDescriptor) {
|
|
142
142
|
const nodeId = (0, dht_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
|
|
143
|
-
if (this.
|
|
144
|
-
this.
|
|
145
|
-
this.
|
|
146
|
-
this.
|
|
143
|
+
if (this.options.neighbors.has(nodeId)) {
|
|
144
|
+
this.options.neighbors.remove(nodeId);
|
|
145
|
+
this.options.neighborFinder.start([nodeId]);
|
|
146
|
+
this.options.temporaryConnectionRpcLocal.removeNode(nodeId);
|
|
147
147
|
}
|
|
148
148
|
}
|
|
149
149
|
hasProxyConnection(nodeId) {
|
|
150
|
-
if (this.
|
|
151
|
-
return this.
|
|
150
|
+
if (this.options.proxyConnectionRpcLocal) {
|
|
151
|
+
return this.options.proxyConnectionRpcLocal.hasConnection(nodeId);
|
|
152
152
|
}
|
|
153
153
|
return false;
|
|
154
154
|
}
|
|
@@ -157,53 +157,53 @@ class ContentDeliveryLayerNode extends eventemitter3_1.EventEmitter {
|
|
|
157
157
|
return;
|
|
158
158
|
}
|
|
159
159
|
this.abortController.abort();
|
|
160
|
-
this.
|
|
161
|
-
this.
|
|
162
|
-
remote.leaveStreamPartNotice(this.
|
|
163
|
-
this.
|
|
160
|
+
this.options.proxyConnectionRpcLocal?.stop();
|
|
161
|
+
this.options.neighbors.getAll().map((remote) => {
|
|
162
|
+
remote.leaveStreamPartNotice(this.options.streamPartId, this.options.isLocalNodeEntryPoint());
|
|
163
|
+
this.options.connectionLocker.weakUnlockConnection((0, dht_1.getNodeIdFromPeerDescriptor)(remote.getPeerDescriptor()), this.options.streamPartId);
|
|
164
164
|
});
|
|
165
|
-
this.
|
|
165
|
+
this.options.rpcCommunicator.destroy();
|
|
166
166
|
this.removeAllListeners();
|
|
167
|
-
this.
|
|
168
|
-
this.
|
|
169
|
-
this.
|
|
170
|
-
this.
|
|
171
|
-
this.
|
|
172
|
-
this.
|
|
167
|
+
this.options.nearbyNodeView.stop();
|
|
168
|
+
this.options.neighbors.stop();
|
|
169
|
+
this.options.randomNodeView.stop();
|
|
170
|
+
this.options.neighborFinder.stop();
|
|
171
|
+
this.options.neighborUpdateManager.stop();
|
|
172
|
+
this.options.inspector.stop();
|
|
173
173
|
}
|
|
174
174
|
broadcast(msg, previousNode) {
|
|
175
175
|
if (!previousNode) {
|
|
176
176
|
(0, utils_2.markAndCheckDuplicate)(this.duplicateDetectors, msg.messageId, msg.previousMessageRef);
|
|
177
177
|
}
|
|
178
178
|
this.emit('message', msg);
|
|
179
|
-
const skipBackPropagation = previousNode !== undefined && !this.
|
|
180
|
-
this.
|
|
179
|
+
const skipBackPropagation = previousNode !== undefined && !this.options.temporaryConnectionRpcLocal.hasNode(previousNode);
|
|
180
|
+
this.options.propagation.feedUnseenMessage(msg, this.getPropagationTargets(msg), skipBackPropagation ? previousNode : null);
|
|
181
181
|
}
|
|
182
182
|
inspect(peerDescriptor) {
|
|
183
|
-
return this.
|
|
183
|
+
return this.options.inspector.inspect(peerDescriptor);
|
|
184
184
|
}
|
|
185
185
|
getPropagationTargets(msg) {
|
|
186
|
-
let propagationTargets = this.
|
|
187
|
-
if (this.
|
|
188
|
-
propagationTargets = propagationTargets.concat(this.
|
|
186
|
+
let propagationTargets = this.options.neighbors.getIds();
|
|
187
|
+
if (this.options.proxyConnectionRpcLocal) {
|
|
188
|
+
propagationTargets = propagationTargets.concat(this.options.proxyConnectionRpcLocal.getPropagationTargets(msg));
|
|
189
189
|
}
|
|
190
|
-
propagationTargets = propagationTargets.concat(this.
|
|
190
|
+
propagationTargets = propagationTargets.concat(this.options.temporaryConnectionRpcLocal.getNodes().getIds());
|
|
191
191
|
return propagationTargets;
|
|
192
192
|
}
|
|
193
193
|
getOwnNodeId() {
|
|
194
|
-
return (0, dht_1.getNodeIdFromPeerDescriptor)(this.
|
|
194
|
+
return (0, dht_1.getNodeIdFromPeerDescriptor)(this.options.localPeerDescriptor);
|
|
195
195
|
}
|
|
196
196
|
getOutgoingHandshakeCount() {
|
|
197
|
-
return this.
|
|
197
|
+
return this.options.handshaker.getOngoingHandshakes().size;
|
|
198
198
|
}
|
|
199
199
|
getNeighbors() {
|
|
200
200
|
if (!this.started && this.isStopped()) {
|
|
201
201
|
return [];
|
|
202
202
|
}
|
|
203
|
-
return this.
|
|
203
|
+
return this.options.neighbors.getAll().map((n) => n.getPeerDescriptor());
|
|
204
204
|
}
|
|
205
205
|
getNearbyNodeView() {
|
|
206
|
-
return this.
|
|
206
|
+
return this.options.nearbyNodeView;
|
|
207
207
|
}
|
|
208
208
|
isStopped() {
|
|
209
209
|
return this.abortController.signal.aborted;
|