@streamr/dht 100.0.0-testnet-one.0 → 100.0.0-testnet-one.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/dist/src/connection/ConnectionLockRpcRemote.js +1 -25
  2. package/dist/src/connection/ConnectionLockRpcRemote.js.map +1 -1
  3. package/dist/src/connection/ConnectionManager.d.ts +0 -1
  4. package/dist/src/connection/ConnectionManager.js +7 -6
  5. package/dist/src/connection/ConnectionManager.js.map +1 -1
  6. package/dist/src/connection/ConnectorFacade.d.ts +2 -2
  7. package/dist/src/connection/ConnectorFacade.js +1 -2
  8. package/dist/src/connection/ConnectorFacade.js.map +1 -1
  9. package/dist/src/connection/connectivityChecker.js +3 -2
  10. package/dist/src/connection/connectivityChecker.js.map +1 -1
  11. package/dist/src/connection/websocket/ClientWebsocket.d.ts +1 -0
  12. package/dist/src/connection/websocket/ClientWebsocket.js +6 -3
  13. package/dist/src/connection/websocket/ClientWebsocket.js.map +1 -1
  14. package/dist/src/connection/websocket/ServerWebsocket.d.ts +4 -0
  15. package/dist/src/connection/websocket/ServerWebsocket.js +32 -21
  16. package/dist/src/connection/websocket/ServerWebsocket.js.map +1 -1
  17. package/dist/src/connection/websocket/WebsocketConnector.d.ts +0 -1
  18. package/dist/src/connection/websocket/WebsocketConnector.js +21 -10
  19. package/dist/src/connection/websocket/WebsocketConnector.js.map +1 -1
  20. package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.d.ts +1 -1
  21. package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.js +8 -11
  22. package/dist/src/connection/websocket/WebsocketConnectorRpcLocal.js.map +1 -1
  23. package/dist/src/connection/websocket/WebsocketConnectorRpcRemote.d.ts +2 -2
  24. package/dist/src/connection/websocket/WebsocketConnectorRpcRemote.js +3 -37
  25. package/dist/src/connection/websocket/WebsocketConnectorRpcRemote.js.map +1 -1
  26. package/dist/src/connection/websocket/WebsocketServer.js +21 -4
  27. package/dist/src/connection/websocket/WebsocketServer.js.map +1 -1
  28. package/dist/src/dht/DhtNode.d.ts +4 -4
  29. package/dist/src/dht/DhtNode.js +30 -19
  30. package/dist/src/dht/DhtNode.js.map +1 -1
  31. package/dist/src/dht/DhtNodeRpcLocal.d.ts +1 -4
  32. package/dist/src/dht/DhtNodeRpcLocal.js +1 -5
  33. package/dist/src/dht/DhtNodeRpcLocal.js.map +1 -1
  34. package/dist/src/dht/PeerManager.d.ts +10 -6
  35. package/dist/src/dht/PeerManager.js +95 -30
  36. package/dist/src/dht/PeerManager.js.map +1 -1
  37. package/dist/src/dht/contact/SortedContactList.d.ts +20 -6
  38. package/dist/src/dht/contact/SortedContactList.js +55 -24
  39. package/dist/src/dht/contact/SortedContactList.js.map +1 -1
  40. package/dist/src/dht/discovery/DiscoverySession.d.ts +2 -5
  41. package/dist/src/dht/discovery/DiscoverySession.js +12 -9
  42. package/dist/src/dht/discovery/DiscoverySession.js.map +1 -1
  43. package/dist/src/dht/discovery/PeerDiscovery.d.ts +1 -1
  44. package/dist/src/dht/discovery/PeerDiscovery.js +4 -10
  45. package/dist/src/dht/discovery/PeerDiscovery.js.map +1 -1
  46. package/dist/src/dht/find/FindSession.js +6 -1
  47. package/dist/src/dht/find/FindSession.js.map +1 -1
  48. package/dist/src/dht/find/Finder.js +6 -1
  49. package/dist/src/dht/find/Finder.js.map +1 -1
  50. package/dist/src/dht/routing/Router.d.ts +1 -1
  51. package/dist/src/dht/routing/Router.js +8 -4
  52. package/dist/src/dht/routing/Router.js.map +1 -1
  53. package/dist/src/dht/routing/RoutingSession.js +8 -1
  54. package/dist/src/dht/routing/RoutingSession.js.map +1 -1
  55. package/dist/src/dht/store/StoreRpcLocal.js +19 -5
  56. package/dist/src/dht/store/StoreRpcLocal.js.map +1 -1
  57. package/dist/src/helpers/PeerID.d.ts +1 -0
  58. package/dist/src/helpers/PeerID.js +7 -2
  59. package/dist/src/helpers/PeerID.js.map +1 -1
  60. package/dist/src/helpers/peerIdFromPeerDescriptor.js +2 -2
  61. package/dist/src/helpers/peerIdFromPeerDescriptor.js.map +1 -1
  62. package/package.json +5 -5
  63. package/src/connection/ConnectionLockRpcRemote.ts +1 -2
  64. package/src/connection/ConnectionManager.ts +16 -17
  65. package/src/connection/ConnectorFacade.ts +0 -3
  66. package/src/connection/connectivityChecker.ts +3 -2
  67. package/src/connection/websocket/ClientWebsocket.ts +5 -2
  68. package/src/connection/websocket/ServerWebsocket.ts +40 -25
  69. package/src/connection/websocket/WebsocketConnector.ts +23 -12
  70. package/src/connection/websocket/WebsocketConnectorRpcLocal.ts +9 -11
  71. package/src/connection/websocket/WebsocketConnectorRpcRemote.ts +5 -14
  72. package/src/connection/websocket/WebsocketServer.ts +20 -5
  73. package/src/dht/DhtNode.ts +31 -21
  74. package/src/dht/DhtNodeRpcLocal.ts +2 -9
  75. package/src/dht/PeerManager.ts +110 -36
  76. package/src/dht/contact/SortedContactList.ts +87 -44
  77. package/src/dht/discovery/DiscoverySession.ts +14 -14
  78. package/src/dht/discovery/PeerDiscovery.ts +9 -16
  79. package/src/dht/find/FindSession.ts +6 -1
  80. package/src/dht/find/Finder.ts +6 -7
  81. package/src/dht/routing/Router.ts +8 -4
  82. package/src/dht/routing/RoutingSession.ts +8 -8
  83. package/src/dht/store/StoreRpcLocal.ts +19 -7
  84. package/src/helpers/PeerID.ts +6 -2
  85. package/src/helpers/peerIdFromPeerDescriptor.ts +4 -4
  86. package/test/benchmark/Find.test.ts +1 -1
  87. package/test/benchmark/KademliaCorrectness.test.ts +1 -1
  88. package/test/benchmark/SortedContactListBenchmark.test.ts +150 -0
  89. package/test/benchmark/WebsocketServerMemoryLeak.test.ts +41 -0
  90. package/test/benchmark/kademlia-simulation/SimulationNode.ts +6 -1
  91. package/test/end-to-end/Layer0.test.ts +4 -4
  92. package/test/end-to-end/Layer0MixedConnectionTypes.test.ts +10 -10
  93. package/test/end-to-end/Layer0Webrtc-Layer1.test.ts +4 -4
  94. package/test/end-to-end/Layer1-Scale-WebSocket.test.ts +2 -2
  95. package/test/end-to-end/Layer1-Scale-Webrtc.test.ts +2 -2
  96. package/test/end-to-end/RecoveryFromFailedAutoCertification.test.ts +1 -1
  97. package/test/end-to-end/memory-leak.test.ts +1 -0
  98. package/test/integration/DhtJoinPeerDiscovery.test.ts +2 -2
  99. package/test/integration/Layer1-scale.test.ts +1 -1
  100. package/test/integration/Mock-Layer1-Layer0.test.ts +15 -15
  101. package/test/integration/MultipleEntryPointJoining.test.ts +7 -7
  102. package/test/integration/ReplicateData.test.ts +6 -1
  103. package/test/integration/SimultaneousConnections.test.ts +81 -49
  104. package/test/integration/StoreOnDhtWithTwoNodes.test.ts +1 -1
  105. package/test/integration/WebsocketConnectionManagement.test.ts +41 -3
  106. package/test/integration/WebsocketConnectorRpc.test.ts +3 -5
  107. package/test/unit/SortedContactList.test.ts +15 -10
