@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,78 +0,0 @@
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("../../generated/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
- isLocalNodeStored_ = false;
20
- constructor(options) {
21
- this.options = options;
22
- this.abortController = new AbortController();
23
- }
24
- async fetchNodes() {
25
- logger.trace('Fetch data', { key: this.options.key });
26
- try {
27
- const result = await this.options.fetchDataFromDht(this.options.key);
28
- return parsePeerDescriptor(result);
29
- }
30
- catch {
31
- return [];
32
- }
33
- }
34
- async storeAndKeepLocalNode() {
35
- if (this.abortController.signal.aborted) {
36
- return;
37
- }
38
- // eslint-disable-next-line no-underscore-dangle
39
- this.isLocalNodeStored_ = true;
40
- await this.storeLocalNode();
41
- await this.keepLocalNode();
42
- }
43
- async storeLocalNode() {
44
- const localPeerDescriptor = this.options.localPeerDescriptor;
45
- const dataToStore = any_1.Any.pack(localPeerDescriptor, dht_1.PeerDescriptor);
46
- try {
47
- await this.options.storeDataToDht(this.options.key, dataToStore);
48
- }
49
- catch {
50
- logger.warn('Failed to store local node', { key: this.options.key });
51
- }
52
- }
53
- async keepLocalNode() {
54
- await (0, utils_1.scheduleAtInterval)(async () => {
55
- logger.trace('Attempting to keep local node', { key: this.options.key });
56
- try {
57
- const discovered = await this.fetchNodes();
58
- if (discovered.length < exports.MAX_NODE_COUNT
59
- || discovered.some((peerDescriptor) => (0, dht_1.areEqualPeerDescriptors)(peerDescriptor, this.options.localPeerDescriptor))) {
60
- await this.storeLocalNode();
61
- }
62
- }
63
- catch {
64
- logger.debug('Failed to keep local node', { key: this.options.key });
65
- }
66
- }, this.options.storeInterval ?? 60000, false, this.abortController.signal);
67
- }
68
- isLocalNodeStored() {
69
- // eslint-disable-next-line no-underscore-dangle
70
- return this.isLocalNodeStored_;
71
- }
72
- async destroy() {
73
- this.abortController.abort();
74
- await this.options.deleteDataFromDht(this.options.key, false);
75
- }
76
- }
77
- exports.PeerDescriptorStoreManager = PeerDescriptorStoreManager;
78
- //# sourceMappingURL=PeerDescriptorStoreManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PeerDescriptorStoreManager.js","sourceRoot":"","sources":["../../../src/control-layer/PeerDescriptorStoreManager.ts"],"names":[],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- import { DhtAddress, PeerDescriptor, RingContacts } from '@streamr/dht';
2
- export interface DiscoveryLayerNodeEvents {
3
- manualRejoinRequired: () => void;
4
- nearbyContactAdded: (peerDescriptor: PeerDescriptor) => void;
5
- nearbyContactRemoved: (peerDescriptor: PeerDescriptor) => void;
6
- randomContactAdded: (peerDescriptor: PeerDescriptor) => void;
7
- randomContactRemoved: (peerDescriptor: PeerDescriptor) => void;
8
- ringContactAdded: (peerDescriptor: PeerDescriptor) => void;
9
- ringContactRemoved: (peerDescriptor: PeerDescriptor) => void;
10
- }
11
- export interface DiscoveryLayerNode {
12
- on<T extends keyof DiscoveryLayerNodeEvents>(eventName: T, listener: (peerDescriptor: PeerDescriptor) => void): void;
13
- on<T extends keyof DiscoveryLayerNodeEvents>(eventName: T, listener: () => void): void;
14
- off<T extends keyof DiscoveryLayerNodeEvents>(eventName: T, listener: (peerDescriptor: PeerDescriptor) => void): void;
15
- off<T extends keyof DiscoveryLayerNodeEvents>(eventName: T, listener: () => void): void;
16
- once<T extends keyof DiscoveryLayerNodeEvents>(eventName: T, listener: (peerDescriptor: PeerDescriptor) => void): void;
17
- once<T extends keyof DiscoveryLayerNodeEvents>(eventName: T, listener: () => void): void;
18
- removeContact: (nodeId: DhtAddress) => void;
19
- getClosestContacts: (maxCount?: number) => PeerDescriptor[];
20
- getRandomContacts: (maxCount?: number) => PeerDescriptor[];
21
- getRingContacts: () => RingContacts;
22
- getNeighbors: () => PeerDescriptor[];
23
- getNeighborCount(): number;
24
- joinDht: (entryPoints: PeerDescriptor[], doRandomJoin?: boolean, retry?: boolean) => Promise<void>;
25
- joinRing: () => Promise<void>;
26
- start: () => Promise<void>;
27
- stop: () => Promise<void>;
28
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=DiscoveryLayerNode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DiscoveryLayerNode.js","sourceRoot":"","sources":["../../../src/discovery-layer/DiscoveryLayerNode.ts"],"names":[],"mappings":""}
@@ -1,6 +0,0 @@
1
- export { NetworkNode, createNetworkNode } from './NetworkNode';
2
- export { type NetworkOptions, NetworkStack } from './NetworkStack';
3
- export { type ContentDeliveryManagerOptions, type StreamPartDeliveryOptions, streamPartIdToDataKey } from './ContentDeliveryManager';
4
- export { AsymmetricEncryptionType, ContentType, EncryptionType, EncryptedGroupKey, GroupKeyRequest, GroupKeyResponse, MessageID, MessageRef, ProxyDirection, SignatureType, StreamMessage, ControlLayerInfo } from '../generated/packages/trackerless-network/protos/NetworkRpc';
5
- export type { ExternalRpcClient, ExternalRpcClientClass } from './control-layer/ExternalNetworkRpc';
6
- export type { NodeInfo, StreamPartitionInfo, ContentDeliveryLayerNeighborInfo } from './types';
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ControlLayerInfo = exports.StreamMessage = exports.SignatureType = exports.ProxyDirection = exports.MessageRef = exports.MessageID = exports.GroupKeyResponse = exports.GroupKeyRequest = exports.EncryptedGroupKey = exports.EncryptionType = exports.ContentType = exports.AsymmetricEncryptionType = exports.streamPartIdToDataKey = exports.NetworkStack = exports.createNetworkNode = exports.NetworkNode = void 0;
4
- var NetworkNode_1 = require("./NetworkNode");
5
- Object.defineProperty(exports, "NetworkNode", { enumerable: true, get: function () { return NetworkNode_1.NetworkNode; } });
6
- Object.defineProperty(exports, "createNetworkNode", { enumerable: true, get: function () { return NetworkNode_1.createNetworkNode; } });
7
- var NetworkStack_1 = require("./NetworkStack");
8
- Object.defineProperty(exports, "NetworkStack", { enumerable: true, get: function () { return NetworkStack_1.NetworkStack; } });
9
- var ContentDeliveryManager_1 = require("./ContentDeliveryManager");
10
- Object.defineProperty(exports, "streamPartIdToDataKey", { enumerable: true, get: function () { return ContentDeliveryManager_1.streamPartIdToDataKey; } });
11
- var NetworkRpc_1 = require("../generated/packages/trackerless-network/protos/NetworkRpc");
12
- Object.defineProperty(exports, "AsymmetricEncryptionType", { enumerable: true, get: function () { return NetworkRpc_1.AsymmetricEncryptionType; } });
13
- Object.defineProperty(exports, "ContentType", { enumerable: true, get: function () { return NetworkRpc_1.ContentType; } });
14
- Object.defineProperty(exports, "EncryptionType", { enumerable: true, get: function () { return NetworkRpc_1.EncryptionType; } });
15
- Object.defineProperty(exports, "EncryptedGroupKey", { enumerable: true, get: function () { return NetworkRpc_1.EncryptedGroupKey; } });
16
- Object.defineProperty(exports, "GroupKeyRequest", { enumerable: true, get: function () { return NetworkRpc_1.GroupKeyRequest; } });
17
- Object.defineProperty(exports, "GroupKeyResponse", { enumerable: true, get: function () { return NetworkRpc_1.GroupKeyResponse; } });
18
- Object.defineProperty(exports, "MessageID", { enumerable: true, get: function () { return NetworkRpc_1.MessageID; } });
19
- Object.defineProperty(exports, "MessageRef", { enumerable: true, get: function () { return NetworkRpc_1.MessageRef; } });
20
- Object.defineProperty(exports, "ProxyDirection", { enumerable: true, get: function () { return NetworkRpc_1.ProxyDirection; } });
21
- Object.defineProperty(exports, "SignatureType", { enumerable: true, get: function () { return NetworkRpc_1.SignatureType; } });
22
- Object.defineProperty(exports, "StreamMessage", { enumerable: true, get: function () { return NetworkRpc_1.StreamMessage; } });
23
- Object.defineProperty(exports, "ControlLayerInfo", { enumerable: true, get: function () { return NetworkRpc_1.ControlLayerInfo; } });
24
- //# sourceMappingURL=exports.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"exports.js","sourceRoot":"","sources":["../../src/exports.ts"],"names":[],"mappings":";;;AAAA,6CAA8D;AAArD,0GAAA,WAAW,OAAA;AAAE,gHAAA,iBAAiB,OAAA;AACvC,+CAAkE;AAApC,4GAAA,YAAY,OAAA;AAC1C,mEAAoI;AAAvD,+HAAA,qBAAqB,OAAA;AAClG,0FAaoE;AAZhE,sHAAA,wBAAwB,OAAA;AACxB,yGAAA,WAAW,OAAA;AACX,4GAAA,cAAc,OAAA;AACd,+GAAA,iBAAiB,OAAA;AACjB,6GAAA,eAAe,OAAA;AACf,8GAAA,gBAAgB,OAAA;AAChB,uGAAA,SAAS,OAAA;AACT,wGAAA,UAAU,OAAA;AACV,4GAAA,cAAc,OAAA;AACd,2GAAA,aAAa,OAAA;AACb,2GAAA,aAAa,OAAA;AACb,8GAAA,gBAAgB,OAAA"}
@@ -1,6 +0,0 @@
1
- import { ChangeFieldType } from '@streamr/utils';
2
- import { MarkRequired } from 'ts-essentials';
3
- import { ContentDeliveryLayerNeighborInfo as ContentDeliveryLayerNeighborInfo_, NodeInfoResponse, StreamPartitionInfo as StreamPartitionInfo_ } from '../generated/packages/trackerless-network/protos/NetworkRpc';
4
- export type ContentDeliveryLayerNeighborInfo = MarkRequired<ContentDeliveryLayerNeighborInfo_, 'peerDescriptor'>;
5
- export type StreamPartitionInfo = ChangeFieldType<Required<StreamPartitionInfo_>, 'contentDeliveryLayerNeighbors', ContentDeliveryLayerNeighborInfo[]>;
6
- export type NodeInfo = ChangeFieldType<Required<NodeInfoResponse>, 'streamPartitions', StreamPartitionInfo[]>;
package/dist/src/types.js DELETED
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- import { MessageID, MessageRef } from '../generated/packages/trackerless-network/protos/NetworkRpc';
2
- import { DuplicateMessageDetector } from './content-delivery-layer/DuplicateMessageDetector';
3
- export declare const markAndCheckDuplicate: (duplicateDetectors: Map<string, DuplicateMessageDetector>, currentMessage: MessageID, previousMessageRef?: MessageRef) => boolean;
package/dist/src/utils.js DELETED
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.markAndCheckDuplicate = void 0;
4
- const utils_1 = require("@streamr/utils");
5
- const DuplicateMessageDetector_1 = require("./content-delivery-layer/DuplicateMessageDetector");
6
- const markAndCheckDuplicate = (duplicateDetectors, currentMessage, previousMessageRef) => {
7
- const detectorKey = `${(0, utils_1.toUserId)(currentMessage.publisherId)}-${currentMessage.messageChainId}`;
8
- const previousNumberPair = previousMessageRef ?
9
- new DuplicateMessageDetector_1.NumberPair(Number(previousMessageRef.timestamp), previousMessageRef.sequenceNumber) : null;
10
- const currentNumberPair = new DuplicateMessageDetector_1.NumberPair(Number(currentMessage.timestamp), currentMessage.sequenceNumber);
11
- if (!duplicateDetectors.has(detectorKey)) {
12
- duplicateDetectors.set(detectorKey, new DuplicateMessageDetector_1.DuplicateMessageDetector());
13
- }
14
- return duplicateDetectors.get(detectorKey).markAndCheck(previousNumberPair, currentNumberPair);
15
- };
16
- exports.markAndCheckDuplicate = markAndCheckDuplicate;
17
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;;AAAA,0CAAyC;AAEzC,gGAAwG;AAEjG,MAAM,qBAAqB,GAAG,CACjC,kBAAyD,EACzD,cAAyB,EACzB,kBAA+B,EACxB,EAAE;IACT,MAAM,WAAW,GAAG,GAAG,IAAA,gBAAQ,EAAC,cAAc,CAAC,WAAW,CAAC,IAAI,cAAc,CAAC,cAAc,EAAE,CAAA;IAC9F,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,CAAC;QAC3C,IAAI,qCAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAClG,MAAM,iBAAiB,GAAG,IAAI,qCAAU,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAA;IACzG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QACvC,kBAAkB,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,mDAAwB,EAAE,CAAC,CAAA;IACvE,CAAC;IACD,OAAO,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC,YAAY,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAA;AACnG,CAAC,CAAA;AAbY,QAAA,qBAAqB,yBAajC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,139 +0,0 @@
1
- "use strict";
2
- /* eslint-disable no-console */
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- const dht_1 = require("@streamr/dht");
8
- const utils_1 = require("@streamr/utils");
9
- const fs_1 = __importDefault(require("fs"));
10
- const ContentDeliveryManager_1 = require("../../src/ContentDeliveryManager");
11
- const NetworkRpc_1 = require("../../generated/packages/trackerless-network/protos/NetworkRpc");
12
- const utils_2 = require("../utils/utils");
13
- const numNodes = 10000;
14
- let nodes;
15
- let simulator;
16
- let layer0Ep;
17
- const publishIntervals = [];
18
- const streamParts = new Map();
19
- let currentNode;
20
- let publishInterval;
21
- let i = 0;
22
- const prepareLayer0 = async () => {
23
- console.log('Preparing network');
24
- nodes = [];
25
- simulator = new dht_1.Simulator(dht_1.LatencyType.REAL);
26
- const peerDescriptor = (0, utils_2.createMockPeerDescriptor)({
27
- region: (0, dht_1.getRandomRegion)()
28
- });
29
- layer0Ep = peerDescriptor;
30
- const entryPoint = await (0, utils_2.createNetworkNodeWithSimulator)(peerDescriptor, simulator, [peerDescriptor]);
31
- await entryPoint.start();
32
- nodes.push(entryPoint);
33
- console.log('Entrypoint ready');
34
- };
35
- const prepareStream = async (streamId) => {
36
- console.log('Preparing stream ');
37
- const peerDescriptor = (0, utils_2.createMockPeerDescriptor)({
38
- region: (0, dht_1.getRandomRegion)()
39
- });
40
- const streamPartId = (0, utils_1.toStreamPartID)((0, utils_1.toStreamID)(streamId), 0);
41
- const streamPublisher = await (0, utils_2.createNetworkNodeWithSimulator)(peerDescriptor, simulator, [layer0Ep]);
42
- await streamPublisher.start();
43
- streamPublisher.join(streamPartId);
44
- nodes.push(streamPublisher);
45
- streamParts.set(streamPartId, streamPublisher);
46
- };
47
- const shutdownNetwork = async () => {
48
- publishIntervals.forEach((interval) => clearInterval(interval));
49
- await Promise.all([
50
- ...nodes.map((node) => node.stop())
51
- ]);
52
- simulator.stop();
53
- };
54
- const measureJoiningTime = async () => {
55
- const peerDescriptor = (0, utils_2.createMockPeerDescriptor)({
56
- region: (0, dht_1.getRandomRegion)()
57
- });
58
- console.log('starting node with id ', (0, dht_1.toNodeId)(peerDescriptor));
59
- // start publishing ons stream
60
- const stream = Array.from(streamParts.keys())[Math.floor(Math.random() * streamParts.size)];
61
- console.log(stream);
62
- publishInterval = setInterval(() => {
63
- i += 1;
64
- const streamMessage = {
65
- messageId: {
66
- streamId: utils_1.StreamPartIDUtils.getStreamID(stream),
67
- streamPartition: 0,
68
- timestamp: i,
69
- sequenceNumber: Math.floor(Math.random() * 20000),
70
- publisherId: (0, utils_1.toUserIdRaw)((0, utils_1.toUserId)('0x2222')),
71
- messageChainId: 'msgChainId'
72
- },
73
- body: {
74
- oneofKind: 'contentMessage',
75
- contentMessage: {
76
- content: (0, utils_1.utf8ToBinary)(JSON.stringify({
77
- hello: 'world'
78
- })),
79
- contentType: NetworkRpc_1.ContentType.JSON,
80
- encryptionType: NetworkRpc_1.EncryptionType.NONE,
81
- }
82
- },
83
- signature: (0, utils_1.hexToBinary)('0x1234'),
84
- signatureType: NetworkRpc_1.SignatureType.ECDSA_SECP256K1_EVM,
85
- };
86
- streamParts.get(stream).broadcast(streamMessage);
87
- }, 1000);
88
- // get random node from network to use as entrypoint
89
- const randomNode = nodes[Math.floor(Math.random() * nodes.length)];
90
- const streamSubscriber = await (0, utils_2.createNetworkNodeWithSimulator)(peerDescriptor, simulator, [randomNode.stack.getControlLayerNode().getLocalPeerDescriptor()]);
91
- currentNode = streamSubscriber;
92
- const start = performance.now();
93
- await streamSubscriber.start();
94
- await Promise.all([
95
- (0, utils_1.waitForEvent)(streamSubscriber.stack.getContentDeliveryManager(), 'newMessage', 60000),
96
- streamSubscriber.join(stream)
97
- ]);
98
- const end = performance.now();
99
- nodes.push(streamSubscriber);
100
- clearInterval(publishInterval);
101
- publishInterval = undefined;
102
- return end - start;
103
- };
104
- const run = async () => {
105
- await prepareLayer0();
106
- for (let i = 0; i < 20; i++) {
107
- await prepareStream(`stream-${i}`);
108
- }
109
- const logFile = fs_1.default.openSync('FirstMessageTime.log', 'w');
110
- fs_1.default.writeSync(logFile, 'Network size' + '\t' + 'Time to receive first message time (ms)' + '\n');
111
- for (let i = 0; i < numNodes; i++) {
112
- const time = await measureJoiningTime();
113
- console.log(`Time to receive first message for ${i + 1} nodes network: ${time}ms`);
114
- fs_1.default.writeSync(logFile, `${i + 1}` + '\t' + `${Math.round(time)}\n`);
115
- }
116
- fs_1.default.closeSync(logFile);
117
- await shutdownNetwork();
118
- };
119
- run().then(() => {
120
- console.log('done');
121
- }).catch((err) => {
122
- console.error(err);
123
- const contentDeliveryManager = currentNode.stack.getContentDeliveryManager();
124
- const streamParts = contentDeliveryManager.getStreamParts();
125
- const foundData = nodes[0].stack.getControlLayerNode().fetchDataFromDht((0, ContentDeliveryManager_1.streamPartIdToDataKey)(streamParts[0]));
126
- console.log(foundData);
127
- const controlLayerNode = currentNode.stack.getControlLayerNode();
128
- console.log(controlLayerNode.getNeighbors().length);
129
- console.log(controlLayerNode.getConnectionsView().getConnectionCount());
130
- const streamPartDelivery = contentDeliveryManager
131
- .getStreamPartDelivery(streamParts[0]);
132
- console.log(streamPartDelivery.discoveryLayerNode.getNeighbors());
133
- console.log(streamPartDelivery.node.getNeighbors());
134
- console.log(nodes[nodes.length - 1]);
135
- if (publishInterval) {
136
- clearInterval(publishInterval);
137
- }
138
- });
139
- //# sourceMappingURL=first-message.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"first-message.js","sourceRoot":"","sources":["../../../test/benchmark/first-message.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import { ConnectionLocker, PeerDescriptor, Simulator } from '@streamr/dht';
2
- import { StreamPartID, UserID } from '@streamr/utils';
3
- import { NetworkNode } from '../../src/NetworkNode';
4
- import { ContentDeliveryLayerNode } from '../../src/content-delivery-layer/ContentDeliveryLayerNode';
5
- import { ContentDeliveryRpcRemote } from '../../src/content-delivery-layer/ContentDeliveryRpcRemote';
6
- import { DiscoveryLayerNode } from '../../src/discovery-layer/DiscoveryLayerNode';
7
- import { HandshakeRpcRemote } from '../../src/content-delivery-layer/neighbor-discovery/HandshakeRpcRemote';
8
- import { StreamMessage } from '../../generated/packages/trackerless-network/protos/NetworkRpc';
9
- export declare const mockConnectionLocker: ConnectionLocker;
10
- export declare const createMockContentDeliveryLayerNodeAndDhtNode: (localPeerDescriptor: PeerDescriptor, entryPointDescriptor: PeerDescriptor, streamPartId: StreamPartID, simulator: Simulator, plumtreeOptimization?: boolean, plumtreeMaxPausedNeighbors?: number) => Promise<[DiscoveryLayerNode, ContentDeliveryLayerNode]>;
11
- export declare const createStreamMessage: (content: string, streamPartId: StreamPartID, publisherId: UserID, timestamp?: number, sequenceNumber?: number) => StreamMessage;
12
- export declare const createMockPeerDescriptor: (opts?: Partial<PeerDescriptor>) => PeerDescriptor;
13
- export declare const createMockContentDeliveryRpcRemote: (remotePeerDescriptor?: PeerDescriptor) => ContentDeliveryRpcRemote;
14
- export declare const createMockHandshakeRpcRemote: () => HandshakeRpcRemote;
15
- export declare const createNetworkNodeWithSimulator: (peerDescriptor: PeerDescriptor, simulator: Simulator, entryPoints: PeerDescriptor[]) => Promise<NetworkNode>;
@@ -1,106 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createNetworkNodeWithSimulator = exports.createMockHandshakeRpcRemote = exports.createMockContentDeliveryRpcRemote = exports.createMockPeerDescriptor = exports.createStreamMessage = exports.createMockContentDeliveryLayerNodeAndDhtNode = exports.mockConnectionLocker = void 0;
4
- const dht_1 = require("@streamr/dht");
5
- const proto_rpc_1 = require("@streamr/proto-rpc");
6
- const utils_1 = require("@streamr/utils");
7
- const NetworkNode_1 = require("../../src/NetworkNode");
8
- const ContentDeliveryRpcRemote_1 = require("../../src/content-delivery-layer/ContentDeliveryRpcRemote");
9
- const createContentDeliveryLayerNode_1 = require("../../src/content-delivery-layer/createContentDeliveryLayerNode");
10
- const HandshakeRpcRemote_1 = require("../../src/content-delivery-layer/neighbor-discovery/HandshakeRpcRemote");
11
- const NetworkRpc_1 = require("../../generated/packages/trackerless-network/protos/NetworkRpc");
12
- const NetworkRpc_client_1 = require("../../generated/packages/trackerless-network/protos/NetworkRpc.client");
13
- exports.mockConnectionLocker = {
14
- lockConnection: () => { },
15
- unlockConnection: () => { },
16
- weakLockConnection: () => { },
17
- weakUnlockConnection: () => { },
18
- getLocalLockedConnectionCount: () => 0,
19
- getRemoteLockedConnectionCount: () => 0,
20
- getWeakLockedConnectionCount: () => 0,
21
- };
22
- const createMockContentDeliveryLayerNodeAndDhtNode = async (localPeerDescriptor, entryPointDescriptor, streamPartId, simulator, plumtreeOptimization, plumtreeMaxPausedNeighbors) => {
23
- const mockCm = new dht_1.SimulatorTransport(localPeerDescriptor, simulator);
24
- await mockCm.start();
25
- const discoveryLayerNode = new dht_1.DhtNode({
26
- transport: mockCm,
27
- connectionsView: mockCm,
28
- peerDescriptor: localPeerDescriptor,
29
- numberOfNodesPerKBucket: 4,
30
- entryPoints: [entryPointDescriptor],
31
- rpcRequestTimeout: 5000,
32
- neighborPingLimit: 16
33
- });
34
- const contentDeliveryLayerNode = (0, createContentDeliveryLayerNode_1.createContentDeliveryLayerNode)({
35
- streamPartId,
36
- transport: mockCm,
37
- discoveryLayerNode,
38
- connectionLocker: mockCm,
39
- localPeerDescriptor,
40
- rpcRequestTimeout: 5000,
41
- isLocalNodeEntryPoint: () => false,
42
- plumtreeOptimization,
43
- plumtreeMaxPausedNeighbors
44
- });
45
- return [discoveryLayerNode, contentDeliveryLayerNode];
46
- };
47
- exports.createMockContentDeliveryLayerNodeAndDhtNode = createMockContentDeliveryLayerNodeAndDhtNode;
48
- const createStreamMessage = (content, streamPartId, publisherId, timestamp, sequenceNumber) => {
49
- const messageId = {
50
- streamId: utils_1.StreamPartIDUtils.getStreamID(streamPartId),
51
- streamPartition: utils_1.StreamPartIDUtils.getStreamPartition(streamPartId),
52
- sequenceNumber: sequenceNumber ?? 0,
53
- timestamp: timestamp ?? Date.now(),
54
- publisherId: (0, utils_1.toUserIdRaw)(publisherId),
55
- messageChainId: `messageChain0-${publisherId}`,
56
- };
57
- const msg = {
58
- messageId,
59
- signatureType: NetworkRpc_1.SignatureType.ECDSA_SECP256K1_EVM,
60
- signature: (0, utils_1.hexToBinary)('0x1234'),
61
- body: {
62
- oneofKind: 'contentMessage',
63
- contentMessage: {
64
- encryptionType: NetworkRpc_1.EncryptionType.NONE,
65
- contentType: NetworkRpc_1.ContentType.JSON,
66
- content: (0, utils_1.utf8ToBinary)(content)
67
- }
68
- }
69
- };
70
- return msg;
71
- };
72
- exports.createStreamMessage = createStreamMessage;
73
- const createMockPeerDescriptor = (opts) => {
74
- return {
75
- nodeId: (0, dht_1.toDhtAddressRaw)((0, dht_1.randomDhtAddress)()),
76
- type: dht_1.NodeType.NODEJS,
77
- region: (0, dht_1.getRandomRegion)(),
78
- ...opts
79
- };
80
- };
81
- exports.createMockPeerDescriptor = createMockPeerDescriptor;
82
- const createMockContentDeliveryRpcRemote = (remotePeerDescriptor) => {
83
- return new ContentDeliveryRpcRemote_1.ContentDeliveryRpcRemote((0, exports.createMockPeerDescriptor)(), remotePeerDescriptor ?? (0, exports.createMockPeerDescriptor)(), new proto_rpc_1.RpcCommunicator(), NetworkRpc_client_1.ContentDeliveryRpcClient);
84
- };
85
- exports.createMockContentDeliveryRpcRemote = createMockContentDeliveryRpcRemote;
86
- const createMockHandshakeRpcRemote = () => {
87
- return new HandshakeRpcRemote_1.HandshakeRpcRemote((0, exports.createMockPeerDescriptor)(), (0, exports.createMockPeerDescriptor)(), new proto_rpc_1.RpcCommunicator(), NetworkRpc_client_1.HandshakeRpcClient);
88
- };
89
- exports.createMockHandshakeRpcRemote = createMockHandshakeRpcRemote;
90
- const createNetworkNodeWithSimulator = async (peerDescriptor, simulator, entryPoints) => {
91
- const transport = new dht_1.SimulatorTransport(peerDescriptor, simulator);
92
- await transport.start();
93
- return (0, NetworkNode_1.createNetworkNode)({
94
- layer0: {
95
- peerDescriptor,
96
- entryPoints,
97
- transport,
98
- connectionsView: transport,
99
- maxConnections: 25,
100
- storeHighestTtl: 120000,
101
- storeMaxTtl: 120000
102
- }
103
- });
104
- };
105
- exports.createNetworkNodeWithSimulator = createNetworkNodeWithSimulator;
106
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../test/utils/utils.ts"],"names":[],"mappings":"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"}