@streamr/trackerless-network 0.0.1-tatum.5 → 0.0.1-tatum.6

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 (50) hide show
  1. package/dist/package.json +6 -6
  2. package/dist/src/NetworkStack.d.ts +1 -1
  3. package/dist/src/NetworkStack.js.map +1 -1
  4. package/dist/src/logic/ILayer1.d.ts +2 -2
  5. package/dist/src/logic/NodeList.d.ts +2 -2
  6. package/dist/src/logic/NodeList.js +2 -2
  7. package/dist/src/logic/NodeList.js.map +1 -1
  8. package/dist/src/logic/RandomGraphNode.js +6 -6
  9. package/dist/src/logic/RandomGraphNode.js.map +1 -1
  10. package/dist/src/logic/StreamPartEntryPointDiscovery.d.ts +7 -9
  11. package/dist/src/logic/StreamPartEntryPointDiscovery.js +46 -73
  12. package/dist/src/logic/StreamPartEntryPointDiscovery.js.map +1 -1
  13. package/dist/src/logic/StreamrNode.d.ts +2 -1
  14. package/dist/src/logic/StreamrNode.js +22 -15
  15. package/dist/src/logic/StreamrNode.js.map +1 -1
  16. package/dist/src/logic/createRandomGraphNode.js +1 -1
  17. package/dist/src/logic/createRandomGraphNode.js.map +1 -1
  18. package/dist/src/logic/neighbor-discovery/NeighborFinder.js +4 -4
  19. package/dist/src/logic/neighbor-discovery/NeighborFinder.js.map +1 -1
  20. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js +2 -2
  21. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js.map +1 -1
  22. package/dist/src/logic/neighbor-discovery/NeighborUpdateManagerServer.js +2 -2
  23. package/dist/src/logic/neighbor-discovery/NeighborUpdateManagerServer.js.map +1 -1
  24. package/dist/src/logic/proxy/ProxyStreamConnectionClient.d.ts +2 -3
  25. package/dist/src/logic/proxy/ProxyStreamConnectionClient.js +5 -8
  26. package/dist/src/logic/proxy/ProxyStreamConnectionClient.js.map +1 -1
  27. package/dist/src/logic/proxy/ProxyStreamConnectionServer.d.ts +0 -2
  28. package/dist/src/logic/proxy/ProxyStreamConnectionServer.js +0 -6
  29. package/dist/src/logic/proxy/ProxyStreamConnectionServer.js.map +1 -1
  30. package/dist/test/utils/utils.js +0 -1
  31. package/dist/test/utils/utils.js.map +1 -1
  32. package/package.json +6 -6
  33. package/src/NetworkStack.ts +1 -1
  34. package/src/logic/ILayer1.ts +2 -5
  35. package/src/logic/NodeList.ts +2 -2
  36. package/src/logic/RandomGraphNode.ts +6 -7
  37. package/src/logic/StreamPartEntryPointDiscovery.ts +51 -86
  38. package/src/logic/StreamrNode.ts +23 -21
  39. package/src/logic/createRandomGraphNode.ts +1 -1
  40. package/src/logic/neighbor-discovery/NeighborFinder.ts +4 -4
  41. package/src/logic/neighbor-discovery/NeighborUpdateManager.ts +2 -2
  42. package/src/logic/neighbor-discovery/NeighborUpdateManagerServer.ts +2 -2
  43. package/src/logic/proxy/ProxyStreamConnectionClient.ts +6 -10
  44. package/src/logic/proxy/ProxyStreamConnectionServer.ts +0 -8
  45. package/test/end-to-end/proxy-connections.test.ts +1 -1
  46. package/test/end-to-end/websocket-full-node-network.test.ts +1 -1
  47. package/test/unit/RandomGraphNode.test.ts +6 -6
  48. package/test/unit/StreamPartEntrypointDiscovery.test.ts +15 -30
  49. package/test/utils/mock/MockLayer1.ts +5 -7
  50. package/test/utils/utils.ts +0 -1
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@streamr/trackerless-network",
3
- "version": "0.0.1-tatum.5",
3
+ "version": "0.0.1-tatum.6",
4
4
  "description": "Minimal and extendable implementation of the Streamr Network node.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -30,11 +30,11 @@
