@streamr/dht 100.2.5-beta.1 → 101.0.0-beta.0
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 +7 -7
- package/dist/src/connection/ConnectionLockRpcLocal.d.ts +3 -3
- package/dist/src/connection/ConnectionLockRpcLocal.js +8 -8
- package/dist/src/connection/ConnectionLockRpcLocal.js.map +1 -1
- package/dist/src/connection/ConnectionLockRpcRemote.js +1 -1
- package/dist/src/connection/ConnectionLockRpcRemote.js.map +1 -1
- package/dist/src/connection/ConnectionManager.d.ts +4 -6
- package/dist/src/connection/ConnectionManager.js +128 -103
- package/dist/src/connection/ConnectionManager.js.map +1 -1
- package/dist/src/connection/ConnectorFacade.d.ts +15 -14
- package/dist/src/connection/ConnectorFacade.js +70 -52
- package/dist/src/connection/ConnectorFacade.js.map +1 -1
- package/dist/src/connection/Handshaker.d.ts +9 -2
- package/dist/src/connection/Handshaker.js +117 -27
- package/dist/src/connection/Handshaker.js.map +1 -1
- package/dist/src/connection/ManagedConnection.d.ts +13 -38
- package/dist/src/connection/ManagedConnection.js +31 -252
- package/dist/src/connection/ManagedConnection.js.map +1 -1
- package/dist/src/connection/OutputBuffer.d.ts +9 -0
- package/dist/src/connection/OutputBuffer.js +26 -0
- package/dist/src/connection/OutputBuffer.js.map +1 -0
- package/dist/src/connection/PendingConnection.d.ts +19 -0
- package/dist/src/connection/PendingConnection.js +59 -0
- package/dist/src/connection/PendingConnection.js.map +1 -0
- package/dist/src/connection/connectivityChecker.js +3 -3
- package/dist/src/connection/connectivityChecker.js.map +1 -1
- package/dist/src/connection/connectivityRequestHandler.js +2 -2
- package/dist/src/connection/connectivityRequestHandler.js.map +1 -1
- package/dist/src/connection/simulator/Simulator.d.ts +1 -3
- package/dist/src/connection/simulator/Simulator.js +1 -4
- package/dist/src/connection/simulator/Simulator.js.map +1 -1
- package/dist/src/connection/simulator/SimulatorConnection.js +1 -2
- package/dist/src/connection/simulator/SimulatorConnection.js.map +1 -1
- package/dist/src/connection/simulator/SimulatorConnector.d.ts +3 -3
- package/dist/src/connection/simulator/SimulatorConnector.js +28 -21
- package/dist/src/connection/simulator/SimulatorConnector.js.map +1 -1
- package/dist/src/connection/webrtc/NodeWebrtcConnection.d.ts +1 -6
- package/dist/src/connection/webrtc/NodeWebrtcConnection.js +3 -20
- package/dist/src/connection/webrtc/NodeWebrtcConnection.js.map +1 -1
- package/dist/src/connection/webrtc/WebrtcConnector.d.ts +11 -6
- package/dist/src/connection/webrtc/WebrtcConnector.js +57 -42
- package/dist/src/connection/webrtc/WebrtcConnector.js.map +1 -1
- package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.d.ts +8 -10
- package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js +21 -44
- package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js.map +1 -1
- package/dist/src/connection/websocket/AbstractWebsocketClientConnection.js +8 -2
- package/dist/src/connection/websocket/AbstractWebsocketClientConnection.js.map +1 -1
- package/dist/src/connection/websocket/AutoCertifierClientFacade.d.ts +3 -3
- package/dist/src/connection/websocket/AutoCertifierClientFacade.js +8 -8
- package/dist/src/connection/websocket/AutoCertifierClientFacade.js.map +1 -1
- package/dist/src/connection/websocket/NodeWebsocketClientConnection.js +1 -1
- package/dist/src/connection/websocket/NodeWebsocketClientConnection.js.map +1 -1
- package/dist/src/connection/websocket/WebsocketClientConnector.d.ts +26 -0
- package/dist/src/connection/websocket/WebsocketClientConnector.js +86 -0
- package/dist/src/connection/websocket/WebsocketClientConnector.js.map +1 -0
- package/dist/src/connection/websocket/WebsocketClientConnectorRpcLocal.d.ts +19 -0
- package/dist/src/connection/websocket/WebsocketClientConnectorRpcLocal.js +23 -0
- package/dist/src/connection/websocket/WebsocketClientConnectorRpcLocal.js.map +1 -0
- package/dist/src/connection/websocket/WebsocketClientConnectorRpcRemote.d.ts +5 -0
- package/dist/src/connection/websocket/{WebsocketConnectorRpcRemote.js → WebsocketClientConnectorRpcRemote.js} +4 -4
- package/dist/src/connection/websocket/WebsocketClientConnectorRpcRemote.js.map +1 -0
- package/dist/src/connection/websocket/WebsocketServer.d.ts +8 -5
- package/dist/src/connection/websocket/WebsocketServer.js +11 -11
- package/dist/src/connection/websocket/WebsocketServer.js.map +1 -1
- package/dist/src/connection/websocket/{WebsocketConnector.d.ts → WebsocketServerConnector.d.ts} +16 -21
- package/dist/src/connection/websocket/{WebsocketConnector.js → WebsocketServerConnector.js} +112 -160
- package/dist/src/connection/websocket/WebsocketServerConnector.js.map +1 -0
- package/dist/src/dht/DhtNode.d.ts +4 -4
- package/dist/src/dht/DhtNode.js +85 -84
- package/dist/src/dht/DhtNode.js.map +1 -1
- package/dist/src/dht/DhtNodeRpcLocal.d.ts +3 -3
- package/dist/src/dht/DhtNodeRpcLocal.js +9 -9
- package/dist/src/dht/DhtNodeRpcLocal.js.map +1 -1
- package/dist/src/dht/ExternalApiRpcLocal.d.ts +3 -3
- package/dist/src/dht/ExternalApiRpcLocal.js +5 -5
- package/dist/src/dht/ExternalApiRpcLocal.js.map +1 -1
- package/dist/src/dht/ExternalApiRpcRemote.js +2 -2
- package/dist/src/dht/ExternalApiRpcRemote.js.map +1 -1
- package/dist/src/dht/PeerManager.d.ts +4 -4
- package/dist/src/dht/PeerManager.js +22 -22
- package/dist/src/dht/PeerManager.js.map +1 -1
- package/dist/src/dht/contact/SortedContactList.d.ts +3 -3
- package/dist/src/dht/contact/SortedContactList.js +9 -9
- package/dist/src/dht/contact/SortedContactList.js.map +1 -1
- package/dist/src/dht/discovery/DiscoverySession.d.ts +3 -3
- package/dist/src/dht/discovery/DiscoverySession.js +21 -21
- package/dist/src/dht/discovery/DiscoverySession.js.map +1 -1
- package/dist/src/dht/discovery/PeerDiscovery.d.ts +3 -3
- package/dist/src/dht/discovery/PeerDiscovery.js +46 -44
- package/dist/src/dht/discovery/PeerDiscovery.js.map +1 -1
- package/dist/src/dht/discovery/RingDiscoverySession.d.ts +3 -3
- package/dist/src/dht/discovery/RingDiscoverySession.js +19 -19
- package/dist/src/dht/discovery/RingDiscoverySession.js.map +1 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationManager.d.ts +3 -3
- package/dist/src/dht/recursive-operation/RecursiveOperationManager.js +33 -33
- package/dist/src/dht/recursive-operation/RecursiveOperationManager.js.map +1 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.d.ts +3 -3
- package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.js +8 -8
- package/dist/src/dht/recursive-operation/RecursiveOperationRpcLocal.js.map +1 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationSession.d.ts +4 -4
- package/dist/src/dht/recursive-operation/RecursiveOperationSession.js +24 -24
- package/dist/src/dht/recursive-operation/RecursiveOperationSession.js.map +1 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.d.ts +4 -4
- package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.js +5 -5
- package/dist/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.js.map +1 -1
- package/dist/src/dht/routing/Router.d.ts +3 -3
- package/dist/src/dht/routing/Router.js +20 -20
- package/dist/src/dht/routing/Router.js.map +1 -1
- package/dist/src/dht/routing/RouterRpcLocal.d.ts +3 -3
- package/dist/src/dht/routing/RouterRpcLocal.js +16 -16
- package/dist/src/dht/routing/RouterRpcLocal.js.map +1 -1
- package/dist/src/dht/routing/RoutingSession.d.ts +3 -3
- package/dist/src/dht/routing/RoutingSession.js +24 -24
- package/dist/src/dht/routing/RoutingSession.js.map +1 -1
- package/dist/src/dht/store/StoreManager.d.ts +3 -3
- package/dist/src/dht/store/StoreManager.js +25 -25
- package/dist/src/dht/store/StoreManager.js.map +1 -1
- package/dist/src/dht/store/StoreRpcLocal.d.ts +3 -3
- package/dist/src/dht/store/StoreRpcLocal.js +12 -12
- package/dist/src/dht/store/StoreRpcLocal.js.map +1 -1
- package/dist/src/exports.d.ts +3 -0
- package/dist/src/exports.js +5 -1
- package/dist/src/exports.js.map +1 -1
- package/dist/src/proto/google/protobuf/any.d.ts +5 -8
- package/dist/src/proto/google/protobuf/any.js.map +1 -1
- package/dist/src/proto/google/protobuf/empty.d.ts +1 -0
- package/dist/src/proto/google/protobuf/empty.js.map +1 -1
- package/dist/src/proto/google/protobuf/timestamp.d.ts +1 -10
- package/dist/src/proto/google/protobuf/timestamp.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 +3 -3
- package/dist/src/proto/packages/dht/protos/DhtRpc.js +4 -4
- 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/transport/ListeningRpcCommunicator.d.ts +2 -2
- package/dist/src/transport/ListeningRpcCommunicator.js +2 -2
- package/dist/src/transport/ListeningRpcCommunicator.js.map +1 -1
- package/dist/src/transport/RoutingRpcCommunicator.d.ts +2 -2
- package/dist/src/transport/RoutingRpcCommunicator.js +2 -2
- package/dist/src/transport/RoutingRpcCommunicator.js.map +1 -1
- package/package.json +7 -7
- package/protos/DhtRpc.proto +1 -1
- package/src/connection/ConnectionLockRpcLocal.ts +9 -9
- package/src/connection/ConnectionLockRpcRemote.ts +1 -1
- package/src/connection/ConnectionManager.ts +153 -111
- package/src/connection/ConnectorFacade.ts +84 -61
- package/src/connection/Handshaker.ts +131 -27
- package/src/connection/ManagedConnection.ts +41 -304
- package/src/connection/OutputBuffer.ts +28 -0
- package/src/connection/PendingConnection.ts +68 -0
- package/src/connection/connectivityChecker.ts +2 -2
- package/src/connection/connectivityRequestHandler.ts +1 -1
- package/src/connection/simulator/Simulator.ts +1 -5
- package/src/connection/simulator/SimulatorConnection.ts +1 -2
- package/src/connection/simulator/SimulatorConnector.ts +34 -33
- package/src/connection/webrtc/BrowserWebrtcConnection.ts +0 -6
- package/src/connection/webrtc/NodeWebrtcConnection.ts +3 -24
- package/src/connection/webrtc/WebrtcConnector.ts +73 -62
- package/src/connection/webrtc/WebrtcConnectorRpcLocal.ts +26 -56
- package/src/connection/websocket/AbstractWebsocketClientConnection.ts +8 -2
- package/src/connection/websocket/AutoCertifierClientFacade.ts +11 -11
- package/src/connection/websocket/NodeWebsocketClientConnection.ts +1 -1
- package/src/connection/websocket/WebsocketClientConnector.ts +119 -0
- package/src/connection/websocket/WebsocketClientConnectorRpcLocal.ts +39 -0
- package/src/connection/websocket/{WebsocketConnectorRpcRemote.ts → WebsocketClientConnectorRpcRemote.ts} +2 -2
- package/src/connection/websocket/WebsocketServer.ts +18 -14
- package/src/connection/websocket/{WebsocketConnector.ts → WebsocketServerConnector.ts} +128 -205
- package/src/dht/DhtNode.ts +90 -89
- package/src/dht/DhtNodeRpcLocal.ts +11 -11
- package/src/dht/ExternalApiRpcLocal.ts +6 -6
- package/src/dht/ExternalApiRpcRemote.ts +2 -2
- package/src/dht/PeerManager.ts +24 -24
- package/src/dht/contact/SortedContactList.ts +10 -10
- package/src/dht/discovery/DiscoverySession.ts +24 -24
- package/src/dht/discovery/PeerDiscovery.ts +47 -45
- package/src/dht/discovery/RingDiscoverySession.ts +23 -23
- package/src/dht/recursive-operation/RecursiveOperationManager.ts +36 -36
- package/src/dht/recursive-operation/RecursiveOperationRpcLocal.ts +9 -9
- package/src/dht/recursive-operation/RecursiveOperationSession.ts +25 -25
- package/src/dht/recursive-operation/RecursiveOperationSessionRpcLocal.ts +7 -7
- package/src/dht/routing/Router.ts +21 -21
- package/src/dht/routing/RouterRpcLocal.ts +17 -17
- package/src/dht/routing/RoutingSession.ts +26 -26
- package/src/dht/store/StoreManager.ts +27 -27
- package/src/dht/store/StoreRpcLocal.ts +13 -13
- package/src/exports.ts +3 -0
- package/src/proto/google/protobuf/any.ts +6 -9
- package/src/proto/google/protobuf/empty.ts +2 -1
- package/src/proto/google/protobuf/timestamp.ts +2 -11
- 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 +4 -4
- package/src/proto/packages/proto-rpc/protos/ProtoRpc.ts +1 -1
- package/src/transport/ListeningRpcCommunicator.ts +3 -3
- package/src/transport/RoutingRpcCommunicator.ts +3 -3
- package/test/end-to-end/Layer0Webrtc.test.ts +0 -10
- package/test/integration/ConnectionManager.test.ts +3 -2
- package/test/integration/GeoIpConnectivityChecking.test.ts +1 -1
- package/test/integration/SimultaneousConnections.test.ts +2 -2
- package/test/integration/WebrtcConnectionManagement.test.ts +2 -10
- package/test/integration/{WebsocketConnectorRpc.test.ts → WebsocketClientConnectorRpc.test.ts} +9 -9
- package/test/integration/WebsocketConnectionManagement.test.ts +11 -29
- package/test/unit/ConnectionManager.test.ts +64 -0
- package/test/unit/DiscoverySession.test.ts +1 -1
- package/test/unit/Handshaker.test.ts +169 -0
- package/test/unit/ManagedConnection.test.ts +58 -0
- package/test/unit/PendingConnection.test.ts +57 -0
- package/test/unit/WebrtcConnector.test.ts +56 -0
- package/test/unit/{WebsocketConnector.test.ts → WebsocketClientConnector.test.ts} +56 -11
- package/test/unit/WebsocketServerConnector.test.ts +102 -0
- package/test/utils/FakeConnectorFacade.ts +41 -0
- package/test/utils/mock/MockConnection.ts +26 -0
- package/test/utils/utils.ts +2 -2
- package/dist/src/connection/IConnectionSource.d.ts +0 -4
- package/dist/src/connection/IConnectionSource.js +0 -3
- package/dist/src/connection/IConnectionSource.js.map +0 -1
- package/dist/src/connection/webrtc/ManagedWebrtcConnection.d.ts +0 -7
- package/dist/src/connection/webrtc/ManagedWebrtcConnection.js +0 -20
- package/dist/src/connection/webrtc/ManagedWebrtcConnection.js.map +0 -1
- package/dist/src/connection/websocket/WebsocketConnector.js.map +0 -1
- package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.d.ts +0 -19
- package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.js +0 -23
- package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.js.map +0 -1
- package/dist/src/connection/websocket/WebsocketConnectorRpcRemote.d.ts +0 -5
- package/dist/src/connection/websocket/WebsocketConnectorRpcRemote.js.map +0 -1
- package/src/connection/IConnectionSource.ts +0 -6
- package/src/connection/webrtc/ManagedWebrtcConnection.ts +0 -27
- package/src/connection/websocket/WebsocketConnectorRpcLocal.ts +0 -39
package/dist/src/dht/DhtNode.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DhtNode = void 0;
|
|
3
|
+
exports.DhtNode = exports.CONTROL_LAYER_NODE_SERVICE_ID = void 0;
|
|
4
4
|
const utils_1 = require("@streamr/utils");
|
|
5
5
|
const eventemitter3_1 = require("eventemitter3");
|
|
6
6
|
const lodash_1 = require("lodash");
|
|
@@ -26,8 +26,10 @@ const StoreRpcRemote_1 = require("./store/StoreRpcRemote");
|
|
|
26
26
|
const cdn_location_1 = require("@streamr/cdn-location");
|
|
27
27
|
const logger = new utils_1.Logger(module);
|
|
28
28
|
const PERIODICAL_PING_INTERVAL = 60 * 1000;
|
|
29
|
+
// TODO move this to trackerless-network package and change serviceId to be a required paramater
|
|
30
|
+
exports.CONTROL_LAYER_NODE_SERVICE_ID = 'layer0';
|
|
29
31
|
class DhtNode extends eventemitter3_1.EventEmitter {
|
|
30
|
-
|
|
32
|
+
options;
|
|
31
33
|
rpcCommunicator;
|
|
32
34
|
transport;
|
|
33
35
|
localPeerDescriptor;
|
|
@@ -43,10 +45,10 @@ class DhtNode extends eventemitter3_1.EventEmitter {
|
|
|
43
45
|
abortController = new AbortController();
|
|
44
46
|
constructor(conf) {
|
|
45
47
|
super();
|
|
46
|
-
this.
|
|
47
|
-
serviceId:
|
|
48
|
+
this.options = (0, utils_1.merge)({
|
|
49
|
+
serviceId: exports.CONTROL_LAYER_NODE_SERVICE_ID,
|
|
48
50
|
joinParallelism: 3,
|
|
49
|
-
|
|
51
|
+
maxContactCount: 200,
|
|
50
52
|
numberOfNodesPerKBucket: 8,
|
|
51
53
|
joinNoProgressLimit: 5,
|
|
52
54
|
dhtJoinTimeout: 60000,
|
|
@@ -58,26 +60,26 @@ class DhtNode extends eventemitter3_1.EventEmitter {
|
|
|
58
60
|
storageRedundancyFactor: 5, // TODO validate that this is > 1 (as each node should replicate the data to other node)
|
|
59
61
|
metricsContext: new utils_1.MetricsContext()
|
|
60
62
|
}, conf);
|
|
61
|
-
this.
|
|
62
|
-
this.localDataStore = new LocalDataStore_1.LocalDataStore(this.
|
|
63
|
+
this.validateOptions();
|
|
64
|
+
this.localDataStore = new LocalDataStore_1.LocalDataStore(this.options.storeMaxTtl);
|
|
63
65
|
this.send = this.send.bind(this);
|
|
64
66
|
}
|
|
65
|
-
|
|
67
|
+
validateOptions() {
|
|
66
68
|
const expectedNodeIdLength = identifiers_1.KADEMLIA_ID_LENGTH_IN_BYTES * 2;
|
|
67
|
-
if (this.
|
|
68
|
-
if (!/^[0-9a-fA-F]+$/.test(this.
|
|
69
|
+
if (this.options.nodeId !== undefined) {
|
|
70
|
+
if (!/^[0-9a-fA-F]+$/.test(this.options.nodeId)) {
|
|
69
71
|
throw new Error('Invalid nodeId, the nodeId should be a hex string');
|
|
70
72
|
}
|
|
71
|
-
else if (this.
|
|
73
|
+
else if (this.options.nodeId.length !== expectedNodeIdLength) {
|
|
72
74
|
throw new Error(`Invalid nodeId, the length of the nodeId should be ${expectedNodeIdLength}`);
|
|
73
75
|
}
|
|
74
76
|
}
|
|
75
|
-
if (this.
|
|
76
|
-
if (this.
|
|
77
|
+
if (this.options.peerDescriptor !== undefined) {
|
|
78
|
+
if (this.options.peerDescriptor.nodeId.length !== identifiers_1.KADEMLIA_ID_LENGTH_IN_BYTES) {
|
|
77
79
|
throw new Error(`Invalid peerDescriptor, the length of the nodeId should be ${identifiers_1.KADEMLIA_ID_LENGTH_IN_BYTES} bytes`);
|
|
78
80
|
}
|
|
79
81
|
}
|
|
80
|
-
if (this.
|
|
82
|
+
if (this.options.transport !== undefined && this.options.connectionsView === undefined) {
|
|
81
83
|
throw new Error('connectionsView is required when transport is given');
|
|
82
84
|
}
|
|
83
85
|
}
|
|
@@ -85,72 +87,71 @@ class DhtNode extends eventemitter3_1.EventEmitter {
|
|
|
85
87
|
if (this.started || this.abortController.signal.aborted) {
|
|
86
88
|
return;
|
|
87
89
|
}
|
|
88
|
-
logger.trace(`Starting new Streamr Network DHT Node with serviceId ${this.
|
|
90
|
+
logger.trace(`Starting new Streamr Network DHT Node with serviceId ${this.options.serviceId}`);
|
|
89
91
|
this.started = true;
|
|
90
92
|
if ((0, isBrowserEnvironment_1.isBrowserEnvironment)()) {
|
|
91
|
-
this.
|
|
92
|
-
if (this.
|
|
93
|
-
this.
|
|
93
|
+
this.options.websocketPortRange = undefined;
|
|
94
|
+
if (this.options.peerDescriptor) {
|
|
95
|
+
this.options.peerDescriptor.websocket = undefined;
|
|
94
96
|
}
|
|
95
97
|
}
|
|
96
98
|
// If transport is given, do not create a ConnectionManager
|
|
97
|
-
if (this.
|
|
98
|
-
this.transport = this.
|
|
99
|
-
this.connectionsView = this.
|
|
100
|
-
this.connectionLocker = this.
|
|
99
|
+
if (this.options.transport) {
|
|
100
|
+
this.transport = this.options.transport;
|
|
101
|
+
this.connectionsView = this.options.connectionsView;
|
|
102
|
+
this.connectionLocker = this.options.connectionLocker;
|
|
101
103
|
this.localPeerDescriptor = this.transport.getLocalPeerDescriptor();
|
|
102
104
|
}
|
|
103
105
|
else {
|
|
104
|
-
const
|
|
106
|
+
const connectorFacadeOptions = {
|
|
105
107
|
transport: this,
|
|
106
|
-
entryPoints: this.
|
|
107
|
-
iceServers: this.
|
|
108
|
-
webrtcAllowPrivateAddresses: this.
|
|
109
|
-
webrtcDatachannelBufferThresholdLow: this.
|
|
110
|
-
webrtcDatachannelBufferThresholdHigh: this.
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
geoIpDatabaseFolder: this.config.geoIpDatabaseFolder,
|
|
108
|
+
entryPoints: this.options.entryPoints,
|
|
109
|
+
iceServers: this.options.iceServers,
|
|
110
|
+
webrtcAllowPrivateAddresses: this.options.webrtcAllowPrivateAddresses,
|
|
111
|
+
webrtcDatachannelBufferThresholdLow: this.options.webrtcDatachannelBufferThresholdLow,
|
|
112
|
+
webrtcDatachannelBufferThresholdHigh: this.options.webrtcDatachannelBufferThresholdHigh,
|
|
113
|
+
webrtcPortRange: this.options.webrtcPortRange,
|
|
114
|
+
maxMessageSize: this.options.maxMessageSize,
|
|
115
|
+
websocketServerEnableTls: this.options.websocketServerEnableTls,
|
|
116
|
+
tlsCertificate: this.options.tlsCertificate,
|
|
117
|
+
externalIp: this.options.externalIp,
|
|
118
|
+
autoCertifierUrl: this.options.autoCertifierUrl,
|
|
119
|
+
autoCertifierConfigFile: this.options.autoCertifierConfigFile,
|
|
120
|
+
geoIpDatabaseFolder: this.options.geoIpDatabaseFolder,
|
|
120
121
|
createLocalPeerDescriptor: (connectivityResponse) => this.generatePeerDescriptorCallBack(connectivityResponse)
|
|
121
122
|
};
|
|
122
|
-
// If own PeerDescriptor is given in
|
|
123
|
-
if (this.
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
min: this.
|
|
127
|
-
max: this.
|
|
123
|
+
// If own PeerDescriptor is given in options, create a ConnectionManager with ws server
|
|
124
|
+
if (this.options.peerDescriptor?.websocket) {
|
|
125
|
+
connectorFacadeOptions.websocketHost = this.options.peerDescriptor.websocket.host;
|
|
126
|
+
connectorFacadeOptions.websocketPortRange = {
|
|
127
|
+
min: this.options.peerDescriptor.websocket.port,
|
|
128
|
+
max: this.options.peerDescriptor.websocket.port
|
|
128
129
|
};
|
|
129
130
|
// If websocketPortRange is given, create ws server using it, websocketHost can be undefined
|
|
130
131
|
}
|
|
131
|
-
else if (this.
|
|
132
|
-
|
|
133
|
-
|
|
132
|
+
else if (this.options.websocketPortRange) {
|
|
133
|
+
connectorFacadeOptions.websocketHost = this.options.websocketHost;
|
|
134
|
+
connectorFacadeOptions.websocketPortRange = this.options.websocketPortRange;
|
|
134
135
|
}
|
|
135
136
|
const connectionManager = new ConnectionManager_1.ConnectionManager({
|
|
136
|
-
createConnectorFacade: () => new ConnectorFacade_1.DefaultConnectorFacade(
|
|
137
|
-
maxConnections: this.
|
|
138
|
-
metricsContext: this.
|
|
137
|
+
createConnectorFacade: () => new ConnectorFacade_1.DefaultConnectorFacade(connectorFacadeOptions),
|
|
138
|
+
maxConnections: this.options.maxConnections,
|
|
139
|
+
metricsContext: this.options.metricsContext
|
|
139
140
|
});
|
|
140
141
|
await connectionManager.start();
|
|
141
142
|
this.connectionsView = connectionManager;
|
|
142
143
|
this.connectionLocker = connectionManager;
|
|
143
144
|
this.transport = connectionManager;
|
|
144
145
|
}
|
|
145
|
-
this.rpcCommunicator = new RoutingRpcCommunicator_1.RoutingRpcCommunicator(this.
|
|
146
|
+
this.rpcCommunicator = new RoutingRpcCommunicator_1.RoutingRpcCommunicator(this.options.serviceId, (msg, opts) => this.transport.send(msg, opts), { rpcRequestTimeout: this.options.rpcRequestTimeout });
|
|
146
147
|
this.transport.on('message', (message) => this.handleMessageFromTransport(message));
|
|
147
148
|
this.initPeerManager();
|
|
148
149
|
this.peerDiscovery = new PeerDiscovery_1.PeerDiscovery({
|
|
149
150
|
localPeerDescriptor: this.localPeerDescriptor,
|
|
150
|
-
joinNoProgressLimit: this.
|
|
151
|
-
joinTimeout: this.
|
|
152
|
-
serviceId: this.
|
|
153
|
-
parallelism: this.
|
|
151
|
+
joinNoProgressLimit: this.options.joinNoProgressLimit,
|
|
152
|
+
joinTimeout: this.options.dhtJoinTimeout,
|
|
153
|
+
serviceId: this.options.serviceId,
|
|
154
|
+
parallelism: this.options.joinParallelism,
|
|
154
155
|
connectionLocker: this.connectionLocker,
|
|
155
156
|
peerManager: this.peerManager,
|
|
156
157
|
abortSignal: this.abortController.signal,
|
|
@@ -168,7 +169,7 @@ class DhtNode extends eventemitter3_1.EventEmitter {
|
|
|
168
169
|
sessionTransport: this,
|
|
169
170
|
connectionsView: this.connectionsView,
|
|
170
171
|
localPeerDescriptor: this.localPeerDescriptor,
|
|
171
|
-
serviceId: this.
|
|
172
|
+
serviceId: this.options.serviceId,
|
|
172
173
|
localDataStore: this.localDataStore,
|
|
173
174
|
addContact: (contact) => this.peerManager.addContact(contact),
|
|
174
175
|
createDhtNodeRpcRemote: (peerDescriptor) => this.createDhtNodeRpcRemote(peerDescriptor),
|
|
@@ -177,13 +178,13 @@ class DhtNode extends eventemitter3_1.EventEmitter {
|
|
|
177
178
|
rpcCommunicator: this.rpcCommunicator,
|
|
178
179
|
recursiveOperationManager: this.recursiveOperationManager,
|
|
179
180
|
localPeerDescriptor: this.localPeerDescriptor,
|
|
180
|
-
serviceId: this.
|
|
181
|
-
highestTtl: this.
|
|
182
|
-
redundancyFactor: this.
|
|
181
|
+
serviceId: this.options.serviceId,
|
|
182
|
+
highestTtl: this.options.storeHighestTtl,
|
|
183
|
+
redundancyFactor: this.options.storageRedundancyFactor,
|
|
183
184
|
localDataStore: this.localDataStore,
|
|
184
185
|
getNeighbors: () => this.peerManager.getNeighbors().map((n) => n.getPeerDescriptor()),
|
|
185
186
|
createRpcRemote: (contact) => {
|
|
186
|
-
return new StoreRpcRemote_1.StoreRpcRemote(this.localPeerDescriptor, contact, this.rpcCommunicator, DhtRpc_client_1.StoreRpcClient, this.
|
|
187
|
+
return new StoreRpcRemote_1.StoreRpcRemote(this.localPeerDescriptor, contact, this.rpcCommunicator, DhtRpc_client_1.StoreRpcClient, this.options.rpcRequestTimeout);
|
|
187
188
|
}
|
|
188
189
|
});
|
|
189
190
|
this.on('nearbyContactAdded', (peerDescriptor) => {
|
|
@@ -191,10 +192,10 @@ class DhtNode extends eventemitter3_1.EventEmitter {
|
|
|
191
192
|
});
|
|
192
193
|
this.bindRpcLocalMethods();
|
|
193
194
|
const pruneTargets = [];
|
|
194
|
-
if (this.
|
|
195
|
+
if (this.options.periodicallyPingNeighbors === true) {
|
|
195
196
|
pruneTargets.push(() => this.peerManager.getNeighbors().map((node) => this.createDhtNodeRpcRemote(node.getPeerDescriptor())));
|
|
196
197
|
}
|
|
197
|
-
if (this.
|
|
198
|
+
if (this.options.periodicallyPingRingContacts === true) {
|
|
198
199
|
pruneTargets.push(() => this.peerManager.getRingContacts().getAllContacts());
|
|
199
200
|
}
|
|
200
201
|
for (const pruneTarget of pruneTargets) {
|
|
@@ -206,12 +207,12 @@ class DhtNode extends eventemitter3_1.EventEmitter {
|
|
|
206
207
|
}
|
|
207
208
|
initPeerManager() {
|
|
208
209
|
this.peerManager = new PeerManager_1.PeerManager({
|
|
209
|
-
numberOfNodesPerKBucket: this.
|
|
210
|
-
|
|
210
|
+
numberOfNodesPerKBucket: this.options.numberOfNodesPerKBucket,
|
|
211
|
+
maxContactCount: this.options.maxContactCount,
|
|
211
212
|
localNodeId: this.getNodeId(),
|
|
212
213
|
localPeerDescriptor: this.localPeerDescriptor,
|
|
213
214
|
connectionLocker: this.connectionLocker,
|
|
214
|
-
lockId: this.
|
|
215
|
+
lockId: this.options.serviceId,
|
|
215
216
|
createDhtNodeRpcRemote: (peerDescriptor) => this.createDhtNodeRpcRemote(peerDescriptor),
|
|
216
217
|
hasConnection: (nodeId) => this.connectionsView.hasConnection(nodeId)
|
|
217
218
|
});
|
|
@@ -229,12 +230,12 @@ class DhtNode extends eventemitter3_1.EventEmitter {
|
|
|
229
230
|
});
|
|
230
231
|
this.peerManager.on('kBucketEmpty', () => {
|
|
231
232
|
if (!this.peerDiscovery.isJoinOngoing()) {
|
|
232
|
-
if (this.
|
|
233
|
+
if (this.options.entryPoints && this.options.entryPoints.length > 0) {
|
|
233
234
|
setImmediate(async () => {
|
|
234
235
|
const contactedPeers = new Set();
|
|
235
236
|
const distantJoinContactPeers = new Set();
|
|
236
237
|
// TODO should we catch possible promise rejection?
|
|
237
|
-
await Promise.all(this.
|
|
238
|
+
await Promise.all(this.options.entryPoints.map((entryPoint) => this.peerDiscovery.rejoinDht(entryPoint, contactedPeers, distantJoinContactPeers)));
|
|
238
239
|
});
|
|
239
240
|
}
|
|
240
241
|
else {
|
|
@@ -247,8 +248,8 @@ class DhtNode extends eventemitter3_1.EventEmitter {
|
|
|
247
248
|
this.emit('connected', peerDescriptor);
|
|
248
249
|
});
|
|
249
250
|
this.transport.on('disconnected', (peerDescriptor, gracefulLeave) => {
|
|
250
|
-
const
|
|
251
|
-
if (
|
|
251
|
+
const isControlLayerNode = (this.connectionLocker !== undefined);
|
|
252
|
+
if (isControlLayerNode) {
|
|
252
253
|
const nodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
|
|
253
254
|
if (gracefulLeave) {
|
|
254
255
|
this.peerManager.removeContact(nodeId);
|
|
@@ -266,7 +267,7 @@ class DhtNode extends eventemitter3_1.EventEmitter {
|
|
|
266
267
|
return;
|
|
267
268
|
}
|
|
268
269
|
const dhtNodeRpcLocal = new DhtNodeRpcLocal_1.DhtNodeRpcLocal({
|
|
269
|
-
peerDiscoveryQueryBatchSize: this.
|
|
270
|
+
peerDiscoveryQueryBatchSize: this.options.peerDiscoveryQueryBatchSize,
|
|
270
271
|
getNeighbors: () => this.peerManager.getNeighbors().map((n) => n.getPeerDescriptor()),
|
|
271
272
|
getClosestRingContactsTo: (ringIdRaw, limit) => {
|
|
272
273
|
return this.getClosestRingContactsTo(ringIdRaw, limit);
|
|
@@ -284,18 +285,18 @@ class DhtNode extends eventemitter3_1.EventEmitter {
|
|
|
284
285
|
},
|
|
285
286
|
storeDataToDht: (key, data, creator) => this.storeDataToDht(key, data, creator)
|
|
286
287
|
});
|
|
287
|
-
this.rpcCommunicator.registerRpcMethod(DhtRpc_1.ExternalFetchDataRequest, DhtRpc_1.ExternalFetchDataResponse, 'externalFetchData', (req, context) => externalApiRpcLocal.externalFetchData(req, context), { timeout: 10000 } // TODO use
|
|
288
|
+
this.rpcCommunicator.registerRpcMethod(DhtRpc_1.ExternalFetchDataRequest, DhtRpc_1.ExternalFetchDataResponse, 'externalFetchData', (req, context) => externalApiRpcLocal.externalFetchData(req, context), { timeout: 10000 } // TODO use options option or named constant?
|
|
288
289
|
);
|
|
289
|
-
this.rpcCommunicator.registerRpcMethod(DhtRpc_1.ExternalStoreDataRequest, DhtRpc_1.ExternalStoreDataResponse, 'externalStoreData', (req, context) => externalApiRpcLocal.externalStoreData(req, context), { timeout: 10000 } // TODO use
|
|
290
|
+
this.rpcCommunicator.registerRpcMethod(DhtRpc_1.ExternalStoreDataRequest, DhtRpc_1.ExternalStoreDataResponse, 'externalStoreData', (req, context) => externalApiRpcLocal.externalStoreData(req, context), { timeout: 10000 } // TODO use options option or named constant?
|
|
290
291
|
);
|
|
291
292
|
}
|
|
292
293
|
handleMessageFromTransport(message) {
|
|
293
|
-
if (message.serviceId === this.
|
|
294
|
+
if (message.serviceId === this.options.serviceId) {
|
|
294
295
|
this.rpcCommunicator?.handleMessageFromPeer(message);
|
|
295
296
|
}
|
|
296
297
|
}
|
|
297
298
|
handleMessageFromRouter(message) {
|
|
298
|
-
if (message.serviceId === this.
|
|
299
|
+
if (message.serviceId === this.options.serviceId) {
|
|
299
300
|
this.rpcCommunicator?.handleMessageFromPeer(message);
|
|
300
301
|
}
|
|
301
302
|
else {
|
|
@@ -303,14 +304,14 @@ class DhtNode extends eventemitter3_1.EventEmitter {
|
|
|
303
304
|
}
|
|
304
305
|
}
|
|
305
306
|
async generatePeerDescriptorCallBack(connectivityResponse) {
|
|
306
|
-
if (this.
|
|
307
|
-
this.localPeerDescriptor = this.
|
|
307
|
+
if (this.options.peerDescriptor !== undefined) {
|
|
308
|
+
this.localPeerDescriptor = this.options.peerDescriptor;
|
|
308
309
|
}
|
|
309
310
|
else {
|
|
310
311
|
let region = undefined;
|
|
311
|
-
if (this.
|
|
312
|
-
region = this.
|
|
313
|
-
logger.debug(`Using region ${region} from
|
|
312
|
+
if (this.options.region !== undefined) {
|
|
313
|
+
region = this.options.region;
|
|
314
|
+
logger.debug(`Using region ${region} from options when generating local PeerDescriptor`);
|
|
314
315
|
}
|
|
315
316
|
else if (connectivityResponse.latitude !== undefined && connectivityResponse.longitude !== undefined) {
|
|
316
317
|
region = (0, cdn_location_1.getLocalRegionByCoordinates)(connectivityResponse.latitude, connectivityResponse.longitude);
|
|
@@ -322,7 +323,7 @@ class DhtNode extends eventemitter3_1.EventEmitter {
|
|
|
322
323
|
region = await (0, cdn_location_1.getLocalRegionWithCache)();
|
|
323
324
|
logger.debug(`Using region ${region} from CDN when generating local PeerDescriptor`);
|
|
324
325
|
}
|
|
325
|
-
this.localPeerDescriptor = (0, createPeerDescriptor_1.createPeerDescriptor)(connectivityResponse, region, this.
|
|
326
|
+
this.localPeerDescriptor = (0, createPeerDescriptor_1.createPeerDescriptor)(connectivityResponse, region, this.options.nodeId);
|
|
326
327
|
}
|
|
327
328
|
return this.localPeerDescriptor;
|
|
328
329
|
}
|
|
@@ -368,7 +369,7 @@ class DhtNode extends eventemitter3_1.EventEmitter {
|
|
|
368
369
|
this.router.send(msg, reachableThrough);
|
|
369
370
|
}
|
|
370
371
|
getConnectedEntryPoints() {
|
|
371
|
-
return this.
|
|
372
|
+
return this.options.entryPoints !== undefined ? this.options.entryPoints.filter((entryPoint) => this.connectionsView.hasConnection((0, identifiers_1.getNodeIdFromPeerDescriptor)(entryPoint))) : [];
|
|
372
373
|
}
|
|
373
374
|
async joinDht(entryPointDescriptors, doAdditionalDistantPeerDiscovery, retry) {
|
|
374
375
|
if (!this.started) {
|
|
@@ -436,7 +437,7 @@ class DhtNode extends eventemitter3_1.EventEmitter {
|
|
|
436
437
|
return this.connectionLocker.getWeakLockedConnectionCount();
|
|
437
438
|
}
|
|
438
439
|
async waitForNetworkConnectivity() {
|
|
439
|
-
await (0, utils_1.waitForCondition)(() => this.connectionsView.getConnectionCount() > 0, this.
|
|
440
|
+
await (0, utils_1.waitForCondition)(() => this.connectionsView.getConnectionCount() > 0, this.options.networkConnectivityTimeout, 100, this.abortController.signal);
|
|
440
441
|
}
|
|
441
442
|
hasJoined() {
|
|
442
443
|
return this.peerDiscovery.isJoinCalled();
|
|
@@ -453,8 +454,8 @@ class DhtNode extends eventemitter3_1.EventEmitter {
|
|
|
453
454
|
this.rpcCommunicator.stop();
|
|
454
455
|
this.router.stop();
|
|
455
456
|
this.recursiveOperationManager.stop();
|
|
456
|
-
if (this.
|
|
457
|
-
// if the transport was not given in
|
|
457
|
+
if (this.options.transport === undefined) {
|
|
458
|
+
// if the transport was not given in options, the instance was created in start() and
|
|
458
459
|
// this component is responsible for stopping it
|
|
459
460
|
await this.transport.stop();
|
|
460
461
|
}
|
|
@@ -463,7 +464,7 @@ class DhtNode extends eventemitter3_1.EventEmitter {
|
|
|
463
464
|
this.removeAllListeners();
|
|
464
465
|
}
|
|
465
466
|
createDhtNodeRpcRemote(peerDescriptor) {
|
|
466
|
-
return new DhtNodeRpcRemote_1.DhtNodeRpcRemote(this.localPeerDescriptor, peerDescriptor, this.
|
|
467
|
+
return new DhtNodeRpcRemote_1.DhtNodeRpcRemote(this.localPeerDescriptor, peerDescriptor, this.options.serviceId, this.rpcCommunicator, this.options.rpcRequestTimeout);
|
|
467
468
|
}
|
|
468
469
|
}
|
|
469
470
|
exports.DhtNode = DhtNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DhtNode.js","sourceRoot":"","sources":["../../../src/dht/DhtNode.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DhtNode.js","sourceRoot":"","sources":["../../../src/dht/DhtNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import { ClosestPeersRequest, ClosestPeersResponse, ClosestRingPeersRequest, Clo
|
|
|
5
5
|
import { IDhtNodeRpc } from '../proto/packages/dht/protos/DhtRpc.server';
|
|
6
6
|
import { RingContacts } from './contact/RingContactList';
|
|
7
7
|
import { RingIdRaw } from './contact/ringIdentifiers';
|
|
8
|
-
interface
|
|
8
|
+
interface DhtNodeRpcLocalOptions {
|
|
9
9
|
peerDiscoveryQueryBatchSize: number;
|
|
10
10
|
getNeighbors: () => ReadonlyArray<PeerDescriptor>;
|
|
11
11
|
getClosestRingContactsTo: (id: RingIdRaw, limit: number) => RingContacts;
|
|
@@ -13,8 +13,8 @@ interface DhtNodeRpcLocalConfig {
|
|
|
13
13
|
removeContact: (nodeId: DhtAddress) => void;
|
|
14
14
|
}
|
|
15
15
|
export declare class DhtNodeRpcLocal implements IDhtNodeRpc {
|
|
16
|
-
private readonly
|
|
17
|
-
constructor(
|
|
16
|
+
private readonly options;
|
|
17
|
+
constructor(options: DhtNodeRpcLocalOptions);
|
|
18
18
|
getClosestPeers(request: ClosestPeersRequest, context: ServerCallContext): Promise<ClosestPeersResponse>;
|
|
19
19
|
getClosestRingPeers(request: ClosestRingPeersRequest, context: ServerCallContext): Promise<ClosestRingPeersResponse>;
|
|
20
20
|
ping(request: PingRequest, context: ServerCallContext): Promise<PingResponse>;
|
|
@@ -6,14 +6,14 @@ const identifiers_1 = require("../identifiers");
|
|
|
6
6
|
const getClosestNodes_1 = require("./contact/getClosestNodes");
|
|
7
7
|
const logger = new utils_1.Logger(module);
|
|
8
8
|
class DhtNodeRpcLocal {
|
|
9
|
-
|
|
10
|
-
constructor(
|
|
11
|
-
this.
|
|
9
|
+
options;
|
|
10
|
+
constructor(options) {
|
|
11
|
+
this.options = options;
|
|
12
12
|
}
|
|
13
13
|
// TODO rename to getClosestNeighbors (breaking change)
|
|
14
14
|
async getClosestPeers(request, context) {
|
|
15
|
-
this.
|
|
16
|
-
const peers = (0, getClosestNodes_1.getClosestNodes)((0, identifiers_1.getDhtAddressFromRaw)(request.nodeId), this.
|
|
15
|
+
this.options.addContact(context.incomingSourceDescriptor);
|
|
16
|
+
const peers = (0, getClosestNodes_1.getClosestNodes)((0, identifiers_1.getDhtAddressFromRaw)(request.nodeId), this.options.getNeighbors(), { maxCount: this.options.peerDiscoveryQueryBatchSize });
|
|
17
17
|
const response = {
|
|
18
18
|
peers,
|
|
19
19
|
requestId: request.requestId
|
|
@@ -22,8 +22,8 @@ class DhtNodeRpcLocal {
|
|
|
22
22
|
}
|
|
23
23
|
// TODO rename to getClosestRingContacts (breaking change)
|
|
24
24
|
async getClosestRingPeers(request, context) {
|
|
25
|
-
this.
|
|
26
|
-
const closestContacts = this.
|
|
25
|
+
this.options.addContact(context.incomingSourceDescriptor);
|
|
26
|
+
const closestContacts = this.options.getClosestRingContactsTo(request.ringId, this.options.peerDiscoveryQueryBatchSize);
|
|
27
27
|
const response = {
|
|
28
28
|
leftPeers: closestContacts.left,
|
|
29
29
|
rightPeers: closestContacts.right,
|
|
@@ -34,7 +34,7 @@ class DhtNodeRpcLocal {
|
|
|
34
34
|
async ping(request, context) {
|
|
35
35
|
logger.trace('received ping request: ' + (0, identifiers_1.getNodeIdFromPeerDescriptor)(context.incomingSourceDescriptor));
|
|
36
36
|
setImmediate(() => {
|
|
37
|
-
this.
|
|
37
|
+
this.options.addContact(context.incomingSourceDescriptor);
|
|
38
38
|
});
|
|
39
39
|
const response = {
|
|
40
40
|
requestId: request.requestId
|
|
@@ -46,7 +46,7 @@ class DhtNodeRpcLocal {
|
|
|
46
46
|
const sender = context.incomingSourceDescriptor;
|
|
47
47
|
const senderNodeId = (0, identifiers_1.getNodeIdFromPeerDescriptor)(sender);
|
|
48
48
|
logger.trace('received leave notice: ' + senderNodeId);
|
|
49
|
-
this.
|
|
49
|
+
this.options.removeContact(senderNodeId);
|
|
50
50
|
return {};
|
|
51
51
|
}
|
|
52
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DhtNodeRpcLocal.js","sourceRoot":"","sources":["../../../src/dht/DhtNodeRpcLocal.ts"],"names":[],"mappings":";;;AACA,0CAAuC;AACvC,gDAA8F;AAc9F,+DAA2D;AAW3D,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,eAAe;IAEP,
|
|
1
|
+
{"version":3,"file":"DhtNodeRpcLocal.js","sourceRoot":"","sources":["../../../src/dht/DhtNodeRpcLocal.ts"],"names":[],"mappings":";;;AACA,0CAAuC;AACvC,gDAA8F;AAc9F,+DAA2D;AAW3D,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,eAAe;IAEP,OAAO,CAAwB;IAEhD,YAAY,OAA+B;QACvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IAC1B,CAAC;IAED,uDAAuD;IACvD,KAAK,CAAC,eAAe,CAAC,OAA4B,EAAE,OAA0B;QAC1E,IAAI,CAAC,OAAO,CAAC,UAAU,CAAE,OAA0B,CAAC,wBAAyB,CAAC,CAAA;QAC9E,MAAM,KAAK,GAAG,IAAA,iCAAe,EACzB,IAAA,kCAAoB,EAAC,OAAO,CAAC,MAAM,CAAC,EACpC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAC3B,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,2BAA2B,EAAE,CACzD,CAAA;QACD,MAAM,QAAQ,GAAG;YACb,KAAK;YACL,SAAS,EAAE,OAAO,CAAC,SAAS;SAC/B,CAAA;QACD,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,0DAA0D;IAC1D,KAAK,CAAC,mBAAmB,CAAC,OAAgC,EAAE,OAA0B;QAClF,IAAI,CAAC,OAAO,CAAC,UAAU,CAAE,OAA0B,CAAC,wBAAyB,CAAC,CAAA;QAC9E,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,OAAO,CAAC,MAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAA;QACpI,MAAM,QAAQ,GAAG;YACb,SAAS,EAAE,eAAe,CAAC,IAAI;YAC/B,UAAU,EAAE,eAAe,CAAC,KAAK;YACjC,SAAS,EAAE,OAAO,CAAC,SAAS;SAC/B,CAAA;QACD,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAoB,EAAE,OAA0B;QACvD,MAAM,CAAC,KAAK,CAAC,yBAAyB,GAAG,IAAA,yCAA2B,EAAE,OAA0B,CAAC,wBAAyB,CAAC,CAAC,CAAA;QAC5H,YAAY,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,UAAU,CAAE,OAA0B,CAAC,wBAAyB,CAAC,CAAA;QAClF,CAAC,CAAC,CAAA;QACF,MAAM,QAAQ,GAAiB;YAC3B,SAAS,EAAE,OAAO,CAAC,SAAS;SAC/B,CAAA;QACD,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAA0B;QACxC,yBAAyB;QACzB,MAAM,MAAM,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QACpE,MAAM,YAAY,GAAG,IAAA,yCAA2B,EAAC,MAAM,CAAC,CAAA;QACxD,MAAM,CAAC,KAAK,CAAC,yBAAyB,GAAG,YAAY,CAAC,CAAA;QACtD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAA;QACxC,OAAO,EAAE,CAAA;IACb,CAAC;CACJ;AAtDD,0CAsDC"}
|
|
@@ -4,13 +4,13 @@ import { ServerCallContext } from '@protobuf-ts/runtime-rpc';
|
|
|
4
4
|
import { RecursiveOperationResult } from './recursive-operation/RecursiveOperationManager';
|
|
5
5
|
import { Any } from '../proto/google/protobuf/any';
|
|
6
6
|
import { DhtAddress } from '../identifiers';
|
|
7
|
-
interface
|
|
7
|
+
interface ExternalApiRpcLocalOptions {
|
|
8
8
|
executeRecursiveOperation: (targetId: DhtAddress, operation: RecursiveOperation, excludedPeer: DhtAddress) => Promise<RecursiveOperationResult>;
|
|
9
9
|
storeDataToDht: (key: DhtAddress, data: Any, creator: DhtAddress) => Promise<PeerDescriptor[]>;
|
|
10
10
|
}
|
|
11
11
|
export declare class ExternalApiRpcLocal implements IExternalApiRpc {
|
|
12
|
-
private readonly
|
|
13
|
-
constructor(
|
|
12
|
+
private readonly options;
|
|
13
|
+
constructor(options: ExternalApiRpcLocalOptions);
|
|
14
14
|
externalFetchData(request: ExternalFetchDataRequest, context: ServerCallContext): Promise<ExternalFetchDataResponse>;
|
|
15
15
|
externalStoreData(request: ExternalStoreDataRequest, context: ServerCallContext): Promise<ExternalStoreDataResponse>;
|
|
16
16
|
}
|
|
@@ -5,18 +5,18 @@ const DhtRpc_1 = require("../proto/packages/dht/protos/DhtRpc");
|
|
|
5
5
|
const identifiers_1 = require("../identifiers");
|
|
6
6
|
const identifiers_2 = require("../identifiers");
|
|
7
7
|
class ExternalApiRpcLocal {
|
|
8
|
-
|
|
9
|
-
constructor(
|
|
10
|
-
this.
|
|
8
|
+
options;
|
|
9
|
+
constructor(options) {
|
|
10
|
+
this.options = options;
|
|
11
11
|
}
|
|
12
12
|
async externalFetchData(request, context) {
|
|
13
13
|
const senderPeerDescriptor = context.incomingSourceDescriptor;
|
|
14
|
-
const result = await this.
|
|
14
|
+
const result = await this.options.executeRecursiveOperation((0, identifiers_2.getDhtAddressFromRaw)(request.key), DhtRpc_1.RecursiveOperation.FETCH_DATA, (0, identifiers_1.getNodeIdFromPeerDescriptor)(senderPeerDescriptor));
|
|
15
15
|
return DhtRpc_1.ExternalFetchDataResponse.create({ entries: result.dataEntries ?? [] });
|
|
16
16
|
}
|
|
17
17
|
async externalStoreData(request, context) {
|
|
18
18
|
const senderPeerDescriptor = context.incomingSourceDescriptor;
|
|
19
|
-
const result = await this.
|
|
19
|
+
const result = await this.options.storeDataToDht((0, identifiers_2.getDhtAddressFromRaw)(request.key), request.data, (0, identifiers_1.getNodeIdFromPeerDescriptor)(senderPeerDescriptor));
|
|
20
20
|
return DhtRpc_1.ExternalStoreDataResponse.create({
|
|
21
21
|
storers: result
|
|
22
22
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExternalApiRpcLocal.js","sourceRoot":"","sources":["../../../src/dht/ExternalApiRpcLocal.ts"],"names":[],"mappings":";;;AACA,gEAO4C;AAK5C,gDAAwE;AACxE,gDAAqD;AAerD,MAAa,mBAAmB;IAEX,
|
|
1
|
+
{"version":3,"file":"ExternalApiRpcLocal.js","sourceRoot":"","sources":["../../../src/dht/ExternalApiRpcLocal.ts"],"names":[],"mappings":";;;AACA,gEAO4C;AAK5C,gDAAwE;AACxE,gDAAqD;AAerD,MAAa,mBAAmB;IAEX,OAAO,CAA4B;IAEpD,YAAY,OAAmC;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,OAAiC,EAAE,OAA0B;QACjF,MAAM,oBAAoB,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QAClF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,yBAAyB,CACvD,IAAA,kCAAoB,EAAC,OAAO,CAAC,GAAG,CAAC,EACjC,2BAAkB,CAAC,UAAU,EAC7B,IAAA,yCAA2B,EAAC,oBAAoB,CAAC,CACpD,CAAA;QACD,OAAO,kCAAyB,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC,CAAA;IAClF,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,OAAiC,EAAE,OAA0B;QACjF,MAAM,oBAAoB,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QAClF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAC5C,IAAA,kCAAoB,EAAC,OAAO,CAAC,GAAG,CAAC,EACjC,OAAO,CAAC,IAAK,EACb,IAAA,yCAA2B,EAAC,oBAAoB,CAAC,CACpD,CAAA;QACD,OAAO,kCAAyB,CAAC,MAAM,CAAC;YACpC,OAAO,EAAE,MAAM;SAClB,CAAC,CAAA;IACN,CAAC;CACJ;AA7BD,kDA6BC"}
|
|
@@ -9,7 +9,7 @@ class ExternalApiRpcRemote extends RpcRemote_1.RpcRemote {
|
|
|
9
9
|
key: (0, identifiers_1.getRawFromDhtAddress)(key)
|
|
10
10
|
};
|
|
11
11
|
const options = this.formDhtRpcOptions({
|
|
12
|
-
// TODO use
|
|
12
|
+
// TODO use options option or named constant?
|
|
13
13
|
timeout: 10000
|
|
14
14
|
});
|
|
15
15
|
try {
|
|
@@ -26,7 +26,7 @@ class ExternalApiRpcRemote extends RpcRemote_1.RpcRemote {
|
|
|
26
26
|
data
|
|
27
27
|
};
|
|
28
28
|
const options = this.formDhtRpcOptions({
|
|
29
|
-
// TODO use
|
|
29
|
+
// TODO use options option or named constant?
|
|
30
30
|
timeout: 10000
|
|
31
31
|
});
|
|
32
32
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExternalApiRpcRemote.js","sourceRoot":"","sources":["../../../src/dht/ExternalApiRpcRemote.ts"],"names":[],"mappings":";;;AAAA,gDAAiE;AAIjE,mDAA+C;AAE/C,MAAa,oBAAqB,SAAQ,qBAA+B;IAErE,KAAK,CAAC,iBAAiB,CAAC,GAAe;QACnC,MAAM,OAAO,GAA6B;YACtC,GAAG,EAAE,IAAA,kCAAoB,EAAC,GAAG,CAAC;SACjC,CAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACnC,
|
|
1
|
+
{"version":3,"file":"ExternalApiRpcRemote.js","sourceRoot":"","sources":["../../../src/dht/ExternalApiRpcRemote.ts"],"names":[],"mappings":";;;AAAA,gDAAiE;AAIjE,mDAA+C;AAE/C,MAAa,oBAAqB,SAAQ,qBAA+B;IAErE,KAAK,CAAC,iBAAiB,CAAC,GAAe;QACnC,MAAM,OAAO,GAA6B;YACtC,GAAG,EAAE,IAAA,kCAAoB,EAAC,GAAG,CAAC;SACjC,CAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACnC,6CAA6C;YAC7C,OAAO,EAAE,KAAK;SACjB,CAAC,CAAA;QACF,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YACvE,OAAO,IAAI,CAAC,OAAO,CAAA;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,OAAO,EAAE,CAAA;QACb,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAe,EAAE,IAAS;QACtC,MAAM,OAAO,GAA6B;YACtC,GAAG,EAAE,IAAA,kCAAoB,EAAC,GAAG,CAAC;YAC9B,IAAI;SACP,CAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACnC,6CAA6C;YAC7C,OAAO,EAAE,KAAK;SACjB,CAAC,CAAA;QACF,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAC3E,OAAO,QAAQ,CAAC,OAAO,CAAA;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,OAAO,EAAE,CAAA;QACb,CAAC;IACL,CAAC;CACJ;AAlCD,oDAkCC"}
|