@streamr/trackerless-network 100.0.0-pretestnet.6 → 100.0.0-rc.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/README.md +57 -0
- package/dist/package.json +12 -12
- package/dist/src/NetworkNode.d.ts +6 -5
- package/dist/src/NetworkNode.js +9 -2
- package/dist/src/NetworkNode.js.map +1 -1
- package/dist/src/NetworkStack.d.ts +13 -9
- package/dist/src/NetworkStack.js +80 -12
- package/dist/src/NetworkStack.js.map +1 -1
- package/dist/src/exports.d.ts +4 -3
- package/dist/src/exports.js +12 -1
- package/dist/src/exports.js.map +1 -1
- package/dist/src/logic/DeliveryRpcLocal.d.ts +4 -5
- package/dist/src/logic/DeliveryRpcLocal.js +6 -5
- package/dist/src/logic/DeliveryRpcLocal.js.map +1 -1
- package/dist/src/logic/DeliveryRpcRemote.d.ts +5 -4
- package/dist/src/logic/DeliveryRpcRemote.js +4 -3
- package/dist/src/logic/DeliveryRpcRemote.js.map +1 -1
- package/dist/src/logic/DuplicateMessageDetector.d.ts +3 -3
- package/dist/src/logic/DuplicateMessageDetector.js +10 -6
- package/dist/src/logic/DuplicateMessageDetector.js.map +1 -1
- package/dist/src/logic/EntryPointDiscovery.d.ts +8 -5
- package/dist/src/logic/EntryPointDiscovery.js +24 -15
- package/dist/src/logic/EntryPointDiscovery.js.map +1 -1
- package/dist/src/logic/Layer0Node.d.ts +6 -4
- package/dist/src/logic/Layer1Node.d.ts +12 -6
- package/dist/src/logic/NodeList.d.ts +13 -15
- package/dist/src/logic/NodeList.js +19 -16
- package/dist/src/logic/NodeList.js.map +1 -1
- package/dist/src/logic/RandomGraphNode.d.ts +26 -22
- package/dist/src/logic/RandomGraphNode.js +85 -52
- package/dist/src/logic/RandomGraphNode.js.map +1 -1
- package/dist/src/logic/StreamrNode.d.ts +6 -6
- package/dist/src/logic/StreamrNode.js +53 -37
- package/dist/src/logic/StreamrNode.js.map +1 -1
- package/dist/src/logic/createRandomGraphNode.d.ts +2 -2
- package/dist/src/logic/createRandomGraphNode.js +33 -21
- package/dist/src/logic/createRandomGraphNode.js.map +1 -1
- package/dist/src/logic/formStreamPartDeliveryServiceId.d.ts +2 -1
- package/dist/src/logic/formStreamPartDeliveryServiceId.js.map +1 -1
- package/dist/src/logic/inspect/InspectSession.d.ts +4 -3
- package/dist/src/logic/inspect/InspectSession.js +6 -2
- package/dist/src/logic/inspect/InspectSession.js.map +1 -1
- package/dist/src/logic/inspect/Inspector.d.ts +11 -16
- package/dist/src/logic/inspect/Inspector.js +21 -9
- package/dist/src/logic/inspect/Inspector.js.map +1 -1
- package/dist/src/logic/neighbor-discovery/HandshakeRpcLocal.d.ts +7 -9
- package/dist/src/logic/neighbor-discovery/HandshakeRpcLocal.js +55 -32
- package/dist/src/logic/neighbor-discovery/HandshakeRpcLocal.js.map +1 -1
- package/dist/src/logic/neighbor-discovery/HandshakeRpcRemote.d.ts +8 -6
- package/dist/src/logic/neighbor-discovery/HandshakeRpcRemote.js +25 -16
- package/dist/src/logic/neighbor-discovery/HandshakeRpcRemote.js.map +1 -1
- package/dist/src/logic/neighbor-discovery/Handshaker.d.ts +9 -15
- package/dist/src/logic/neighbor-discovery/Handshaker.js +68 -44
- package/dist/src/logic/neighbor-discovery/Handshaker.js.map +1 -1
- package/dist/src/logic/neighbor-discovery/NeighborFinder.d.ts +8 -10
- package/dist/src/logic/neighbor-discovery/NeighborFinder.js +12 -2
- package/dist/src/logic/neighbor-discovery/NeighborFinder.js.map +1 -1
- package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.d.ts +7 -10
- package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js +11 -9
- package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js.map +1 -1
- package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.d.ts +8 -4
- package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.js +33 -24
- package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.js.map +1 -1
- package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcRemote.d.ts +5 -4
- package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcRemote.js +4 -5
- package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcRemote.js.map +1 -1
- package/dist/src/logic/node-info/NodeInfoClient.d.ts +9 -0
- package/dist/src/logic/node-info/NodeInfoClient.js +21 -0
- package/dist/src/logic/node-info/NodeInfoClient.js.map +1 -0
- package/dist/src/logic/node-info/NodeInfoRpcLocal.d.ts +12 -0
- package/dist/src/logic/node-info/NodeInfoRpcLocal.js +22 -0
- package/dist/src/logic/node-info/NodeInfoRpcLocal.js.map +1 -0
- package/dist/src/logic/node-info/NodeInfoRpcRemote.d.ts +6 -0
- package/dist/src/logic/node-info/NodeInfoRpcRemote.js +11 -0
- package/dist/src/logic/node-info/NodeInfoRpcRemote.js.map +1 -0
- package/dist/src/logic/propagation/FifoMapWithTTL.js +7 -3
- package/dist/src/logic/propagation/FifoMapWithTTL.js.map +1 -1
- package/dist/src/logic/propagation/Propagation.d.ts +4 -4
- package/dist/src/logic/propagation/Propagation.js +4 -0
- package/dist/src/logic/propagation/Propagation.js.map +1 -1
- package/dist/src/logic/propagation/PropagationTaskStore.d.ts +2 -2
- package/dist/src/logic/propagation/PropagationTaskStore.js +1 -0
- package/dist/src/logic/propagation/PropagationTaskStore.js.map +1 -1
- package/dist/src/logic/protocol-integration/stream-message/GroupKeyRequestTranslator.js +1 -1
- package/dist/src/logic/protocol-integration/stream-message/GroupKeyRequestTranslator.js.map +1 -1
- package/dist/src/logic/protocol-integration/stream-message/GroupKeyResponseTranslator.js +1 -1
- package/dist/src/logic/protocol-integration/stream-message/GroupKeyResponseTranslator.js.map +1 -1
- package/dist/src/logic/protocol-integration/stream-message/StreamMessageTranslator.js +87 -53
- package/dist/src/logic/protocol-integration/stream-message/StreamMessageTranslator.js.map +1 -1
- package/dist/src/logic/protocol-integration/stream-message/oldStreamMessageBinaryUtils.d.ts +7 -0
- package/dist/src/logic/protocol-integration/stream-message/oldStreamMessageBinaryUtils.js +32 -0
- package/dist/src/logic/protocol-integration/stream-message/oldStreamMessageBinaryUtils.js.map +1 -0
- package/dist/src/logic/proxy/ProxyClient.d.ts +8 -6
- package/dist/src/logic/proxy/ProxyClient.js +40 -28
- package/dist/src/logic/proxy/ProxyClient.js.map +1 -1
- package/dist/src/logic/proxy/ProxyConnectionRpcLocal.d.ts +6 -7
- package/dist/src/logic/proxy/ProxyConnectionRpcLocal.js +8 -8
- package/dist/src/logic/proxy/ProxyConnectionRpcLocal.js.map +1 -1
- package/dist/src/logic/proxy/ProxyConnectionRpcRemote.d.ts +3 -3
- package/dist/src/logic/proxy/ProxyConnectionRpcRemote.js +1 -1
- package/dist/src/logic/proxy/ProxyConnectionRpcRemote.js.map +1 -1
- package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.d.ts +9 -4
- package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.js +21 -6
- package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.js.map +1 -1
- package/dist/src/logic/temporary-connection/TemporaryConnectionRpcRemote.d.ts +4 -3
- package/dist/src/logic/temporary-connection/TemporaryConnectionRpcRemote.js +13 -3
- package/dist/src/logic/temporary-connection/TemporaryConnectionRpcRemote.js.map +1 -1
- package/dist/src/logic/utils.js.map +1 -1
- package/dist/src/proto/google/protobuf/any.js +8 -8
- package/dist/src/proto/google/protobuf/any.js.map +1 -1
- package/dist/src/proto/google/protobuf/empty.js +2 -4
- package/dist/src/proto/google/protobuf/empty.js.map +1 -1
- package/dist/src/proto/google/protobuf/timestamp.js +10 -10
- package/dist/src/proto/google/protobuf/timestamp.js.map +1 -1
- package/dist/src/proto/packages/dht/protos/DhtRpc.client.d.ts +36 -49
- package/dist/src/proto/packages/dht/protos/DhtRpc.client.js +54 -52
- package/dist/src/proto/packages/dht/protos/DhtRpc.client.js.map +1 -1
- package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +184 -234
- package/dist/src/proto/packages/dht/protos/DhtRpc.js +118 -168
- package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
- package/dist/src/proto/packages/dht/protos/DhtRpc.server.d.ts +20 -29
- package/dist/src/proto/packages/proto-rpc/protos/ProtoRpc.js +1 -1
- package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.d.ts +42 -5
- package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.js +52 -19
- 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 +193 -28
- package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.js +129 -20
- 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 +20 -3
- package/dist/test/benchmark/first-message.js +14 -15
- package/dist/test/benchmark/first-message.js.map +1 -1
- package/dist/test/utils/utils.d.ts +2 -4
- package/dist/test/utils/utils.js +20 -19
- package/dist/test/utils/utils.js.map +1 -1
- package/jest.config.js +3 -38
- package/package.json +12 -12
- package/protos/NetworkRpc.proto +57 -12
- package/src/NetworkNode.ts +13 -6
- package/src/NetworkStack.ts +94 -16
- package/src/exports.ts +11 -3
- package/src/logic/DeliveryRpcLocal.ts +7 -8
- package/src/logic/DeliveryRpcRemote.ts +7 -5
- package/src/logic/DuplicateMessageDetector.ts +7 -7
- package/src/logic/EntryPointDiscovery.ts +26 -19
- package/src/logic/Layer0Node.ts +6 -4
- package/src/logic/Layer1Node.ts +21 -6
- package/src/logic/NodeList.ts +26 -27
- package/src/logic/RandomGraphNode.ts +158 -78
- package/src/logic/StreamrNode.ts +58 -41
- package/src/logic/createRandomGraphNode.ts +37 -25
- package/src/logic/formStreamPartDeliveryServiceId.ts +2 -1
- package/src/logic/inspect/InspectSession.ts +8 -4
- package/src/logic/inspect/Inspector.ts +34 -24
- package/src/logic/neighbor-discovery/HandshakeRpcLocal.ts +72 -38
- package/src/logic/neighbor-discovery/HandshakeRpcRemote.ts +32 -20
- package/src/logic/neighbor-discovery/Handshaker.ts +90 -75
- package/src/logic/neighbor-discovery/NeighborFinder.ts +18 -13
- package/src/logic/neighbor-discovery/NeighborUpdateManager.ts +19 -20
- package/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.ts +43 -33
- package/src/logic/neighbor-discovery/NeighborUpdateRpcRemote.ts +6 -6
- package/src/logic/node-info/NodeInfoClient.ts +23 -0
- package/src/logic/node-info/NodeInfoRpcLocal.ts +28 -0
- package/src/logic/node-info/NodeInfoRpcRemote.ts +11 -0
- package/src/logic/propagation/Propagation.ts +7 -6
- package/src/logic/propagation/PropagationTaskStore.ts +2 -2
- package/src/logic/protocol-integration/stream-message/GroupKeyRequestTranslator.ts +1 -1
- package/src/logic/protocol-integration/stream-message/GroupKeyResponseTranslator.ts +1 -2
- package/src/logic/protocol-integration/stream-message/StreamMessageTranslator.ts +95 -69
- package/src/logic/protocol-integration/stream-message/oldStreamMessageBinaryUtils.ts +37 -0
- package/src/logic/proxy/ProxyClient.ts +60 -40
- package/src/logic/proxy/ProxyConnectionRpcLocal.ts +15 -19
- package/src/logic/proxy/ProxyConnectionRpcRemote.ts +3 -3
- package/src/logic/temporary-connection/TemporaryConnectionRpcLocal.ts +30 -10
- package/src/logic/temporary-connection/TemporaryConnectionRpcRemote.ts +14 -4
- package/src/proto/google/protobuf/any.ts +4 -4
- package/src/proto/google/protobuf/empty.ts +2 -4
- package/src/proto/google/protobuf/timestamp.ts +4 -4
- package/src/proto/packages/dht/protos/DhtRpc.client.ts +50 -66
- package/src/proto/packages/dht/protos/DhtRpc.server.ts +21 -30
- package/src/proto/packages/dht/protos/DhtRpc.ts +242 -316
- package/src/proto/packages/proto-rpc/protos/ProtoRpc.ts +1 -1
- package/src/proto/packages/trackerless-network/protos/NetworkRpc.client.ts +49 -7
- package/src/proto/packages/trackerless-network/protos/NetworkRpc.server.ts +21 -4
- package/src/proto/packages/trackerless-network/protos/NetworkRpc.ts +251 -44
- package/test/benchmark/StreamPartIdDataKeyDistribution.test.ts +60 -0
- package/test/benchmark/first-message.ts +38 -17
- package/test/end-to-end/inspect.test.ts +16 -4
- package/test/end-to-end/proxy-and-full-node.test.ts +26 -13
- package/test/end-to-end/proxy-connections.test.ts +23 -11
- package/test/end-to-end/proxy-key-exchange.test.ts +25 -15
- package/test/end-to-end/random-graph-with-real-connections.test.ts +35 -32
- package/test/end-to-end/webrtc-full-node-network.test.ts +11 -12
- package/test/end-to-end/websocket-full-node-network.test.ts +12 -12
- package/test/integration/DeliveryRpcRemote.test.ts +6 -9
- package/test/integration/HandshakeRpcRemote.test.ts +6 -8
- package/test/integration/Handshakes.test.ts +29 -27
- package/test/integration/Inspect.test.ts +0 -2
- package/test/integration/NeighborUpdateRpcRemote.test.ts +6 -7
- package/test/integration/NetworkNode.test.ts +27 -12
- package/test/integration/NetworkRpc.test.ts +3 -5
- package/test/integration/NetworkStack.test.ts +2 -2
- package/test/integration/NodeInfoRpc.test.ts +104 -0
- package/test/integration/Propagation.test.ts +3 -3
- package/test/integration/RandomGraphNode-Layer1Node-Latencies.test.ts +24 -25
- package/test/integration/RandomGraphNode-Layer1Node.test.ts +26 -24
- package/test/integration/StreamrNode.test.ts +4 -16
- package/test/integration/joining-streams-on-offline-peers.test.ts +7 -31
- package/test/integration/stream-without-default-entrypoints.test.ts +22 -23
- package/test/integration/streamEntryPointReplacing.test.ts +94 -0
- package/test/unit/DeliveryRpcLocal.test.ts +2 -1
- package/test/unit/EntrypointDiscovery.test.ts +11 -8
- package/test/unit/GroupKeyResponseTranslator.test.ts +1 -1
- package/test/unit/HandshakeRpcLocal.test.ts +80 -28
- package/test/unit/Handshaker.test.ts +14 -9
- package/test/unit/InspectSession.test.ts +5 -6
- package/test/unit/Inspector.test.ts +3 -4
- package/test/unit/NeighborFinder.test.ts +12 -9
- package/test/unit/NeighborUpdateRpcLocal.test.ts +139 -0
- package/test/unit/NodeList.test.ts +77 -80
- package/test/unit/Propagation.test.ts +21 -16
- package/test/unit/ProxyConnectionRpcRemote.test.ts +18 -12
- package/test/unit/RandomGraphNode.test.ts +23 -20
- package/test/unit/StreamMessageTranslator.test.ts +10 -8
- package/test/unit/StreamPartIDDataKey.test.ts +12 -0
- package/test/unit/StreamrNode.test.ts +2 -0
- package/test/unit/TemporaryConnectionRpcLocal.test.ts +38 -0
- package/test/unit/oldStreamMessageBinaryUtils.test.ts +39 -0
- package/test/utils/mock/MockHandshaker.ts +6 -5
- package/test/utils/mock/MockLayer0Node.ts +7 -2
- package/test/utils/mock/MockLayer1Node.ts +5 -2
- package/test/utils/mock/MockNeighborFinder.ts +3 -2
- package/test/utils/mock/MockNeighborUpdateManager.ts +3 -2
- package/test/utils/mock/Transport.ts +1 -1
- package/test/utils/utils.ts +40 -25
- package/tsconfig.jest.json +5 -4
- package/tsconfig.node.json +2 -2
- package/dist/src/identifiers.d.ts +0 -4
- package/dist/src/identifiers.js +0 -9
- package/dist/src/identifiers.js.map +0 -1
- package/src/identifiers.ts +0 -8
- package/test/unit/GroupKeyRequestTranslator.test.ts +0 -36
|
@@ -3,12 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.NeighborUpdateRpcRemote = void 0;
|
|
4
4
|
const dht_1 = require("@streamr/dht");
|
|
5
5
|
const utils_1 = require("@streamr/utils");
|
|
6
|
-
const identifiers_1 = require("../../identifiers");
|
|
7
6
|
const logger = new utils_1.Logger(module);
|
|
8
|
-
class NeighborUpdateRpcRemote extends dht_1.
|
|
9
|
-
async updateNeighbors(neighbors) {
|
|
7
|
+
class NeighborUpdateRpcRemote extends dht_1.RpcRemote {
|
|
8
|
+
async updateNeighbors(streamPartId, neighbors) {
|
|
10
9
|
const request = {
|
|
11
|
-
streamPartId
|
|
10
|
+
streamPartId,
|
|
12
11
|
neighborDescriptors: neighbors,
|
|
13
12
|
removeMe: false
|
|
14
13
|
};
|
|
@@ -20,7 +19,7 @@ class NeighborUpdateRpcRemote extends dht_1.Remote {
|
|
|
20
19
|
};
|
|
21
20
|
}
|
|
22
21
|
catch (err) {
|
|
23
|
-
logger.debug(`updateNeighbors to ${(0,
|
|
22
|
+
logger.debug(`updateNeighbors to ${(0, dht_1.getNodeIdFromPeerDescriptor)(this.getPeerDescriptor())} failed: ${err}`);
|
|
24
23
|
return {
|
|
25
24
|
peerDescriptors: [],
|
|
26
25
|
removeMe: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeighborUpdateRpcRemote.js","sourceRoot":"","sources":["../../../../src/logic/neighbor-discovery/NeighborUpdateRpcRemote.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"NeighborUpdateRpcRemote.js","sourceRoot":"","sources":["../../../../src/logic/neighbor-discovery/NeighborUpdateRpcRemote.ts"],"names":[],"mappings":";;;AAAA,sCAAqF;AACrF,0CAAuC;AAKvC,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAOjC,MAAa,uBAAwB,SAAQ,eAAkC;IAE3E,KAAK,CAAC,eAAe,CAAC,YAA0B,EAAE,SAA2B;QACzE,MAAM,OAAO,GAAmB;YAC5B,YAAY;YACZ,mBAAmB,EAAE,SAAS;YAC9B,QAAQ,EAAE,KAAK;SAClB,CAAA;QACD,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAA;YACzF,OAAO;gBACH,eAAe,EAAE,QAAQ,CAAC,mBAAmB;gBAC7C,QAAQ,EAAE,QAAQ,CAAC,QAAQ;aAC9B,CAAA;QACL,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAChB,MAAM,CAAC,KAAK,CAAC,sBAAsB,IAAA,iCAA2B,EAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,CAAA;YAC1G,OAAO;gBACH,eAAe,EAAE,EAAE;gBACnB,QAAQ,EAAE,IAAI;aACjB,CAAA;QACL,CAAC;IACL,CAAC;CACJ;AAtBD,0DAsBC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { DhtCallContext, PeerDescriptor } from '@streamr/dht';
|
|
2
|
+
import { RpcCommunicator } from '@streamr/proto-rpc';
|
|
3
|
+
import { NodeInfo } from '../../NetworkStack';
|
|
4
|
+
export declare class NodeInfoClient {
|
|
5
|
+
private readonly ownPeerDescriptor;
|
|
6
|
+
private readonly rpcCommunicator;
|
|
7
|
+
constructor(ownPeerDescriptor: PeerDescriptor, rpcCommunicator: RpcCommunicator<DhtCallContext>);
|
|
8
|
+
getInfo(node: PeerDescriptor): Promise<NodeInfo>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NodeInfoClient = void 0;
|
|
4
|
+
const NetworkRpc_client_1 = require("../../proto/packages/trackerless-network/protos/NetworkRpc.client");
|
|
5
|
+
const NodeInfoRpcRemote_1 = require("./NodeInfoRpcRemote");
|
|
6
|
+
class NodeInfoClient {
|
|
7
|
+
ownPeerDescriptor;
|
|
8
|
+
rpcCommunicator;
|
|
9
|
+
constructor(ownPeerDescriptor, rpcCommunicator) {
|
|
10
|
+
this.ownPeerDescriptor = ownPeerDescriptor;
|
|
11
|
+
this.rpcCommunicator = rpcCommunicator;
|
|
12
|
+
}
|
|
13
|
+
async getInfo(node) {
|
|
14
|
+
const remote = new NodeInfoRpcRemote_1.NodeInfoRpcRemote(this.ownPeerDescriptor, node, this.rpcCommunicator, NetworkRpc_client_1.NodeInfoRpcClient);
|
|
15
|
+
// TODO remove casting when we validate NodeInfoResponse messages and therefore can annotate
|
|
16
|
+
// each of the field as required in the decorated type
|
|
17
|
+
return remote.getInfo();
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.NodeInfoClient = NodeInfoClient;
|
|
21
|
+
//# sourceMappingURL=NodeInfoClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeInfoClient.js","sourceRoot":"","sources":["../../../../src/logic/node-info/NodeInfoClient.ts"],"names":[],"mappings":";;;AAGA,yGAAqG;AACrG,2DAAuD;AAEvD,MAAa,cAAc;IACN,iBAAiB,CAAgB;IACjC,eAAe,CAAiC;IAEjE,YAAY,iBAAiC,EAAE,eAAgD;QAC3F,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;QAC1C,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAoB;QAC9B,MAAM,MAAM,GAAG,IAAI,qCAAiB,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,qCAAiB,CAAC,CAAA;QAC3G,4FAA4F;QAC5F,sDAAsD;QACtD,OAAO,MAAM,CAAC,OAAO,EAAyB,CAAA;IAClD,CAAC;CAEJ;AAhBD,wCAgBC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { NodeInfoResponse } from '../../proto/packages/trackerless-network/protos/NetworkRpc';
|
|
2
|
+
import { INodeInfoRpc } from '../../proto/packages/trackerless-network/protos/NetworkRpc.server';
|
|
3
|
+
import { NetworkStack } from '../../NetworkStack';
|
|
4
|
+
import { ListeningRpcCommunicator } from '@streamr/dht';
|
|
5
|
+
export declare const NODE_INFO_RPC_SERVICE_ID = "system/node-info-rpc";
|
|
6
|
+
export declare class NodeInfoRpcLocal implements INodeInfoRpc {
|
|
7
|
+
private readonly stack;
|
|
8
|
+
private readonly rpcCommunicator;
|
|
9
|
+
constructor(stack: NetworkStack, rpcCommunicator: ListeningRpcCommunicator);
|
|
10
|
+
private registerDefaultServerMethods;
|
|
11
|
+
getInfo(): Promise<NodeInfoResponse>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NodeInfoRpcLocal = exports.NODE_INFO_RPC_SERVICE_ID = void 0;
|
|
4
|
+
const NetworkRpc_1 = require("../../proto/packages/trackerless-network/protos/NetworkRpc");
|
|
5
|
+
exports.NODE_INFO_RPC_SERVICE_ID = 'system/node-info-rpc';
|
|
6
|
+
class NodeInfoRpcLocal {
|
|
7
|
+
stack;
|
|
8
|
+
rpcCommunicator;
|
|
9
|
+
constructor(stack, rpcCommunicator) {
|
|
10
|
+
this.stack = stack;
|
|
11
|
+
this.rpcCommunicator = rpcCommunicator;
|
|
12
|
+
this.registerDefaultServerMethods();
|
|
13
|
+
}
|
|
14
|
+
registerDefaultServerMethods() {
|
|
15
|
+
this.rpcCommunicator.registerRpcMethod(NetworkRpc_1.NodeInfoRequest, NetworkRpc_1.NodeInfoResponse, 'getInfo', () => this.getInfo());
|
|
16
|
+
}
|
|
17
|
+
async getInfo() {
|
|
18
|
+
return this.stack.createNodeInfo();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.NodeInfoRpcLocal = NodeInfoRpcLocal;
|
|
22
|
+
//# sourceMappingURL=NodeInfoRpcLocal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeInfoRpcLocal.js","sourceRoot":"","sources":["../../../../src/logic/node-info/NodeInfoRpcLocal.ts"],"names":[],"mappings":";;;AAAA,2FAA8G;AAKjG,QAAA,wBAAwB,GAAG,sBAAsB,CAAA;AAE9D,MAAa,gBAAgB;IAER,KAAK,CAAc;IACnB,eAAe,CAA0B;IAE1D,YAAY,KAAmB,EAAE,eAAyC;QACtE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;QACtC,IAAI,CAAC,4BAA4B,EAAE,CAAA;IACvC,CAAC;IAEO,4BAA4B;QAChC,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,4BAAe,EAAE,6BAAgB,EAAE,SAAS,EAC/E,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,OAAO;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAA;IACtC,CAAC;CAEJ;AApBD,4CAoBC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { NodeInfoResponse } from '../../proto/packages/trackerless-network/protos/NetworkRpc';
|
|
2
|
+
import { NodeInfoRpcClient } from '../../proto/packages/trackerless-network/protos/NetworkRpc.client';
|
|
3
|
+
import { RpcRemote } from '@streamr/dht';
|
|
4
|
+
export declare class NodeInfoRpcRemote extends RpcRemote<NodeInfoRpcClient> {
|
|
5
|
+
getInfo(): Promise<NodeInfoResponse>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NodeInfoRpcRemote = void 0;
|
|
4
|
+
const dht_1 = require("@streamr/dht");
|
|
5
|
+
class NodeInfoRpcRemote extends dht_1.RpcRemote {
|
|
6
|
+
async getInfo() {
|
|
7
|
+
return this.getClient().getInfo({}, this.formDhtRpcOptions());
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.NodeInfoRpcRemote = NodeInfoRpcRemote;
|
|
11
|
+
//# sourceMappingURL=NodeInfoRpcRemote.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeInfoRpcRemote.js","sourceRoot":"","sources":["../../../../src/logic/node-info/NodeInfoRpcRemote.ts"],"names":[],"mappings":";;;AAEA,sCAAwC;AAExC,MAAa,iBAAkB,SAAQ,eAA4B;IAE/D,KAAK,CAAC,OAAO;QACT,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAA;IACjE,CAAC;CAEJ;AAND,8CAMC"}
|
|
@@ -12,10 +12,14 @@ const yallist_1 = require("yallist");
|
|
|
12
12
|
*
|
|
13
13
|
*/
|
|
14
14
|
class FifoMapWithTTL {
|
|
15
|
+
// class invariant: the keys present in `items` and `dropQueue` are the same set.
|
|
16
|
+
items = new Map();
|
|
17
|
+
dropQueue = (0, yallist_1.create)(); // queue is used to determine deletion order when full
|
|
18
|
+
ttlInMs;
|
|
19
|
+
maxSize;
|
|
20
|
+
onItemDropped;
|
|
21
|
+
timeProvider;
|
|
15
22
|
constructor({ ttlInMs, maxSize, onItemDropped = () => { }, timeProvider = Date.now }) {
|
|
16
|
-
// class invariant: the keys present in `items` and `dropQueue` are the same set.
|
|
17
|
-
this.items = new Map();
|
|
18
|
-
this.dropQueue = (0, yallist_1.create)(); // queue is used to determine deletion order when full
|
|
19
23
|
if (ttlInMs < 0) {
|
|
20
24
|
throw new Error(`ttlInMs (${ttlInMs}) cannot be < 0`);
|
|
21
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FifoMapWithTTL.js","sourceRoot":"","sources":["../../../../src/logic/propagation/FifoMapWithTTL.ts"],"names":[],"mappings":";;;AAAA,qCAAsC;AAgBtC;;;;;;;;GAQG;AACH,MAAa,cAAc;
|
|
1
|
+
{"version":3,"file":"FifoMapWithTTL.js","sourceRoot":"","sources":["../../../../src/logic/propagation/FifoMapWithTTL.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DhtAddress } from '@streamr/dht';
|
|
2
2
|
import { StreamMessage } from '../../proto/packages/trackerless-network/protos/NetworkRpc';
|
|
3
|
-
type SendToNeighborFn = (neighborId:
|
|
3
|
+
type SendToNeighborFn = (neighborId: DhtAddress, msg: StreamMessage) => Promise<void>;
|
|
4
4
|
interface ConstructorOptions {
|
|
5
5
|
sendToNeighbor: SendToNeighborFn;
|
|
6
6
|
minPropagationTargets: number;
|
|
@@ -22,11 +22,11 @@ export declare class Propagation {
|
|
|
22
22
|
/**
|
|
23
23
|
* Node should invoke this when it learns about a new message
|
|
24
24
|
*/
|
|
25
|
-
feedUnseenMessage(message: StreamMessage, targets:
|
|
25
|
+
feedUnseenMessage(message: StreamMessage, targets: DhtAddress[], source: DhtAddress | null): void;
|
|
26
26
|
/**
|
|
27
27
|
* Node should invoke this when it learns about a new node stream assignment
|
|
28
28
|
*/
|
|
29
|
-
onNeighborJoined(neighborId:
|
|
29
|
+
onNeighborJoined(neighborId: DhtAddress): void;
|
|
30
30
|
private sendAndAwaitThenMark;
|
|
31
31
|
}
|
|
32
32
|
export {};
|
|
@@ -12,6 +12,9 @@ const DEFAULT_TTL = 30 * 1000;
|
|
|
12
12
|
* only be propagated exactly once, to neighbors that are present at that moment, in a fire-and-forget manner.
|
|
13
13
|
*/
|
|
14
14
|
class Propagation {
|
|
15
|
+
sendToNeighbor;
|
|
16
|
+
minPropagationTargets;
|
|
17
|
+
activeTaskStore;
|
|
15
18
|
constructor({ sendToNeighbor, minPropagationTargets, ttl = DEFAULT_TTL, maxMessages = DEFAULT_MAX_MESSAGES }) {
|
|
16
19
|
this.sendToNeighbor = sendToNeighbor;
|
|
17
20
|
this.minPropagationTargets = minPropagationTargets;
|
|
@@ -42,6 +45,7 @@ class Propagation {
|
|
|
42
45
|
}
|
|
43
46
|
sendAndAwaitThenMark({ message, source, handledNeighbors }, neighborId) {
|
|
44
47
|
if (!handledNeighbors.has(neighborId) && neighborId !== source) {
|
|
48
|
+
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
45
49
|
(async () => {
|
|
46
50
|
try {
|
|
47
51
|
await this.sendToNeighbor(neighborId, message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Propagation.js","sourceRoot":"","sources":["../../../../src/logic/propagation/Propagation.ts"],"names":[],"mappings":";;;AAEA,iEAA8E;AAW9E,MAAM,oBAAoB,GAAG,GAAG,CAAA;AAChC,MAAM,WAAW,GAAG,EAAE,GAAG,IAAI,CAAA;AAE7B;;;;;;GAMG;AAEH,MAAa,WAAW;
|
|
1
|
+
{"version":3,"file":"Propagation.js","sourceRoot":"","sources":["../../../../src/logic/propagation/Propagation.ts"],"names":[],"mappings":";;;AAEA,iEAA8E;AAW9E,MAAM,oBAAoB,GAAG,GAAG,CAAA;AAChC,MAAM,WAAW,GAAG,EAAE,GAAG,IAAI,CAAA;AAE7B;;;;;;GAMG;AAEH,MAAa,WAAW;IACH,cAAc,CAAkB;IAChC,qBAAqB,CAAQ;IAC7B,eAAe,CAAsB;IAEtD,YAAY,EACR,cAAc,EACd,qBAAqB,EACrB,GAAG,GAAG,WAAW,EACjB,WAAW,GAAG,oBAAoB,EACjB;QACjB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAA;QAClD,IAAI,CAAC,eAAe,GAAG,IAAI,2CAAoB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;IACrE,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,OAAsB,EAAE,OAAqB,EAAE,MAAyB;QACtF,MAAM,IAAI,GAAG;YACT,OAAO;YACP,MAAM;YACN,gBAAgB,EAAE,IAAI,GAAG,EAAc;SAC1C,CAAA;QACD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC9B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAC3C,CAAC;IACL,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,UAAsB;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,CAAA;QACxC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QAC/C,CAAC;IACL,CAAC;IAEO,oBAAoB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAmB,EAAE,UAAsB;QACvG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;YAC7D,mEAAmE;YACnE,CAAC,KAAK,IAAI,EAAE;gBACR,IAAI,CAAC;oBACD,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;gBAClD,CAAC;gBAAC,MAAM,CAAC;oBACL,OAAM;gBACV,CAAC;gBACD,qGAAqG;gBACrG,4FAA4F;gBAC5F,0DAA0D;gBAC1D,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;gBAChC,IAAI,gBAAgB,CAAC,IAAI,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;oBACtD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,SAAU,CAAC,CAAA;gBACnD,CAAC;YACL,CAAC,CAAC,EAAE,CAAA;QACR,CAAC;IACL,CAAC;CACJ;AA5DD,kCA4DC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DhtAddress } from '@streamr/dht';
|
|
2
2
|
import { MessageRef, StreamMessage } from '../../proto/packages/trackerless-network/protos/NetworkRpc';
|
|
3
3
|
export interface PropagationTask {
|
|
4
4
|
message: StreamMessage;
|
|
5
5
|
source: string | null;
|
|
6
|
-
handledNeighbors: Set<
|
|
6
|
+
handledNeighbors: Set<DhtAddress>;
|
|
7
7
|
}
|
|
8
8
|
/**
|
|
9
9
|
* Keeps track of propagation tasks for the needs of message propagation logic.
|
|
@@ -11,6 +11,7 @@ const FifoMapWithTTL_1 = require("./FifoMapWithTTL");
|
|
|
11
11
|
* - Items have a TTL, after which they are considered stale and not returned when querying
|
|
12
12
|
**/
|
|
13
13
|
class PropagationTaskStore {
|
|
14
|
+
tasks;
|
|
14
15
|
constructor(ttlInMs, maxTasks) {
|
|
15
16
|
this.tasks = new FifoMapWithTTL_1.FifoMapWithTTL({
|
|
16
17
|
ttlInMs,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PropagationTaskStore.js","sourceRoot":"","sources":["../../../../src/logic/propagation/PropagationTaskStore.ts"],"names":[],"mappings":";;;AAEA,qDAAiD;AAQjD;;;;;;;GAOG;AACH,MAAa,oBAAoB;
|
|
1
|
+
{"version":3,"file":"PropagationTaskStore.js","sourceRoot":"","sources":["../../../../src/logic/propagation/PropagationTaskStore.ts"],"names":[],"mappings":";;;AAEA,qDAAiD;AAQjD;;;;;;;GAOG;AACH,MAAa,oBAAoB;IACZ,KAAK,CAA6C;IAEnE,YAAY,OAAe,EAAE,QAAgB;QACzC,IAAI,CAAC,KAAK,GAAG,IAAI,+BAAc,CAA8B;YACzD,OAAO;YACP,OAAO,EAAE,QAAQ;SACpB,CAAC,CAAA;IACN,CAAC;IAED,GAAG;QACC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACxD,CAAC;IAED,GAAG,CAAC,IAAqB;QACrB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAU,CAAA;QACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IACnC,CAAC;IAED,MAAM,CAAC,SAAqB;QACxB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA,CAAC,sCAAsC;IACvE,CAAC;CACJ;AAtBD,oDAsBC"}
|
|
@@ -10,7 +10,7 @@ class GroupKeyRequestTranslator {
|
|
|
10
10
|
recipientId: (0, utils_1.hexToBinary)(msg.recipient),
|
|
11
11
|
requestId: msg.requestId,
|
|
12
12
|
rsaPublicKey: (0, utils_1.utf8ToBinary)(msg.rsaPublicKey),
|
|
13
|
-
groupKeyIds: msg.groupKeyIds
|
|
13
|
+
groupKeyIds: [...msg.groupKeyIds]
|
|
14
14
|
};
|
|
15
15
|
return translated;
|
|
16
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupKeyRequestTranslator.js","sourceRoot":"","sources":["../../../../../src/logic/protocol-integration/stream-message/GroupKeyRequestTranslator.ts"],"names":[],"mappings":";;;AAAA,gDAAyE;AAEzE,0CAAwG;AAExG,kEAAkE;AAClE,MAAa,yBAAyB;IAElC,MAAM,CAAC,UAAU,CAAC,GAAuB;QACrC,MAAM,UAAU,GAAoB;YAChC,WAAW,EAAE,IAAA,mBAAW,EAAC,GAAG,CAAC,SAAS,CAAC;YACvC,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,YAAY,EAAE,IAAA,oBAAY,EAAC,GAAG,CAAC,YAAY,CAAC;YAC5C,WAAW,EAAE,GAAG,CAAC,WAAW;
|
|
1
|
+
{"version":3,"file":"GroupKeyRequestTranslator.js","sourceRoot":"","sources":["../../../../../src/logic/protocol-integration/stream-message/GroupKeyRequestTranslator.ts"],"names":[],"mappings":";;;AAAA,gDAAyE;AAEzE,0CAAwG;AAExG,kEAAkE;AAClE,MAAa,yBAAyB;IAElC,MAAM,CAAC,UAAU,CAAC,GAAuB;QACrC,MAAM,UAAU,GAAoB;YAChC,WAAW,EAAE,IAAA,mBAAW,EAAC,GAAG,CAAC,SAAS,CAAC;YACvC,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,YAAY,EAAE,IAAA,oBAAY,EAAC,GAAG,CAAC,YAAY,CAAC;YAC5C,WAAW,EAAE,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC;SACpC,CAAA;QACD,OAAO,UAAU,CAAA;IACrB,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,GAAoB;QACxC,MAAM,UAAU,GAAG,IAAI,0BAAkB,CAAC;YACtC,SAAS,EAAE,IAAA,yBAAiB,EAAC,IAAA,mBAAW,EAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YAChE,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,YAAY,EAAE,IAAA,oBAAY,EAAC,GAAG,CAAC,YAAY,CAAC;YAC5C,WAAW,EAAE,GAAG,CAAC,WAAW;SAC/B,CAAC,CAAA;QACF,OAAO,UAAU,CAAA;IACrB,CAAC;CAEJ;AAtBD,8DAsBC"}
|
package/dist/src/logic/protocol-integration/stream-message/GroupKeyResponseTranslator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupKeyResponseTranslator.js","sourceRoot":"","sources":["../../../../../src/logic/protocol-integration/stream-message/GroupKeyResponseTranslator.ts"],"names":[],"mappings":";;;AAAA,gDAAsH;AAEtH,0CAA4E;AAE5E,kEAAkE;AAClE,MAAa,0BAA0B;IAEnC,MAAM,CAAC,UAAU,CAAC,GAAwB;
|
|
1
|
+
{"version":3,"file":"GroupKeyResponseTranslator.js","sourceRoot":"","sources":["../../../../../src/logic/protocol-integration/stream-message/GroupKeyResponseTranslator.ts"],"names":[],"mappings":";;;AAAA,gDAAsH;AAEtH,0CAA4E;AAE5E,kEAAkE;AAClE,MAAa,0BAA0B;IAEnC,MAAM,CAAC,UAAU,CAAC,GAAwB;QACtC,MAAM,SAAS,GAAG,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YACtD,OAAO;gBACH,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,EAAE,EAAE,QAAQ,CAAC,EAAE;aAClB,CAAA;QACL,CAAC,CAAC,CAAA;QACF,MAAM,UAAU,GAAqB;YACjC,WAAW,EAAE,IAAA,mBAAW,EAAC,GAAG,CAAC,SAAS,CAAC;YACvC,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,SAAS;SACZ,CAAA;QACD,OAAO,UAAU,CAAA;IACrB,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,GAAqB;QACzC,MAAM,kBAAkB,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAkB,EAAE,EAAE,CAAC,IAAI,4BAAoB,CACzF,QAAQ,CAAC,EAAE,EACX,QAAQ,CAAC,IAAI,CAChB,CAAC,CAAA;QACF,OAAO,IAAI,2BAAmB,CAAC;YAC3B,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,SAAS,EAAE,IAAA,yBAAiB,EAAC,IAAA,mBAAW,EAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YAChE,kBAAkB;SACrB,CAAC,CAAA;IACN,CAAC;CACJ;AA5BD,gEA4BC"}
|
|
@@ -4,8 +4,6 @@ exports.StreamMessageTranslator = void 0;
|
|
|
4
4
|
const protocol_1 = require("@streamr/protocol");
|
|
5
5
|
const NetworkRpc_1 = require("../../../proto/packages/trackerless-network/protos/NetworkRpc");
|
|
6
6
|
const utils_1 = require("@streamr/utils");
|
|
7
|
-
const GroupKeyRequestTranslator_1 = require("./GroupKeyRequestTranslator");
|
|
8
|
-
const GroupKeyResponseTranslator_1 = require("./GroupKeyResponseTranslator");
|
|
9
7
|
const oldToNewEncryptionType = (type) => {
|
|
10
8
|
if (type === protocol_1.EncryptionType.AES) {
|
|
11
9
|
return NetworkRpc_1.EncryptionType.AES;
|
|
@@ -18,26 +16,33 @@ const newToOldEncryptionType = (type) => {
|
|
|
18
16
|
}
|
|
19
17
|
return protocol_1.EncryptionType.NONE;
|
|
20
18
|
};
|
|
19
|
+
const oldToNewContentType = (type) => {
|
|
20
|
+
if (type === protocol_1.ContentType.JSON) {
|
|
21
|
+
return NetworkRpc_1.ContentType.JSON;
|
|
22
|
+
}
|
|
23
|
+
return NetworkRpc_1.ContentType.BINARY;
|
|
24
|
+
};
|
|
25
|
+
const newToOldContentType = (type) => {
|
|
26
|
+
if (type === NetworkRpc_1.ContentType.JSON) {
|
|
27
|
+
return protocol_1.ContentType.JSON;
|
|
28
|
+
}
|
|
29
|
+
return protocol_1.ContentType.BINARY;
|
|
30
|
+
};
|
|
31
|
+
const oldToNewSignatureType = (type) => {
|
|
32
|
+
if (type === protocol_1.SignatureType.LEGACY_SECP256K1) {
|
|
33
|
+
return NetworkRpc_1.SignatureType.LEGACY_SECP256K1;
|
|
34
|
+
}
|
|
35
|
+
return NetworkRpc_1.SignatureType.SECP256K1;
|
|
36
|
+
};
|
|
37
|
+
const newToOldSignatureType = (type) => {
|
|
38
|
+
if (type === NetworkRpc_1.SignatureType.LEGACY_SECP256K1) {
|
|
39
|
+
return protocol_1.SignatureType.LEGACY_SECP256K1;
|
|
40
|
+
}
|
|
41
|
+
return protocol_1.SignatureType.SECP256K1;
|
|
42
|
+
};
|
|
21
43
|
// eslint-disable-next-line @typescript-eslint/no-extraneous-class
|
|
22
44
|
class StreamMessageTranslator {
|
|
23
45
|
static toProtobuf(msg) {
|
|
24
|
-
let content;
|
|
25
|
-
let messageType;
|
|
26
|
-
if (msg.messageType === protocol_1.StreamMessageType.MESSAGE) {
|
|
27
|
-
content = msg.serializedContent;
|
|
28
|
-
messageType = NetworkRpc_1.StreamMessageType.MESSAGE;
|
|
29
|
-
}
|
|
30
|
-
else if (msg.messageType === protocol_1.StreamMessageType.GROUP_KEY_REQUEST) {
|
|
31
|
-
content = NetworkRpc_1.GroupKeyRequest.toBinary(GroupKeyRequestTranslator_1.GroupKeyRequestTranslator.toProtobuf(protocol_1.GroupKeyRequest.deserialize((0, utils_1.binaryToUtf8)(msg.serializedContent), protocol_1.StreamMessageType.GROUP_KEY_REQUEST)));
|
|
32
|
-
messageType = NetworkRpc_1.StreamMessageType.GROUP_KEY_REQUEST;
|
|
33
|
-
}
|
|
34
|
-
else if (msg.messageType === protocol_1.StreamMessageType.GROUP_KEY_RESPONSE) {
|
|
35
|
-
content = NetworkRpc_1.GroupKeyResponse.toBinary(GroupKeyResponseTranslator_1.GroupKeyResponseTranslator.toProtobuf(protocol_1.GroupKeyResponse.deserialize((0, utils_1.binaryToUtf8)(msg.serializedContent), protocol_1.StreamMessageType.GROUP_KEY_RESPONSE)));
|
|
36
|
-
messageType = NetworkRpc_1.StreamMessageType.GROUP_KEY_RESPONSE;
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
throw new Error('invalid message type');
|
|
40
|
-
}
|
|
41
46
|
const messageId = {
|
|
42
47
|
timestamp: msg.getTimestamp(),
|
|
43
48
|
sequenceNumber: msg.getSequenceNumber(),
|
|
@@ -47,54 +52,86 @@ class StreamMessageTranslator {
|
|
|
47
52
|
messageChainId: msg.getMsgChainId()
|
|
48
53
|
};
|
|
49
54
|
let previousMessageRef = undefined;
|
|
50
|
-
if (msg.
|
|
55
|
+
if (msg.prevMsgRef) {
|
|
51
56
|
previousMessageRef = {
|
|
52
|
-
timestamp: msg.
|
|
53
|
-
sequenceNumber: msg.
|
|
57
|
+
timestamp: msg.prevMsgRef.timestamp,
|
|
58
|
+
sequenceNumber: msg.prevMsgRef.sequenceNumber
|
|
54
59
|
};
|
|
55
60
|
}
|
|
56
|
-
let
|
|
57
|
-
if (msg.
|
|
58
|
-
newGroupKey =
|
|
59
|
-
|
|
60
|
-
|
|
61
|
+
let body;
|
|
62
|
+
if (msg.messageType === protocol_1.StreamMessageType.MESSAGE) {
|
|
63
|
+
let newGroupKey = undefined;
|
|
64
|
+
if (msg.newGroupKey) {
|
|
65
|
+
newGroupKey = {
|
|
66
|
+
id: msg.newGroupKey.id,
|
|
67
|
+
data: msg.newGroupKey.data
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
body = {
|
|
71
|
+
oneofKind: 'contentMessage',
|
|
72
|
+
contentMessage: {
|
|
73
|
+
content: msg.content,
|
|
74
|
+
contentType: oldToNewContentType(msg.contentType),
|
|
75
|
+
encryptionType: oldToNewEncryptionType(msg.encryptionType),
|
|
76
|
+
groupKeyId: msg.groupKeyId ?? undefined,
|
|
77
|
+
newGroupKey
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
else if (msg.messageType === protocol_1.StreamMessageType.GROUP_KEY_REQUEST) {
|
|
82
|
+
body = {
|
|
83
|
+
oneofKind: 'groupKeyRequest',
|
|
84
|
+
groupKeyRequest: NetworkRpc_1.GroupKeyRequest.fromBinary(msg.content)
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
else if (msg.messageType === protocol_1.StreamMessageType.GROUP_KEY_RESPONSE) {
|
|
88
|
+
body = {
|
|
89
|
+
oneofKind: 'groupKeyResponse',
|
|
90
|
+
groupKeyResponse: NetworkRpc_1.GroupKeyResponse.fromBinary(msg.content)
|
|
61
91
|
};
|
|
62
92
|
}
|
|
93
|
+
else {
|
|
94
|
+
throw new Error('invalid message type');
|
|
95
|
+
}
|
|
63
96
|
const translated = {
|
|
64
97
|
messageId,
|
|
65
98
|
previousMessageRef,
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
encryptionType: oldToNewEncryptionType(msg.encryptionType),
|
|
70
|
-
groupKeyId: msg.groupKeyId ?? undefined,
|
|
71
|
-
newGroupKey,
|
|
72
|
-
signature: msg.signature
|
|
99
|
+
signature: msg.signature,
|
|
100
|
+
signatureType: oldToNewSignatureType(msg.signatureType),
|
|
101
|
+
body
|
|
73
102
|
};
|
|
74
103
|
return translated;
|
|
75
104
|
}
|
|
76
105
|
static toClientProtocol(msg) {
|
|
77
|
-
let content;
|
|
78
106
|
let messageType;
|
|
79
|
-
|
|
107
|
+
let content;
|
|
108
|
+
let contentType = protocol_1.ContentType.BINARY;
|
|
109
|
+
let encryptionType = protocol_1.EncryptionType.NONE;
|
|
110
|
+
let newGroupKey = undefined;
|
|
111
|
+
let groupKeyId = undefined;
|
|
112
|
+
if (msg.body.oneofKind === 'contentMessage') {
|
|
80
113
|
messageType = protocol_1.StreamMessageType.MESSAGE;
|
|
81
|
-
content = msg.content;
|
|
114
|
+
content = msg.body.contentMessage.content;
|
|
115
|
+
contentType = newToOldContentType(msg.body.contentMessage.contentType);
|
|
116
|
+
encryptionType = newToOldEncryptionType(msg.body.contentMessage.encryptionType);
|
|
117
|
+
if (msg.body.contentMessage.newGroupKey) {
|
|
118
|
+
newGroupKey = new protocol_1.EncryptedGroupKey(msg.body.contentMessage.newGroupKey.id, msg.body.contentMessage.newGroupKey.data);
|
|
119
|
+
}
|
|
120
|
+
groupKeyId = msg.body.contentMessage.groupKeyId;
|
|
82
121
|
}
|
|
83
|
-
else if (msg.
|
|
122
|
+
else if (msg.body.oneofKind === 'groupKeyRequest') {
|
|
84
123
|
messageType = protocol_1.StreamMessageType.GROUP_KEY_REQUEST;
|
|
85
124
|
try {
|
|
86
|
-
|
|
87
|
-
content = (0, utils_1.utf8ToBinary)(GroupKeyRequestTranslator_1.GroupKeyRequestTranslator.toClientProtocol(parsedRequest).serialize());
|
|
125
|
+
content = NetworkRpc_1.GroupKeyRequest.toBinary(msg.body.groupKeyRequest);
|
|
88
126
|
}
|
|
89
127
|
catch (err) {
|
|
90
128
|
throw new Error(`invalid group key request: ${err}`);
|
|
91
129
|
}
|
|
92
130
|
}
|
|
93
|
-
else if (msg.
|
|
131
|
+
else if (msg.body.oneofKind === 'groupKeyResponse') {
|
|
94
132
|
messageType = protocol_1.StreamMessageType.GROUP_KEY_RESPONSE;
|
|
95
133
|
try {
|
|
96
|
-
|
|
97
|
-
content = (0, utils_1.utf8ToBinary)(GroupKeyResponseTranslator_1.GroupKeyResponseTranslator.toClientProtocol(parsedResponse).serialize());
|
|
134
|
+
content = NetworkRpc_1.GroupKeyResponse.toBinary(msg.body.groupKeyResponse);
|
|
98
135
|
}
|
|
99
136
|
catch (err) {
|
|
100
137
|
throw new Error(`invalid group key response: ${err}`);
|
|
@@ -108,20 +145,17 @@ class StreamMessageTranslator {
|
|
|
108
145
|
if (msg.previousMessageRef) {
|
|
109
146
|
prevMsgRef = new protocol_1.MessageRef(Number(msg.previousMessageRef.timestamp), msg.previousMessageRef.sequenceNumber);
|
|
110
147
|
}
|
|
111
|
-
let newGroupKey = undefined;
|
|
112
|
-
if (msg.newGroupKey) {
|
|
113
|
-
newGroupKey = new protocol_1.EncryptedGroupKey(msg.newGroupKey.id, msg.newGroupKey.data);
|
|
114
|
-
}
|
|
115
148
|
const translated = new protocol_1.StreamMessage({
|
|
116
149
|
messageId,
|
|
117
150
|
prevMsgRef,
|
|
118
|
-
content,
|
|
119
151
|
messageType,
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
152
|
+
content,
|
|
153
|
+
contentType,
|
|
154
|
+
signature: msg.signature,
|
|
155
|
+
signatureType: newToOldSignatureType(msg.signatureType),
|
|
156
|
+
encryptionType,
|
|
157
|
+
groupKeyId,
|
|
158
|
+
newGroupKey
|
|
125
159
|
});
|
|
126
160
|
return translated;
|
|
127
161
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StreamMessageTranslator.js","sourceRoot":"","sources":["../../../../../src/logic/protocol-integration/stream-message/StreamMessageTranslator.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"StreamMessageTranslator.js","sourceRoot":"","sources":["../../../../../src/logic/protocol-integration/stream-message/StreamMessageTranslator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { StreamMessage as OldStreamMessage, GroupKeyRequest as OldGroupKeyRequest, GroupKeyResponse as OldGroupKeyResponse } from '@streamr/protocol';
|
|
2
|
+
export declare function convertStreamMessageToBytes(oldStreamMessage: OldStreamMessage): Uint8Array;
|
|
3
|
+
export declare function convertBytesToStreamMessage(bytes: Uint8Array): OldStreamMessage;
|
|
4
|
+
export declare const convertGroupKeyRequestToBytes: (oldGroupKeyRequest: OldGroupKeyRequest) => Uint8Array;
|
|
5
|
+
export declare const convertBytesToGroupKeyRequest: (bytes: Uint8Array) => OldGroupKeyRequest;
|
|
6
|
+
export declare const convertGroupKeyResponseToBytes: (oldGroupKeyResponse: OldGroupKeyResponse) => Uint8Array;
|
|
7
|
+
export declare const convertBytesToGroupKeyResponse: (bytes: Uint8Array) => OldGroupKeyResponse;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convertBytesToGroupKeyResponse = exports.convertGroupKeyResponseToBytes = exports.convertBytesToGroupKeyRequest = exports.convertGroupKeyRequestToBytes = exports.convertBytesToStreamMessage = exports.convertStreamMessageToBytes = void 0;
|
|
4
|
+
const StreamMessageTranslator_1 = require("./StreamMessageTranslator");
|
|
5
|
+
const NetworkRpc_1 = require("../../../proto/packages/trackerless-network/protos/NetworkRpc");
|
|
6
|
+
const GroupKeyResponseTranslator_1 = require("./GroupKeyResponseTranslator");
|
|
7
|
+
const GroupKeyRequestTranslator_1 = require("./GroupKeyRequestTranslator");
|
|
8
|
+
function convertStreamMessageToBytes(oldStreamMessage) {
|
|
9
|
+
return NetworkRpc_1.StreamMessage.toBinary(StreamMessageTranslator_1.StreamMessageTranslator.toProtobuf(oldStreamMessage));
|
|
10
|
+
}
|
|
11
|
+
exports.convertStreamMessageToBytes = convertStreamMessageToBytes;
|
|
12
|
+
function convertBytesToStreamMessage(bytes) {
|
|
13
|
+
return StreamMessageTranslator_1.StreamMessageTranslator.toClientProtocol(NetworkRpc_1.StreamMessage.fromBinary(bytes));
|
|
14
|
+
}
|
|
15
|
+
exports.convertBytesToStreamMessage = convertBytesToStreamMessage;
|
|
16
|
+
const convertGroupKeyRequestToBytes = (oldGroupKeyRequest) => {
|
|
17
|
+
return NetworkRpc_1.GroupKeyRequest.toBinary(GroupKeyRequestTranslator_1.GroupKeyRequestTranslator.toProtobuf(oldGroupKeyRequest));
|
|
18
|
+
};
|
|
19
|
+
exports.convertGroupKeyRequestToBytes = convertGroupKeyRequestToBytes;
|
|
20
|
+
const convertBytesToGroupKeyRequest = (bytes) => {
|
|
21
|
+
return GroupKeyRequestTranslator_1.GroupKeyRequestTranslator.toClientProtocol(NetworkRpc_1.GroupKeyRequest.fromBinary(bytes));
|
|
22
|
+
};
|
|
23
|
+
exports.convertBytesToGroupKeyRequest = convertBytesToGroupKeyRequest;
|
|
24
|
+
const convertGroupKeyResponseToBytes = (oldGroupKeyResponse) => {
|
|
25
|
+
return NetworkRpc_1.GroupKeyResponse.toBinary(GroupKeyResponseTranslator_1.GroupKeyResponseTranslator.toProtobuf(oldGroupKeyResponse));
|
|
26
|
+
};
|
|
27
|
+
exports.convertGroupKeyResponseToBytes = convertGroupKeyResponseToBytes;
|
|
28
|
+
const convertBytesToGroupKeyResponse = (bytes) => {
|
|
29
|
+
return GroupKeyResponseTranslator_1.GroupKeyResponseTranslator.toClientProtocol(NetworkRpc_1.GroupKeyResponse.fromBinary(bytes));
|
|
30
|
+
};
|
|
31
|
+
exports.convertBytesToGroupKeyResponse = convertBytesToGroupKeyResponse;
|
|
32
|
+
//# sourceMappingURL=oldStreamMessageBinaryUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oldStreamMessageBinaryUtils.js","sourceRoot":"","sources":["../../../../../src/logic/protocol-integration/stream-message/oldStreamMessageBinaryUtils.ts"],"names":[],"mappings":";;;AAKA,uEAAmE;AACnE,8FAIsE;AACtE,6EAAyE;AACzE,2EAAuE;AAEvE,SAAgB,2BAA2B,CAAC,gBAAkC;IAC1E,OAAO,0BAAa,CAAC,QAAQ,CAAC,iDAAuB,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAA;AACvF,CAAC;AAFD,kEAEC;AAED,SAAgB,2BAA2B,CAAC,KAAiB;IACzD,OAAO,iDAAuB,CAAC,gBAAgB,CAAC,0BAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;AACpF,CAAC;AAFD,kEAEC;AAEM,MAAM,6BAA6B,GAAG,CAAC,kBAAsC,EAAc,EAAE;IAChG,OAAO,4BAAe,CAAC,QAAQ,CAAC,qDAAyB,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAA;AAC7F,CAAC,CAAA;AAFY,QAAA,6BAA6B,iCAEzC;AAEM,MAAM,6BAA6B,GAAG,CAAC,KAAiB,EAAsB,EAAE;IACnF,OAAO,qDAAyB,CAAC,gBAAgB,CAAC,4BAAe,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;AACxF,CAAC,CAAA;AAFY,QAAA,6BAA6B,iCAEzC;AAEM,MAAM,8BAA8B,GAAG,CAAC,mBAAwC,EAAc,EAAE;IACnG,OAAO,6BAAgB,CAAC,QAAQ,CAAC,uDAA0B,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAA;AAChG,CAAC,CAAA;AAFY,QAAA,8BAA8B,kCAE1C;AAEM,MAAM,8BAA8B,GAAG,CAAC,KAAiB,EAAuB,EAAE;IACrF,OAAO,uDAA0B,CAAC,gBAAgB,CAAC,6BAAgB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;AAC1F,CAAC,CAAA;AAFY,QAAA,8BAA8B,kCAE1C"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { ConnectionLocker, ITransport, PeerDescriptor } from '@streamr/dht';
|
|
2
|
+
import { ConnectionLocker, DhtAddress, ITransport, PeerDescriptor } from '@streamr/dht';
|
|
3
3
|
import { StreamPartID } from '@streamr/protocol';
|
|
4
4
|
import { EthereumAddress } from '@streamr/utils';
|
|
5
5
|
import { EventEmitter } from 'eventemitter3';
|
|
6
|
-
import { NodeID } from '../../identifiers';
|
|
7
6
|
import { ProxyDirection, StreamMessage } from '../../proto/packages/trackerless-network/protos/NetworkRpc';
|
|
8
7
|
export declare const retry: <T>(task: () => Promise<T>, description: string, abortSignal: AbortSignal, delay?: number) => Promise<T>;
|
|
9
8
|
interface ProxyClientConfig {
|
|
@@ -13,7 +12,10 @@ interface ProxyClientConfig {
|
|
|
13
12
|
connectionLocker: ConnectionLocker;
|
|
14
13
|
minPropagationTargets?: number;
|
|
15
14
|
}
|
|
16
|
-
|
|
15
|
+
interface Events {
|
|
16
|
+
message: (message: StreamMessage) => void;
|
|
17
|
+
}
|
|
18
|
+
export declare class ProxyClient extends EventEmitter<Events> {
|
|
17
19
|
private readonly rpcCommunicator;
|
|
18
20
|
private readonly deliveryRpcLocal;
|
|
19
21
|
private readonly config;
|
|
@@ -21,7 +23,7 @@ export declare class ProxyClient extends EventEmitter {
|
|
|
21
23
|
private definition?;
|
|
22
24
|
private readonly connections;
|
|
23
25
|
private readonly propagation;
|
|
24
|
-
private readonly
|
|
26
|
+
private readonly neighbors;
|
|
25
27
|
private readonly abortController;
|
|
26
28
|
constructor(config: ProxyClientConfig);
|
|
27
29
|
private registerDefaultServerMethods;
|
|
@@ -33,8 +35,8 @@ export declare class ProxyClient extends EventEmitter {
|
|
|
33
35
|
private closeRandomConnections;
|
|
34
36
|
private closeConnection;
|
|
35
37
|
private removeConnection;
|
|
36
|
-
broadcast(msg: StreamMessage, previousNode?:
|
|
37
|
-
hasConnection(nodeId:
|
|
38
|
+
broadcast(msg: StreamMessage, previousNode?: DhtAddress): void;
|
|
39
|
+
hasConnection(nodeId: DhtAddress, direction: ProxyDirection): boolean;
|
|
38
40
|
getDirection(): ProxyDirection;
|
|
39
41
|
private onNodeDisconnected;
|
|
40
42
|
start(): Promise<void>;
|