@streamr/dht 0.0.1-tatum.1 → 0.0.1-tatum.3

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 (89) hide show
  1. package/dist/src/connection/ConnectionManager.d.ts +6 -1
  2. package/dist/src/connection/ConnectionManager.js +21 -26
  3. package/dist/src/connection/ConnectionManager.js.map +1 -1
  4. package/dist/src/connection/ConnectivityChecker.d.ts +4 -2
  5. package/dist/src/connection/ConnectivityChecker.js +23 -19
  6. package/dist/src/connection/ConnectivityChecker.js.map +1 -1
  7. package/dist/src/connection/ManagedConnection.js +2 -6
  8. package/dist/src/connection/ManagedConnection.js.map +1 -1
  9. package/dist/src/connection/Simulator/SimulatorTransport.js +1 -1
  10. package/dist/src/connection/Simulator/SimulatorTransport.js.map +1 -1
  11. package/dist/src/connection/WebRTC/WebRtcConnector.d.ts +2 -0
  12. package/dist/src/connection/WebRTC/WebRtcConnector.js +14 -1
  13. package/dist/src/connection/WebRTC/WebRtcConnector.js.map +1 -1
  14. package/dist/src/connection/WebSocket/WebSocketConnector.d.ts +5 -3
  15. package/dist/src/connection/WebSocket/WebSocketConnector.js +19 -12
  16. package/dist/src/connection/WebSocket/WebSocketConnector.js.map +1 -1
  17. package/dist/src/connection/WebSocket/WebSocketServer.d.ts +2 -2
  18. package/dist/src/connection/WebSocket/WebSocketServer.js +29 -37
  19. package/dist/src/connection/WebSocket/WebSocketServer.js.map +1 -1
  20. package/dist/src/dht/DhtNode.d.ts +9 -6
  21. package/dist/src/dht/DhtNode.js +14 -21
  22. package/dist/src/dht/DhtNode.js.map +1 -1
  23. package/dist/src/dht/DhtPeer.js +1 -1
  24. package/dist/src/dht/discovery/PeerDiscovery.d.ts +4 -2
  25. package/dist/src/dht/discovery/PeerDiscovery.js +18 -33
  26. package/dist/src/dht/discovery/PeerDiscovery.js.map +1 -1
  27. package/dist/src/dht/routing/RemoteRouter.js +2 -4
  28. package/dist/src/dht/routing/RemoteRouter.js.map +1 -1
  29. package/dist/src/dht/store/DataStore.js +6 -6
  30. package/dist/src/exports.d.ts +1 -1
  31. package/dist/src/exports.js.map +1 -1
  32. package/dist/src/helpers/errors.d.ts +1 -1
  33. package/dist/src/helpers/errors.js +3 -3
  34. package/dist/src/helpers/errors.js.map +1 -1
  35. package/dist/src/helpers/protoClasses.js +0 -2
  36. package/dist/src/helpers/protoClasses.js.map +1 -1
  37. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js +1 -1
  38. package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +14 -50
  39. package/dist/src/proto/packages/dht/protos/DhtRpc.js +9 -35
  40. package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
  41. package/dist/src/proto/packages/proto-rpc/protos/ProtoRpc.js +1 -1
  42. package/package.json +9 -9
  43. package/protos/DhtRpc.proto +7 -16
  44. package/src/connection/ConnectionManager.ts +31 -28
  45. package/src/connection/ConnectivityChecker.ts +28 -23
  46. package/src/connection/ManagedConnection.ts +2 -6
  47. package/src/connection/Simulator/SimulatorTransport.ts +1 -1
  48. package/src/connection/WebRTC/BrowserWebRtcConnection.ts +13 -2
  49. package/src/connection/WebRTC/WebRtcConnector.ts +14 -0
  50. package/src/connection/WebSocket/WebSocketConnector.ts +23 -12
  51. package/src/connection/WebSocket/WebSocketServer.ts +33 -20
  52. package/src/dht/DhtNode.ts +23 -24
  53. package/src/dht/DhtPeer.ts +1 -1
  54. package/src/dht/discovery/PeerDiscovery.ts +17 -8
  55. package/src/dht/routing/RemoteRouter.ts +2 -4
  56. package/src/dht/store/DataStore.ts +6 -6
  57. package/src/exports.ts +1 -1
  58. package/src/helpers/errors.ts +1 -1
  59. package/src/helpers/protoClasses.ts +1 -5
  60. package/src/proto/google/protobuf/any.ts +1 -1
  61. package/src/proto/google/protobuf/empty.ts +1 -1
  62. package/src/proto/google/protobuf/timestamp.ts +1 -1
  63. package/src/proto/packages/dht/protos/DhtRpc.client.ts +1 -1
  64. package/src/proto/packages/dht/protos/DhtRpc.server.ts +1 -1
  65. package/src/proto/packages/dht/protos/DhtRpc.ts +22 -69
  66. package/src/proto/packages/proto-rpc/protos/ProtoRpc.ts +1 -1
  67. package/test/benchmark/KademliaCorrectness.test.ts +1 -1
  68. package/test/benchmark/RecursiveFind.test.ts +1 -1
  69. package/test/end-to-end/Layer0-Layer1.test.ts +3 -3
  70. package/test/end-to-end/Layer0.test.ts +5 -5
  71. package/test/end-to-end/Layer0MixedConnectionTypes.test.ts +6 -6
  72. package/test/end-to-end/Layer0WebRTC-Layer1.test.ts +18 -19
  73. package/test/end-to-end/Layer0WebRTC.test.ts +18 -24
  74. package/test/end-to-end/Layer1-Scale-WebRTC.test.ts +2 -2
  75. package/test/end-to-end/Layer1-Scale-WebSocket.test.ts +2 -2
  76. package/test/end-to-end/WebSocketConnectionRequest.test.ts +3 -3
  77. package/test/integration/ConnectionManager.test.ts +10 -9
  78. package/test/integration/DhtRpc.test.ts +2 -2
  79. package/test/integration/MigrateData.test.ts +3 -3
  80. package/test/integration/RouteMessage.test.ts +2 -2
  81. package/test/integration/ScaleDownDht.test.ts +1 -1
  82. package/test/integration/SimultaneousConnections.test.ts +9 -6
  83. package/test/integration/WebRtcConnectionManagement.test.ts +2 -2
  84. package/test/integration/WebRtcConnectorRpc.test.ts +2 -2
  85. package/test/integration/WebSocketConnectionManagement.test.ts +3 -2
  86. package/test/integration/WebSocketConnectorRpc.test.ts +4 -4
  87. package/test/unit/WebSocketServer.test.ts +1 -8
  88. package/test/unit/webrtcReplaceInternalIpWithExternalIp.ts +18 -0
  89. package/test/utils/utils.ts +1 -2