@@ -1 +1 @@
1
- {"version":3,"file":"WebsocketConnectorRpcLocal.js","sourceRoot":"","sources":["../../../../src/connection/websocket/WebsocketConnectorRpcLocal.ts"],"names":[],"mappings":";;;AAiBA,MAAa,0BAA0B;IAInC,YAAY,MAAwC;QAChD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,QAAoC,EAAE,OAA0B;QAC3F,MAAM,oBAAoB,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QAClF,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE;YAC9C,YAAY,CAAC,GAAG,EAAE;gBACd,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE;oBACjC,OAAM;iBACT;gBACD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;gBAC5D,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAA;YAC3C,CAAC,CAAC,CAAA;YACF,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;SAC5B;aAAM;YACH,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;SAC7B;IACL,CAAC;CACJ;AAvBD,gEAuBC"}
1
+ {"version":3,"file":"WebsocketConnectorRpcLocal.js","sourceRoot":"","sources":["../../../../src/connection/websocket/WebsocketConnectorRpcLocal.ts"],"names":[],"mappings":";;;AAiBA,MAAa,0BAA0B;IAInC,YAAY,MAAwC;QAChD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,QAAoC,EAAE,OAA0B;QAC3F,MAAM,oBAAoB,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QAClF,YAAY,CAAC,GAAG,EAAE;YACd,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE;gBACjC,OAAM;aACT;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,oBAAoB,CAAC,EAAE;gBAClD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;gBAC5D,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAA;aAC1C;QACL,CAAC,CAAC,CAAA;QACF,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;IAC7B,CAAC;CACJ;AArBD,gEAqBC"}
@@ -1,8 +1,8 @@
1
- import { PeerDescriptor } from '../../proto/packages/dht/protos/DhtRpc';
1
+ import { PeerDescriptor, WebsocketConnectionResponse } from '../../proto/packages/dht/protos/DhtRpc';
2
2
  import { IWebsocketConnectorRpcClient } from '../../proto/packages/dht/protos/DhtRpc.client';
