@streamr/trackerless-network 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.
Files changed (150) hide show
  1. package/dist/package.json +6 -6
  2. package/dist/src/NetworkNode.js +1 -1
  3. package/dist/src/NetworkNode.js.map +1 -1
  4. package/dist/src/NetworkStack.d.ts +5 -5
  5. package/dist/src/NetworkStack.js +21 -21
  6. package/dist/src/NetworkStack.js.map +1 -1
  7. package/dist/src/exports.d.ts +2 -2
  8. package/dist/src/exports.js +2 -2
  9. package/dist/src/exports.js.map +1 -1
  10. package/dist/src/logic/ContentDeliveryLayerNode.d.ts +5 -5
  11. package/dist/src/logic/ContentDeliveryLayerNode.js +85 -85
  12. package/dist/src/logic/ContentDeliveryLayerNode.js.map +1 -1
  13. package/dist/src/logic/ContentDeliveryManager.d.ts +11 -12
  14. package/dist/src/logic/ContentDeliveryManager.js +65 -61
  15. package/dist/src/logic/ContentDeliveryManager.js.map +1 -1
  16. package/dist/src/logic/ContentDeliveryRpcLocal.d.ts +5 -5
  17. package/dist/src/logic/ContentDeliveryRpcLocal.js +9 -9
  18. package/dist/src/logic/ContentDeliveryRpcLocal.js.map +1 -1
  19. package/dist/src/logic/{Layer0Node.d.ts → ControlLayerNode.d.ts} +1 -1
  20. package/dist/src/logic/{Layer0Node.js → ControlLayerNode.js} +1 -1
  21. package/dist/src/logic/ControlLayerNode.js.map +1 -0
  22. package/dist/src/logic/{Layer1Node.d.ts → DiscoveryLayerNode.d.ts} +8 -8
  23. package/dist/src/logic/{Layer1Node.js → DiscoveryLayerNode.js} +1 -1
  24. package/dist/src/logic/DiscoveryLayerNode.js.map +1 -0
  25. package/dist/src/logic/PeerDescriptorStoreManager.d.ts +28 -0
  26. package/dist/src/logic/PeerDescriptorStoreManager.js +79 -0
  27. package/dist/src/logic/PeerDescriptorStoreManager.js.map +1 -0
  28. package/dist/src/logic/StreamPartNetworkSplitAvoidance.d.ts +5 -5
  29. package/dist/src/logic/StreamPartNetworkSplitAvoidance.js +8 -8
  30. package/dist/src/logic/StreamPartNetworkSplitAvoidance.js.map +1 -1
  31. package/dist/src/logic/StreamPartReconnect.d.ts +5 -5
  32. package/dist/src/logic/StreamPartReconnect.js +10 -10
  33. package/dist/src/logic/StreamPartReconnect.js.map +1 -1
  34. package/dist/src/logic/createContentDeliveryLayerNode.d.ts +3 -3
  35. package/dist/src/logic/createContentDeliveryLayerNode.js +34 -34
  36. package/dist/src/logic/createContentDeliveryLayerNode.js.map +1 -1
  37. package/dist/src/logic/inspect/InspectSession.d.ts +3 -3
  38. package/dist/src/logic/inspect/InspectSession.js +5 -5
  39. package/dist/src/logic/inspect/InspectSession.js.map +1 -1
  40. package/dist/src/logic/inspect/Inspector.d.ts +2 -2
  41. package/dist/src/logic/inspect/Inspector.js +8 -8
  42. package/dist/src/logic/inspect/Inspector.js.map +1 -1
  43. package/dist/src/logic/neighbor-discovery/HandshakeRpcLocal.d.ts +4 -4
  44. package/dist/src/logic/neighbor-discovery/HandshakeRpcLocal.js +24 -24
  45. package/dist/src/logic/neighbor-discovery/HandshakeRpcLocal.js.map +1 -1
  46. package/dist/src/logic/neighbor-discovery/HandshakeRpcRemote.d.ts +1 -1
  47. package/dist/src/logic/neighbor-discovery/HandshakeRpcRemote.js +4 -4
  48. package/dist/src/logic/neighbor-discovery/HandshakeRpcRemote.js.map +1 -1
  49. package/dist/src/logic/neighbor-discovery/Handshaker.d.ts +3 -3
  50. package/dist/src/logic/neighbor-discovery/Handshaker.js +37 -37
  51. package/dist/src/logic/neighbor-discovery/Handshaker.js.map +1 -1
  52. package/dist/src/logic/neighbor-discovery/NeighborFinder.d.ts +3 -3
  53. package/dist/src/logic/neighbor-discovery/NeighborFinder.js +9 -9
  54. package/dist/src/logic/neighbor-discovery/NeighborFinder.js.map +1 -1
  55. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.d.ts +3 -3
  56. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js +12 -12
  57. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js.map +1 -1
  58. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.d.ts +3 -3
  59. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.js +14 -14
  60. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.js.map +1 -1
  61. package/dist/src/logic/proxy/ProxyClient.d.ts +3 -3
  62. package/dist/src/logic/proxy/ProxyClient.js +25 -25
  63. package/dist/src/logic/proxy/ProxyClient.js.map +1 -1
  64. package/dist/src/logic/proxy/ProxyConnectionRpcLocal.d.ts +3 -3
  65. package/dist/src/logic/proxy/ProxyConnectionRpcLocal.js +10 -10
  66. package/dist/src/logic/proxy/ProxyConnectionRpcLocal.js.map +1 -1
  67. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.d.ts +3 -3
  68. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.js +11 -11
  69. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.js.map +1 -1
  70. package/dist/src/proto/packages/dht/protos/DhtRpc.client.d.ts +4 -4
  71. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js +8 -8
  72. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js.map +1 -1
  73. package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +11 -3
  74. package/dist/src/proto/packages/dht/protos/DhtRpc.js +7 -5
  75. package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
  76. package/dist/src/proto/packages/dht/protos/DhtRpc.server.d.ts +2 -2
  77. package/dist/src/proto/packages/proto-rpc/protos/ProtoRpc.js +1 -1
  78. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.js +1 -1
  79. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.d.ts +6 -23
  80. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.js +5 -23
  81. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.js.map +1 -1
  82. package/dist/test/benchmark/first-message.js +7 -7
  83. package/dist/test/benchmark/first-message.js.map +1 -1
  84. package/dist/test/utils/utils.d.ts +2 -2
  85. package/dist/test/utils/utils.js +3 -3
  86. package/dist/test/utils/utils.js.map +1 -1
  87. package/package.json +6 -6
  88. package/protos/NetworkRpc.proto +3 -9
  89. package/src/NetworkNode.ts +1 -1
  90. package/src/NetworkStack.ts +24 -24
  91. package/src/exports.ts +2 -2
  92. package/src/logic/ContentDeliveryLayerNode.ts +112 -112
  93. package/src/logic/ContentDeliveryManager.ts +71 -67
  94. package/src/logic/ContentDeliveryRpcLocal.ts +12 -12
  95. package/src/logic/{Layer0Node.ts → ControlLayerNode.ts} +1 -1
  96. package/src/logic/{Layer1Node.ts → DiscoveryLayerNode.ts} +8 -8
  97. package/src/logic/PeerDescriptorStoreManager.ts +97 -0
  98. package/src/logic/StreamPartNetworkSplitAvoidance.ts +11 -11
  99. package/src/logic/StreamPartReconnect.ts +12 -12
  100. package/src/logic/createContentDeliveryLayerNode.ts +38 -38
  101. package/src/logic/inspect/InspectSession.ts +6 -6
  102. package/src/logic/inspect/Inspector.ts +9 -9
  103. package/src/logic/neighbor-discovery/HandshakeRpcLocal.ts +26 -26
  104. package/src/logic/neighbor-discovery/HandshakeRpcRemote.ts +6 -6
  105. package/src/logic/neighbor-discovery/Handshaker.ts +45 -45
  106. package/src/logic/neighbor-discovery/NeighborFinder.ts +10 -10
  107. package/src/logic/neighbor-discovery/NeighborUpdateManager.ts +14 -14
  108. package/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.ts +17 -17
  109. package/src/logic/proxy/ProxyClient.ts +26 -26
  110. package/src/logic/proxy/ProxyConnectionRpcLocal.ts +12 -12
  111. package/src/logic/temporary-connection/TemporaryConnectionRpcLocal.ts +13 -13
  112. package/src/proto/google/protobuf/any.ts +1 -1
  113. package/src/proto/google/protobuf/empty.ts +1 -1
  114. package/src/proto/google/protobuf/timestamp.ts +1 -1
  115. package/src/proto/packages/dht/protos/DhtRpc.client.ts +9 -9
  116. package/src/proto/packages/dht/protos/DhtRpc.server.ts +3 -3
  117. package/src/proto/packages/dht/protos/DhtRpc.ts +15 -5
  118. package/src/proto/packages/proto-rpc/protos/ProtoRpc.ts +1 -1
  119. package/src/proto/packages/trackerless-network/protos/NetworkRpc.client.ts +1 -1
  120. package/src/proto/packages/trackerless-network/protos/NetworkRpc.server.ts +1 -1
  121. package/src/proto/packages/trackerless-network/protos/NetworkRpc.ts +10 -27
  122. package/test/benchmark/StreamPartIdDataKeyDistribution.test.ts +1 -1
  123. package/test/benchmark/first-message.ts +9 -9
  124. package/test/end-to-end/content-delivery-layer-node-with-real-connections.test.ts +12 -12
  125. package/test/end-to-end/proxy-and-full-node.test.ts +4 -4
  126. package/test/integration/ContentDeliveryLayerNode-Layer1Node-Latencies.test.ts +19 -19
  127. package/test/integration/ContentDeliveryLayerNode-Layer1Node.test.ts +19 -19
  128. package/test/integration/ContentDeliveryManager.test.ts +11 -11
  129. package/test/integration/Inspect.test.ts +1 -1
  130. package/test/integration/Propagation.test.ts +6 -6
  131. package/test/integration/joining-streams-on-offline-peers.test.ts +3 -3
  132. package/test/integration/stream-without-default-entrypoints.test.ts +2 -2
  133. package/test/integration/streamEntryPointReplacing.test.ts +2 -2
  134. package/test/unit/ContentDeliveryLayerNode.test.ts +11 -11
  135. package/test/unit/ContentDeliveryManager.test.ts +2 -2
  136. package/test/unit/{EntrypointDiscovery.test.ts → PeerDescriptorStoreManager.test.ts} +28 -29
  137. package/test/unit/StreamPartIDDataKey.test.ts +1 -1
  138. package/test/unit/StreamPartNetworkSplitAvoidance.test.ts +8 -8
  139. package/test/unit/StreamPartReconnect.test.ts +9 -9
  140. package/test/utils/fake/FakePeerDescriptorStoreManager.ts +29 -0
  141. package/test/utils/mock/{MockLayer0Node.ts → MockControlLayerNode.ts} +2 -2
  142. package/test/utils/mock/{MockLayer1Node.ts → MockDiscoveryLayerNode.ts} +2 -2
  143. package/test/utils/utils.ts +5 -5
  144. package/dist/src/logic/EntryPointDiscovery.d.ts +0 -27
  145. package/dist/src/logic/EntryPointDiscovery.js +0 -80
  146. package/dist/src/logic/EntryPointDiscovery.js.map +0 -1
  147. package/dist/src/logic/Layer0Node.js.map +0 -1
  148. package/dist/src/logic/Layer1Node.js.map +0 -1
  149. package/src/logic/EntryPointDiscovery.ts +0 -100
  150. package/test/utils/fake/FakeEntryPointDiscovery.ts +0 -29
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PeerDescriptorStoreManager = exports.MAX_NODE_COUNT = void 0;
4
+ const dht_1 = require("@streamr/dht");
5
+ const utils_1 = require("@streamr/utils");
6
+ const any_1 = require("../proto/google/protobuf/any");
7
+ const parsePeerDescriptor = (dataEntries) => {
8
+ return dataEntries.filter((entry) => !entry.deleted).map((entry) => any_1.Any.unpack(entry.data, dht_1.PeerDescriptor));
9
+ };
10
+ const logger = new utils_1.Logger(module);
11
+ exports.MAX_NODE_COUNT = 8;
12
+ /**
13
+ * For each key there is usually 0-MAX_NODE_COUNT PeerDescriptors stored in the DHT. If there are fewer node,
14
+ * the peer descriptor of the local node is stored to the DHT.
15
+ */
16
+ class PeerDescriptorStoreManager {
17
+ abortController;
18
+ options;
19
+ // eslint-disable-next-line no-underscore-dangle
20
+ isLocalNodeStored_ = false;
21
+ constructor(options) {
22
+ this.options = options;
23
+ this.abortController = new AbortController();
24
+ }
25
+ async fetchNodes() {
26
+ logger.trace('Fetch data', { key: this.options.key });
27
+ try {
28
+ const result = await this.options.fetchDataFromDht(this.options.key);
29
+ return parsePeerDescriptor(result);
30
+ }
31
+ catch (err) {
32
+ return [];
33
+ }
34
+ }
35
+ async storeAndKeepLocalNode() {
36
+ if (this.abortController.signal.aborted) {
37
+ return;
38
+ }
39
+ // eslint-disable-next-line no-underscore-dangle
40
+ this.isLocalNodeStored_ = true;
41
+ await this.storeLocalNode();
42
+ await this.keepLocalNode();
43
+ }
44
+ async storeLocalNode() {
45
+ const localPeerDescriptor = this.options.localPeerDescriptor;
46
+ const dataToStore = any_1.Any.pack(localPeerDescriptor, dht_1.PeerDescriptor);
47
+ try {
48
+ await this.options.storeDataToDht(this.options.key, dataToStore);
49
+ }
50
+ catch (err) {
51
+ logger.warn('Failed to store local node', { key: this.options.key });
52
+ }
53
+ }
54
+ async keepLocalNode() {
55
+ await (0, utils_1.scheduleAtInterval)(async () => {
56
+ logger.trace('Attempting to keep local node', { key: this.options.key });
57
+ try {
58
+ const discovered = await this.fetchNodes();
59
+ if (discovered.length < exports.MAX_NODE_COUNT
60
+ || discovered.some((peerDescriptor) => (0, dht_1.areEqualPeerDescriptors)(peerDescriptor, this.options.localPeerDescriptor))) {
61
+ await this.storeLocalNode();
62
+ }
63
+ }
64
+ catch (err) {
65
+ logger.debug('Failed to keep local node', { key: this.options.key });
66
+ }
67
+ }, this.options.storeInterval ?? 60000, false, this.abortController.signal);
68
+ }
69
+ isLocalNodeStored() {
70
+ // eslint-disable-next-line no-underscore-dangle
71
+ return this.isLocalNodeStored_;
72
+ }
73
+ async destroy() {
74
+ this.abortController.abort();
75
+ await this.options.deleteDataFromDht(this.options.key, false);
76
+ }
77
+ }
78
+ exports.PeerDescriptorStoreManager = PeerDescriptorStoreManager;
79
+ //# sourceMappingURL=PeerDescriptorStoreManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PeerDescriptorStoreManager.js","sourceRoot":"","sources":["../../../src/logic/PeerDescriptorStoreManager.ts"],"names":[],"mappings":";;;AAAA,sCAKqB;AACrB,0CAA2D;AAC3D,sDAAkD;AAElD,MAAM,mBAAmB,GAAG,CAAC,WAAwB,EAAoB,EAAE;IACvE,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAK,EAAE,oBAAc,CAAC,CAAC,CAAA;AAChH,CAAC,CAAA;AAED,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEpB,QAAA,cAAc,GAAG,CAAC,CAAA;AAW/B;;;GAGG;AACH,MAAa,0BAA0B;IAElB,eAAe,CAAiB;IAChC,OAAO,CAAmC;IAC3D,gDAAgD;IACxC,kBAAkB,GAAG,KAAK,CAAA;IAElC,YAAY,OAA0C;QAClD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;IAChD,CAAC;IAED,KAAK,CAAC,UAAU;QACZ,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QACrD,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YACpE,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAA;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,OAAO,EAAE,CAAA;QACb,CAAC;IACL,CAAC;IAED,KAAK,CAAC,qBAAqB;QACvB,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACtC,OAAM;QACV,CAAC;QACD,gDAAgD;QAChD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAA;QAC9B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAA;QAC3B,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA;IAC9B,CAAC;IAEO,KAAK,CAAC,cAAc;QACxB,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAA;QAC5D,MAAM,WAAW,GAAG,SAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,oBAAc,CAAC,CAAA;QACjE,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;QACpE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QACxE,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,aAAa;QACvB,MAAM,IAAA,0BAAkB,EAAC,KAAK,IAAI,EAAE;YAChC,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;YACxE,IAAI,CAAC;gBACD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;gBAC1C,IAAI,UAAU,CAAC,MAAM,GAAG,sBAAc;uBAC/B,UAAU,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,IAAA,6BAAuB,EAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC;oBACpH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAA;gBAC/B,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;YACxE,CAAC;QACL,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;IAC/E,CAAC;IAEM,iBAAiB;QACpB,gDAAgD;QAChD,OAAO,IAAI,CAAC,kBAAkB,CAAA;IAClC,CAAC;IAED,KAAK,CAAC,OAAO;QACT,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAA;QAC5B,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACjE,CAAC;CACJ;AAlED,gEAkEC"}
@@ -1,17 +1,17 @@
1
1
  import { DhtAddress, PeerDescriptor } from '@streamr/dht';