30
30
  "dependencies": {
31
31
  "@protobuf-ts/runtime": "^2.8.2",
32
32
  "@protobuf-ts/runtime-rpc": "^2.8.2",
33
- "@streamr/dht": "0.0.1-tatum.5",
34
- "@streamr/proto-rpc": "0.0.1-tatum.5",
35
- "@streamr/protocol": "0.0.1-tatum.5",
36
- "@streamr/test-utils": "0.0.1-tatum.5",
37
- "@streamr/utils": "0.0.1-tatum.5",
33
+ "@streamr/dht": "0.0.1-tatum.6",
34
+ "@streamr/proto-rpc": "0.0.1-tatum.6",
35
+ "@streamr/protocol": "0.0.1-tatum.6",
36
+ "@streamr/test-utils": "0.0.1-tatum.6",
37
+ "@streamr/utils": "0.0.1-tatum.6",
38
38
  "eventemitter3": "^5.0.0",
39
39
  "lodash": "^4.17.21",
40
40
  "yallist": "^4.0.0"
@@ -26,7 +26,7 @@ export declare class NetworkStack extends EventEmitter<NetworkStackEvents> {
26
26
  start(doJoin?: boolean): Promise<void>;
27
27
  private joinDht;
28
28
  private waitForFirstConnection;
29
- joinLayer0IfRequired(streamPartId: StreamPartID): Promise<void>;
29
+ private joinLayer0IfRequired;
30
30
  getStreamrNode(): StreamrNode;
31
31
  getLayer0DhtNode(): DhtNode;
32
32
  getMetricsContext(): MetricsContext;
@@ -1 +1 @@
1
- {"version":3,"file":"NetworkStack.js","sourceRoot":"","sources":["../../src/NetworkStack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NetworkStack.js","sourceRoot":"","sources":["../../src/NetworkStack.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { PeerDescriptor, SortedContactList, DhtPeer } from '@streamr/dht';
1
+ import { PeerDescriptor } from '@streamr/dht';
2
2
  export interface ILayer1Events {
3
3
  newContact: (peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => void;
4
4
  contactRemoved: (peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => void;
@@ -10,7 +10,7 @@ export interface ILayer1 {
10
10
  once<T extends keyof ILayer1Events>(eventName: T, listener: (peerDescriptor: PeerDescriptor, peers: PeerDescriptor[]) => void): void;
11
11
  off<T extends keyof ILayer1Events>(eventName: T, listener: (peerDescriptor: PeerDescriptor, peers: PeerDescriptor[]) => void): void;
12
12
  removeContact: (peerDescriptor: PeerDescriptor, removeFromOpenInternetPeers?: boolean) => void;
13
- getNeighborList: () => SortedContactList<DhtPeer>;
13
+ getClosestContacts: (maxCount?: number) => PeerDescriptor[];
14
14
  getKBucketPeers: () => PeerDescriptor[];
15
15
  getBucketSize: () => number;
16
16
  joinDht: (entryPoints: PeerDescriptor[], doRandomJoin?: boolean, retry?: boolean) => Promise<void>;
@@ -17,12 +17,12 @@ export declare class NodeList extends EventEmitter<Events> {
17
17
  hasNodeById(nodeId: NodeID): boolean;
18
18
  replaceAll(neighbors: RemoteRandomGraphNode[]): void;
19
19
  getIds(): NodeID[];
20
- getNeighborById(id: NodeID): RemoteRandomGraphNode | undefined;
20
+ get(id: NodeID): RemoteRandomGraphNode | undefined;
21
21
  size(exclude?: NodeID[]): number;
22
22
  getRandom(exclude: NodeID[]): RemoteRandomGraphNode | undefined;
23
23
  getClosest(exclude: NodeID[]): RemoteRandomGraphNode | undefined;
24
24
  getClosestAndFurthest(exclude: NodeID[]): RemoteRandomGraphNode[];
25
25
  getFurthest(exclude: NodeID[]): RemoteRandomGraphNode | undefined;
26
- getNodes(): RemoteRandomGraphNode[];
26
+ getAll(): RemoteRandomGraphNode[];
27
27
  stop(): void;
28
28
  }
@@ -48,7 +48,7 @@ class NodeList extends eventemitter3_1.EventEmitter {
48
48
  getIds() {
49
49
  return Array.from(this.nodes.keys());
50
50
  }
51
- getNeighborById(id) {
51
+ get(id) {
52
52
  return this.nodes.get(id);
53
53
  }
54
54
  size(exclude = []) {
@@ -72,7 +72,7 @@ class NodeList extends eventemitter3_1.EventEmitter {
72
72
  const included = getValuesOfIncludedKeys(this.nodes, exclude);
73
73
  return included[included.length - 1];
74
74
  }
75
- getNodes() {
75
+ getAll() {
76
76
  return Array.from(this.nodes.values());
77
77
  }
78
78
  stop() {
@@ -1 +1 @@
1
- {"version":3,"file":"NodeList.js","sourceRoot":"","sources":["../../../src/logic/NodeList.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NodeList.js","sourceRoot":"","sources":["../../../src/logic/NodeList.ts"],"names":[],"mappings":"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"}
@@ -26,9 +26,9 @@ class RandomGraphNode extends eventemitter3_1.EventEmitter {
26
26
  markAndCheckDuplicate: (msg, prev) => (0, utils_2.markAndCheckDuplicate)(this.duplicateDetectors, msg, prev),
27
27
  broadcast: (message, previousNode) => this.broadcast(message, previousNode),
28
28
  onLeaveNotice: (senderId) => {
29
- const contact = this.config.nearbyNodeView.getNeighborById(senderId)
30
- || this.config.randomNodeView.getNeighborById(senderId)
31
- || this.config.targetNeighbors.getNeighborById(senderId)
29
+ const contact = this.config.nearbyNodeView.get(senderId)
30
+ || this.config.randomNodeView.get(senderId)
31
+ || this.config.targetNeighbors.get(senderId)
32
32
  || this.config.proxyConnectionServer?.getConnection(senderId)?.remote;
33
33
  // TODO: check integrity of notifier?
34
34
  if (contact) {
@@ -122,8 +122,8 @@ class RandomGraphNode extends eventemitter3_1.EventEmitter {
122
122
  }
123
123
  getNeighborCandidatesFromLayer1() {
124
124
  const uniqueNodes = new Set();
125
- this.config.layer1.getNeighborList().getClosestContacts(this.config.nodeViewSize).forEach((contact) => {
126
- uniqueNodes.add(contact.getPeerDescriptor());
125
+ this.config.layer1.getClosestContacts(this.config.nodeViewSize).forEach((peer) => {
126
+ uniqueNodes.add(peer);
127
127
  });
128
128
  this.config.layer1.getKBucketPeers().forEach((peer) => {
129
129
  uniqueNodes.add(peer);
@@ -143,7 +143,7 @@ class RandomGraphNode extends eventemitter3_1.EventEmitter {
143
143
  this.stopped = true;
144
144
  this.abortController.abort();
145
145
  this.config.proxyConnectionServer?.stop();
146
- this.config.targetNeighbors.getNodes().map((remote) => remote.leaveStreamPartNotice());
146
+ this.config.targetNeighbors.getAll().map((remote) => remote.leaveStreamPartNotice());
147
147
  this.config.rpcCommunicator.stop();
148
148
  this.removeAllListeners();
149
149
  this.config.nearbyNodeView.stop();
@@ -1 +1 @@
1
- {"version":3,"file":"RandomGraphNode.js","sourceRoot":"","sources":["../../../src/logic/RandomGraphNode.ts"],"names":[],"mappings":";;;AAAA,iDAA4C;AAQ5C,wFAOgE;AAEhE,sGAAiG;AACjG,mEAA+D;AAG/D,0CAAgE;AAChE,kDAAqD;AAKrD,yDAAqD;AAIrD,mCAA+C;AAC/C,gDAAoE;AAkCpE,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,eAAgB,SAAQ,4BAAoB;IAQrD,YAAY,MAAmC;QAC3C,KAAK,EAAE,CAAA;QARH,YAAO,GAAG,KAAK,CAAA;QACf,YAAO,GAAG,KAAK,CAAA;QAIf,oBAAe,GAAoB,IAAI,eAAe,EAAE,CAAA;QAI5D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,EAAE,CAAA;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,mCAAgB,CAAC;YAC/B,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB;YAChD,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa;YACxC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;YAC5C,qBAAqB,EAAE,CAAC,GAAc,EAAE,IAAiB,EAAE,EAAE,CAAC,IAAA,6BAAqB,EAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE,IAAI,CAAC;YACvH,SAAS,EAAE,CAAC,OAAsB,EAAE,YAAqB,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC;YACnG,aAAa,EAAE,CAAC,QAAgB,EAAE,EAAE;gBAChC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,eAAe,CAAC,QAAQ,CAAC;uBACjE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,eAAe,CAAC,QAAQ,CAAC;uBACpD,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,eAAe,CAAC,QAAQ,CAAC;uBACrD,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,aAAa,CAAC,QAAQ,CAAE,EAAE,MAAM,CAAA;gBACtE,qCAAqC;gBACrC,IAAI,OAAO,EAAE;oBACT,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,IAAI,CAAC,CAAA;oBACnE,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAA;oBAC/D,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAA;oBAC9D,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;oBACrG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;oBAC5C,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAA;iBAChE;YACL,CAAC;YACD,iBAAiB,EAAE,CAAC,QAAgB,EAAE,SAAoB,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC;SACxH,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,KAAK;QACP,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QACnB,IAAI,CAAC,4BAA4B,EAAE,CAAA;QACnC,IAAA,+BAAuB,EACnB,IAAI,CAAC,MAAM,CAAC,MAAa,EACzB,YAAY,EACZ,CAAC,cAA8B,EAAE,YAA8B,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,YAAY,CAAC,EACjH,IAAI,CAAC,eAAe,CAAC,MAAM,CAC9B,CAAA;QACD,IAAA,+BAAuB,EACnB,IAAI,CAAC,MAAM,CAAC,MAAa,EACzB,gBAAgB,EAChB,CAAC,cAA8B,EAAE,YAA8B,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,YAAY,CAAC,EACrH,IAAI,CAAC,eAAe,CAAC,MAAM,CAC9B,CAAA;QACD,IAAA,+BAAuB,EACnB,IAAI,CAAC,MAAM,CAAC,MAAa,EACzB,kBAAkB,EAClB,CAAC,cAA8B,EAAE,WAA6B,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,WAAW,CAAC,EACrH,IAAI,CAAC,eAAe,CAAC,MAAM,CAC9B,CAAA;QACD,IAAA,+BAAuB,EACnB,IAAI,CAAC,MAAM,CAAC,MAAa,EACzB,sBAAsB,EACtB,CAAC,cAA8B,EAAE,WAA6B,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,cAAc,EAAE,WAAW,CAAC,EACzH,IAAI,CAAC,eAAe,CAAC,MAAM,CAC9B,CAAA;QACD,IAAA,+BAAuB,EACnB,IAAI,CAAC,MAAM,CAAC,YAAmB,EAC/B,cAAc,EACd,CAAC,cAA8B,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,EAC3E,IAAI,CAAC,eAAe,CAAC,MAAM,CAC9B,CAAA;QACD,IAAA,+BAAuB,EACnB,IAAI,CAAC,MAAM,CAAC,eAAe,EAC3B,WAAW,EACX,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE;YACZ,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAA;YAC5C,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAA;QAC5C,CAAC,EACD,IAAI,CAAC,eAAe,CAAC,MAAM,CAC9B,CAAA;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,qBAAqB,KAAK,SAAS,EAAE;YACjD,IAAA,+BAAuB,EACnB,IAAI,CAAC,MAAM,CAAC,qBAAqB,EACjC,eAAe,EACf,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAC5D,IAAI,CAAC,eAAe,CAAC,MAAM,CAC9B,CAAA;SACJ;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,+BAA+B,EAAE,CAAA;QACzD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;SAC7C;QACD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,CAAA;QAClC,MAAM,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAA;IACnD,CAAC;IAEO,4BAA4B;QAChC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,uBAAuB,CAAC,0BAAa,EAAE,mBAAmB,EAClF,CAAC,GAAkB,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;QACjF,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,uBAAuB,CAAC,kCAAqB,EAAE,uBAAuB,EAC9F,CAAC,GAA0B,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;QAC7F,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,iBAAiB,CAAC,uCAA0B,EAAE,wCAA2B,EAAE,gBAAgB,EACnH,CAAC,GAA+B,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;IACzH,CAAC;IAEO,UAAU,CAAC,WAA2B,EAAE,YAA8B;QAC1E,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;QACxC,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,OAAM;SACT;QACD,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAA;QACvC,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE;YACvE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,CAAA;SACrC;IACL,CAAC;IAEO,cAAc,CAAC,eAA+B,EAAE,YAA8B;QAClF,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;QACtC,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,OAAM;SACT;QACD,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAA;IAC3C,CAAC;IAEO,oBAAoB,CAAC,KAAuB;QAChD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CACvE,IAAI,6CAAqB,CACrB,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAC7B,UAAU,EACV,IAAI,CAAC,MAAM,CAAC,aAAa,EACzB,IAAA,4BAAgB,EAAC,IAAI,oCAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAC9F,CACJ,CAAC,CAAA;QACF,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE;YAC3D,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;gBAC/D,MAAK;aACR;YACD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAC1B,IAAI,6CAAqB,CACrB,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAC7B,UAAU,EACV,IAAI,CAAC,MAAM,CAAC,aAAa,EACzB,IAAA,4BAAgB,EAAC,IAAI,oCAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAC9F,CACJ,CAAA;SACJ;IACL,CAAC;IAEO,gBAAgB,CAAC,cAA8B,EAAE,WAA6B;QAClF,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,OAAM;SACT;QACD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CACjE,IAAI,6CAAqB,CACrB,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAC7B,UAAU,EACV,IAAI,CAAC,MAAM,CAAC,aAAa,EACzB,IAAA,4BAAgB,EAAC,IAAI,oCAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAC9F,CACJ,CAAC,CAAA;QACF,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE;YACvE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,CAAA;SACrC;IACL,CAAC;IAEO,oBAAoB,CAAC,kBAAkC,EAAE,WAA6B;QAC1F,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;QACxC,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,OAAM;SACT;QACD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CACjE,IAAI,6CAAqB,CACrB,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAC7B,UAAU,EACV,IAAI,CAAC,MAAM,CAAC,aAAa,EACzB,IAAA,4BAAgB,EAAC,IAAI,oCAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAC9F,CACJ,CAAC,CAAA;IACN,CAAC;IAEO,kBAAkB,CAAC,cAA8B;QACrD,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;YACrD,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;YAClD,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;YACxF,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,IAAA,yCAA2B,EAAC,cAAc,CAAC,CAAC,CAAC,CAAA;YAC/E,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;SACnE;IACL,CAAC;IAEO,+BAA+B;QACnC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAA;QAC7C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,OAAgB,EAAE,EAAE;YAC3G,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,CAAC,IAAoB,EAAE,EAAE;YAClE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACzB,CAAC,CAAC,CAAA;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAClC,CAAC;IAEM,kBAAkB,CAAC,MAAc;QACpC,IAAI,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE;YACnC,OAAO,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;SACjE;QACD,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,IAAI;QACA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,OAAM;SACT;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QACnB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAA;QAC5B,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,IAAI,EAAE,CAAA;QACzC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,CAAA;QACtF,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAA;QAClC,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACzB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;QACjC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAA;QAClC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;QACjC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;QACjC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAA;QACxC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;IAChC,CAAC;IAED,SAAS,CAAC,GAAkB,EAAE,YAAqB;QAC/C,IAAI,CAAC,YAAY,EAAE;YACf,IAAA,6BAAqB,EAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,CAAC,SAAU,EAAE,GAAG,CAAC,kBAAkB,CAAC,CAAA;SACzF;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;QACzB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,YAAY,IAAI,IAAI,CAAC,CAAA;IACzG,CAAC;IAED,OAAO,CAAC,cAA8B;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IACxD,CAAC;IAEO,qBAAqB,CAAC,GAAkB;QAC5C,IAAI,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,CAAA;QAC7D,IAAI,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE;YACnC,kBAAkB,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAsB,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAA;SAChH;QACD,kBAAkB,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAE,CAAC,CAAA;QACvG,kBAAkB,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,CAAA;QACzG,OAAO,kBAAkB,CAAA;IAC7B,CAAC;IAED,YAAY;QACR,OAAO,IAAA,yCAA2B,EAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;IACrE,CAAC;IAED,6BAA6B;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAA;IAC7D,CAAC;IAED,oBAAoB;QAChB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE;YAC/B,OAAO,EAAE,CAAA;SACZ;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,CAAA;IAC/C,CAAC;IAED,iBAAiB;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAA;IACrC,CAAC;CACJ;AAxQD,0CAwQC"}
1
+ {"version":3,"file":"RandomGraphNode.js","sourceRoot":"","sources":["../../../src/logic/RandomGraphNode.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { PeerDescriptor, RecursiveFindResult, DataEntry } from '@streamr/dht';
2
- import { Any } from '../proto/google/protobuf/any';
3
- import { StreamPartDelivery } from './StreamrNode';
1
+ import { DataEntry, PeerDescriptor, RecursiveFindResult } from '@streamr/dht';
4
2
  import { StreamPartID } from '@streamr/protocol';
3
+ import { Any } from '../proto/google/protobuf/any';
4
+ import { ILayer1 } from './ILayer1';
5
5
  export declare const streamPartIdToDataKey: (streamPartId: StreamPartID) => Uint8Array;
6
6
  interface FindEntryPointsResult {
7
7
  entryPointsFromDht: boolean;
@@ -9,8 +9,9 @@ interface FindEntryPointsResult {
9
9
  }
10
10
  export declare const NETWORK_SPLIT_AVOIDANCE_LIMIT = 4;
11
11
  interface StreamPartEntryPointDiscoveryConfig {
12
- streamParts: Map<string, StreamPartDelivery>;
12
+ streamPartId: StreamPartID;
13
13
  ownPeerDescriptor: PeerDescriptor;
14
+ layer1: ILayer1;
14
15
  getEntryPointData: (key: Uint8Array) => Promise<RecursiveFindResult>;
15
16
  getEntryPointDataViaNode: (key: Uint8Array, node: PeerDescriptor) => Promise<DataEntry[]>;
16
17
  storeEntryPointData: (key: Uint8Array, data: Any) => Promise<PeerDescriptor[]>;
@@ -20,20 +21,17 @@ interface StreamPartEntryPointDiscoveryConfig {
20
21
  export declare class StreamPartEntryPointDiscovery {
21
22
  private readonly abortController;
22
23
  private readonly config;
23
- private readonly servicedStreamParts;
24
24
  private readonly cacheInterval;
25
25
  private readonly networkSplitAvoidedNodes;
26
26
  constructor(config: StreamPartEntryPointDiscoveryConfig);
27
- discoverEntryPointsFromDht(streamPartId: StreamPartID, knownEntryPointCount: number, forwardingNode?: PeerDescriptor): Promise<FindEntryPointsResult>;
27
+ discoverEntryPointsFromDht(knownEntryPointCount: number, forwardingNode?: PeerDescriptor): Promise<FindEntryPointsResult>;
28
28
  private discoverEntryPoints;
29
29
  private queryEntrypoints;
30
30
  private queryEntryPointsViaNode;
31
- storeSelfAsEntryPointIfNecessary(streamPartId: StreamPartID, entryPointsFromDht: boolean, currentEntrypointCount: number): Promise<void>;
31
+ storeSelfAsEntryPointIfNecessary(currentEntrypointCount: number): Promise<void>;
32
32
  private storeSelfAsEntryPoint;
33
33
  private keepSelfAsEntryPoint;
34
34
  private avoidNetworkSplit;
35
- private addAvoidedNodes;
36
- removeSelfAsEntryPoint(streamPartId: StreamPartID): void;
37
35
  destroy(): Promise<void>;
38
36
  }
39
37
  export {};
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.StreamPartEntryPointDiscovery = exports.NETWORK_SPLIT_AVOIDANCE_LIMIT = exports.streamPartIdToDataKey = void 0;
4
- const crypto_1 = require("crypto");
5
4
  const dht_1 = require("@streamr/dht");
6
- const any_1 = require("../proto/google/protobuf/any");
7
5
  const utils_1 = require("@streamr/utils");
6
+ const crypto_1 = require("crypto");
8
7
  const identifiers_1 = require("../identifiers");
8
+ const any_1 = require("../proto/google/protobuf/any");
9
9
  const streamPartIdToDataKey = (streamPartId) => {
10
10
  return new Uint8Array((0, crypto_1.createHash)('md5').update(streamPartId).digest());
11
11
  };
@@ -39,20 +39,19 @@ const ENTRYPOINT_STORE_LIMIT = 8;
39
39
  exports.NETWORK_SPLIT_AVOIDANCE_LIMIT = 4;
40
40
  class StreamPartEntryPointDiscovery {
41
41
  constructor(config) {
42
- this.networkSplitAvoidedNodes = new Map();
42
+ this.networkSplitAvoidedNodes = new Set();
43
43
  this.config = config;
44
44
  this.abortController = new AbortController();
45
45
  this.cacheInterval = this.config.cacheInterval ?? 60000;
46
- this.servicedStreamParts = new Map();
47
46
  }
48
- async discoverEntryPointsFromDht(streamPartId, knownEntryPointCount, forwardingNode) {
47
+ async discoverEntryPointsFromDht(knownEntryPointCount, forwardingNode) {
49
48
  if (knownEntryPointCount > 0) {
50
49
  return {
51
50
  entryPointsFromDht: false,
52
51
  discoveredEntryPoints: []
53
52
  };
54
53
  }
55
- const discoveredEntryPoints = await this.discoverEntryPoints(streamPartId, forwardingNode);
54
+ const discoveredEntryPoints = await this.discoverEntryPoints(forwardingNode);
56
55
  if (discoveredEntryPoints.length === 0) {
57
56
  discoveredEntryPoints.push(this.config.ownPeerDescriptor);
58
57
  }
@@ -61,18 +60,18 @@ class StreamPartEntryPointDiscovery {
61
60
  entryPointsFromDht: true
62
61
  };
63
62
  }
64
- async discoverEntryPoints(streamPartId, forwardingNode) {
65
- const dataKey = (0, exports.streamPartIdToDataKey)(streamPartId);
66
- let discoveredEntryPoints = forwardingNode ?
63
+ async discoverEntryPoints(forwardingNode) {
64
+ const dataKey = (0, exports.streamPartIdToDataKey)(this.config.streamPartId);
65
+ const discoveredEntryPoints = forwardingNode ?
67
66
  await this.queryEntryPointsViaNode(dataKey, forwardingNode) : await this.queryEntrypoints(dataKey);
68
- if (this.networkSplitAvoidedNodes.has(streamPartId)) {
69
- const filtered = discoveredEntryPoints.filter((node) => !this.networkSplitAvoidedNodes.get(streamPartId).has((0, identifiers_1.getNodeIdFromPeerDescriptor)(node)));
70
- // If all discovered entry points have previously beed detected as offline, try again
71
- if (filtered.length > 0) {
72
- discoveredEntryPoints = filtered;
73
- }
67
+ const filtered = discoveredEntryPoints.filter((node) => !this.networkSplitAvoidedNodes.has((0, identifiers_1.getNodeIdFromPeerDescriptor)(node)));
68
+ // If all discovered entry points have previously been detected as offline, try again
69
+ if (filtered.length > 0) {
70
+ return filtered;
71
+ }
72
+ else {
73
+ return discoveredEntryPoints;
74
74
  }
75
- return discoveredEntryPoints;
76
75
  }
77
76
  async queryEntrypoints(key) {
78
77
  logger.trace(`Finding data from dht node ${this.config.ownPeerDescriptor.nodeName}`);
@@ -89,6 +88,7 @@ class StreamPartEntryPointDiscovery {
89
88
  return [];
90
89
  }
91
90
  }
91
+ // TODO remove this method in NET-1122
92
92
  async queryEntryPointsViaNode(key, node) {
93
93
  logger.trace(`Finding data via node ${this.config.ownPeerDescriptor.nodeName}`);
94
94
  try {
@@ -104,90 +104,63 @@ class StreamPartEntryPointDiscovery {
104
104
  return [];
105
105
  }
106
106
  }
107
- async storeSelfAsEntryPointIfNecessary(streamPartId, entryPointsFromDht, currentEntrypointCount) {
108
- if (!this.config.streamParts.has(streamPartId) || !entryPointsFromDht) {
107
+ async storeSelfAsEntryPointIfNecessary(currentEntrypointCount) {
108
+ if (this.abortController.signal.aborted) {
109
109
  return;
110
110
  }
111
- if (this.config.streamParts.get(streamPartId).layer1.getBucketSize() < exports.NETWORK_SPLIT_AVOIDANCE_LIMIT) {
112
- await this.storeSelfAsEntryPoint(streamPartId);
113
- setImmediate(() => this.avoidNetworkSplit(streamPartId));
111
+ const possibleNetworkSplitDetected = this.config.layer1.getBucketSize() < exports.NETWORK_SPLIT_AVOIDANCE_LIMIT;
112
+ if ((currentEntrypointCount < ENTRYPOINT_STORE_LIMIT) || possibleNetworkSplitDetected) {
113
+ await this.storeSelfAsEntryPoint();
114
+ await this.keepSelfAsEntryPoint();
114
115
  }
115
- else if (currentEntrypointCount < ENTRYPOINT_STORE_LIMIT) {
116
- await this.storeSelfAsEntryPoint(streamPartId);
116
+ if (possibleNetworkSplitDetected) {
117
+ setImmediate(() => this.avoidNetworkSplit());
117
118
  }
118
119
  }
119
- async storeSelfAsEntryPoint(streamPartId) {
120
+ async storeSelfAsEntryPoint() {
120
121
  const ownPeerDescriptor = this.config.ownPeerDescriptor;
121
122
  const dataToStore = any_1.Any.pack(ownPeerDescriptor, dht_1.PeerDescriptor);
122
123
  try {
123
- await this.config.storeEntryPointData((0, exports.streamPartIdToDataKey)(streamPartId), dataToStore);
124
- this.keepSelfAsEntryPoint(streamPartId);
124
+ await this.config.storeEntryPointData((0, exports.streamPartIdToDataKey)(this.config.streamPartId), dataToStore);
125
125
  }
126
126
  catch (err) {
127
- logger.warn(`Failed to store self as entrypoint for ${streamPartId}`);
127
+ logger.warn(`Failed to store self as entrypoint for ${this.config.streamPartId}`);
128
128
  }
129
129
  }
130
- keepSelfAsEntryPoint(streamPartId) {
131
- if (!this.config.streamParts.has(streamPartId) || this.servicedStreamParts.has(streamPartId)) {
132
- return;
133
- }
134
- this.servicedStreamParts.set(streamPartId, setTimeout(async () => {
135
- if (!this.config.streamParts.has(streamPartId)) {
136
- this.servicedStreamParts.delete(streamPartId);
137
- return;
138
- }
139
- logger.trace(`Attempting to keep self as entrypoint for ${streamPartId}`);
130
+ async keepSelfAsEntryPoint() {
131
+ await (0, utils_1.scheduleAtInterval)(async () => {
132
+ logger.trace(`Attempting to keep self as entrypoint for ${this.config.streamPartId}`);
140
133
  try {
141
- const discovered = await this.discoverEntryPoints(streamPartId);
134
+ const discovered = await this.discoverEntryPoints();
142
135
  if (discovered.length < ENTRYPOINT_STORE_LIMIT
143
136
  || discovered.some((peerDescriptor) => (0, dht_1.isSamePeerDescriptor)(peerDescriptor, this.config.ownPeerDescriptor))) {
144
- await this.storeSelfAsEntryPoint(streamPartId);
145
- this.servicedStreamParts.delete(streamPartId);
146
- this.keepSelfAsEntryPoint(streamPartId);
147
- }
148
- else {
149
- this.servicedStreamParts.delete(streamPartId);
137
+ await this.storeSelfAsEntryPoint();
150
138
  }
151
139
  }
152
140
  catch (err) {
153
- logger.debug(`Failed to keep self as entrypoint for ${streamPartId}`);
141
+ logger.debug(`Failed to keep self as entrypoint for ${this.config.streamPartId}`);
154
142
  }
155
- }, this.cacheInterval));
143
+ }, this.cacheInterval, false, this.abortController.signal);
156
144
  }
157
- async avoidNetworkSplit(streamPartId) {
145
+ async avoidNetworkSplit() {
158
146
  await exponentialRunOff(async () => {
159
- if (this.config.streamParts.has(streamPartId)) {
160
- const stream = this.config.streamParts.get(streamPartId);
161
- const rediscoveredEntrypoints = await this.discoverEntryPoints(streamPartId);
162
- await stream.layer1.joinDht(rediscoveredEntrypoints, false, false);
163
- if (stream.layer1.getBucketSize() < exports.NETWORK_SPLIT_AVOIDANCE_LIMIT) {
164
- // Filter out nodes that are not in the k-bucket, assumed to be offline
165
- const nodesToAvoid = rediscoveredEntrypoints.filter((peer) => !stream.layer1.getKBucketPeers().includes(peer));
166
- this.addAvoidedNodes(streamPartId, nodesToAvoid);
167
- throw new Error(`Network split is still possible`);
168
- }
147
+ const rediscoveredEntrypoints = await this.discoverEntryPoints();
148
+ await this.config.layer1.joinDht(rediscoveredEntrypoints, false, false);
149
+ if (this.config.layer1.getBucketSize() < exports.NETWORK_SPLIT_AVOIDANCE_LIMIT) {
150
+ // Filter out nodes that are not in the k-bucket, assumed to be offline
151
+ const nodesToAvoid = rediscoveredEntrypoints
152
+ .filter((peer) => !this.config.layer1.getKBucketPeers().includes(peer))
153
+ .map((peer) => (0, identifiers_1.getNodeIdFromPeerDescriptor)(peer));
154
+ nodesToAvoid.forEach((node) => this.networkSplitAvoidedNodes.add(node));
155
+ throw new Error(`Network split is still possible`);
169
156
  }
170
157
  }, 'avoid network split', this.abortController.signal);
171
- this.networkSplitAvoidedNodes.delete(streamPartId);
158
+ this.networkSplitAvoidedNodes.clear();
172
159
  logger.trace(`Network split avoided`);
173
160
  }
174
- addAvoidedNodes(streamPartId, nodesToAvoid) {
175
- if (!this.networkSplitAvoidedNodes.has(streamPartId)) {
176
- this.networkSplitAvoidedNodes.set(streamPartId, new Set());
177
- }
178
- nodesToAvoid.forEach((node) => this.networkSplitAvoidedNodes.get(streamPartId).add((0, identifiers_1.getNodeIdFromPeerDescriptor)(node)));
179
- }
180
- removeSelfAsEntryPoint(streamPartId) {
181
- if (this.servicedStreamParts.has(streamPartId)) {
182
- (0, utils_1.setAbortableTimeout)(() => this.config.deleteEntryPointData((0, exports.streamPartIdToDataKey)(streamPartId)), 0, this.abortController.signal);
183
- clearTimeout(this.servicedStreamParts.get(streamPartId));
184
- this.servicedStreamParts.delete(streamPartId);
185
- }
186
- }
187
161
  async destroy() {
188
- this.servicedStreamParts.forEach((_, streamPartId) => this.removeSelfAsEntryPoint(streamPartId));
189
- this.servicedStreamParts.clear();
190
162
  this.abortController.abort();
163
+ await this.config.deleteEntryPointData((0, exports.streamPartIdToDataKey)(this.config.streamPartId));
191
164
  }
192
165
  }
193
166
  exports.StreamPartEntryPointDiscovery = StreamPartEntryPointDiscovery;
@@ -1 +1 @@
1
- {"version":3,"file":"StreamPartEntryPointDiscovery.js","sourceRoot":"","sources":["../../../src/logic/StreamPartEntryPointDiscovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StreamPartEntryPointDiscovery.js","sourceRoot":"","sources":["../../../src/logic/StreamPartEntryPointDiscovery.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import { ProxyDirection, StreamMessage } from '../proto/packages/trackerless-net
7
7
  import { ILayer0 } from './ILayer0';
8
8
  import { ILayer1 } from './ILayer1';
9
9
  import { RandomGraphNode } from './RandomGraphNode';
10
+ import { StreamPartEntryPointDiscovery } from './StreamPartEntryPointDiscovery';
10
11
  import { ProxyStreamConnectionClient } from './proxy/ProxyStreamConnectionClient';
11
12
  export type StreamPartDelivery = {
12
13
  broadcast: (msg: StreamMessage) => void;
@@ -15,6 +16,7 @@ export type StreamPartDelivery = {
15
16
  proxied: false;
16
17
  layer1: ILayer1;
17
18
  node: RandomGraphNode;
19
+ entryPointDiscovery: StreamPartEntryPointDiscovery;
18
20
  } | {
19
21
  proxied: true;
20
22
  client: ProxyStreamConnectionClient;
@@ -34,7 +36,6 @@ export declare class StreamrNode extends EventEmitter<Events> {
34
36
  private P2PTransport?;
35
37
  private connectionLocker?;
36
38
  private layer0?;
37
- private streamPartEntryPointDiscovery?;
38
39
  private readonly metricsContext;
39
40
  private readonly metrics;
40
41
  config: StreamrNodeConfig;
@@ -62,14 +62,6 @@ class StreamrNode extends eventemitter3_1.EventEmitter {
62
62
  this.layer0 = startedAndJoinedLayer0;
63
63
  this.P2PTransport = transport;
64
64
  this.connectionLocker = connectionLocker;
65
- this.streamPartEntryPointDiscovery = new StreamPartEntryPointDiscovery_1.StreamPartEntryPointDiscovery({
66
- ownPeerDescriptor: this.getPeerDescriptor(),
67
- streamParts: this.streamParts,
68
- getEntryPointData: (key) => this.layer0.getDataFromDht(key),
69
- getEntryPointDataViaNode: (key, node) => this.layer0.findDataViaPeer(key, node),
70
- storeEntryPointData: (key, data) => this.layer0.storeDataToDht(key, data),
71
- deleteEntryPointData: (key) => this.layer0.deleteDataFromDht(key)
72
- });
73
65
  cleanUp = () => this.destroy();
74
66
  }
75
67
  async destroy() {
@@ -79,14 +71,12 @@ class StreamrNode extends eventemitter3_1.EventEmitter {
79
71
  logger.trace('Destroying StreamrNode...');
80
72
  this.destroyed = true;
81
73
  this.streamParts.forEach((stream) => stream.stop());
82
- await this.streamPartEntryPointDiscovery.destroy();
83
74
  this.streamParts.clear();
84
75
  this.removeAllListeners();
85
76
  await this.layer0.stop();
86
77
  await this.P2PTransport.stop();
87
78
  this.layer0 = undefined;
88
79
  this.P2PTransport = undefined;
89
- this.streamPartEntryPointDiscovery = undefined;
90
80
  this.connectionLocker = undefined;
91
81
  }
92
82
  broadcast(msg) {
@@ -102,7 +92,6 @@ class StreamrNode extends eventemitter3_1.EventEmitter {
102
92
  stream.stop();
103
93
  this.streamParts.delete(streamPartId);
104
94
  }
105
- this.streamPartEntryPointDiscovery.removeSelfAsEntryPoint(streamPartId);
106
95
  }
107
96
  joinStreamPart(streamPartId) {
108
97
  logger.debug(`Join stream part ${streamPartId}`);
@@ -112,12 +101,28 @@ class StreamrNode extends eventemitter3_1.EventEmitter {
112
101
  }
113
102
  const layer1 = this.createLayer1Node(streamPartId, this.knownStreamPartEntryPoints.get(streamPartId) ?? []);
114
103
  const node = this.createRandomGraphNode(streamPartId, layer1);
104
+ const entryPointDiscovery = new StreamPartEntryPointDiscovery_1.StreamPartEntryPointDiscovery({
105
+ streamPartId,
106
+ ownPeerDescriptor: this.getPeerDescriptor(),
107
+ layer1,
108
+ getEntryPointData: (key) => this.layer0.getDataFromDht(key),
109
+ getEntryPointDataViaNode: (key, node) => this.layer0.findDataViaPeer(key, node),
110
+ storeEntryPointData: (key, data) => this.layer0.storeDataToDht(key, data),
111
+ deleteEntryPointData: async (key) => {
112
+ if (this.destroyed) {
113
+ return;
114
+ }
115
+ return this.layer0.deleteDataFromDht(key);
116
+ }
117
+ });
115
118
  stream = {
116
119
  proxied: false,
117
120
  layer1,
118
121
  node,
122
+ entryPointDiscovery,
119
123
  broadcast: (msg) => node.broadcast(msg),
120
124
  stop: () => {
125
+ entryPointDiscovery.destroy();
121
126
  node.stop();
122
127
  layer1.stop();
123
128
  }
@@ -128,14 +133,14 @@ class StreamrNode extends eventemitter3_1.EventEmitter {
128
133
  });
129
134
  setImmediate(async () => {
130
135
  try {
131
- await this.startLayersAndJoinDht(streamPartId);
136
+ await this.startLayersAndJoinDht(streamPartId, entryPointDiscovery);
132
137
  }
133
138
  catch (err) {
134
139
  logger.warn(`Failed to join to stream ${streamPartId} with error: ${err}`);
135
140
  }
136
141
  });
137
142
  }
138
- async startLayersAndJoinDht(streamPartId) {
143
+ async startLayersAndJoinDht(streamPartId, entryPointDiscovery) {
139
144
  logger.debug(`Start layers and join DHT for stream part ${streamPartId}`);
140
145
  const stream = this.streamParts.get(streamPartId);
141
146
  if ((stream === undefined) || stream.proxied) {
@@ -146,10 +151,12 @@ class StreamrNode extends eventemitter3_1.EventEmitter {
146
151
  await stream.node.start();
147
152
  let entryPoints = this.knownStreamPartEntryPoints.get(streamPartId) ?? [];
148
153
  const forwardingNode = this.layer0.isJoinOngoing() ? this.layer0.getKnownEntryPoints()[0] : undefined;
149
- const discoveryResult = await this.streamPartEntryPointDiscovery.discoverEntryPointsFromDht(streamPartId, entryPoints.length, forwardingNode);
154
+ const discoveryResult = await entryPointDiscovery.discoverEntryPointsFromDht(entryPoints.length, forwardingNode);
150
155
  entryPoints = entryPoints.concat(discoveryResult.discoveredEntryPoints);
151
156
  await stream.layer1.joinDht((0, lodash_1.sampleSize)(entryPoints, StreamPartEntryPointDiscovery_1.NETWORK_SPLIT_AVOIDANCE_LIMIT));
152
- await this.streamPartEntryPointDiscovery.storeSelfAsEntryPointIfNecessary(streamPartId, discoveryResult.entryPointsFromDht, entryPoints.length);
157
+ if (discoveryResult.entryPointsFromDht) {
158
+ await entryPointDiscovery.storeSelfAsEntryPointIfNecessary(entryPoints.length);
159
+ }
153
160
  }
154
161
  async setProxies(streamPartId, nodes, direction, userId, connectionCount) {
155
162
  if (this.config.acceptProxyConnections) {