3
3
  import { ProtoRpcClient } from '@streamr/proto-rpc';
4
4
  import { RpcRemote } from '../../dht/contact/RpcRemote';
5
5
  export declare class WebsocketConnectorRpcRemote extends RpcRemote<IWebsocketConnectorRpcClient> {
6
6
  constructor(localPeerDescriptor: PeerDescriptor, remotePeerDescriptor: PeerDescriptor, client: ProtoRpcClient<IWebsocketConnectorRpcClient>);
7
- requestConnection(ip: string, port: number): Promise<boolean>;
7
+ requestConnection(): Promise<WebsocketConnectionResponse>;
8
8
  }
@@ -1,31 +1,7 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
3
  exports.WebsocketConnectorRpcRemote = void 0;
27
4
  const utils_1 = require("@streamr/utils");
28
- const Err = __importStar(require("../../helpers/errors"));
29
5
  const peerIdFromPeerDescriptor_1 = require("../../helpers/peerIdFromPeerDescriptor");
30
6
  const RpcRemote_1 = require("../../dht/contact/RpcRemote");
31
7
  const logger = new utils_1.Logger(module);
@@ -33,21 +9,11 @@ class WebsocketConnectorRpcRemote extends RpcRemote_1.RpcRemote {
33
9
  constructor(localPeerDescriptor, remotePeerDescriptor, client) {
34
10
  super(localPeerDescriptor, remotePeerDescriptor, 'DUMMY', client);
35
11
  }
36
- async requestConnection(ip, port) {
12
+ async requestConnection() {
37
13
  logger.trace(`Requesting WebSocket connection from ${(0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(this.getLocalPeerDescriptor())}`);
38
- const request = {
39
- ip,
40
- port
41
- };
14
+ const request = {};
42
15
  const options = this.formDhtRpcOptions();
43
- try {
44
- const res = await this.getClient().requestConnection(request, options);
45
- return res.accepted;
46
- }
47
- catch (err) {
48
- logger.debug(new Err.WebsocketConnectionRequestRejected('WebsocketConnectionRequest rejected', err).stack);
49
- return false;
50
- }
16
+ return this.getClient().requestConnection(request, options);
51
17
  }
52
18
  }
53
19
  exports.WebsocketConnectorRpcRemote = WebsocketConnectorRpcRemote;
@@ -1 +1 @@
1
- {"version":3,"file":"WebsocketConnectorRpcRemote.js","sourceRoot":"","sources":["../../../../src/connection/websocket/WebsocketConnectorRpcRemote.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,0CAAuC;AACvC,0DAA2C;AAE3C,qFAAoF;AACpF,2DAAuD;AAEvD,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,2BAA4B,SAAQ,qBAAuC;IAEpF,YACI,mBAAmC,EACnC,oBAAoC,EACpC,MAAoD;QAEpD,KAAK,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;IACrE,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,EAAU,EAAE,IAAY;QAC5C,MAAM,CAAC,KAAK,CAAC,wCAAwC,IAAA,sDAA2B,EAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,EAAE,CAAC,CAAA;QAClH,MAAM,OAAO,GAA+B;YACxC,EAAE;YACF,IAAI;SACP,CAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxC,IAAI;YACA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YACtE,OAAO,GAAG,CAAC,QAAQ,CAAA;SACtB;QAAC,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,kCAAkC,CAAC,qCAAqC,EAAE,GAAG,CAAC,CAAC,KAAM,CAAC,CAAA;YAC3G,OAAO,KAAK,CAAA;SACf;IACL,CAAC;CACJ;AAzBD,kEAyBC"}
1
+ {"version":3,"file":"WebsocketConnectorRpcRemote.js","sourceRoot":"","sources":["../../../../src/connection/websocket/WebsocketConnectorRpcRemote.ts"],"names":[],"mappings":";;;AAMA,0CAAuC;AAEvC,qFAAoF;AACpF,2DAAuD;AAEvD,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,2BAA4B,SAAQ,qBAAuC;IAEpF,YACI,mBAAmC,EACnC,oBAAoC,EACpC,MAAoD;QAEpD,KAAK,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;IACrE,CAAC;IAED,KAAK,CAAC,iBAAiB;QACnB,MAAM,CAAC,KAAK,CAAC,wCAAwC,IAAA,sDAA2B,EAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,EAAE,CAAC,CAAA;QAClH,MAAM,OAAO,GAA+B,EAAE,CAAA;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxC,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC/D,CAAC;CACJ;AAhBD,kEAgBC"}
@@ -79,9 +79,17 @@ class WebsocketServer extends eventemitter3_1.default {
79
79
  logger.trace('IConnection from origin ' + request.origin + ' rejected.');
80
80
  return;
81
81
  }
82
- const connection = request.accept(undefined, request.origin);
83
- logger.trace('IConnection accepted.');
84
- this.emit('connected', new ServerWebsocket_1.ServerWebsocket(connection, request.resourceURL));
82
+ let connection;
83
+ try {
84
+ connection = request.accept(undefined, request.origin);
85
+ logger.trace('Connection accepted.', { remoteAddress: request.remoteAddress });
86
+ }
87
+ catch (err) {
88
+ logger.debug('Accepting websocket connection failed', { remoteAddress: request.remoteAddress, err });
89
+ }
90
+ if (connection) {
91
+ this.emit('connected', new ServerWebsocket_1.ServerWebsocket(connection, request.resourceURL));
92
+ }
85
93
  });