2
- import { Layer1Node } from './Layer1Node';
2
+ import { DiscoveryLayerNode } from './DiscoveryLayerNode';
3
3
  export declare const MIN_NEIGHBOR_COUNT = 4;
4
- export interface StreamPartNetworkSplitAvoidanceConfig {
5
- layer1Node: Layer1Node;
4
+ export interface StreamPartNetworkSplitAvoidanceOptions {
5
+ discoveryLayerNode: DiscoveryLayerNode;
6
6
  discoverEntryPoints: (excludedNodes?: Set<DhtAddress>) => Promise<PeerDescriptor[]>;
7
7
  exponentialRunOfBaseDelay?: number;
8
8
  }
9
9
  export declare class StreamPartNetworkSplitAvoidance {
10
10
  private readonly abortController;
11
- private readonly config;
11
+ private readonly options;
12
12
  private readonly excludedNodes;
13
13
  private running;
14
- constructor(config: StreamPartNetworkSplitAvoidanceConfig);
14
+ constructor(options: StreamPartNetworkSplitAvoidanceOptions);
15
15
  avoidNetworkSplit(): Promise<void>;
16
16
  isRunning(): boolean;
17
17
  destroy(): void;
@@ -35,29 +35,29 @@ const exponentialRunOff = async (task, description, abortSignal, baseDelay = 500
35
35
  exports.MIN_NEIGHBOR_COUNT = 4;
36
36
  class StreamPartNetworkSplitAvoidance {
37
37
  abortController;
38
- config;
38
+ options;
39
39
  excludedNodes = new Set();
40
40
  running = false;
41
- constructor(config) {
42
- this.config = config;
41
+ constructor(options) {
42
+ this.options = options;
43
43
  this.abortController = new AbortController();
44
44
  }
45
45
  async avoidNetworkSplit() {
46
46
  this.running = true;
47
47
  await exponentialRunOff(async () => {
48
- const discoveredEntrypoints = await this.config.discoverEntryPoints();
48
+ const discoveredEntrypoints = await this.options.discoverEntryPoints();
49
49
  const filteredEntryPoints = discoveredEntrypoints.filter((peer) => !this.excludedNodes.has((0, dht_1.getNodeIdFromPeerDescriptor)(peer)));
50
- await this.config.layer1Node.joinDht(filteredEntryPoints, false, false);
51
- if (this.config.layer1Node.getNeighborCount() < exports.MIN_NEIGHBOR_COUNT) {
50
+ await this.options.discoveryLayerNode.joinDht(filteredEntryPoints, false, false);
51
+ if (this.options.discoveryLayerNode.getNeighborCount() < exports.MIN_NEIGHBOR_COUNT) {
52
52
  // Filter out nodes that are not neighbors as those nodes are assumed to be offline
53
53
  const newExcludes = filteredEntryPoints
54
- .filter((peer) => !this.config.layer1Node.getNeighbors()
54
+ .filter((peer) => !this.options.discoveryLayerNode.getNeighbors()
55
55
  .some((neighbor) => (0, dht_1.areEqualPeerDescriptors)(neighbor, peer)))
56
56
  .map((peer) => (0, dht_1.getNodeIdFromPeerDescriptor)(peer));
57
57
  newExcludes.forEach((node) => this.excludedNodes.add(node));
58
58
  throw new Error(`Network split is still possible`);
59
59
  }
60
- }, 'avoid network split', this.abortController.signal, this.config.exponentialRunOfBaseDelay);
60
+ }, 'avoid network split', this.abortController.signal, this.options.exponentialRunOfBaseDelay);
61
61
  this.running = false;
62
62
  this.excludedNodes.clear();
63
63
  logger.trace(`Network split avoided`);
@@ -1 +1 @@
1
- {"version":3,"file":"StreamPartNetworkSplitAvoidance.js","sourceRoot":"","sources":["../../../src/logic/StreamPartNetworkSplitAvoidance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StreamPartNetworkSplitAvoidance.js","sourceRoot":"","sources":["../../../src/logic/StreamPartNetworkSplitAvoidance.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import { EntryPointDiscovery } from './EntryPointDiscovery';
2
- import { Layer1Node } from './Layer1Node';
1
+ import { PeerDescriptorStoreManager } from './PeerDescriptorStoreManager';
2
+ import { DiscoveryLayerNode } from './DiscoveryLayerNode';
3
3
  export declare class StreamPartReconnect {
4
4
  private abortController?;
5
- private readonly layer1Node;
6
- private readonly entryPointDiscovery;
7
- constructor(layer1Node: Layer1Node, entryPointDiscovery: EntryPointDiscovery);
5
+ private readonly discoveryLayerNode;
6
+ private readonly peerDescriptorStoreManager;
7
+ constructor(discoveryLayerNode: DiscoveryLayerNode, peerDescriptorStoreManager: PeerDescriptorStoreManager);
8
8
  reconnect(timeout?: number): Promise<void>;
9
9
  isRunning(): boolean;
10
10
  destroy(): void;
@@ -5,21 +5,21 @@ const utils_1 = require("@streamr/utils");
5
5
  const DEFAULT_RECONNECT_INTERVAL = 30 * 1000;
6
6
  class StreamPartReconnect {
7
7
  abortController;
8
- layer1Node;
9
- entryPointDiscovery;
10
- constructor(layer1Node, entryPointDiscovery) {
11
- this.layer1Node = layer1Node;
12
- this.entryPointDiscovery = entryPointDiscovery;
8
+ discoveryLayerNode;
9
+ peerDescriptorStoreManager;
10
+ constructor(discoveryLayerNode, peerDescriptorStoreManager) {
11
+ this.discoveryLayerNode = discoveryLayerNode;
12
+ this.peerDescriptorStoreManager = peerDescriptorStoreManager;
13
13
  }
14
14
  async reconnect(timeout = DEFAULT_RECONNECT_INTERVAL) {
15
15
  this.abortController = new AbortController();
16
16
  await (0, utils_1.scheduleAtInterval)(async () => {
17
- const entryPoints = await this.entryPointDiscovery.discoverEntryPoints();
18
- await this.layer1Node.joinDht(entryPoints);
19
- if (this.entryPointDiscovery.isLocalNodeEntryPoint()) {
20
- await this.entryPointDiscovery.storeAndKeepLocalNodeAsEntryPoint();
17
+ const entryPoints = await this.peerDescriptorStoreManager.fetchNodes();
18
+ await this.discoveryLayerNode.joinDht(entryPoints);
19
+ if (this.peerDescriptorStoreManager.isLocalNodeStored()) {
20
+ await this.peerDescriptorStoreManager.storeAndKeepLocalNode();
21
21
  }
22
- if (this.layer1Node.getNeighborCount() > 0) {
22
+ if (this.discoveryLayerNode.getNeighborCount() > 0) {
23
23
  this.abortController.abort();
24
24
  }
25
25
  }, timeout, true, this.abortController.signal);
@@ -1 +1 @@
1
- {"version":3,"file":"StreamPartReconnect.js","sourceRoot":"","sources":["../../../src/logic/StreamPartReconnect.ts"],"names":[],"mappings":";;;AAAA,0CAAmD;AAInD,MAAM,0BAA0B,GAAG,EAAE,GAAG,IAAI,CAAA;AAC5C,MAAa,mBAAmB;IACpB,eAAe,CAAkB;IACxB,UAAU,CAAY;IACtB,mBAAmB,CAAqB;IAEzD,YAAY,UAAsB,EAAE,mBAAwC;QACxE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAA;IAClD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAO,GAAG,0BAA0B;QAChD,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;QAC5C,MAAM,IAAA,0BAAkB,EAAC,KAAK,IAAI,EAAE;YAChC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,CAAA;YACxE,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;YAC1C,IAAI,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,EAAE,CAAC;gBACnD,MAAM,IAAI,CAAC,mBAAmB,CAAC,iCAAiC,EAAE,CAAA;YACtE,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,eAAgB,CAAC,KAAK,EAAE,CAAA;YACjC,CAAC;QACL,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;IAClD,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAA;IAC9E,CAAC;IAED,OAAO;QACH,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,CAAA;IACjC,CAAC;CACJ;AA/BD,kDA+BC"}
1
+ {"version":3,"file":"StreamPartReconnect.js","sourceRoot":"","sources":["../../../src/logic/StreamPartReconnect.ts"],"names":[],"mappings":";;;AAAA,0CAAmD;AAInD,MAAM,0BAA0B,GAAG,EAAE,GAAG,IAAI,CAAA;AAC5C,MAAa,mBAAmB;IACpB,eAAe,CAAkB;IACxB,kBAAkB,CAAoB;IACtC,0BAA0B,CAA4B;IAEvE,YAAY,kBAAsC,EAAE,0BAAsD;QACtG,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAA;QAC5C,IAAI,CAAC,0BAA0B,GAAG,0BAA0B,CAAA;IAChE,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAO,GAAG,0BAA0B;QAChD,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;QAC5C,MAAM,IAAA,0BAAkB,EAAC,KAAK,IAAI,EAAE;YAChC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,UAAU,EAAE,CAAA;YACtE,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;YAClD,IAAI,IAAI,CAAC,0BAA0B,CAAC,iBAAiB,EAAE,EAAE,CAAC;gBACtD,MAAM,IAAI,CAAC,0BAA0B,CAAC,qBAAqB,EAAE,CAAA;YACjE,CAAC;YACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAAE,CAAC;gBACjD,IAAI,CAAC,eAAgB,CAAC,KAAK,EAAE,CAAA;YACjC,CAAC;QACL,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;IAClD,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAA;IAC9E,CAAC;IAED,OAAO;QACH,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,CAAA;IACjC,CAAC;CACJ;AA/BD,kDA+BC"}
@@ -1,10 +1,10 @@
1
- import { StrictContentDeliveryLayerNodeConfig, ContentDeliveryLayerNode } from './ContentDeliveryLayerNode';
1
+ import { StrictContentDeliveryLayerNodeOptions, ContentDeliveryLayerNode } from './ContentDeliveryLayerNode';
2
2
  import { MarkOptional } from 'ts-essentials';
3
- type ContentDeliveryLayerNodeConfig = MarkOptional<StrictContentDeliveryLayerNodeConfig, 'nearbyNodeView' | 'randomNodeView' | 'neighbors' | 'leftNodeView' | 'rightNodeView' | 'propagation' | 'handshaker' | 'neighborFinder' | 'neighborUpdateManager' | 'neighborTargetCount' | 'rpcCommunicator' | 'nodeViewSize' | 'inspector' | 'temporaryConnectionRpcLocal'> & {
3
+ type ContentDeliveryLayerNodeOptions = MarkOptional<StrictContentDeliveryLayerNodeOptions, 'nearbyNodeView' | 'randomNodeView' | 'neighbors' | 'leftNodeView' | 'rightNodeView' | 'propagation' | 'handshaker' | 'neighborFinder' | 'neighborUpdateManager' | 'neighborTargetCount' | 'rpcCommunicator' | 'nodeViewSize' | 'inspector' | 'temporaryConnectionRpcLocal'> & {
4
4
  maxContactCount?: number;
5
5
  minPropagationTargets?: number;
6
6
  acceptProxyConnections?: boolean;
7
7
  neighborUpdateInterval?: number;
8
8
  };
9
- export declare const createContentDeliveryLayerNode: (config: ContentDeliveryLayerNodeConfig) => ContentDeliveryLayerNode;
9
+ export declare const createContentDeliveryLayerNode: (options: ContentDeliveryLayerNodeOptions) => ContentDeliveryLayerNode;
10
10
  export {};
@@ -12,32 +12,32 @@ const ProxyConnectionRpcLocal_1 = require("./proxy/ProxyConnectionRpcLocal");
12
12
  const Inspector_1 = require("./inspect/Inspector");
13
13
  const TemporaryConnectionRpcLocal_1 = require("./temporary-connection/TemporaryConnectionRpcLocal");
14
14
  const formStreamPartDeliveryServiceId_1 = require("./formStreamPartDeliveryServiceId");
15
- const createConfigWithDefaults = (config) => {
16
- const ownNodeId = (0, dht_1.getNodeIdFromPeerDescriptor)(config.localPeerDescriptor);
17
- const rpcCommunicator = config.rpcCommunicator ?? new dht_1.ListeningRpcCommunicator((0, formStreamPartDeliveryServiceId_1.formStreamPartContentDeliveryServiceId)(config.streamPartId), config.transport);
18
- const neighborTargetCount = config.neighborTargetCount ?? 4;
19
- const maxContactCount = config.maxContactCount ?? 20;
20
- const minPropagationTargets = config.minPropagationTargets ?? 2;
21
- const acceptProxyConnections = config.acceptProxyConnections ?? false;
22
- const neighborUpdateInterval = config.neighborUpdateInterval ?? 10000;
23
- const neighbors = config.neighbors ?? new NodeList_1.NodeList(ownNodeId, maxContactCount);
24
- const leftNodeView = config.leftNodeView ?? new NodeList_1.NodeList(ownNodeId, maxContactCount);
25
- const rightNodeView = config.rightNodeView ?? new NodeList_1.NodeList(ownNodeId, maxContactCount);
26
- const nearbyNodeView = config.nearbyNodeView ?? new NodeList_1.NodeList(ownNodeId, maxContactCount);
27
- const randomNodeView = config.randomNodeView ?? new NodeList_1.NodeList(ownNodeId, maxContactCount);
15
+ const createConfigWithDefaults = (options) => {
16
+ const ownNodeId = (0, dht_1.getNodeIdFromPeerDescriptor)(options.localPeerDescriptor);
17
+ const rpcCommunicator = options.rpcCommunicator ?? new dht_1.ListeningRpcCommunicator((0, formStreamPartDeliveryServiceId_1.formStreamPartContentDeliveryServiceId)(options.streamPartId), options.transport);
18
+ const neighborTargetCount = options.neighborTargetCount ?? 4;
19
+ const maxContactCount = options.maxContactCount ?? 20;
20
+ const minPropagationTargets = options.minPropagationTargets ?? 2;
21
+ const acceptProxyConnections = options.acceptProxyConnections ?? false;
22
+ const neighborUpdateInterval = options.neighborUpdateInterval ?? 10000;
23
+ const neighbors = options.neighbors ?? new NodeList_1.NodeList(ownNodeId, maxContactCount);
24
+ const leftNodeView = options.leftNodeView ?? new NodeList_1.NodeList(ownNodeId, maxContactCount);
25
+ const rightNodeView = options.rightNodeView ?? new NodeList_1.NodeList(ownNodeId, maxContactCount);
26
+ const nearbyNodeView = options.nearbyNodeView ?? new NodeList_1.NodeList(ownNodeId, maxContactCount);
27
+ const randomNodeView = options.randomNodeView ?? new NodeList_1.NodeList(ownNodeId, maxContactCount);
28
28
  const ongoingHandshakes = new Set();
29
29
  const temporaryConnectionRpcLocal = new TemporaryConnectionRpcLocal_1.TemporaryConnectionRpcLocal({
30
30
  rpcCommunicator,
31
- localPeerDescriptor: config.localPeerDescriptor,
32
- streamPartId: config.streamPartId,
33
- connectionLocker: config.connectionLocker
31
+ localPeerDescriptor: options.localPeerDescriptor,
32
+ streamPartId: options.streamPartId,
33
+ connectionLocker: options.connectionLocker
34
34
  });
35
35
  const proxyConnectionRpcLocal = acceptProxyConnections ? new ProxyConnectionRpcLocal_1.ProxyConnectionRpcLocal({
36
- localPeerDescriptor: config.localPeerDescriptor,
37
- streamPartId: config.streamPartId,
36
+ localPeerDescriptor: options.localPeerDescriptor,
37
+ streamPartId: options.streamPartId,
38
38
  rpcCommunicator
39
39
  }) : undefined;
40
- const propagation = config.propagation ?? new Propagation_1.Propagation({
40
+ const propagation = options.propagation ?? new Propagation_1.Propagation({
41
41
  minPropagationTargets,
42
42
  sendToNeighbor: async (neighborId, msg) => {
43
43
  const remote = neighbors.get(neighborId) ?? temporaryConnectionRpcLocal.getNodes().get(neighborId);
@@ -53,9 +53,9 @@ const createConfigWithDefaults = (config) => {
53
53
  }
54
54
  }
55
55
  });
56
- const handshaker = config.handshaker ?? new Handshaker_1.Handshaker({
57
- localPeerDescriptor: config.localPeerDescriptor,
58
- streamPartId: config.streamPartId,
56
+ const handshaker = options.handshaker ?? new Handshaker_1.Handshaker({
57
+ localPeerDescriptor: options.localPeerDescriptor,
58
+ streamPartId: options.streamPartId,
59
59
  rpcCommunicator,
60
60
  neighbors,
61
61
  leftNodeView,
@@ -63,10 +63,10 @@ const createConfigWithDefaults = (config) => {
63
63
  nearbyNodeView,
64
64
  randomNodeView,
65
65
  maxNeighborCount: neighborTargetCount,
66
- rpcRequestTimeout: config.rpcRequestTimeout,
66
+ rpcRequestTimeout: options.rpcRequestTimeout,
67
67
  ongoingHandshakes
68
68
  });
69
- const neighborFinder = config.neighborFinder ?? new NeighborFinder_1.NeighborFinder({
69
+ const neighborFinder = options.neighborFinder ?? new NeighborFinder_1.NeighborFinder({
70
70
  neighbors,
71
71
  leftNodeView,
72
72
  rightNodeView,
@@ -75,25 +75,25 @@ const createConfigWithDefaults = (config) => {
75
75
  doFindNeighbors: (excludedIds) => handshaker.attemptHandshakesOnContacts(excludedIds),
76
76
  minCount: neighborTargetCount
77
77
  });
78
- const neighborUpdateManager = config.neighborUpdateManager ?? new NeighborUpdateManager_1.NeighborUpdateManager({
78
+ const neighborUpdateManager = options.neighborUpdateManager ?? new NeighborUpdateManager_1.NeighborUpdateManager({
79
79
  neighbors,
80
80
  nearbyNodeView,
81
- localPeerDescriptor: config.localPeerDescriptor,
81
+ localPeerDescriptor: options.localPeerDescriptor,
82
82
  neighborFinder,
83
- streamPartId: config.streamPartId,
83
+ streamPartId: options.streamPartId,
84
84
  rpcCommunicator,
85
85
  neighborUpdateInterval,
86
86
  neighborTargetCount,
87
87
  ongoingHandshakes
88
88
  });
89
- const inspector = config.inspector ?? new Inspector_1.Inspector({
90
- localPeerDescriptor: config.localPeerDescriptor,
89
+ const inspector = options.inspector ?? new Inspector_1.Inspector({
90
+ localPeerDescriptor: options.localPeerDescriptor,
91
91
  rpcCommunicator,
92
- streamPartId: config.streamPartId,
93
- connectionLocker: config.connectionLocker
92
+ streamPartId: options.streamPartId,
93
+ connectionLocker: options.connectionLocker
94
94
  });
95
95
  return {
96
- ...config,
96
+ ...options,
97
97
  neighbors,
98
98
  leftNodeView,
99
99
  rightNodeView,
@@ -111,8 +111,8 @@ const createConfigWithDefaults = (config) => {
111
111
  temporaryConnectionRpcLocal
112
112
  };
113
113
  };
114
- const createContentDeliveryLayerNode = (config) => {
115
- return new ContentDeliveryLayerNode_1.ContentDeliveryLayerNode(createConfigWithDefaults(config));
114
+ const createContentDeliveryLayerNode = (options) => {
115
+ return new ContentDeliveryLayerNode_1.ContentDeliveryLayerNode(createConfigWithDefaults(options));
116
116
  };
117
117
  exports.createContentDeliveryLayerNode = createContentDeliveryLayerNode;
118
118
  //# sourceMappingURL=createContentDeliveryLayerNode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createContentDeliveryLayerNode.js","sourceRoot":"","sources":["../../../src/logic/createContentDeliveryLayerNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createContentDeliveryLayerNode.js","sourceRoot":"","sources":["../../../src/logic/createContentDeliveryLayerNode.ts"],"names":[],"mappings":"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"}
@@ -4,14 +4,14 @@ import { DhtAddress } from '@streamr/dht';
4
4
  export interface Events {
5
5
  done: () => void;
6
6
  }
7
- interface InspectSessionConfig {
7
+ interface InspectSessionOptions {
8
8
  inspectedNode: DhtAddress;
9
9
  }
10
10
  export declare class InspectSession extends EventEmitter<Events> {
11
11
  private readonly inspectionMessages;
12
12
  private readonly inspectedNode;
13
- constructor(config: InspectSessionConfig);
14
- markMessage(senderId: DhtAddress, messageId: MessageID): void;
13
+ constructor(options: InspectSessionOptions);
14
+ markMessage(remoteNodeId: DhtAddress, messageId: MessageID): void;
15
15
  getInspectedMessageCount(): number;
16
16
  onlyMarkedByInspectedNode(): boolean;
17
17
  stop(): void;
@@ -10,18 +10,18 @@ class InspectSession extends eventemitter3_1.EventEmitter {
10
10
  // Boolean indicates if the message has been received by the inspected node
11
11
  inspectionMessages = new Map();
12
12
  inspectedNode;
13
- constructor(config) {
13
+ constructor(options) {
14
14
  super();
15
- this.inspectedNode = config.inspectedNode;
15
+ this.inspectedNode = options.inspectedNode;
16
16
  }
17
- markMessage(senderId, messageId) {
17
+ markMessage(remoteNodeId, messageId) {
18
18
  const messageKey = createMessageKey(messageId);
19
19
  if (!this.inspectionMessages.has(messageKey)) {
20
- this.inspectionMessages.set(messageKey, senderId === this.inspectedNode);
20
+ this.inspectionMessages.set(messageKey, remoteNodeId === this.inspectedNode);
21
21
  }
22
22
  else if (this.inspectionMessages.has(messageKey)
23
23
  && this.inspectionMessages.get(messageKey) === false
24
- && senderId === this.inspectedNode) {
24
+ && remoteNodeId === this.inspectedNode) {
25
25
  this.emit('done');
26
26
  }
27
27
  else if (this.inspectionMessages.has(messageKey)
@@ -1 +1 @@
1
- {"version":3,"file":"InspectSession.js","sourceRoot":"","sources":["../../../../src/logic/inspect/InspectSession.ts"],"names":[],"mappings":";;;AAAA,iDAA4C;AAE5C,0CAA4C;AAW5C,MAAM,gBAAgB,GAAG,CAAC,SAAoB,EAAU,EAAE;IACtD,OAAO,GAAG,IAAA,mBAAW,EAAC,SAAS,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,cAAc,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,cAAc,EAAE,CAAA;AACjI,CAAC,CAAA;AACD,MAAa,cAAe,SAAQ,4BAAoB;IAEpD,2EAA2E;IAC1D,kBAAkB,GAAyB,IAAI,GAAG,EAAE,CAAA;IACpD,aAAa,CAAY;IAE1C,YAAY,MAA4B;QACpC,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAA;IAC7C,CAAC;IAED,WAAW,CAAC,QAAoB,EAAE,SAAoB;QAClD,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,QAAQ,KAAK,IAAI,CAAC,aAAa,CAAC,CAAA;QAC5E,CAAC;aAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC;eAC3C,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,KAAK;eACjD,QAAQ,KAAK,IAAI,CAAC,aAAa,EACpC,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
+ {"version":3,"file":"InspectSession.js","sourceRoot":"","sources":["../../../../src/logic/inspect/InspectSession.ts"],"names":[],"mappings":";;;AAAA,iDAA4C;AAE5C,0CAA4C;AAW5C,MAAM,gBAAgB,GAAG,CAAC,SAAoB,EAAU,EAAE;IACtD,OAAO,GAAG,IAAA,mBAAW,EAAC,SAAS,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,cAAc,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,cAAc,EAAE,CAAA;AACjI,CAAC,CAAA;AACD,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,7 +1,7 @@
1
1
  import { PeerDescriptor, ConnectionLocker, LockID, DhtAddress, ListeningRpcCommunicator } from '@streamr/dht';
2
2
  import { MessageID } from '../../proto/packages/trackerless-network/protos/NetworkRpc';
3
3
  import { StreamPartID } from '@streamr/protocol';
4
- interface InspectorConfig {
4
+ interface InspectorOptions {
5
5
  localPeerDescriptor: PeerDescriptor;
6
6
  streamPartId: StreamPartID;
7
7
  rpcCommunicator: ListeningRpcCommunicator;
@@ -19,7 +19,7 @@ export declare class Inspector {
19
19
  private readonly inspectionTimeout;
20
20
  private readonly openInspectConnection;
21
21
  private readonly closeInspectConnection;
22
- constructor(config: InspectorConfig);
22
+ constructor(options: InspectorOptions);
23
23
  defaultOpenInspectConnection(peerDescriptor: PeerDescriptor, lockId: LockID): Promise<void>;
24
24
  defaultCloseInspectConnection(peerDescriptor: PeerDescriptor, lockId: LockID): Promise<void>;
25
25
  inspect(peerDescriptor: PeerDescriptor): Promise<boolean>;
@@ -17,14 +17,14 @@ class Inspector {
17
17
  inspectionTimeout;
18
18
  openInspectConnection;
19
19
  closeInspectConnection;
20
- constructor(config) {
21
- this.streamPartId = config.streamPartId;
22
- this.localPeerDescriptor = config.localPeerDescriptor;
23
- this.rpcCommunicator = config.rpcCommunicator;
24
- this.connectionLocker = config.connectionLocker;
25
- this.inspectionTimeout = config.inspectionTimeout ?? DEFAULT_TIMEOUT;
26
- this.openInspectConnection = config.openInspectConnection ?? this.defaultOpenInspectConnection;
27
- this.closeInspectConnection = config.closeInspectConnection ?? this.defaultCloseInspectConnection;
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
28
  }
29
29
  async defaultOpenInspectConnection(peerDescriptor, lockId) {
30
30
  const rpcRemote = new TemporaryConnectionRpcRemote_1.TemporaryConnectionRpcRemote(this.localPeerDescriptor, peerDescriptor, this.rpcCommunicator, NetworkRpc_client_1.TemporaryConnectionRpcClient);
@@ -1 +1 @@
1
- {"version":3,"file":"Inspector.js","sourceRoot":"","sources":["../../../../src/logic/inspect/Inspector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Inspector.js","sourceRoot":"","sources":["../../../../src/logic/inspect/Inspector.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ import { IHandshakeRpc } from '../../proto/packages/trackerless-network/protos/N
6
6
  import { HandshakeRpcRemote } from './HandshakeRpcRemote';
7
7
  import { ContentDeliveryRpcRemote } from '../ContentDeliveryRpcRemote';
8
8
  import { StreamPartID } from '@streamr/protocol';
9
- interface HandshakeRpcLocalConfig {
9
+ interface HandshakeRpcLocalOptions {
10
10
  streamPartId: StreamPartID;
11
11
  neighbors: NodeList;
12
12
  ongoingHandshakes: Set<DhtAddress>;
@@ -14,11 +14,11 @@ interface HandshakeRpcLocalConfig {
14
14
  maxNeighborCount: number;
15
15
  createRpcRemote: (target: PeerDescriptor) => HandshakeRpcRemote;
16
16
  createContentDeliveryRpcRemote: (peerDescriptor: PeerDescriptor) => ContentDeliveryRpcRemote;
17
- handshakeWithInterleaving: (target: PeerDescriptor, senderId: DhtAddress) => Promise<boolean>;
17
+ handshakeWithInterleaving: (target: PeerDescriptor, remoteNodeId: DhtAddress) => Promise<boolean>;
18
18
  }
19
19
  export declare class HandshakeRpcLocal implements IHandshakeRpc {
20
- private readonly config;
21
- constructor(config: HandshakeRpcLocalConfig);
20
+ private readonly options;
21
+ constructor(options: HandshakeRpcLocalOptions);
22
22
  handshake(request: StreamPartHandshakeRequest, context: ServerCallContext): Promise<StreamPartHandshakeResponse>;
23
23
  private handleRequest;
24
24
  private acceptHandshake;