@@ -1 +1 @@
1
- {"version":3,"file":"WebRtcConnector.js","sourceRoot":"","sources":["../../../../src/connection/WebRTC/WebRtcConnector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebRtcConnector.js","sourceRoot":"","sources":["../../../../src/connection/WebRTC/WebRtcConnector.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import { ITransport } from '../../transport/ITransport';
2
- import { ConnectivityResponse, PeerDescriptor, WebSocketConnectionRequest, WebSocketConnectionResponse } from '../../proto/packages/dht/protos/DhtRpc';
2
+ import { ConnectivityMethod, ConnectivityResponse, PeerDescriptor, WebSocketConnectionRequest, WebSocketConnectionResponse } from '../../proto/packages/dht/protos/DhtRpc';
3
3
  import { IWebSocketConnectorService } from '../../proto/packages/dht/protos/DhtRpc.server';
4
4
  import { ServerCallContext } from '@protobuf-ts/runtime-rpc';
5
5
  import { ManagedConnection } from '../ManagedConnection';
6
- import { PortRange } from '../ConnectionManager';
6
+ import { PortRange, TlsCertificate } from '../ConnectionManager';
7
+ export declare const connectivityMethodToWebSocketUrl: (ws: ConnectivityMethod) => string;
7
8
  export declare class WebSocketConnector implements IWebSocketConnectorService {
8
9
  private static readonly WEBSOCKET_CONNECTOR_SERVICE_ID;
9
10
  private readonly rpcCommunicator;
@@ -15,12 +16,13 @@ export declare class WebSocketConnector implements IWebSocketConnectorService {
15
16
  private portRange?;
16
17
  private host?;
17
18
  private entrypoints?;
19
+ private readonly tlsCertificate?;
18
20
  private selectedPort?;
19
21
  private readonly protocolVersion;
20
22
  private ownPeerDescriptor?;
21
23
  private connectingConnections;
22
24
  private destroyed;
23
- constructor(protocolVersion: string, rpcTransport: ITransport, fnCanConnect: (peerDescriptor: PeerDescriptor, _ip: string, port: number) => boolean, incomingConnectionCallback: (connection: ManagedConnection) => boolean, portRange?: PortRange, host?: string, entrypoints?: PeerDescriptor[]);
25
+ constructor(protocolVersion: string, rpcTransport: ITransport, fnCanConnect: (peerDescriptor: PeerDescriptor, _ip: string, port: number) => boolean, incomingConnectionCallback: (connection: ManagedConnection) => boolean, portRange?: PortRange, host?: string, entrypoints?: PeerDescriptor[], tlsCertificate?: TlsCertificate);
24
26
  private attachHandshaker;
25
27
  start(): Promise<void>;
26
28
  checkConnectivity(reattempt?: number): Promise<ConnectivityResponse>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WebSocketConnector = void 0;
3
+ exports.WebSocketConnector = exports.connectivityMethodToWebSocketUrl = void 0;
4
4
  const ClientWebSocket_1 = require("./ClientWebSocket");
5
5
  const IConnection_1 = require("../IConnection");
6
6
  const ListeningRpcCommunicator_1 = require("../../transport/ListeningRpcCommunicator");
@@ -17,8 +17,13 @@ const Handshaker_1 = require("../Handshaker");
17
17
  const peerIdFromPeerDescriptor_1 = require("../../helpers/peerIdFromPeerDescriptor");
18
18
  const lodash_1 = require("lodash");
19
19
  const logger = new utils_1.Logger(module);
20
+ const connectivityMethodToWebSocketUrl = (ws) => {
21
+ return (ws.tls ? 'wss://' : 'ws://') + ws.host + ':' + ws.port;
22
+ };
23
+ exports.connectivityMethodToWebSocketUrl = connectivityMethodToWebSocketUrl;
24
+ const ENTRY_POINT_CONNECTION_ATTEMPTS = 5;
20
25
  class WebSocketConnector {
21
- constructor(protocolVersion, rpcTransport, fnCanConnect, incomingConnectionCallback, portRange, host, entrypoints) {
26
+ constructor(protocolVersion, rpcTransport, fnCanConnect, incomingConnectionCallback, portRange, host, entrypoints, tlsCertificate) {
22
27
  this.ongoingConnectRequests = new Map();
23
28
  this.connectingConnections = new Map();
24
29
  this.destroyed = false;
@@ -48,6 +53,7 @@ class WebSocketConnector {
48
53
  this.portRange = portRange;
49
54
  this.host = host;
50
55
  this.entrypoints = entrypoints;
56
+ this.tlsCertificate = tlsCertificate;
51
57
  this.canConnectFunction = fnCanConnect.bind(this);
52
58
  this.rpcCommunicator = new ListeningRpcCommunicator_1.ListeningRpcCommunicator(WebSocketConnector.WEBSOCKET_CONNECTOR_SERVICE_ID, rpcTransport, {
53
59
  rpcRequestTimeout: 15000
@@ -82,15 +88,16 @@ class WebSocketConnector {
82
88
  this.attachHandshaker(connection);
83
89
  }
84
90
  });
85
- const port = await this.webSocketServer.start(this.portRange, this.host);
91
+ const port = await this.webSocketServer.start(this.portRange, this.tlsCertificate);
86
92
  this.selectedPort = port;
87
- this.connectivityChecker = new ConnectivityChecker_1.ConnectivityChecker(this.selectedPort);
93
+ this.connectivityChecker = new ConnectivityChecker_1.ConnectivityChecker(this.selectedPort, this.tlsCertificate !== undefined, this.host);
88
94
  }
89
95
  }
90
96
  async checkConnectivity(reattempt = 0) {
97
+ // TODO: this could throw if the server is not running
91
98
  const noServerConnectivityResponse = {
92
99
  openInternet: false,
93
- ip: '127.0.0.1',
100
+ host: '127.0.0.1',
94
101
  natType: ConnectionManager_1.NatType.UNKNOWN
95
102
  };
96
103
  if (this.destroyed) {
@@ -106,9 +113,9 @@ class WebSocketConnector {
106
113
  // return connectivity info given in config
107
114
  const preconfiguredConnectivityResponse = {
108
115
  openInternet: true,
109
- ip: this.host,
116
+ host: this.host,
110
117
  natType: ConnectionManager_1.NatType.OPEN_INTERNET,
111
- websocket: { ip: this.host, port: this.selectedPort }
118
+ websocket: { host: this.host, port: this.selectedPort, tls: this.tlsCertificate !== undefined }
112
119
  };
113
120
  return preconfiguredConnectivityResponse;
114
121
  }
@@ -119,7 +126,8 @@ class WebSocketConnector {
119
126
  }
120
127
  }
121
128
  catch (err) {
122
- if (reattempt < 5) {
129
+ if (reattempt < ENTRY_POINT_CONNECTION_ATTEMPTS) {
130
+ logger.error('Failed to connect to the entrypoint', { error: err });
123
131
  await (0, utils_1.wait)(2000);
124
132
  return this.checkConnectivity(reattempt + 1);
125
133
  }
@@ -139,8 +147,7 @@ class WebSocketConnector {
139
147
  }
140
148
  else {
141
149
  const socket = new ClientWebSocket_1.ClientWebSocket();
142
- const address = 'ws://' + targetPeerDescriptor.websocket.ip + ':' +
143
- targetPeerDescriptor.websocket.port;
150
+ const url = (0, exports.connectivityMethodToWebSocketUrl)(targetPeerDescriptor.websocket);
144
151
  const managedConnection = new ManagedConnection_1.ManagedConnection(this.ownPeerDescriptor, this.protocolVersion, IConnection_1.ConnectionType.WEBSOCKET_CLIENT, socket, undefined);
145
152
  managedConnection.setPeerDescriptor(targetPeerDescriptor);
146
153
  this.connectingConnections.set((0, peerIdFromPeerDescriptor_1.keyFromPeerDescriptor)(targetPeerDescriptor), managedConnection);
@@ -153,14 +160,14 @@ class WebSocketConnector {
153
160
  };
154
161
  socket.on('disconnected', delFunc);
155
162
  managedConnection.on('handshakeCompleted', delFunc);
156
- socket.connect(address);
163
+ socket.connect(url);
157
164
  return managedConnection;
158
165
  }
159
166
  }
160
167
  requestConnectionFromPeer(ownPeerDescriptor, targetPeerDescriptor) {
161
168
  setImmediate(() => {
162
169
  const remoteConnector = new RemoteWebSocketConnector_1.RemoteWebSocketConnector(targetPeerDescriptor, (0, proto_rpc_1.toProtoRpcClient)(new DhtRpc_client_1.WebSocketConnectorServiceClient(this.rpcCommunicator.getRpcClientTransport())));
163
- remoteConnector.requestConnection(ownPeerDescriptor, ownPeerDescriptor.websocket.ip, ownPeerDescriptor.websocket.port);
170
+ remoteConnector.requestConnection(ownPeerDescriptor, ownPeerDescriptor.websocket.host, ownPeerDescriptor.websocket.port);
164
171
  });
165
172
  const managedConnection = new ManagedConnection_1.ManagedConnection(this.ownPeerDescriptor, this.protocolVersion, IConnection_1.ConnectionType.WEBSOCKET_SERVER);
166
173
  managedConnection.on('disconnected', () => this.ongoingConnectRequests.delete((0, peerIdFromPeerDescriptor_1.keyFromPeerDescriptor)(targetPeerDescriptor)));
@@ -1 +1 @@
1
- {"version":3,"file":"WebSocketConnector.js","sourceRoot":"","sources":["../../../../src/connection/WebSocket/WebSocketConnector.ts"],"names":[],"mappings":";;;AAAA,uDAAmD;AACnD,gDAA4D;AAE5D,uFAAmF;AACnF,yEAAqE;AACrE,mEAK+C;AAC/C,iFAA+F;AAC/F,0CAA6C;AAG7C,4DAAwD;AACxD,uDAAmD;AACnD,gEAA4D;AAC5D,4DAAyD;AAGzD,kDAAqD;AACrD,8CAA0C;AAC1C,qFAAwG;AAExG,mCAA+B;AAE/B,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,kBAAkB;IAiB3B,YACI,eAAuB,EACvB,YAAwB,EACxB,YAAoF,EACpF,0BAAsE,EACtE,SAAqB,EACrB,IAAa,EACb,WAA8B;QAlBjB,2BAAsB,GAAsC,IAAI,GAAG,EAAE,CAAA;QAQ9E,0BAAqB,GAAsC,IAAI,GAAG,EAAE,CAAA;QACpE,cAAS,GAAG,KAAK,CAAA;QA4JjB,mCAA8B,GAAG,CAAC,cAA8B,EAAE,eAA4B,EAAE,EAAE;YAEtG,MAAM,MAAM,GAAG,IAAA,mDAAwB,EAAC,cAAc,CAAC,CAAA;YAEvD,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE;gBACjD,MAAM,qBAAqB,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAE,CAAA;gBAC9E,qBAAqB,CAAC,oBAAoB,CAAC,eAAe,EAAE,cAAc,CAAC,CAAA;gBAC3E,qBAAqB,CAAC,eAAe,EAAE,CAAA;gBACvC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;aACrD;iBAAM;gBACH,MAAM,iBAAiB,GAAG,IAAI,qCAAiB,CAAC,IAAI,CAAC,iBAAkB,EAAE,IAAI,CAAC,eAAe,EACzF,4BAAc,CAAC,gBAAgB,EAAE,SAAS,EAAE,eAAe,CAAC,CAAA;gBAEhE,iBAAiB,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAA;gBAEnD,IAAI,IAAI,CAAC,0BAA0B,CAAC,iBAAiB,CAAC,EAAE;oBACpD,iBAAiB,CAAC,eAAe,EAAE,CAAA;iBACtC;qBAAM;oBACH,iBAAiB,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAA;oBACzD,iBAAiB,CAAC,OAAO,EAAE,CAAA;iBAC9B;aACJ;QACL,CAAC,CAAA;QAvKG,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;QACtC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,iCAAe,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;QACpE,IAAI,CAAC,0BAA0B,GAAG,0BAA0B,CAAA;QAC5D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAE9B,IAAI,CAAC,kBAAkB,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEjD,IAAI,CAAC,eAAe,GAAG,IAAI,mDAAwB,CAAC,kBAAkB,CAAC,8BAA8B,EAAE,YAAY,EAAE;YACjH,iBAAiB,EAAE,KAAK;SAC3B,CAAC,CAAA;QAEF,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAClC,mCAA0B,EAC1B,oCAA2B,EAC3B,mBAAmB,EACnB,CAAC,GAA+B,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CACrF,CAAA;IACL,CAAC;IAEO,gBAAgB,CAAC,UAAuB;QAC5C,MAAM,UAAU,GAAG,IAAI,uBAAU,CAAC,IAAI,CAAC,iBAAkB,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;QAC5F,UAAU,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,cAA8B,EAAE,EAAE;YACnE,IAAI,CAAC,8BAA8B,CAAC,cAAc,EAAE,UAAU,CAAC,CAAA;QACnE,CAAC,CAAC,CAAA;IACN,CAAC;IAEM,KAAK,CAAC,KAAK;QACd,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,eAAe,EAAE;YACzC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,UAAuB,EAAE,EAAE;gBAE7D,MAAM,YAAY,GAAG,UAAwC,CAAA;gBAC7D,IAAI,YAAY,CAAC,WAAW;oBACxB,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE;oBAChC,MAAM,KAAK,GAAG,YAAY,CAAC,WAAW,CAAC,KAAkC,CAAA;oBACzE,IAAI,KAAK,CAAC,mBAAmB,EAAE;wBAC3B,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAA;wBACxD,IAAI,CAAC,mBAAoB,CAAC,oCAAoC,CAAC,YAAY,CAAC,CAAA;qBAC/E;yBAAM,IAAI,KAAK,CAAC,iBAAiB,EAAE;wBAChC,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAA;qBACzD;yBAAM;wBACH,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAA;qBACpC;iBACJ;qBAAM;oBACH,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAA;iBACpC;YACL,CAAC,CAAC,CAAA;YACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,SAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;YACzE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;YACxB,IAAI,CAAC,mBAAmB,GAAG,IAAI,yCAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;SACxE;IACL,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,SAAS,GAAG,CAAC;QACxC,MAAM,4BAA4B,GAAyB;YACvD,YAAY,EAAE,KAAK;YACnB,EAAE,EAAE,WAAW;YACf,OAAO,EAAE,2BAAO,CAAC,OAAO;SAC3B,CAAA;QACD,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,OAAO,4BAA4B,CAAA;SACtC;QACD,IAAI;YACA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;gBACvB,qDAAqD;gBACrD,OAAO,4BAA4B,CAAA;aACtC;iBAAM;gBACH,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;oBAClD,2CAA2C;oBAC3C,MAAM,iCAAiC,GAAyB;wBAC5D,YAAY,EAAE,IAAI;wBAClB,EAAE,EAAE,IAAI,CAAC,IAAK;wBACd,OAAO,EAAE,2BAAO,CAAC,aAAa;wBAC9B,SAAS,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,IAAK,EAAE,IAAI,EAAE,IAAI,CAAC,YAAa,EAAE;qBAC1D,CAAA;oBACD,OAAO,iCAAiC,CAAA;iBAC3C;qBAAM;oBACH,qCAAqC;oBACrC,OAAO,MAAM,IAAI,CAAC,mBAAoB,CAAC,uBAAuB,CAAC,IAAA,eAAM,EAAC,IAAI,CAAC,WAAW,CAAE,CAAC,CAAA;iBAC5F;aACJ;SACJ;QAAC,OAAO,GAAG,EAAE;YACV,IAAI,SAAS,GAAG,CAAC,EAAE;gBACf,MAAM,IAAA,YAAI,EAAC,IAAI,CAAC,CAAA;gBAChB,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,CAAC,CAAC,CAAA;aAC/C;iBAAM;gBACH,MAAM,GAAG,CAAA;aACZ;SACJ;IAEL,CAAC;IAEM,OAAO,CAAC,oBAAoC;QAC/C,MAAM,OAAO,GAAG,IAAA,gDAAqB,EAAC,oBAAoB,CAAC,CAAA;QAC3D,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAClE,IAAI,kBAAkB,EAAE;YACpB,OAAO,kBAAkB,CAAA;SAC5B;QAED,IAAI,IAAI,CAAC,iBAAkB,CAAC,SAAS,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE;YACtE,OAAO,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,iBAAkB,EAAE,oBAAoB,CAAC,CAAA;SACvF;aAAM;YACH,MAAM,MAAM,GAAG,IAAI,iCAAe,EAAE,CAAA;YAEpC,MAAM,OAAO,GAAG,OAAO,GAAG,oBAAoB,CAAC,SAAU,CAAC,EAAE,GAAG,GAAG;gBAC9D,oBAAoB,CAAC,SAAU,CAAC,IAAI,CAAA;YAExC,MAAM,iBAAiB,GAAG,IAAI,qCAAiB,CAAC,IAAI,CAAC,iBAAkB,EAAE,IAAI,CAAC,eAAe,EACzF,4BAAc,CAAC,gBAAgB,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;YACvD,iBAAiB,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAA;YAEzD,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAA,gDAAqB,EAAC,oBAAoB,CAAC,EAAE,iBAAiB,CAAC,CAAA;YAE9F,MAAM,OAAO,GAAG,GAAG,EAAE;gBACjB,IAAI,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;oBACzC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;iBAC7C;gBACD,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;gBACnC,iBAAiB,CAAC,GAAG,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAA;YACxD,CAAC,CAAA;YACD,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;YAClC,iBAAiB,CAAC,EAAE,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAA;YAEnD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YAEvB,OAAO,iBAAiB,CAAA;SAC3B;IACL,CAAC;IAEM,yBAAyB,CAAC,iBAAiC,EAAE,oBAAoC;QACpG,YAAY,CAAC,GAAG,EAAE;YACd,MAAM,eAAe,GAAG,IAAI,mDAAwB,CAChD,oBAAoB,EACpB,IAAA,4BAAgB,EAAC,IAAI,+CAA+B,CAAC,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC,CAAC,CACtG,CAAA;YACD,eAAe,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,SAAU,CAAC,EAAE,EAAE,iBAAiB,CAAC,SAAU,CAAC,IAAI,CAAC,CAAA;QAC5H,CAAC,CAAC,CAAA;QACF,MAAM,iBAAiB,GAAG,IAAI,qCAAiB,CAAC,IAAI,CAAC,iBAAkB,EAAE,IAAI,CAAC,eAAe,EAAE,4BAAc,CAAC,gBAAgB,CAAC,CAAA;QAC/H,iBAAiB,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAA,gDAAqB,EAAC,oBAAoB,CAAC,CAAC,CAAC,CAAA;QAC3H,iBAAiB,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAA;QACzD,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAA,gDAAqB,EAAC,oBAAoB,CAAC,EAAE,iBAAiB,CAAC,CAAA;QAC/F,OAAO,iBAAiB,CAAA;IAC5B,CAAC;IA0BM,oBAAoB,CAAC,iBAAiC;QACzD,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;IAC9C,CAAC;IAEM,KAAK,CAAC,OAAO;QAChB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACrB,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAA;QAE3B,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,CAAC,CAAA;QACjE,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAErE,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC,CAAA;QAChE,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QACrE,IAAI,CAAC,mBAAmB,EAAE,OAAO,EAAE,CAAA;QACnC,MAAM,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,CAAA;IACtC,CAAC;IAED,4CAA4C;IACrC,KAAK,CAAC,iBAAiB,CAAC,OAAmC,EAAE,QAA2B;QAC3F,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,SAAU,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE;YAC1F,YAAY,CAAC,GAAG,EAAE;gBACd,IAAI,IAAI,CAAC,SAAS,EAAE;oBAChB,OAAM;iBACT;gBACD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAU,CAAC,CAAA;gBACnD,IAAI,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAA;YAC/C,CAAC,CAAC,CAAA;YACF,MAAM,GAAG,GAAgC;gBACrC,QAAQ,EAAE,IAAI;aACjB,CAAA;YACD,OAAO,GAAG,CAAA;SACb;QACD,OAAO;YACH,QAAQ,EAAE,KAAK;SAClB,CAAA;IACL,CAAC;;AAtOL,gDAuOC;AAtO2B,iDAA8B,GAAG,2BAA2B,AAA9B,CAA8B"}
1
+ {"version":3,"file":"WebSocketConnector.js","sourceRoot":"","sources":["../../../../src/connection/WebSocket/WebSocketConnector.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import EventEmitter from 'eventemitter3';
2
2
  import { ConnectionSourceEvents } from '../IConnectionSource';
3
- import { PortRange } from '../ConnectionManager';
3
+ import { PortRange, TlsCertificate } from '../ConnectionManager';
4
4
  export declare class WebSocketServer extends EventEmitter<ConnectionSourceEvents> {
5
5
  private httpServer?;
6
6
  private wsServer?;
7
7
  private readonly abortController;
8
- start(portRange: PortRange, host?: string): Promise<number>;
8
+ start(portRange: PortRange, tlsCertificate?: TlsCertificate): Promise<number>;
9
9
  private startServer;
10
10
  stop(): Promise<void>;
11
11
  private createWsServer;
@@ -1,65 +1,56 @@
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
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
4
  };
28
5
  Object.defineProperty(exports, "__esModule", { value: true });
29
6
  exports.WebSocketServer = void 0;
30
- const http = __importStar(require("http"));
7
+ const http_1 = require("http");
8
+ const https_1 = require("https");
31
9
  const eventemitter3_1 = __importDefault(require("eventemitter3"));
32
10
  const websocket_1 = require("websocket");
33
11
  const ServerWebSocket_1 = require("./ServerWebSocket");
34
12
  const utils_1 = require("@streamr/utils");
35
13
  const errors_1 = require("../../helpers/errors");
36
14
  const lodash_1 = require("lodash");
15
+ const fs_1 = __importDefault(require("fs"));
37
16
  const logger = new utils_1.Logger(module);
38
17
  class WebSocketServer extends eventemitter3_1.default {
39
18
  constructor() {
40
19
  super(...arguments);
41
20
  this.abortController = new AbortController();
42
21
  }
43
- async start(portRange, host) {
22
+ async start(portRange, tlsCertificate) {
44
23
  const ports = (0, lodash_1.range)(portRange.min, portRange.max + 1);
45
24
  for (const port of ports) {
46
25
  try {
47
- await (0, utils_1.asAbortable)(this.startServer(port, host), this.abortController.signal);
26
+ await (0, utils_1.asAbortable)(this.startServer(port, tlsCertificate), this.abortController.signal);
48
27
  return port;
49
28
  }
50
29
  catch (err) {
51
- logger.debug(`failed to start WebSocket server on port: ${port} reattempting on next port`);
30
+ if (err.originalError?.code === 'EADDRINUSE') {
31
+ logger.debug(`failed to start WebSocket server on port: ${port} reattempting on next port`);
32
+ }
33
+ else {
34
+ throw new errors_1.WebSocketServerStartError(err);
35
+ }
52
36
  }
53
37
  }
54
- throw new errors_1.StartingWebSocketServerFailed('Failed to start WebSocket server on any port in range');
38
+ throw new errors_1.WebSocketServerStartError(`Failed to start WebSocket server on any port in range: ${portRange.min}-${portRange.min}`);
55
39
  }
56
- startServer(port, host) {
40
+ startServer(port, tlsCertificate) {
41
+ const requestListener = (request, response) => {
42
+ logger.trace('Received request for ' + request.url);
43
+ response.writeHead(404);
44
+ response.end();
45
+ };
57
46
  return new Promise((resolve, reject) => {
58
- this.httpServer = http.createServer((request, response) => {
59
- logger.trace('Received request for ' + request.url);
60
- response.writeHead(404);
61
- response.end();
62
- });
47
+ this.httpServer = tlsCertificate ?
48
+ (0, https_1.createServer)({
49
+ key: fs_1.default.readFileSync(tlsCertificate.privateKeyFileName),
50
+ cert: fs_1.default.readFileSync(tlsCertificate.certFileName)
51
+ }, requestListener)
52
+ :
53
+ (0, http_1.createServer)(requestListener);
63
54
  function originIsAllowed(_uorigin) {
64
55
  return true;
65
56
  }
@@ -76,17 +67,18 @@ class WebSocketServer extends eventemitter3_1.default {
76
67
  this.emit('connected', new ServerWebSocket_1.ServerWebSocket(connection, request.resourceURL));
77
68
  });
78
69
  this.httpServer.once('error', (err) => {
79
- reject(new errors_1.StartingWebSocketServerFailed('Starting Websocket server failed', err));
70
+ reject(new errors_1.WebSocketServerStartError('Starting Websocket server failed', err));
80
71
  });
81
72
  this.httpServer.once('listening', () => {
82
73
  logger.debug('Websocket server is listening on port ' + port);
83
74
  resolve();
84
75
  });
85
76
  try {
86
- this.httpServer.listen(port, host);
77
+ // Listen only to IPv4 network interfaces, default value listens to IPv6 as well
78
+ this.httpServer.listen(port, '0.0.0.0');
87
79
  }
88
80
  catch (e) {
89
- reject(new errors_1.StartingWebSocketServerFailed('Websocket server threw an exception', e));
81
+ reject(new errors_1.WebSocketServerStartError('Websocket server threw an exception', e));
90
82
  }
91
83
  });
92
84
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WebSocketServer.js","sourceRoot":"","sources":["../../../../src/connection/WebSocket/WebSocketServer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA4B;AAC5B,kEAAwC;AACxC,yCAA8C;AAC9C,uDAAmD;AAKnD,0CAAoD;AACpD,iDAAoE;AAEpE,mCAA8B;AAE9B,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AASjC,MAAa,eAAgB,SAAQ,uBAAoC;IAAzE;;QAIqB,oBAAe,GAAG,IAAI,eAAe,EAAE,CAAA;IAuF5D,CAAC;IArFU,KAAK,CAAC,KAAK,CAAC,SAAoB,EAAE,IAAa;QAClD,MAAM,KAAK,GAAG,IAAA,cAAK,EAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;QACrD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACtB,IAAI;gBACA,MAAM,IAAA,mBAAW,EAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;gBAC5E,OAAO,IAAI,CAAA;aACd;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,CAAC,KAAK,CAAC,6CAA6C,IAAI,4BAA4B,CAAC,CAAA;aAC9F;SACJ;QACD,MAAM,IAAI,sCAA6B,CAAC,uDAAuD,CAAC,CAAA;IACpG,CAAC;IAEO,WAAW,CAAC,IAAY,EAAE,IAAa;QAC3C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;gBACtD,MAAM,CAAC,KAAK,CAAC,uBAAuB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;gBACnD,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;gBACvB,QAAQ,CAAC,GAAG,EAAE,CAAA;YAClB,CAAC,CAAC,CAAA;YAEF,SAAS,eAAe,CAAC,QAAgB;gBACrC,OAAO,IAAI,CAAA;YACf,CAAC;YAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAEpD,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;gBACpC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oBAClC,2DAA2D;oBAC3D,OAAO,CAAC,MAAM,EAAE,CAAA;oBAChB,MAAM,CAAC,KAAK,CAAC,0BAA0B,GAAG,OAAO,CAAC,MAAM,GAAG,YAAY,CAAC,CAAA;oBACxE,OAAM;iBACT;gBAED,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;gBAE5D,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;gBAErC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,iCAAe,CAAC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAA;YAChF,CAAC,CAAC,CAAA;YAEF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;gBACzC,MAAM,CAAC,IAAI,sCAA6B,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC,CAAA;YACtF,CAAC,CAAC,CAAA;YAEF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;gBACnC,MAAM,CAAC,KAAK,CAAC,wCAAwC,GAAG,IAAI,CAAC,CAAA;gBAC7D,OAAO,EAAE,CAAA;YACb,CAAC,CAAC,CAAA;YAEF,IAAI;gBACA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;aACrC;YAAC,OAAO,CAAC,EAAE;gBACR,MAAM,CAAC,IAAI,sCAA6B,CAAC,qCAAqC,EAAE,CAAC,CAAC,CAAC,CAAA;aACtF;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAEM,IAAI;QACP,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAA;QAC5B,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;YACpC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAA;YACzB,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,EAAE;gBACxB,OAAO,EAAE,CAAA;YACb,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;IACN,CAAC;IAEO,cAAc,CAAC,UAAuB;QAC1C,yDAAyD;QAEzD,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE;YACvC,OAAO,IAAI,cAAc,CAAC;gBACtB,UAAU;gBACV,qBAAqB,EAAE,KAAK;aAC/B,CAAC,CAAA;SACL;aAAM;YACH,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,kBAAQ,CAAC;gBAChC,UAAU;gBACV,qBAAqB,EAAE,KAAK;aAC/B,CAAC,CAAA;SACL;IACL,CAAC;CACJ;AA3FD,0CA2FC"}
1
+ {"version":3,"file":"WebSocketServer.js","sourceRoot":"","sources":["../../../../src/connection/WebSocket/WebSocketServer.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ import { ServerCallContext } from '@protobuf-ts/runtime-rpc';
6
6
  import { PeerID } from '../helpers/PeerID';
7
7
  import { LeaveNotice, ConnectivityResponse, Message, PeerDescriptor, FindMode, DataEntry } from '../proto/packages/dht/protos/DhtRpc';
8
8
  import { ITransport, TransportEvents } from '../transport/ITransport';
9
- import { ConnectionManager, PortRange } from '../connection/ConnectionManager';
9
+ import { ConnectionManager, PortRange, TlsCertificate } from '../connection/ConnectionManager';
10
10
  import { MetricsContext } from '@streamr/utils';
11
11
  import { Empty } from '../proto/google/protobuf/empty';
12
12
  import { Any } from '../proto/google/protobuf/any';
@@ -40,7 +40,7 @@ export interface DhtNodeOptions {
40
40
  entryPoints?: PeerDescriptor[];
41
41
  websocketHost?: string;
42
42
  websocketPortRange?: PortRange;
43
- peerIdString?: string;
43
+ peerId?: string;
44
44
  nodeName?: string;
45
45
  rpcRequestTimeout?: number;
46
46
  iceServers?: IceServer[];
@@ -50,6 +50,8 @@ export interface DhtNodeOptions {
50
50
  webrtcNewConnectionTimeout?: number;
51
51
  webrtcPortRange?: PortRange;
52
52
  maxConnections?: number;
53
+ tlsCertificate?: TlsCertificate;
54
+ externalIp?: string;
53
55
  }
54
56
  export declare class DhtNodeConfig {
55
57
  serviceId: string;
@@ -64,7 +66,7 @@ export declare class DhtNodeConfig {
64
66
  storeMaxTtl: number;
65
67
  storeNumberOfCopies: number;
66
68
  metricsContext: MetricsContext;
67
- peerIdString: string;
69
+ peerId: string;
68
70
  transportLayer?: ITransport;
69
71
  peerDescriptor?: PeerDescriptor;
70
72
  entryPoints?: PeerDescriptor[];
@@ -77,11 +79,13 @@ export declare class DhtNodeConfig {
77
79
  webrtcDatachannelBufferThresholdLow?: number;
78
80
  webrtcDatachannelBufferThresholdHigh?: number;
79
81
  webrtcNewConnectionTimeout?: number;
82
+ externalIp?: string;
80
83
  webrtcPortRange?: PortRange;
84
+ tlsCertificate?: TlsCertificate;
81
85
  constructor(conf: Partial<DhtNodeOptions>);
82
86
  }
83
87
  export type Events = TransportEvents & DhtNodeEvents;
84
- export declare const createPeerDescriptor: (msg?: ConnectivityResponse, peerIdString?: string, nodeName?: string) => PeerDescriptor;
88
+ export declare const createPeerDescriptor: (msg?: ConnectivityResponse, peerId?: string, nodeName?: string) => PeerDescriptor;
85
89
  export declare class DhtNode extends EventEmitter<Events> implements ITransport {
86
90
  private readonly config;
87
91
  private bucket?;
@@ -126,7 +130,7 @@ export declare class DhtNode extends EventEmitter<Events> implements ITransport
126
130
  private connectToEntryPoint;
127
131
  removeContact(contact: PeerDescriptor, removeFromOpenInternetPeers?: boolean): void;
128
132
  send(msg: Message, _doNotConnect?: boolean): Promise<void>;
129
- joinDht(entryPointDescriptors: PeerDescriptor[], doRandomJoin?: boolean): Promise<void>;
133
+ joinDht(entryPointDescriptors: PeerDescriptor[], doRandomJoin?: boolean, retry?: boolean): Promise<void>;
130
134
  startRecursiveFind(idToFind: Uint8Array, findMode?: FindMode, excludedPeer?: PeerDescriptor): Promise<RecursiveFindResult>;
131
135
  storeDataToDht(key: Uint8Array, data: Any): Promise<PeerDescriptor[]>;
132
136
  getDataFromDht(idToFind: Uint8Array): Promise<RecursiveFindResult>;
@@ -143,7 +147,6 @@ export declare class DhtNode extends EventEmitter<Events> implements ITransport
143
147
  getNumberOfLocalLockedConnections(): number;
144
148
  getNumberOfRemoteLockedConnections(): number;
145
149
  getNumberOfWeakLockedConnections(): number;
146
- getNodeName(): string;
147
150
  isJoinOngoing(): boolean;
148
151
  hasJoined(): boolean;
149
152
  getKnownEntryPoints(): PeerDescriptor[];
@@ -64,7 +64,7 @@ class DhtNodeConfig {
64
64
  this.storeMaxTtl = 60000;
65
65
  this.storeNumberOfCopies = 5;
66
66
  this.metricsContext = new utils_1.MetricsContext();
67
- this.peerIdString = new exports_1.UUID().toHex();
67
+ this.peerId = new exports_1.UUID().toHex();
68
68
  // assign given non-undefined config vars over defaults
69
69
  let k;
70
70
  for (k in conf) {
@@ -77,17 +77,17 @@ class DhtNodeConfig {
77
77
  }
78
78
  exports.DhtNodeConfig = DhtNodeConfig;
79
79
  const logger = new utils_1.Logger(module);
80
- const createPeerDescriptor = (msg, peerIdString, nodeName) => {
81
- let peerId;
80
+ const createPeerDescriptor = (msg, peerId, nodeName) => {
81
+ let kademliaId;
82
82
  if (msg) {
83
- peerId = peerIdString ? PeerID_1.PeerID.fromString(peerIdString).value : PeerID_1.PeerID.fromIp(msg.ip).value;
83
+ kademliaId = peerId ? (0, utils_1.hexToBinary)(peerId) : PeerID_1.PeerID.fromIp(msg.host).value;
84
84
  }
85
85
  else {
86
- peerId = PeerID_1.PeerID.fromString(peerIdString).value;
86
+ kademliaId = (0, utils_1.hexToBinary)(peerId);
87
87
  }
88
- const ret = { kademliaId: peerId, nodeName: nodeName, type: DhtRpc_1.NodeType.NODEJS };
88
+ const ret = { kademliaId, nodeName: nodeName ? nodeName : (0, utils_1.binaryToHex)(kademliaId), type: DhtRpc_1.NodeType.NODEJS };
89
89
  if (msg && msg.websocket) {
90
- ret.websocket = { ip: msg.websocket.ip, port: msg.websocket.port };
90
+ ret.websocket = { host: msg.websocket.host, port: msg.websocket.port, tls: msg.websocket.tls };
91
91
  ret.openInternet = true;
92
92
  }
93
93
  return ret;
@@ -147,7 +147,7 @@ class DhtNode extends eventemitter3_1.EventEmitter {
147
147
  this.ownPeerDescriptor = this.config.peerDescriptor;
148
148
  }
149
149
  else {
150
- this.ownPeerDescriptor = (0, exports.createPeerDescriptor)(connectivityResponse, this.config.peerIdString, this.config.nodeName);
150
+ this.ownPeerDescriptor = (0, exports.createPeerDescriptor)(connectivityResponse, this.config.peerId, this.config.nodeName);
151
151
  }
152
152
  return this.ownPeerDescriptor;
153
153
  };
@@ -185,12 +185,13 @@ class DhtNode extends eventemitter3_1.EventEmitter {
185
185
  webrtcDatachannelBufferThresholdHigh: this.config.webrtcDatachannelBufferThresholdHigh,
186
186
  webrtcNewConnectionTimeout: this.config.webrtcNewConnectionTimeout,
187
187
  webrtcPortRange: this.config.webrtcPortRange,
188
- nodeName: this.getNodeName(),
189
- maxConnections: this.config.maxConnections
188
+ maxConnections: this.config.maxConnections,
189
+ tlsCertificate: this.config.tlsCertificate,
190
+ externalIp: this.config.externalIp
190
191
  };
191
192
  // If own PeerDescriptor is given in config, create a ConnectionManager with ws server
192
193
  if (this.config.peerDescriptor?.websocket) {
193
- connectionManagerConfig.websocketHost = this.config.peerDescriptor.websocket.ip;
194
+ connectionManagerConfig.websocketHost = this.config.peerDescriptor.websocket.host;
194
195
  connectionManagerConfig.websocketPortRange = {
195
196
  min: this.config.peerDescriptor.websocket.port,
196
197
  max: this.config.peerDescriptor.websocket.port
@@ -470,11 +471,11 @@ class DhtNode extends eventemitter3_1.EventEmitter {
470
471
  const reachableThrough = this.peerDiscovery.isJoinOngoing() ? this.config.entryPoints || [] : [];
471
472
  await this.router.send(msg, reachableThrough);
472
473
  }
473
- async joinDht(entryPointDescriptors, doRandomJoin) {
474
+ async joinDht(entryPointDescriptors, doRandomJoin, retry) {
474
475
  if (!this.started) {
475
476
  throw new Error('Cannot join DHT before calling start() on DhtNode');
476
477
  }
477
- await Promise.all(entryPointDescriptors.map((entryPoint) => this.peerDiscovery.joinDht(entryPoint, doRandomJoin)));
478
+ await Promise.all(entryPointDescriptors.map((entryPoint) => this.peerDiscovery.joinDht(entryPoint, doRandomJoin, retry)));
478
479
  }
479
480
  async startRecursiveFind(idToFind, findMode, excludedPeer) {
480
481
  return this.recursiveFinder.startRecursiveFind(idToFind, findMode, excludedPeer);
@@ -527,14 +528,6 @@ class DhtNode extends eventemitter3_1.EventEmitter {
527
528
  getNumberOfWeakLockedConnections() {
528
529
  return this.connectionManager.getNumberOfWeakLockedConnections();
529
530
  }
530
- getNodeName() {
531
- if (this.config.nodeName) {
532
- return this.config.nodeName;
533
- }
534
- else {
535
- return 'unnamed node';
536
- }
537
- }
538
531
  isJoinOngoing() {
539
532
  return this.peerDiscovery.isJoinOngoing();
540
533
  }