86
94
  this.httpServer.once('error', (err) => {
87
95
  reject(new errors_1.WebsocketServerStartError('Starting Websocket server failed', err));
@@ -110,9 +118,18 @@ class WebsocketServer extends eventemitter3_1.default {
110
118
  this.removeAllListeners();
111
119
  return new Promise((resolve, _reject) => {
112
120
  this.wsServer?.shutDown();
113
- this.httpServer?.close(() => {
121
+ this.httpServer?.once('close', () => {
122
+ // removeAllListeners is maybe not needed?
123
+ this.httpServer?.removeAllListeners();
114
124
  resolve();
115
125
  });
126
+ this.httpServer?.close();
127
+ // the close method "Stops the server from accepting new connections and closes all
128
+ // connections connected to this server which are not sending a request or waiting for a
129
+ // response." (https://nodejs.org/api/http.html#serverclosecallback)
130
+ // i.e. we need to call closeAllConnections() to close the rest of the connections
131
+ // (in practice this closes the active websocket connections)
132
+ this.httpServer?.closeAllConnections();
116
133
  });
117
134
  }
118
135
  createWsServer(httpServer) {
@@ -1 +1 @@
1
- {"version":3,"file":"WebsocketServer.js","sourceRoot":"","sources":["../../../../src/connection/websocket/WebsocketServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebsocketServer.js","sourceRoot":"","sources":["../../../../src/connection/websocket/WebsocketServer.ts"],"names":[],"mappings":"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"}
@@ -64,7 +64,7 @@ export declare class DhtNode extends EventEmitter<Events> implements ITransport
64
64
  private peerManager?;
65
65
  connectionManager?: ConnectionManager;
66
66
  private started;
67
- private stopped;
67
+ private abortController;
68
68
  private entryPointDisconnectTimeout?;
69
69
  constructor(conf: DhtNodeOptions);
70
70
  start(): Promise<void>;
@@ -73,9 +73,9 @@ export declare class DhtNode extends EventEmitter<Events> implements ITransport
73
73
  private isPeerCloserToIdThanSelf;
74
74
  private handleMessage;
75
75
  private generatePeerDescriptorCallBack;
76
- getClosestContacts(maxCount?: number): PeerDescriptor[];
76
+ getClosestContacts(limit?: number): PeerDescriptor[];
77
77
  getNodeId(): PeerID;
78
- getBucketSize(): number;
78
+ getNumberOfNeighbors(): number;
79
79
  private connectToEntryPoint;
80
80
  removeContact(contact: PeerDescriptor): void;
81
81
  send(msg: Message): Promise<void>;
@@ -89,7 +89,7 @@ export declare class DhtNode extends EventEmitter<Events> implements ITransport
89
89
  getTransport(): ITransport;
90
90
  getLocalPeerDescriptor(): PeerDescriptor;
91
91
  getAllConnectionPeerDescriptors(): PeerDescriptor[];
92
- getKBucketPeers(): PeerDescriptor[];
92
+ getAllNeighborPeerDescriptors(): PeerDescriptor[];
93
93
  getNumberOfConnections(): number;
94
94
  getNumberOfLocalLockedConnections(): number;
95
95
  getNumberOfRemoteLockedConnections(): number;
@@ -46,7 +46,7 @@ class DhtNode extends eventemitter3_1.EventEmitter {
46
46
  super();
47
47
  this.localDataStore = new LocalDataStore_1.LocalDataStore();
48
48
  this.started = false;
49
- this.stopped = false;
49
+ this.abortController = new AbortController();
50
50
  this.config = (0, utils_1.merge)({
51
51
  serviceId: 'layer0',
52
52
  joinParallelism: 3,
@@ -66,7 +66,7 @@ class DhtNode extends eventemitter3_1.EventEmitter {
66
66
  this.send = this.send.bind(this);
67
67
  }
68
68
  async start() {
69
- if (this.started || this.stopped) {
69
+ if (this.started || this.abortController.signal.aborted) {
70
70
  return;
71
71
  }
72
72
  logger.trace(`Starting new Streamr Network DHT Node with serviceId ${this.config.serviceId}`);
@@ -168,7 +168,7 @@ class DhtNode extends eventemitter3_1.EventEmitter {
168
168
  localDataStore: this.localDataStore,
169
169
  dhtNodeEmitter: this,
170
170
  getNodesClosestToIdFromBucket: (id, n) => {
171
- return this.peerManager.bucket.closest(id, n);
171
+ return this.peerManager.getClosestNeighborsTo(id, n);
172
172
  },
173
173
  rpcRequestTimeout: this.config.rpcRequestTimeout
174
174
  });
@@ -181,7 +181,7 @@ class DhtNode extends eventemitter3_1.EventEmitter {
181
181
  initPeerManager() {
182
182
  this.peerManager = new PeerManager_1.PeerManager({
183
183
  numberOfNodesPerKBucket: this.config.numberOfNodesPerKBucket,
184
- maxNeighborListSize: this.config.maxNeighborListSize,
184
+ maxContactListSize: this.config.maxNeighborListSize,
185
185
  ownPeerId: this.getNodeId(),
186
186
  connectionManager: this.connectionManager,
187
187
  peerDiscoveryQueryBatchSize: this.config.peerDiscoveryQueryBatchSize,
@@ -217,13 +217,16 @@ class DhtNode extends eventemitter3_1.EventEmitter {
217
217
  });
218
218
  }
219
219
  bindRpcLocalMethods() {
220
- if (!this.started || this.stopped) {
220
+ if (!this.started || this.abortController.signal.aborted) {
221
221
  return;
222
222
  }
223
223
  const dhtNodeRpcLocal = new DhtNodeRpcLocal_1.DhtNodeRpcLocal({
224
- bucket: this.peerManager.bucket,
225
224
  serviceId: this.config.serviceId,
226
225
  peerDiscoveryQueryBatchSize: this.config.peerDiscoveryQueryBatchSize,
226
+ getClosestPeersTo: (kademliaId, limit) => {
227
+ return this.peerManager.getClosestNeighborsTo(kademliaId, limit)
228
+ .map((dhtPeer) => dhtPeer.getPeerDescriptor());
229
+ },
227
230
  addNewContact: (contact) => this.peerManager.handleNewPeers([contact]),
228
231
  removeContact: (contact) => this.removeContact(contact)
229
232
  });
@@ -240,8 +243,8 @@ class DhtNode extends eventemitter3_1.EventEmitter {
240
243
  this.rpcCommunicator.registerRpcMethod(DhtRpc_1.ExternalStoreDataRequest, DhtRpc_1.ExternalStoreDataResponse, 'externalStoreData', (req, context) => externalApiRpcLocal.externalStoreData(req, context), { timeout: 10000 });
241
244
  }
242
245
  isPeerCloserToIdThanSelf(peer1, compareToId) {
243
- const distance1 = this.peerManager.bucket.distance(peer1.nodeId, compareToId.value);
244
- const distance2 = this.peerManager.bucket.distance(this.localPeerDescriptor.nodeId, compareToId.value);
246
+ const distance1 = (0, PeerManager_1.getDistance)(peer1.nodeId, compareToId.value);
247
+ const distance2 = (0, PeerManager_1.getDistance)(this.localPeerDescriptor.nodeId, compareToId.value);
245
248
  return distance1 < distance2;
246
249
  }
247
250
  handleMessage(message) {
@@ -265,14 +268,14 @@ class DhtNode extends eventemitter3_1.EventEmitter {
265
268
  }
266
269
  return this.localPeerDescriptor;
267
270
  }
268
- getClosestContacts(maxCount) {
269
- return this.peerManager.neighborList.getClosestContacts(maxCount).map((c) => c.getPeerDescriptor());
271
+ getClosestContacts(limit) {
272
+ return this.peerManager.getClosestContactsTo(this.localPeerDescriptor.nodeId, limit).map((peer) => peer.getPeerDescriptor());
270
273
  }
271
274
  getNodeId() {
272
275
  return (0, peerIdFromPeerDescriptor_1.peerIdFromPeerDescriptor)(this.localPeerDescriptor);
273
276
  }
274
- getBucketSize() {
275
- return this.peerManager.bucket.count();
277
+ getNumberOfNeighbors() {
278
+ return this.peerManager.getNumberOfNeighbors();
276
279
  }
277
280
  connectToEntryPoint(entryPoint) {
278
281
  this.connectionManager.lockConnection(entryPoint, 'temporary-layer0-connection');
@@ -287,7 +290,7 @@ class DhtNode extends eventemitter3_1.EventEmitter {
287
290
  this.peerManager.handlePeerLeaving(contact);
288
291
  }
289
292
  async send(msg) {
290
- if (!this.started || this.stopped) {
293
+ if (!this.started || this.abortController.signal.aborted) {
291
294
  return;
292
295
  }
293
296
  const reachableThrough = this.peerDiscovery.isJoinOngoing() ? this.config.entryPoints ?? [] : [];
@@ -320,7 +323,7 @@ class DhtNode extends eventemitter3_1.EventEmitter {
320
323
  return result.dataEntries ?? []; // TODO is this fallback needed?
321
324
  }
322
325
  async deleteDataFromDht(key, waitForCompletion) {
323
- if (!this.stopped) {
326
+ if (!this.abortController.signal.aborted) {
324
327
  await this.finder.startFind(key, DhtRpc_1.FindAction.DELETE_DATA, undefined, waitForCompletion);
325
328
  }
326
329
  }
@@ -337,8 +340,9 @@ class DhtNode extends eventemitter3_1.EventEmitter {
337
340
  getAllConnectionPeerDescriptors() {
338
341
  return Array.from(this.peerManager.connections.values()).map((peer) => peer.getPeerDescriptor());
339
342
  }
340
- getKBucketPeers() {
341
- return this.peerManager.bucket.toArray().map((rpcRemote) => rpcRemote.getPeerDescriptor());
343
+ // TODO rename to getNeighbors
344
+ getAllNeighborPeerDescriptors() {
345
+ return this.peerManager.getNeighbors();
342
346
  }
343
347
  getNumberOfConnections() {
344
348
  return this.peerManager.getNumberOfConnections();
@@ -353,17 +357,24 @@ class DhtNode extends eventemitter3_1.EventEmitter {
353
357
  return this.connectionManager.getNumberOfWeakLockedConnections();
354
358
  }
355
359
  async waitForNetworkConnectivity() {
356
- await (0, utils_1.waitForCondition)(() => this.peerManager.connections.size > 0, this.config.networkConnectivityTimeout);
360
+ await (0, utils_1.waitForCondition)(() => {
361
+ if (!this.peerManager) {
362
+ return false;
363
+ }
364
+ else {
365
+ return (this.peerManager.getNumberOfConnections() > 0);
366
+ }
367
+ }, this.config.networkConnectivityTimeout, 100, this.abortController.signal);
357
368
  }
358
369
  hasJoined() {
359
370
  return this.peerDiscovery.isJoinCalled();
360
371
  }
361
372
  async stop() {
362
- if (this.stopped || !this.started) {
373
+ if (this.abortController.signal.aborted || !this.started) {
363
374
  return;
364
375
  }
365
376
  logger.trace('stop()');
366
- this.stopped = true;
377
+ this.abortController.abort();
367
378
  await this.storeRpcLocal.destroy();
368
379
  if (this.entryPointDisconnectTimeout) {
369
380
  clearTimeout(this.entryPointDisconnectTimeout);
@@ -1 +1 @@
1
- {"version":3,"file":"DhtNode.js","sourceRoot":"","sources":["../../../src/dht/DhtNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DhtNode.js","sourceRoot":"","sources":["../../../src/dht/DhtNode.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,11 @@
1
1
  import { ServerCallContext } from '@protobuf-ts/runtime-rpc';
2
- import KBucket from 'k-bucket';
3
2
  import { Empty } from '../proto/google/protobuf/empty';
4
3
  import { ClosestPeersRequest, ClosestPeersResponse, LeaveNotice, PeerDescriptor, PingRequest, PingResponse } from '../proto/packages/dht/protos/DhtRpc';
5
4
  import { IDhtNodeRpc } from '../proto/packages/dht/protos/DhtRpc.server';
6
- import { DhtNodeRpcRemote } from './DhtNodeRpcRemote';
7
5
  interface DhtNodeRpcLocalConfig {
8
- bucket: KBucket<DhtNodeRpcRemote>;
9
6
  serviceId: string;
10
7
  peerDiscoveryQueryBatchSize: number;
8
+ getClosestPeersTo: (nodeId: Uint8Array, limit: number) => PeerDescriptor[];
11
9
  addNewContact: (contact: PeerDescriptor) => void;
12
10
  removeContact: (contact: PeerDescriptor) => void;
13
11
  }
@@ -15,7 +13,6 @@ export declare class DhtNodeRpcLocal implements IDhtNodeRpc {
15
13
  private readonly config;
16
14
  constructor(config: DhtNodeRpcLocalConfig);
17
15
  getClosestPeers(request: ClosestPeersRequest, context: ServerCallContext): Promise<ClosestPeersResponse>;
18
- private getClosestPeerDescriptors;
19
16
  ping(request: PingRequest, context: ServerCallContext): Promise<PingResponse>;
20
17
  leaveNotice(_request: LeaveNotice, context: ServerCallContext): Promise<Empty>;
21
18
  }
@@ -11,15 +11,11 @@ class DhtNodeRpcLocal {
11
11
  async getClosestPeers(request, context) {
12
12
  this.config.addNewContact(context.incomingSourceDescriptor);
13
13
  const response = {
14
- peers: this.getClosestPeerDescriptors(request.nodeId, this.config.peerDiscoveryQueryBatchSize),
14
+ peers: this.config.getClosestPeersTo(request.nodeId, this.config.peerDiscoveryQueryBatchSize),
15
15
  requestId: request.requestId
16
16
  };
17
17
  return response;
18
18
  }
19
- getClosestPeerDescriptors(nodeId, limit) {
20
- const closestPeers = this.config.bucket.closest(nodeId, limit);
21
- return closestPeers.map((rpcRemote) => rpcRemote.getPeerDescriptor());
22
- }
23
19
  async ping(request, context) {
24
20
  logger.trace('received ping request: ' + (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(context.incomingSourceDescriptor));
25
21
  setImmediate(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"DhtNodeRpcLocal.js","sourceRoot":"","sources":["../../../src/dht/DhtNodeRpcLocal.ts"],"names":[],"mappings":";;;AACA,0CAAuC;AAEvC,kFAAiF;AAsBjF,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,eAAe;IAIxB,YAAY,MAA6B;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAA4B,EAAE,OAA0B;QAC1E,IAAI,CAAC,MAAM,CAAC,aAAa,CAAE,OAA0B,CAAC,wBAAyB,CAAC,CAAA;QAChF,MAAM,QAAQ,GAAG;YACb,KAAK,EAAE,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC;YAC9F,SAAS,EAAE,OAAO,CAAC,SAAS;SAC/B,CAAA;QACD,OAAO,QAAQ,CAAA;IACnB,CAAC;IAEO,yBAAyB,CAAC,MAAkB,EAAE,KAAa;QAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QAC9D,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,SAA2B,EAAE,EAAE,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC,CAAA;IAC3F,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAoB,EAAE,OAA0B;QACvD,MAAM,CAAC,KAAK,CAAC,yBAAyB,GAAG,IAAA,sDAA2B,EAAE,OAA0B,CAAC,wBAAyB,CAAC,CAAC,CAAA;QAC5H,YAAY,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,aAAa,CAAE,OAA0B,CAAC,wBAAyB,CAAC,CAAA;QACpF,CAAC,CAAC,CAAA;QACF,MAAM,QAAQ,GAAiB;YAC3B,SAAS,EAAE,OAAO,CAAC,SAAS;SAC/B,CAAA;QACD,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAqB,EAAE,OAA0B;QAC/D,yBAAyB;QACzB,MAAM,MAAM,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QACpE,MAAM,CAAC,KAAK,CAAC,yBAAyB,GAAG,IAAA,sDAA2B,EAAC,MAAM,CAAC,CAAC,CAAA;QAC7E,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QACjC,OAAO,EAAE,CAAA;IACb,CAAC;CACJ;AAxCD,0CAwCC"}
1
+ {"version":3,"file":"DhtNodeRpcLocal.js","sourceRoot":"","sources":["../../../src/dht/DhtNodeRpcLocal.ts"],"names":[],"mappings":";;;AACA,0CAAuC;AACvC,kFAAiF;AAqBjF,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,eAAe;IAIxB,YAAY,MAA6B;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAA4B,EAAE,OAA0B;QAC1E,IAAI,CAAC,MAAM,CAAC,aAAa,CAAE,OAA0B,CAAC,wBAAyB,CAAC,CAAA;QAChF,MAAM,QAAQ,GAAG;YACb,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC;YAC7F,SAAS,EAAE,OAAO,CAAC,SAAS;SAC/B,CAAA;QACD,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAoB,EAAE,OAA0B;QACvD,MAAM,CAAC,KAAK,CAAC,yBAAyB,GAAG,IAAA,sDAA2B,EAAE,OAA0B,CAAC,wBAAyB,CAAC,CAAC,CAAA;QAC5H,YAAY,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,aAAa,CAAE,OAA0B,CAAC,wBAAyB,CAAC,CAAA;QACpF,CAAC,CAAC,CAAA;QACF,MAAM,QAAQ,GAAiB;YAC3B,SAAS,EAAE,OAAO,CAAC,SAAS;SAC/B,CAAA;QACD,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAqB,EAAE,OAA0B;QAC/D,yBAAyB;QACzB,MAAM,MAAM,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QACpE,MAAM,CAAC,KAAK,CAAC,yBAAyB,GAAG,IAAA,sDAA2B,EAAC,MAAM,CAAC,CAAC,CAAA;QAC7E,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QACjC,OAAO,EAAE,CAAA;IACb,CAAC;CACJ;AAnCD,0CAmCC"}
@@ -1,13 +1,11 @@
1
- import KBucket from 'k-bucket';
2
1
  import { PeerID, PeerIDKey } from '../helpers/PeerID';
3
2
  import { PeerDescriptor } from '../proto/packages/dht/protos/DhtRpc';
4
3
  import { DhtNodeRpcRemote } from './DhtNodeRpcRemote';
5
- import { SortedContactList } from './contact/SortedContactList';
6
4
  import { ConnectionManager } from '../connection/ConnectionManager';
7
5
  import EventEmitter from 'eventemitter3';
8
6
  interface PeerManagerConfig {
9
7
  numberOfNodesPerKBucket: number;
10
- maxNeighborListSize: number;
8
+ maxContactListSize: number;
11
9
  peerDiscoveryQueryBatchSize: number;
12
10
  ownPeerId: PeerID;
13
11
  connectionManager: ConnectionManager;
@@ -21,10 +19,11 @@ export interface PeerManagerEvents {
21
19
  randomContactRemoved: (peerDescriptor: PeerDescriptor, closestPeers: PeerDescriptor[]) => void;
22
20
  kBucketEmpty: () => void;
23
21
  }
22
+ export declare const getDistance: (peerId1: Uint8Array, peerId2: Uint8Array) => number;
24
23
  export declare class PeerManager extends EventEmitter<PeerManagerEvents> {
25
- bucket?: KBucket<DhtNodeRpcRemote>;
24
+ private bucket?;
26
25
  readonly connections: Map<PeerIDKey, DhtNodeRpcRemote>;
27
- neighborList?: SortedContactList<DhtNodeRpcRemote>;
26
+ private contacts?;
28
27
  private randomPeers?;
29
28
  private readonly config;
30
29
  private stopped;
@@ -40,9 +39,14 @@ export declare class PeerManager extends EventEmitter<PeerManagerEvents> {
40
39
  handlePeerLeaving(peerDescriptor: PeerDescriptor): void;
41
40
  private removeContact;
42
41
  stop(): void;
42
+ getClosestNeighborsTo(kademliaId: Uint8Array, limit?: number, excludeSet?: Set<PeerIDKey>): DhtNodeRpcRemote[];
43
+ getClosestContactsTo(kademliaId: Uint8Array, limit?: number, excludeSet?: Set<PeerIDKey>): DhtNodeRpcRemote[];
44
+ getNumberOfContacts(excludeSet?: Set<PeerIDKey>): number;
43
45
  getNumberOfConnections(): number;
46
+ getNumberOfNeighbors(): number;
47
+ getNeighbors(): PeerDescriptor[];
44
48
  handlePeerActive(peerId: PeerID): void;
45
49
  handlePeerUnresponsive(peerId: PeerID): void;
46
- handleNewPeers(contacts: PeerDescriptor[], setActive?: boolean): void;
50
+ handleNewPeers(peerDescriptors: PeerDescriptor[], setActive?: boolean): void;
47
51
  }
48
52
  export {};