@streamr/trackerless-network 103.1.2 → 103.2.0-experiment.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.
Files changed (172) hide show
  1. package/dist/exports.cjs +4489 -0
  2. package/dist/exports.cjs.map +1 -0
  3. package/dist/exports.d.ts +1391 -0
  4. package/dist/exports.js +4477 -0
  5. package/dist/exports.js.map +1 -0
  6. package/package.json +25 -18
  7. package/dist/generated/google/protobuf/any.d.ts +0 -180
  8. package/dist/generated/google/protobuf/any.js +0 -155
  9. package/dist/generated/google/protobuf/any.js.map +0 -1
  10. package/dist/generated/google/protobuf/empty.d.ts +0 -31
  11. package/dist/generated/google/protobuf/empty.js +0 -45
  12. package/dist/generated/google/protobuf/empty.js.map +0 -1
  13. package/dist/generated/google/protobuf/timestamp.d.ts +0 -156
  14. package/dist/generated/google/protobuf/timestamp.js +0 -136
  15. package/dist/generated/google/protobuf/timestamp.js.map +0 -1
  16. package/dist/generated/packages/dht/protos/DhtRpc.client.d.ts +0 -371
  17. package/dist/generated/packages/dht/protos/DhtRpc.client.js +0 -292
  18. package/dist/generated/packages/dht/protos/DhtRpc.client.js.map +0 -1
  19. package/dist/generated/packages/dht/protos/DhtRpc.d.ts +0 -1031
  20. package/dist/generated/packages/dht/protos/DhtRpc.js +0 -702
  21. package/dist/generated/packages/dht/protos/DhtRpc.js.map +0 -1
  22. package/dist/generated/packages/dht/protos/DhtRpc.server.d.ts +0 -168
  23. package/dist/generated/packages/dht/protos/DhtRpc.server.js +0 -3
  24. package/dist/generated/packages/dht/protos/DhtRpc.server.js.map +0 -1
  25. package/dist/generated/packages/proto-rpc/protos/ProtoRpc.d.ts +0 -87
  26. package/dist/generated/packages/proto-rpc/protos/ProtoRpc.js +0 -66
  27. package/dist/generated/packages/proto-rpc/protos/ProtoRpc.js.map +0 -1
  28. package/dist/generated/packages/trackerless-network/protos/NetworkRpc.client.d.ts +0 -237
  29. package/dist/generated/packages/trackerless-network/protos/NetworkRpc.client.js +0 -190
  30. package/dist/generated/packages/trackerless-network/protos/NetworkRpc.client.js.map +0 -1
  31. package/dist/generated/packages/trackerless-network/protos/NetworkRpc.d.ts +0 -687
  32. package/dist/generated/packages/trackerless-network/protos/NetworkRpc.js +0 -479
  33. package/dist/generated/packages/trackerless-network/protos/NetworkRpc.js.map +0 -1
  34. package/dist/generated/packages/trackerless-network/protos/NetworkRpc.server.d.ts +0 -102
  35. package/dist/generated/packages/trackerless-network/protos/NetworkRpc.server.js +0 -3
  36. package/dist/generated/packages/trackerless-network/protos/NetworkRpc.server.js.map +0 -1
  37. package/dist/package.json +0 -56
  38. package/dist/src/ContentDeliveryManager.d.ts +0 -82
  39. package/dist/src/ContentDeliveryManager.js +0 -325
  40. package/dist/src/ContentDeliveryManager.js.map +0 -1
  41. package/dist/src/NetworkNode.d.ts +0 -44
  42. package/dist/src/NetworkNode.js +0 -98
  43. package/dist/src/NetworkNode.js.map +0 -1
  44. package/dist/src/NetworkStack.d.ts +0 -36
  45. package/dist/src/NetworkStack.js +0 -165
  46. package/dist/src/NetworkStack.js.map +0 -1
  47. package/dist/src/NodeInfoClient.d.ts +0 -9
  48. package/dist/src/NodeInfoClient.js +0 -21
  49. package/dist/src/NodeInfoClient.js.map +0 -1
  50. package/dist/src/NodeInfoRpcLocal.d.ts +0 -12
  51. package/dist/src/NodeInfoRpcLocal.js +0 -22
  52. package/dist/src/NodeInfoRpcLocal.js.map +0 -1
  53. package/dist/src/NodeInfoRpcRemote.d.ts +0 -6
  54. package/dist/src/NodeInfoRpcRemote.js +0 -11
  55. package/dist/src/NodeInfoRpcRemote.js.map +0 -1
  56. package/dist/src/StreamPartNetworkSplitAvoidance.d.ts +0 -18
  57. package/dist/src/StreamPartNetworkSplitAvoidance.js +0 -74
  58. package/dist/src/StreamPartNetworkSplitAvoidance.js.map +0 -1
  59. package/dist/src/StreamPartReconnect.d.ts +0 -11
  60. package/dist/src/StreamPartReconnect.js +0 -37
  61. package/dist/src/StreamPartReconnect.js.map +0 -1
  62. package/dist/src/content-delivery-layer/ContentDeliveryLayerNode.d.ts +0 -78
  63. package/dist/src/content-delivery-layer/ContentDeliveryLayerNode.js +0 -240
  64. package/dist/src/content-delivery-layer/ContentDeliveryLayerNode.js.map +0 -1
  65. package/dist/src/content-delivery-layer/ContentDeliveryRpcLocal.d.ts +0 -23
  66. package/dist/src/content-delivery-layer/ContentDeliveryRpcLocal.js +0 -40
  67. package/dist/src/content-delivery-layer/ContentDeliveryRpcLocal.js.map +0 -1
  68. package/dist/src/content-delivery-layer/ContentDeliveryRpcRemote.d.ts +0 -11
  69. package/dist/src/content-delivery-layer/ContentDeliveryRpcRemote.js +0 -38
  70. package/dist/src/content-delivery-layer/ContentDeliveryRpcRemote.js.map +0 -1
  71. package/dist/src/content-delivery-layer/DuplicateMessageDetector.d.ts +0 -55
  72. package/dist/src/content-delivery-layer/DuplicateMessageDetector.js +0 -159
  73. package/dist/src/content-delivery-layer/DuplicateMessageDetector.js.map +0 -1
  74. package/dist/src/content-delivery-layer/NodeList.d.ts +0 -26
  75. package/dist/src/content-delivery-layer/NodeList.js +0 -93
  76. package/dist/src/content-delivery-layer/NodeList.js.map +0 -1
  77. package/dist/src/content-delivery-layer/createContentDeliveryLayerNode.d.ts +0 -14
  78. package/dist/src/content-delivery-layer/createContentDeliveryLayerNode.js +0 -129
  79. package/dist/src/content-delivery-layer/createContentDeliveryLayerNode.js.map +0 -1
  80. package/dist/src/content-delivery-layer/formStreamPartDeliveryServiceId.d.ts +0 -3
  81. package/dist/src/content-delivery-layer/formStreamPartDeliveryServiceId.js +0 -9
  82. package/dist/src/content-delivery-layer/formStreamPartDeliveryServiceId.js.map +0 -1
  83. package/dist/src/content-delivery-layer/inspection/InspectSession.d.ts +0 -19
  84. package/dist/src/content-delivery-layer/inspection/InspectSession.js +0 -43
  85. package/dist/src/content-delivery-layer/inspection/InspectSession.js.map +0 -1
  86. package/dist/src/content-delivery-layer/inspection/Inspector.d.ts +0 -30
  87. package/dist/src/content-delivery-layer/inspection/Inspector.js +0 -75
  88. package/dist/src/content-delivery-layer/inspection/Inspector.js.map +0 -1
  89. package/dist/src/content-delivery-layer/neighbor-discovery/HandshakeRpcLocal.d.ts +0 -29
  90. package/dist/src/content-delivery-layer/neighbor-discovery/HandshakeRpcLocal.js +0 -106
  91. package/dist/src/content-delivery-layer/neighbor-discovery/HandshakeRpcLocal.js.map +0 -1
  92. package/dist/src/content-delivery-layer/neighbor-discovery/HandshakeRpcRemote.d.ts +0 -14
  93. package/dist/src/content-delivery-layer/neighbor-discovery/HandshakeRpcRemote.js +0 -55
  94. package/dist/src/content-delivery-layer/neighbor-discovery/HandshakeRpcRemote.js.map +0 -1
  95. package/dist/src/content-delivery-layer/neighbor-discovery/Handshaker.d.ts +0 -32
  96. package/dist/src/content-delivery-layer/neighbor-discovery/Handshaker.js +0 -149
  97. package/dist/src/content-delivery-layer/neighbor-discovery/Handshaker.js.map +0 -1
  98. package/dist/src/content-delivery-layer/neighbor-discovery/NeighborFinder.d.ts +0 -22
  99. package/dist/src/content-delivery-layer/neighbor-discovery/NeighborFinder.js +0 -64
  100. package/dist/src/content-delivery-layer/neighbor-discovery/NeighborFinder.js.map +0 -1
  101. package/dist/src/content-delivery-layer/neighbor-discovery/NeighborUpdateManager.d.ts +0 -27
  102. package/dist/src/content-delivery-layer/neighbor-discovery/NeighborUpdateManager.js +0 -47
  103. package/dist/src/content-delivery-layer/neighbor-discovery/NeighborUpdateManager.js.map +0 -1
  104. package/dist/src/content-delivery-layer/neighbor-discovery/NeighborUpdateRpcLocal.d.ts +0 -25
  105. package/dist/src/content-delivery-layer/neighbor-discovery/NeighborUpdateRpcLocal.js +0 -52
  106. package/dist/src/content-delivery-layer/neighbor-discovery/NeighborUpdateRpcLocal.js.map +0 -1
  107. package/dist/src/content-delivery-layer/neighbor-discovery/NeighborUpdateRpcRemote.d.ts +0 -11
  108. package/dist/src/content-delivery-layer/neighbor-discovery/NeighborUpdateRpcRemote.js +0 -31
  109. package/dist/src/content-delivery-layer/neighbor-discovery/NeighborUpdateRpcRemote.js.map +0 -1
  110. package/dist/src/content-delivery-layer/plumtree/PausedNeighbors.d.ts +0 -12
  111. package/dist/src/content-delivery-layer/plumtree/PausedNeighbors.js +0 -50
  112. package/dist/src/content-delivery-layer/plumtree/PausedNeighbors.js.map +0 -1
  113. package/dist/src/content-delivery-layer/plumtree/PlumtreeManager.d.ts +0 -37
  114. package/dist/src/content-delivery-layer/plumtree/PlumtreeManager.js +0 -141
  115. package/dist/src/content-delivery-layer/plumtree/PlumtreeManager.js.map +0 -1
  116. package/dist/src/content-delivery-layer/plumtree/PlumtreeRpcLocal.d.ts +0 -20
  117. package/dist/src/content-delivery-layer/plumtree/PlumtreeRpcLocal.js +0 -37
  118. package/dist/src/content-delivery-layer/plumtree/PlumtreeRpcLocal.js.map +0 -1
  119. package/dist/src/content-delivery-layer/plumtree/PlumtreeRpcRemote.d.ts +0 -8
  120. package/dist/src/content-delivery-layer/plumtree/PlumtreeRpcRemote.js +0 -26
  121. package/dist/src/content-delivery-layer/plumtree/PlumtreeRpcRemote.js.map +0 -1
  122. package/dist/src/content-delivery-layer/propagation/FifoMapWithTTL.d.ts +0 -29
  123. package/dist/src/content-delivery-layer/propagation/FifoMapWithTTL.js +0 -93
  124. package/dist/src/content-delivery-layer/propagation/FifoMapWithTTL.js.map +0 -1
  125. package/dist/src/content-delivery-layer/propagation/Propagation.d.ts +0 -35
  126. package/dist/src/content-delivery-layer/propagation/Propagation.js +0 -68
  127. package/dist/src/content-delivery-layer/propagation/Propagation.js.map +0 -1
  128. package/dist/src/content-delivery-layer/propagation/PropagationTaskStore.d.ts +0 -22
  129. package/dist/src/content-delivery-layer/propagation/PropagationTaskStore.js +0 -33
  130. package/dist/src/content-delivery-layer/propagation/PropagationTaskStore.js.map +0 -1
  131. package/dist/src/content-delivery-layer/proxy/ProxyClient.d.ts +0 -46
  132. package/dist/src/content-delivery-layer/proxy/ProxyClient.js +0 -214
  133. package/dist/src/content-delivery-layer/proxy/ProxyClient.js.map +0 -1
  134. package/dist/src/content-delivery-layer/proxy/ProxyConnectionRpcLocal.d.ts +0 -34
  135. package/dist/src/content-delivery-layer/proxy/ProxyConnectionRpcLocal.js +0 -72
  136. package/dist/src/content-delivery-layer/proxy/ProxyConnectionRpcLocal.js.map +0 -1
  137. package/dist/src/content-delivery-layer/proxy/ProxyConnectionRpcRemote.d.ts +0 -7
  138. package/dist/src/content-delivery-layer/proxy/ProxyConnectionRpcRemote.js +0 -27
  139. package/dist/src/content-delivery-layer/proxy/ProxyConnectionRpcRemote.js.map +0 -1
  140. package/dist/src/content-delivery-layer/temporary-connection/TemporaryConnectionRpcLocal.d.ts +0 -26
  141. package/dist/src/content-delivery-layer/temporary-connection/TemporaryConnectionRpcLocal.js +0 -45
  142. package/dist/src/content-delivery-layer/temporary-connection/TemporaryConnectionRpcLocal.js.map +0 -1
  143. package/dist/src/content-delivery-layer/temporary-connection/TemporaryConnectionRpcRemote.d.ts +0 -6
  144. package/dist/src/content-delivery-layer/temporary-connection/TemporaryConnectionRpcRemote.js +0 -31
  145. package/dist/src/content-delivery-layer/temporary-connection/TemporaryConnectionRpcRemote.js.map +0 -1
  146. package/dist/src/control-layer/ControlLayerNode.d.ts +0 -16
  147. package/dist/src/control-layer/ControlLayerNode.js +0 -3
  148. package/dist/src/control-layer/ControlLayerNode.js.map +0 -1
  149. package/dist/src/control-layer/ExternalNetworkRpc.d.ts +0 -16
  150. package/dist/src/control-layer/ExternalNetworkRpc.js +0 -23
  151. package/dist/src/control-layer/ExternalNetworkRpc.js.map +0 -1
  152. package/dist/src/control-layer/PeerDescriptorStoreManager.d.ts +0 -28
  153. package/dist/src/control-layer/PeerDescriptorStoreManager.js +0 -78
  154. package/dist/src/control-layer/PeerDescriptorStoreManager.js.map +0 -1
  155. package/dist/src/discovery-layer/DiscoveryLayerNode.d.ts +0 -28
  156. package/dist/src/discovery-layer/DiscoveryLayerNode.js +0 -3
  157. package/dist/src/discovery-layer/DiscoveryLayerNode.js.map +0 -1
  158. package/dist/src/exports.d.ts +0 -6
  159. package/dist/src/exports.js +0 -24
  160. package/dist/src/exports.js.map +0 -1
  161. package/dist/src/types.d.ts +0 -6
  162. package/dist/src/types.js +0 -3
  163. package/dist/src/types.js.map +0 -1
  164. package/dist/src/utils.d.ts +0 -3
  165. package/dist/src/utils.js +0 -17
  166. package/dist/src/utils.js.map +0 -1
  167. package/dist/test/benchmark/first-message.d.ts +0 -1
  168. package/dist/test/benchmark/first-message.js +0 -139
  169. package/dist/test/benchmark/first-message.js.map +0 -1
  170. package/dist/test/utils/utils.d.ts +0 -15
  171. package/dist/test/utils/utils.js +0 -106
  172. package/dist/test/utils/utils.js.map +0 -1
@@ -1,93 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.NodeList = void 0;
7
- const dht_1 = require("@streamr/dht");
8
- const sample_1 = __importDefault(require("lodash/sample"));
9
- const eventemitter3_1 = require("eventemitter3");
10
- const getValuesOfIncludedKeys = (nodes, exclude, wsOnly = false) => {
11
- const values = wsOnly
12
- ? Array.from(nodes.entries()).filter(([_, node]) => node.getPeerDescriptor().websocket !== undefined)
13
- : Array.from(nodes.entries());
14
- return values
15
- .filter(([id]) => !exclude.includes(id))
16
- .map(([_id, node]) => node);
17
- };
18
- // The items in the list are in the insertion order
19
- class NodeList extends eventemitter3_1.EventEmitter {
20
- nodes;
21
- limit;
22
- ownId;
23
- constructor(ownId, limit) {
24
- super();
25
- this.nodes = new Map();
26
- this.limit = limit;
27
- this.ownId = ownId;
28
- }
29
- add(remote) {
30
- const nodeId = (0, dht_1.toNodeId)(remote.getPeerDescriptor());
31
- if ((this.ownId !== nodeId) && (this.nodes.size < this.limit)) {
32
- const isExistingNode = this.nodes.has(nodeId);
33
- this.nodes.set(nodeId, remote);
34
- if (!isExistingNode) {
35
- this.emit('nodeAdded', nodeId, remote);
36
- }
37
- }
38
- }
39
- remove(nodeId) {
40
- if (this.nodes.has(nodeId)) {
41
- const remote = this.nodes.get(nodeId);
42
- this.nodes.delete(nodeId);
43
- this.emit('nodeRemoved', nodeId, remote);
44
- }
45
- }
46
- has(nodeId) {
47
- return this.nodes.has(nodeId);
48
- }
49
- // Replace nodes does not emit nodeRemoved events, use with caution
50
- replaceAll(neighbors) {
51
- this.nodes.clear();
52
- const limited = neighbors.splice(0, this.limit);
53
- limited.forEach((remote) => {
54
- this.add(remote);
55
- });
56
- }
57
- getIds() {
58
- return Array.from(this.nodes.keys());
59
- }
60
- get(id) {
61
- return this.nodes.get(id);
62
- }
63
- size(exclude = []) {
64
- return Array.from(this.nodes.keys()).filter((node) => !exclude.includes(node)).length;
65
- }
66
- getRandom(exclude) {
67
- return (0, sample_1.default)(getValuesOfIncludedKeys(this.nodes, exclude));
68
- }
69
- getFirst(exclude, wsOnly = false) {
70
- const included = getValuesOfIncludedKeys(this.nodes, exclude, wsOnly);
71
- return included[0];
72
- }
73
- getFirstAndLast(exclude) {
74
- const included = getValuesOfIncludedKeys(this.nodes, exclude);
75
- if (included.length === 0) {
76
- return [];
77
- }
78
- return included.length > 1 ? [this.getFirst(exclude), this.getLast(exclude)] : [this.getFirst(exclude)];
79
- }
80
- getLast(exclude) {
81
- const included = getValuesOfIncludedKeys(this.nodes, exclude);
82
- return included[included.length - 1];
83
- }
84
- getAll() {
85
- return Array.from(this.nodes.values());
86
- }
87
- stop() {
88
- this.nodes.forEach((node) => this.remove((0, dht_1.toNodeId)(node.getPeerDescriptor())));
89
- this.removeAllListeners();
90
- }
91
- }
92
- exports.NodeList = NodeList;
93
- //# sourceMappingURL=NodeList.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NodeList.js","sourceRoot":"","sources":["../../../src/content-delivery-layer/NodeList.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import { StrictContentDeliveryLayerNodeOptions, ContentDeliveryLayerNode } from './ContentDeliveryLayerNode';
2
- import type { MarkOptional } from 'ts-essentials';
3
- type ContentDeliveryLayerNodeOptions = MarkOptional<StrictContentDeliveryLayerNodeOptions, 'nearbyNodeView' | 'randomNodeView' | 'neighbors' | 'leftNodeView' | 'rightNodeView' | 'propagation' | 'handshaker' | 'neighborFinder' | 'neighborUpdateManager' | 'neighborTargetCount' | 'rpcCommunicator' | 'nodeViewSize' | 'inspector' | 'temporaryConnectionRpcLocal'> & {
4
- maxContactCount?: number;
5
- minPropagationTargets?: number;
6
- acceptProxyConnections?: boolean;
7
- neighborUpdateInterval?: number;
8
- maxPropagationBufferSize?: number;
9
- doNotBufferWhileConnecting?: boolean;
10
- plumtreeOptimization?: boolean;
11
- plumtreeMaxPausedNeighbors?: number;
12
- };
13
- export declare const createContentDeliveryLayerNode: (options: ContentDeliveryLayerNodeOptions) => ContentDeliveryLayerNode;
14
- export {};
@@ -1,129 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createContentDeliveryLayerNode = void 0;
4
- const dht_1 = require("@streamr/dht");
5
- const Handshaker_1 = require("./neighbor-discovery/Handshaker");
6
- const NeighborFinder_1 = require("./neighbor-discovery/NeighborFinder");
7
- const NeighborUpdateManager_1 = require("./neighbor-discovery/NeighborUpdateManager");
8
- const ContentDeliveryLayerNode_1 = require("./ContentDeliveryLayerNode");
9
- const NodeList_1 = require("./NodeList");
10
- const Propagation_1 = require("./propagation/Propagation");
11
- const ProxyConnectionRpcLocal_1 = require("./proxy/ProxyConnectionRpcLocal");
12
- const Inspector_1 = require("./inspection/Inspector");
13
- const TemporaryConnectionRpcLocal_1 = require("./temporary-connection/TemporaryConnectionRpcLocal");
14
- const formStreamPartDeliveryServiceId_1 = require("./formStreamPartDeliveryServiceId");
15
- const PlumtreeManager_1 = require("./plumtree/PlumtreeManager");
16
- const createConfigWithDefaults = (options) => {
17
- const ownNodeId = (0, dht_1.toNodeId)(options.localPeerDescriptor);
18
- const rpcCommunicator = options.rpcCommunicator ?? new dht_1.ListeningRpcCommunicator((0, formStreamPartDeliveryServiceId_1.formStreamPartContentDeliveryServiceId)(options.streamPartId), options.transport);
19
- const neighborTargetCount = options.neighborTargetCount ?? ContentDeliveryLayerNode_1.DEFAULT_NEIGHBOR_TARGET_COUNT;
20
- const maxContactCount = options.maxContactCount ?? ContentDeliveryLayerNode_1.DEFAULT_NODE_VIEW_SIZE;
21
- const acceptProxyConnections = options.acceptProxyConnections ?? ContentDeliveryLayerNode_1.DEFAULT_ACCEPT_PROXY_CONNECTIONS;
22
- const neighborUpdateInterval = options.neighborUpdateInterval ?? NeighborUpdateManager_1.DEFAULT_NEIGHBOR_UPDATE_INTERVAL;
23
- const minPropagationTargets = options.minPropagationTargets ?? Propagation_1.DEFAULT_MIN_PROPAGATION_TARGETS;
24
- const maxPropagationBufferSize = options.maxPropagationBufferSize ?? Propagation_1.DEFAULT_MAX_PROPAGATION_BUFFER_SIZE;
25
- const neighbors = options.neighbors ?? new NodeList_1.NodeList(ownNodeId, maxContactCount);
26
- const leftNodeView = options.leftNodeView ?? new NodeList_1.NodeList(ownNodeId, maxContactCount);
27
- const rightNodeView = options.rightNodeView ?? new NodeList_1.NodeList(ownNodeId, maxContactCount);
28
- const nearbyNodeView = options.nearbyNodeView ?? new NodeList_1.NodeList(ownNodeId, maxContactCount);
29
- const randomNodeView = options.randomNodeView ?? new NodeList_1.NodeList(ownNodeId, maxContactCount);
30
- const ongoingHandshakes = new Set();
31
- const temporaryConnectionRpcLocal = new TemporaryConnectionRpcLocal_1.TemporaryConnectionRpcLocal({
32
- rpcCommunicator,
33
- localPeerDescriptor: options.localPeerDescriptor,
34
- streamPartId: options.streamPartId,
35
- connectionLocker: options.connectionLocker
36
- });
37
- const proxyConnectionRpcLocal = acceptProxyConnections ? new ProxyConnectionRpcLocal_1.ProxyConnectionRpcLocal({
38
- localPeerDescriptor: options.localPeerDescriptor,
39
- streamPartId: options.streamPartId,
40
- rpcCommunicator
41
- }) : undefined;
42
- const plumtreeManager = options.plumtreeOptimization ? new PlumtreeManager_1.PlumtreeManager({
43
- neighbors,
44
- localPeerDescriptor: options.localPeerDescriptor,
45
- rpcCommunicator,
46
- maxPausedNeighbors: options.plumtreeMaxPausedNeighbors
47
- }) : undefined;
48
- const propagation = options.propagation ?? new Propagation_1.Propagation({
49
- minPropagationTargets,
50
- maxMessages: maxPropagationBufferSize,
51
- ttl: Propagation_1.DEFAULT_PROPAGATION_BUFFER_TTL,
52
- sendToNeighbor: async (neighborId, msg) => {
53
- const remote = neighbors.get(neighborId) ?? temporaryConnectionRpcLocal.getNodes().get(neighborId);
54
- const proxyConnection = proxyConnectionRpcLocal?.getConnection(neighborId);
55
- if (remote) {
56
- await remote.sendStreamMessage(msg, options.doNotBufferWhileConnecting);
57
- }
58
- else if (proxyConnection) {
59
- await proxyConnection.remote.sendStreamMessage(msg);
60
- }
61
- else {
62
- throw new Error('Propagation target not found');
63
- }
64
- }
65
- });
66
- const handshaker = options.handshaker ?? new Handshaker_1.Handshaker({
67
- localPeerDescriptor: options.localPeerDescriptor,
68
- streamPartId: options.streamPartId,
69
- rpcCommunicator,
70
- neighbors,
71
- leftNodeView,
72
- rightNodeView,
73
- nearbyNodeView,
74
- randomNodeView,
75
- maxNeighborCount: neighborTargetCount,
76
- rpcRequestTimeout: options.rpcRequestTimeout,
77
- ongoingHandshakes
78
- });
79
- const neighborFinder = options.neighborFinder ?? new NeighborFinder_1.NeighborFinder({
80
- neighbors,
81
- leftNodeView,
82
- rightNodeView,
83
- nearbyNodeView,
84
- randomNodeView,
85
- doFindNeighbors: (excludedIds) => handshaker.attemptHandshakesOnContacts(excludedIds),
86
- minCount: neighborTargetCount
87
- });
88
- const neighborUpdateManager = options.neighborUpdateManager ?? new NeighborUpdateManager_1.NeighborUpdateManager({
89
- neighbors,
90
- nearbyNodeView,
91
- localPeerDescriptor: options.localPeerDescriptor,
92
- neighborFinder,
93
- streamPartId: options.streamPartId,
94
- rpcCommunicator,
95
- neighborUpdateInterval,
96
- neighborTargetCount,
97
- ongoingHandshakes
98
- });
99
- const inspector = options.inspector ?? new Inspector_1.Inspector({
100
- localPeerDescriptor: options.localPeerDescriptor,
101
- rpcCommunicator,
102
- streamPartId: options.streamPartId,
103
- connectionLocker: options.connectionLocker
104
- });
105
- return {
106
- ...options,
107
- neighbors,
108
- leftNodeView,
109
- rightNodeView,
110
- nearbyNodeView,
111
- randomNodeView,
112
- rpcCommunicator,
113
- handshaker,
114
- neighborFinder,
115
- neighborUpdateManager,
116
- propagation,
117
- neighborTargetCount,
118
- nodeViewSize: maxContactCount,
119
- proxyConnectionRpcLocal,
120
- inspector,
121
- temporaryConnectionRpcLocal,
122
- plumtreeManager
123
- };
124
- };
125
- const createContentDeliveryLayerNode = (options) => {
126
- return new ContentDeliveryLayerNode_1.ContentDeliveryLayerNode(createConfigWithDefaults(options));
127
- };
128
- exports.createContentDeliveryLayerNode = createContentDeliveryLayerNode;
129
- //# sourceMappingURL=createContentDeliveryLayerNode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createContentDeliveryLayerNode.js","sourceRoot":"","sources":["../../../src/content-delivery-layer/createContentDeliveryLayerNode.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { ServiceID } from '@streamr/dht';
2
- import { StreamPartID } from '@streamr/utils';
3
- export declare const formStreamPartContentDeliveryServiceId: (streamPartId: StreamPartID) => ServiceID;
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.formStreamPartContentDeliveryServiceId = void 0;
4
- const formStreamPartContentDeliveryServiceId = (streamPartId) => {
5
- // could be "content-delivery" instead of "delivery", but that is a breaking change
6
- return `stream-part-delivery-${streamPartId}`;
7
- };
8
- exports.formStreamPartContentDeliveryServiceId = formStreamPartContentDeliveryServiceId;
9
- //# sourceMappingURL=formStreamPartDeliveryServiceId.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"formStreamPartDeliveryServiceId.js","sourceRoot":"","sources":["../../../src/content-delivery-layer/formStreamPartDeliveryServiceId.ts"],"names":[],"mappings":";;;AAGO,MAAM,sCAAsC,GAAG,CAAC,YAA0B,EAAa,EAAE;IAC5F,mFAAmF;IACnF,OAAO,wBAAwB,YAAY,EAAE,CAAA;AACjD,CAAC,CAAA;AAHY,QAAA,sCAAsC,0CAGlD"}
@@ -1,19 +0,0 @@
1
- import { DhtAddress } from '@streamr/dht';
2
- import { EventEmitter } from 'eventemitter3';
3
- import { MessageID } from '../../../generated/packages/trackerless-network/protos/NetworkRpc';
4
- export interface Events {
5
- done: () => void;
6
- }
7
- interface InspectSessionOptions {
8
- inspectedNode: DhtAddress;
9
- }
10
- export declare class InspectSession extends EventEmitter<Events> {
11
- private readonly inspectionMessages;
12
- private readonly inspectedNode;
13
- constructor(options: InspectSessionOptions);
14
- markMessage(remoteNodeId: DhtAddress, messageId: MessageID): void;
15
- getInspectedMessageCount(): number;
16
- onlyMarkedByInspectedNode(): boolean;
17
- stop(): void;
18
- }
19
- export {};
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InspectSession = void 0;
4
- const utils_1 = require("@streamr/utils");
5
- const eventemitter3_1 = require("eventemitter3");
6
- const createMessageKey = (messageId) => {
7
- return `${(0, utils_1.toUserId)(messageId.publisherId)}:${messageId.messageChainId}:${messageId.timestamp}:${messageId.sequenceNumber}`;
8
- };
9
- class InspectSession extends eventemitter3_1.EventEmitter {
10
- // Boolean indicates if the message has been received by the inspected node
11
- inspectionMessages = new Map();
12
- inspectedNode;
13
- constructor(options) {
14
- super();
15
- this.inspectedNode = options.inspectedNode;
16
- }
17
- markMessage(remoteNodeId, messageId) {
18
- const messageKey = createMessageKey(messageId);
19
- if (!this.inspectionMessages.has(messageKey)) {
20
- this.inspectionMessages.set(messageKey, remoteNodeId === this.inspectedNode);
21
- }
22
- else if (this.inspectionMessages.has(messageKey)
23
- && this.inspectionMessages.get(messageKey) === false
24
- && remoteNodeId === this.inspectedNode) {
25
- this.emit('done');
26
- }
27
- else if (this.inspectionMessages.has(messageKey)
28
- && this.inspectionMessages.get(messageKey) === true) {
29
- this.emit('done');
30
- }
31
- }
32
- getInspectedMessageCount() {
33
- return this.inspectionMessages.size;
34
- }
35
- onlyMarkedByInspectedNode() {
36
- return Array.from(this.inspectionMessages.values()).every((value) => value === true);
37
- }
38
- stop() {
39
- this.emit('done');
40
- }
41
- }
42
- exports.InspectSession = InspectSession;
43
- //# sourceMappingURL=InspectSession.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InspectSession.js","sourceRoot":"","sources":["../../../../src/content-delivery-layer/inspection/InspectSession.ts"],"names":[],"mappings":";;;AACA,0CAAyC;AACzC,iDAA4C;AAW5C,MAAM,gBAAgB,GAAG,CAAC,SAAoB,EAAU,EAAE;IACtD,OAAO,GAAG,IAAA,gBAAQ,EAAC,SAAS,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,cAAc,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,cAAc,EAAE,CAAA;AAC9H,CAAC,CAAA;AAED,MAAa,cAAe,SAAQ,4BAAoB;IAEpD,2EAA2E;IAC1D,kBAAkB,GAAyB,IAAI,GAAG,EAAE,CAAA;IACpD,aAAa,CAAY;IAE1C,YAAY,OAA8B;QACtC,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;IAC9C,CAAC;IAED,WAAW,CAAC,YAAwB,EAAE,SAAoB;QACtD,MAAM,UAAU,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAA;QAC9C,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,KAAK,IAAI,CAAC,aAAa,CAAC,CAAA;QAChF,CAAC;aAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC;eAC3C,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,KAAK;eACjD,YAAY,KAAK,IAAI,CAAC,aAAa,EACxC,CAAC;YACC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACrB,CAAC;aAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC;eAC3C,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC;YACtD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACrB,CAAC;IACL,CAAC;IAED,wBAAwB;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAA;IACvC,CAAC;IAED,yBAAyB;QACrB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAA;IACxF,CAAC;IAED,IAAI;QACA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACrB,CAAC;CACJ;AArCD,wCAqCC"}
@@ -1,30 +0,0 @@
1
- import { ConnectionLocker, DhtAddress, ListeningRpcCommunicator, LockID, PeerDescriptor } from '@streamr/dht';
2
- import { StreamPartID } from '@streamr/utils';
3
- import { MessageID } from '../../../generated/packages/trackerless-network/protos/NetworkRpc';
4
- interface InspectorOptions {
5
- localPeerDescriptor: PeerDescriptor;
6
- streamPartId: StreamPartID;
7
- rpcCommunicator: ListeningRpcCommunicator;
8
- connectionLocker: ConnectionLocker;
9
- inspectionTimeout?: number;
10
- openInspectConnection?: (peerDescriptor: PeerDescriptor, lockId: LockID) => Promise<void>;
11
- closeInspectConnection?: (peerDescriptor: PeerDescriptor, lockId: LockID) => Promise<void>;
12
- }
13
- export declare class Inspector {
14
- private readonly sessions;
15
- private readonly streamPartId;
16
- private readonly localPeerDescriptor;
17
- private readonly rpcCommunicator;
18
- private readonly connectionLocker;
19
- private readonly inspectionTimeout;
20
- private readonly openInspectConnection;
21
- private readonly closeInspectConnection;
22
- constructor(options: InspectorOptions);
23
- defaultOpenInspectConnection(peerDescriptor: PeerDescriptor, lockId: LockID): Promise<void>;
24
- defaultCloseInspectConnection(peerDescriptor: PeerDescriptor, lockId: LockID): Promise<void>;
25
- inspect(peerDescriptor: PeerDescriptor): Promise<boolean>;
26
- markMessage(sender: DhtAddress, messageId: MessageID): void;
27
- isInspected(nodeId: DhtAddress): boolean;
28
- stop(): void;
29
- }
30
- export {};
@@ -1,75 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Inspector = void 0;
4
- const dht_1 = require("@streamr/dht");
5
- const utils_1 = require("@streamr/utils");
6
- const NetworkRpc_client_1 = require("../../../generated/packages/trackerless-network/protos/NetworkRpc.client");
7
- const TemporaryConnectionRpcRemote_1 = require("../temporary-connection/TemporaryConnectionRpcRemote");
8
- const InspectSession_1 = require("./InspectSession");
9
- const logger = new utils_1.Logger(module);
10
- const DEFAULT_TIMEOUT = 60 * 1000;
11
- class Inspector {
12
- sessions = new Map();
13
- streamPartId;
14
- localPeerDescriptor;
15
- rpcCommunicator;
16
- connectionLocker;
17
- inspectionTimeout;
18
- openInspectConnection;
19
- closeInspectConnection;
20
- constructor(options) {
21
- this.streamPartId = options.streamPartId;
22
- this.localPeerDescriptor = options.localPeerDescriptor;
23
- this.rpcCommunicator = options.rpcCommunicator;
24
- this.connectionLocker = options.connectionLocker;
25
- this.inspectionTimeout = options.inspectionTimeout ?? DEFAULT_TIMEOUT;
26
- this.openInspectConnection = options.openInspectConnection ?? this.defaultOpenInspectConnection;
27
- this.closeInspectConnection = options.closeInspectConnection ?? this.defaultCloseInspectConnection;
28
- }
29
- async defaultOpenInspectConnection(peerDescriptor, lockId) {
30
- const rpcRemote = new TemporaryConnectionRpcRemote_1.TemporaryConnectionRpcRemote(this.localPeerDescriptor, peerDescriptor, this.rpcCommunicator, NetworkRpc_client_1.TemporaryConnectionRpcClient);
31
- await rpcRemote.openConnection();
32
- this.connectionLocker.weakLockConnection((0, dht_1.toNodeId)(peerDescriptor), lockId);
33
- }
34
- async defaultCloseInspectConnection(peerDescriptor, lockId) {
35
- const rpcRemote = new TemporaryConnectionRpcRemote_1.TemporaryConnectionRpcRemote(this.localPeerDescriptor, peerDescriptor, this.rpcCommunicator, NetworkRpc_client_1.TemporaryConnectionRpcClient);
36
- await rpcRemote.closeConnection();
37
- this.connectionLocker.weakUnlockConnection((0, dht_1.toNodeId)(peerDescriptor), lockId);
38
- }
39
- async inspect(peerDescriptor) {
40
- const nodeId = (0, dht_1.toNodeId)(peerDescriptor);
41
- const session = new InspectSession_1.InspectSession({
42
- inspectedNode: nodeId
43
- });
44
- const lockId = `inspector-${this.streamPartId}`;
45
- this.sessions.set(nodeId, session);
46
- await this.openInspectConnection(peerDescriptor, lockId);
47
- let success = false;
48
- try {
49
- await (0, utils_1.waitForEvent)(session, 'done', this.inspectionTimeout);
50
- success = true;
51
- }
52
- catch {
53
- logger.trace('Inspect session timed out, removing');
54
- }
55
- finally {
56
- await this.closeInspectConnection(peerDescriptor, lockId);
57
- this.sessions.delete(nodeId);
58
- }
59
- return success || session.getInspectedMessageCount() < 1 || session.onlyMarkedByInspectedNode();
60
- }
61
- markMessage(sender, messageId) {
62
- this.sessions.forEach((session) => session.markMessage(sender, messageId));
63
- }
64
- isInspected(nodeId) {
65
- return this.sessions.has(nodeId);
66
- }
67
- stop() {
68
- this.sessions.forEach((session) => {
69
- session.stop();
70
- });
71
- this.sessions.clear();
72
- }
73
- }
74
- exports.Inspector = Inspector;
75
- //# sourceMappingURL=Inspector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Inspector.js","sourceRoot":"","sources":["../../../../src/content-delivery-layer/inspection/Inspector.ts"],"names":[],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- import { ServerCallContext } from '@protobuf-ts/runtime-rpc';
2
- import { DhtAddress, PeerDescriptor } from '@streamr/dht';
3
- import { StreamPartID } from '@streamr/utils';
4
- import { InterleaveRequest, InterleaveResponse, StreamPartHandshakeRequest, StreamPartHandshakeResponse } from '../../../generated/packages/trackerless-network/protos/NetworkRpc';
5
- import { IHandshakeRpc } from '../../../generated/packages/trackerless-network/protos/NetworkRpc.server';
6
- import { ContentDeliveryRpcRemote } from '../ContentDeliveryRpcRemote';
7
- import { NodeList } from '../NodeList';
8
- import { HandshakeRpcRemote } from './HandshakeRpcRemote';
9
- interface HandshakeRpcLocalOptions {
10
- streamPartId: StreamPartID;
11
- neighbors: NodeList;
12
- ongoingHandshakes: Set<DhtAddress>;
13
- ongoingInterleaves: Set<DhtAddress>;
14
- maxNeighborCount: number;
15
- createRpcRemote: (target: PeerDescriptor) => HandshakeRpcRemote;
16
- createContentDeliveryRpcRemote: (peerDescriptor: PeerDescriptor) => ContentDeliveryRpcRemote;
17
- handshakeWithInterleaving: (target: PeerDescriptor, remoteNodeId: DhtAddress) => Promise<boolean>;
18
- }
19
- export declare class HandshakeRpcLocal implements IHandshakeRpc {
20
- private readonly options;
21
- constructor(options: HandshakeRpcLocalOptions);
22
- handshake(request: StreamPartHandshakeRequest, context: ServerCallContext): Promise<StreamPartHandshakeResponse>;
23
- private handleRequest;
24
- private acceptHandshake;
25
- private rejectHandshake;
26
- private acceptHandshakeWithInterleaving;
27
- interleaveRequest(message: InterleaveRequest, context: ServerCallContext): Promise<InterleaveResponse>;
28
- }
29
- export {};
@@ -1,106 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HandshakeRpcLocal = void 0;
4
- const dht_1 = require("@streamr/dht");
5
- const utils_1 = require("@streamr/utils");
6
- const logger = new utils_1.Logger(module);
7
- class HandshakeRpcLocal {
8
- options;
9
- constructor(options) {
10
- this.options = options;
11
- }
12
- async handshake(request, context) {
13
- return this.handleRequest(request, context);
14
- }
15
- handleRequest(request, context) {
16
- const senderDescriptor = context.incomingSourceDescriptor;
17
- const getInterleaveNodeIds = () => (request.interleaveNodeId !== undefined) ? [(0, dht_1.toDhtAddress)(request.interleaveNodeId)] : [];
18
- const senderNodeId = (0, dht_1.toNodeId)(senderDescriptor);
19
- if (this.options.ongoingInterleaves.has(senderNodeId)) {
20
- return this.rejectHandshake(request);
21
- }
22
- else if (this.options.neighbors.has(senderNodeId)
23
- || this.options.ongoingHandshakes.has(senderNodeId)) {
24
- return this.acceptHandshake(request, senderDescriptor);
25
- }
26
- else if (this.options.neighbors.size() + this.options.ongoingHandshakes.size < this.options.maxNeighborCount) {
27
- return this.acceptHandshake(request, senderDescriptor);
28
- }
29
- else if (this.options.neighbors.size(getInterleaveNodeIds()) - this.options.ongoingInterleaves.size >= 2
30
- && this.options.neighbors.size() <= this.options.maxNeighborCount) {
31
- // Do not accept the handshakes requests if the target neighbor count can potentially drop below 2
32
- // due to interleaving. This ensures that a stable number of connections is kept during high churn.
33
- return this.acceptHandshakeWithInterleaving(request, senderDescriptor);
34
- }
35
- else {
36
- return this.rejectHandshake(request);
37
- }
38
- }
39
- acceptHandshake(request, requester) {
40
- const res = {
41
- requestId: request.requestId,
42
- accepted: true
43
- };
44
- this.options.neighbors.add(this.options.createContentDeliveryRpcRemote(requester));
45
- return res;
46
- }
47
- // eslint-disable-next-line class-methods-use-this
48
- rejectHandshake(request) {
49
- const res = {
50
- requestId: request.requestId,
51
- accepted: false
52
- };
53
- return res;
54
- }
55
- acceptHandshakeWithInterleaving(request, requester) {
56
- const exclude = [];
57
- request.neighborNodeIds.forEach((id) => exclude.push((0, dht_1.toDhtAddress)(id)));
58
- this.options.ongoingInterleaves.forEach((id) => exclude.push(id));
59
- exclude.push((0, dht_1.toNodeId)(requester));
60
- if (request.interleaveNodeId !== undefined) {
61
- exclude.push((0, dht_1.toDhtAddress)(request.interleaveNodeId));
62
- }
63
- const last = this.options.neighbors.getLast(exclude);
64
- const lastPeerDescriptor = last ? last.getPeerDescriptor() : undefined;
65
- if (last) {
66
- const nodeId = (0, dht_1.toNodeId)(last.getPeerDescriptor());
67
- const remote = this.options.createRpcRemote(last.getPeerDescriptor());
68
- this.options.ongoingInterleaves.add(nodeId);
69
- // Run this with then catch instead of setImmediate to avoid changes in state
70
- // eslint-disable-next-line promise/catch-or-return
71
- remote.interleaveRequest(requester).then((response) => {
72
- // If response is accepted, remove the last node from the target neighbors
73
- // and unlock the connection
74
- // If response is not accepted, keep the last node as a neighbor
75
- if (response.accepted) {
76
- this.options.neighbors.remove((0, dht_1.toNodeId)(lastPeerDescriptor));
77
- }
78
- }).catch(() => {
79
- // no-op: InterleaveRequest cannot reject
80
- }).finally(() => {
81
- this.options.ongoingInterleaves.delete(nodeId);
82
- });
83
- }
84
- this.options.neighbors.add(this.options.createContentDeliveryRpcRemote(requester));
85
- return {
86
- requestId: request.requestId,
87
- accepted: true,
88
- interleaveTargetDescriptor: lastPeerDescriptor
89
- };
90
- }
91
- async interleaveRequest(message, context) {
92
- const senderPeerDescriptor = context.incomingSourceDescriptor;
93
- const remoteNodeId = (0, dht_1.toNodeId)(senderPeerDescriptor);
94
- try {
95
- await this.options.handshakeWithInterleaving(message.interleaveTargetDescriptor, remoteNodeId);
96
- this.options.neighbors.remove(remoteNodeId);
97
- return { accepted: true };
98
- }
99
- catch (err) {
100
- logger.debug(`interleaveRequest to ${(0, dht_1.toNodeId)(message.interleaveTargetDescriptor)} failed`, { err });
101
- return { accepted: false };
102
- }
103
- }
104
- }
105
- exports.HandshakeRpcLocal = HandshakeRpcLocal;
106
- //# sourceMappingURL=HandshakeRpcLocal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HandshakeRpcLocal.js","sourceRoot":"","sources":["../../../../src/content-delivery-layer/neighbor-discovery/HandshakeRpcLocal.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import { DhtAddress, PeerDescriptor, RpcRemote } from '@streamr/dht';
2
- import { StreamPartID } from '@streamr/utils';
3
- import { InterleaveResponse } from '../../../generated/packages/trackerless-network/protos/NetworkRpc';
4
- import { HandshakeRpcClient } from '../../../generated/packages/trackerless-network/protos/NetworkRpc.client';
5
- interface HandshakeResponse {
6
- accepted: boolean;
7
- interleaveTargetDescriptor?: PeerDescriptor;
8
- }
9
- export declare const INTERLEAVE_REQUEST_TIMEOUT = 10000;
10
- export declare class HandshakeRpcRemote extends RpcRemote<HandshakeRpcClient> {
11
- handshake(streamPartId: StreamPartID, neighborNodeIds: DhtAddress[], concurrentHandshakeNodeId?: DhtAddress, interleaveNodeId?: DhtAddress): Promise<HandshakeResponse>;
12
- interleaveRequest(originatorDescriptor: PeerDescriptor): Promise<InterleaveResponse>;
13
- }
14
- export {};