@streamr/dht 0.0.1-tatum.6 → 0.0.1-tatum.7

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 (196) hide show
  1. package/dist/src/connection/ConnectionLockHandler.d.ts +1 -1
  2. package/dist/src/connection/ConnectionLockHandler.js.map +1 -1
  3. package/dist/src/connection/ConnectionManager.d.ts +17 -40
  4. package/dist/src/connection/ConnectionManager.js +138 -204
  5. package/dist/src/connection/ConnectionManager.js.map +1 -1
  6. package/dist/src/connection/ConnectivityChecker.js +14 -11
  7. package/dist/src/connection/ConnectivityChecker.js.map +1 -1
  8. package/dist/src/connection/ConnectorFacade.d.ts +49 -0
  9. package/dist/src/connection/ConnectorFacade.js +86 -0
  10. package/dist/src/connection/ConnectorFacade.js.map +1 -0
  11. package/dist/src/connection/ManagedConnection.d.ts +1 -4
  12. package/dist/src/connection/ManagedConnection.js +23 -31
  13. package/dist/src/connection/ManagedConnection.js.map +1 -1
  14. package/dist/src/connection/RemoteConnectionLocker.js +4 -3
  15. package/dist/src/connection/RemoteConnectionLocker.js.map +1 -1
  16. package/dist/src/connection/Simulator/Simulator.d.ts +0 -2
  17. package/dist/src/connection/Simulator/Simulator.js +0 -5
  18. package/dist/src/connection/Simulator/Simulator.js.map +1 -1
  19. package/dist/src/connection/Simulator/SimulatorConnection.js +16 -13
  20. package/dist/src/connection/Simulator/SimulatorConnection.js.map +1 -1
  21. package/dist/src/connection/Simulator/SimulatorConnector.d.ts +2 -2
  22. package/dist/src/connection/Simulator/SimulatorConnector.js +10 -11
  23. package/dist/src/connection/Simulator/SimulatorConnector.js.map +1 -1
  24. package/dist/src/connection/Simulator/SimulatorTransport.js +6 -1
  25. package/dist/src/connection/Simulator/SimulatorTransport.js.map +1 -1
  26. package/dist/src/connection/WebRTC/NodeWebRtcConnection.d.ts +2 -0
  27. package/dist/src/connection/WebRTC/NodeWebRtcConnection.js +12 -12
  28. package/dist/src/connection/WebRTC/NodeWebRtcConnection.js.map +1 -1
  29. package/dist/src/connection/WebRTC/WebRtcConnector.d.ts +9 -9
  30. package/dist/src/connection/WebRTC/WebRtcConnector.js +22 -22
  31. package/dist/src/connection/WebRTC/WebRtcConnector.js.map +1 -1
  32. package/dist/src/connection/WebSocket/RemoteWebSocketConnector.js +2 -1
  33. package/dist/src/connection/WebSocket/RemoteWebSocketConnector.js.map +1 -1
  34. package/dist/src/connection/WebSocket/WebSocketConnector.d.ts +19 -8
  35. package/dist/src/connection/WebSocket/WebSocketConnector.js +67 -46
  36. package/dist/src/connection/WebSocket/WebSocketConnector.js.map +1 -1
  37. package/dist/src/connection/WebSocket/WebSocketServer.d.ts +11 -1
  38. package/dist/src/connection/WebSocket/WebSocketServer.js +15 -10
  39. package/dist/src/connection/WebSocket/WebSocketServer.js.map +1 -1
  40. package/dist/src/dht/DhtNode.d.ts +15 -51
  41. package/dist/src/dht/DhtNode.js +107 -129
  42. package/dist/src/dht/DhtNode.js.map +1 -1
  43. package/dist/src/dht/{DhtPeer.d.ts → RemoteDhtNode.d.ts} +2 -3
  44. package/dist/src/dht/{DhtPeer.js → RemoteDhtNode.js} +21 -19
  45. package/dist/src/dht/RemoteDhtNode.js.map +1 -0
  46. package/dist/src/dht/contact/ContactList.d.ts +0 -1
  47. package/dist/src/dht/contact/ContactList.js +0 -3
  48. package/dist/src/dht/contact/ContactList.js.map +1 -1
  49. package/dist/src/dht/contact/RandomContactList.d.ts +0 -1
  50. package/dist/src/dht/contact/RandomContactList.js +0 -3
  51. package/dist/src/dht/contact/RandomContactList.js.map +1 -1
  52. package/dist/src/dht/contact/SortedContactList.d.ts +0 -3
  53. package/dist/src/dht/contact/SortedContactList.js +0 -9
  54. package/dist/src/dht/contact/SortedContactList.js.map +1 -1
  55. package/dist/src/dht/discovery/DiscoverySession.d.ts +5 -7
  56. package/dist/src/dht/discovery/DiscoverySession.js +9 -10
  57. package/dist/src/dht/discovery/DiscoverySession.js.map +1 -1
  58. package/dist/src/dht/discovery/PeerDiscovery.d.ts +11 -10
  59. package/dist/src/dht/discovery/PeerDiscovery.js +32 -37
  60. package/dist/src/dht/discovery/PeerDiscovery.js.map +1 -1
  61. package/dist/src/dht/find/RecursiveFindSession.d.ts +5 -6
  62. package/dist/src/dht/find/RecursiveFindSession.js +8 -8
  63. package/dist/src/dht/find/RecursiveFindSession.js.map +1 -1
  64. package/dist/src/dht/find/RecursiveFinder.d.ts +2 -4
  65. package/dist/src/dht/find/RecursiveFinder.js +11 -12
  66. package/dist/src/dht/find/RecursiveFinder.js.map +1 -1
  67. package/dist/src/dht/registerExternalApiRpcMethods.d.ts +1 -1
  68. package/dist/src/dht/routing/DuplicateDetector.d.ts +1 -2
  69. package/dist/src/dht/routing/DuplicateDetector.js +2 -7
  70. package/dist/src/dht/routing/DuplicateDetector.js.map +1 -1
  71. package/dist/src/dht/routing/RemoteRouter.js +1 -1
  72. package/dist/src/dht/routing/RemoteRouter.js.map +1 -1
  73. package/dist/src/dht/routing/Router.d.ts +10 -13
  74. package/dist/src/dht/routing/Router.js +28 -29
  75. package/dist/src/dht/routing/Router.js.map +1 -1
  76. package/dist/src/dht/routing/RoutingSession.d.ts +3 -4
  77. package/dist/src/dht/routing/RoutingSession.js +4 -3
  78. package/dist/src/dht/routing/RoutingSession.js.map +1 -1
  79. package/dist/src/dht/store/DataStore.d.ts +2 -2
  80. package/dist/src/dht/store/DataStore.js +7 -7
  81. package/dist/src/dht/store/DataStore.js.map +1 -1
  82. package/dist/src/exports.d.ts +1 -7
  83. package/dist/src/exports.js +2 -14
  84. package/dist/src/exports.js.map +1 -1
  85. package/dist/src/helpers/PeerID.d.ts +0 -1
  86. package/dist/src/helpers/PeerID.js +0 -6
  87. package/dist/src/helpers/PeerID.js.map +1 -1
  88. package/dist/src/helpers/browser/isBrowserEnvironment.d.ts +1 -0
  89. package/dist/src/helpers/browser/isBrowserEnvironment.js +6 -0
  90. package/dist/src/helpers/browser/isBrowserEnvironment.js.map +1 -0
  91. package/dist/src/helpers/browser/isBrowserEnvironment_override.d.ts +1 -0
  92. package/dist/src/helpers/browser/isBrowserEnvironment_override.js +7 -0
  93. package/dist/src/helpers/browser/isBrowserEnvironment_override.js.map +1 -0
  94. package/dist/src/helpers/kademliaId.d.ts +1 -0
  95. package/dist/src/helpers/kademliaId.js +14 -0
  96. package/dist/src/helpers/kademliaId.js.map +1 -0
  97. package/dist/src/helpers/peerIdFromPeerDescriptor.d.ts +1 -1
  98. package/dist/src/helpers/peerIdFromPeerDescriptor.js +3 -3
  99. package/dist/src/helpers/peerIdFromPeerDescriptor.js.map +1 -1
  100. package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +0 -4
  101. package/dist/src/proto/packages/dht/protos/DhtRpc.js +1 -2
  102. package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
  103. package/package.json +10 -9
  104. package/protos/DhtRpc.proto +0 -1
  105. package/src/connection/ConnectionLockHandler.ts +1 -1
  106. package/src/connection/ConnectionManager.ts +157 -254
  107. package/src/connection/ConnectivityChecker.ts +14 -11
  108. package/src/connection/ConnectorFacade.ts +143 -0
  109. package/src/connection/ManagedConnection.ts +23 -34
  110. package/src/connection/RemoteConnectionLocker.ts +4 -3
  111. package/src/connection/Simulator/Simulator.ts +0 -7
  112. package/src/connection/Simulator/SimulatorConnection.ts +16 -13
  113. package/src/connection/Simulator/SimulatorConnector.ts +11 -12
  114. package/src/connection/Simulator/SimulatorTransport.ts +6 -1
  115. package/src/connection/WebRTC/NodeWebRtcConnection.ts +14 -13
  116. package/src/connection/WebRTC/WebRtcConnector.ts +31 -31
  117. package/src/connection/WebSocket/RemoteWebSocketConnector.ts +2 -1
  118. package/src/connection/WebSocket/WebSocketConnector.ts +85 -62
  119. package/src/connection/WebSocket/WebSocketServer.ts +26 -8
  120. package/src/dht/DhtNode.ts +155 -181
  121. package/src/dht/{DhtPeer.ts → RemoteDhtNode.ts} +11 -9
  122. package/src/dht/contact/ContactList.ts +0 -4
  123. package/src/dht/contact/RandomContactList.ts +0 -4
  124. package/src/dht/contact/SortedContactList.ts +0 -12
  125. package/src/dht/discovery/DiscoverySession.ts +20 -23
  126. package/src/dht/discovery/PeerDiscovery.ts +45 -44
  127. package/src/dht/find/RecursiveFindSession.ts +12 -13
  128. package/src/dht/find/RecursiveFinder.ts +16 -19
  129. package/src/dht/registerExternalApiRpcMethods.ts +1 -1
  130. package/src/dht/routing/DuplicateDetector.ts +3 -10
  131. package/src/dht/routing/RemoteRouter.ts +2 -2
  132. package/src/dht/routing/Router.ts +35 -39
  133. package/src/dht/routing/RoutingSession.ts +9 -9
  134. package/src/dht/store/DataStore.ts +11 -11
  135. package/src/exports.ts +1 -7
  136. package/src/helpers/PeerID.ts +0 -7
  137. package/src/helpers/browser/isBrowserEnvironment.ts +1 -0
  138. package/src/helpers/browser/isBrowserEnvironment_override.ts +3 -0
  139. package/src/helpers/kademliaId.ts +8 -0
  140. package/src/helpers/peerIdFromPeerDescriptor.ts +1 -1
  141. package/src/proto/packages/dht/protos/DhtRpc.ts +1 -6
  142. package/test/benchmark/KademliaCorrectness.test.ts +4 -2
  143. package/test/benchmark/RecursiveFind.test.ts +6 -6
  144. package/test/end-to-end/Layer0-Layer1.test.ts +9 -9
  145. package/test/end-to-end/Layer0WebRTC-Layer1.test.ts +5 -5
  146. package/test/end-to-end/Layer0WebRTC.test.ts +5 -6
  147. package/test/end-to-end/Layer1-Scale-WebRTC.test.ts +13 -8
  148. package/test/end-to-end/Layer1-Scale-WebSocket.test.ts +15 -10
  149. package/test/end-to-end/WebSocketConnectionRequest.test.ts +5 -5
  150. package/test/integration/ConnectionLocking.test.ts +32 -26
  151. package/test/integration/ConnectionManager.test.ts +90 -93
  152. package/test/integration/DhtJoinPeerDiscovery.test.ts +53 -0
  153. package/test/integration/DhtRpc.test.ts +4 -6
  154. package/test/integration/Layer1-scale.test.ts +8 -8
  155. package/test/integration/MigrateData.test.ts +9 -9
  156. package/test/integration/Mock-Layer1-Layer0.test.ts +1 -2
  157. package/test/integration/RecursiveFind.test.ts +5 -5
  158. package/test/integration/{DhtPeer.test.ts → RemoteDhtNode.test.ts} +11 -12
  159. package/test/integration/RemoteRouter.test.ts +5 -6
  160. package/test/integration/RemoteStore.test.ts +4 -5
  161. package/test/integration/RouteMessage.test.ts +7 -9
  162. package/test/integration/RpcErrors.test.ts +25 -10
  163. package/test/integration/ScaleDownDht.test.ts +8 -8
  164. package/test/integration/SimultaneousConnections.test.ts +35 -36
  165. package/test/integration/Store.test.ts +8 -9
  166. package/test/integration/StoreAndDelete.test.ts +11 -11
  167. package/test/integration/StoreOnDhtWithTwoNodes.test.ts +7 -7
  168. package/test/integration/WebRtcConnectionManagement.test.ts +26 -19
  169. package/test/integration/WebRtcConnectorRpc.test.ts +6 -8
  170. package/test/integration/WebSocket.test.ts +4 -2
  171. package/test/integration/WebSocketConnectionManagement.test.ts +30 -17
  172. package/test/integration/WebSocketConnectorRpc.test.ts +2 -3
  173. package/test/unit/DuplicateDetector.test.ts +3 -4
  174. package/test/unit/LocalDataStore.test.ts +6 -8
  175. package/test/unit/RandomContactList.test.ts +1 -1
  176. package/test/unit/RecursiveFinder.test.ts +8 -12
  177. package/test/unit/Router.test.ts +18 -21
  178. package/test/unit/WebSocketConnector.test.ts +64 -0
  179. package/test/unit/WebSocketServer.test.ts +24 -12
  180. package/test/utils/mock/RecursiveFinder.ts +2 -2
  181. package/test/utils/mock/Router.ts +9 -11
  182. package/test/utils/mock/Transport.ts +2 -2
  183. package/test/utils/utils.ts +40 -49
  184. package/dist/src/dht/DhtPeer.js.map +0 -1
  185. package/dist/src/helpers/browser/isBrowser.d.ts +0 -1
  186. package/dist/src/helpers/browser/isBrowser.js +0 -6
  187. package/dist/src/helpers/browser/isBrowser.js.map +0 -1
  188. package/dist/src/helpers/browser/isNodeJS.d.ts +0 -1
  189. package/dist/src/helpers/browser/isNodeJS.js +0 -6
  190. package/dist/src/helpers/browser/isNodeJS.js.map +0 -1
  191. package/src/helpers/browser/isBrowser.ts +0 -1
  192. package/src/helpers/browser/isNodeJS.ts +0 -1
  193. package/test/integration/DhtWithMockConnectionLatencies.test.ts +0 -46
  194. package/test/integration/DhtWithMockConnections.test.ts +0 -46
  195. package/test/integration/DhtWithRealConnectionLatencies.test.ts +0 -47
  196. /package/test/unit/{webrtcReplaceInternalIpWithExternalIp.ts → webrtcReplaceInternalIpWithExternalIp.test.ts} +0 -0
@@ -1,12 +1,10 @@
1
1
  import { EventEmitter } from 'eventemitter3';
2
2
  import { RoutingRpcCommunicator } from '../transport/RoutingRpcCommunicator';
3
- import { ServerCallContext } from '@protobuf-ts/runtime-rpc';
4
3
  import { PeerID } from '../helpers/PeerID';
5
- import { LeaveNotice, ConnectivityResponse, Message, PeerDescriptor, FindMode, DataEntry } from '../proto/packages/dht/protos/DhtRpc';
4
+ import { ConnectivityResponse, Message, PeerDescriptor, FindMode, DataEntry } from '../proto/packages/dht/protos/DhtRpc';
6
5
  import { ITransport, TransportEvents } from '../transport/ITransport';
7
6
  import { ConnectionManager, PortRange, TlsCertificate } from '../connection/ConnectionManager';
8
7
  import { MetricsContext } from '@streamr/utils';
9
- import { Empty } from '../proto/google/protobuf/empty';
10
8
  import { Any } from '../proto/google/protobuf/any';
11
9
  import { Router } from './routing/Router';
12
10
  import { RecursiveFindResult } from './find/RecursiveFinder';
@@ -29,17 +27,19 @@ export interface DhtNodeOptions {
29
27
  maxNeighborListSize?: number;
30
28
  numberOfNodesPerKBucket?: number;
31
29
  joinNoProgressLimit?: number;
30
+ getClosestContactsLimit?: number;
32
31
  dhtJoinTimeout?: number;
33
32
  metricsContext?: MetricsContext;
34
33
  storeHighestTtl?: number;
35
34
  storeMaxTtl?: number;
36
- transportLayer?: ITransport;
35
+ networkConnectivityTimeout?: number;
36
+ storeNumberOfCopies?: number;
37
+ transport?: ITransport;
37
38
  peerDescriptor?: PeerDescriptor;
38
39
  entryPoints?: PeerDescriptor[];
39
40
  websocketHost?: string;
40
41
  websocketPortRange?: PortRange;
41
42
  peerId?: string;
42
- nodeName?: string;
43
43
  rpcRequestTimeout?: number;
44
44
  iceServers?: IceServer[];
45
45
  webrtcAllowPrivateAddresses?: boolean;
@@ -47,43 +47,13 @@ export interface DhtNodeOptions {
47
47
  webrtcDatachannelBufferThresholdHigh?: number;
48
48
  webrtcNewConnectionTimeout?: number;
49
49
  webrtcPortRange?: PortRange;
50
+ maxMessageSize?: number;
50
51
  maxConnections?: number;
51
52
  tlsCertificate?: TlsCertificate;
52
53
  externalIp?: string;
53
54
  }
54
- export declare class DhtNodeConfig {
55
- serviceId: string;
56
- joinParallelism: number;
57
- maxNeighborListSize: number;
58
- numberOfNodesPerKBucket: number;
59
- joinNoProgressLimit: number;
60
- dhtJoinTimeout: number;
61
- getClosestContactsLimit: number;
62
- maxConnections: number;
63
- storeHighestTtl: number;
64
- storeMaxTtl: number;
65
- storeNumberOfCopies: number;
66
- metricsContext: MetricsContext;
67
- peerId: string;
68
- transportLayer?: ITransport;
69
- peerDescriptor?: PeerDescriptor;
70
- entryPoints?: PeerDescriptor[];
71
- websocketHost?: string;
72
- websocketPortRange?: PortRange;
73
- nodeName?: string;
74
- rpcRequestTimeout?: number;
75
- iceServers?: IceServer[];
76
- webrtcAllowPrivateAddresses?: boolean;
77
- webrtcDatachannelBufferThresholdLow?: number;
78
- webrtcDatachannelBufferThresholdHigh?: number;
79
- webrtcNewConnectionTimeout?: number;
80
- externalIp?: string;
81
- webrtcPortRange?: PortRange;
82
- tlsCertificate?: TlsCertificate;
83
- constructor(conf: Partial<DhtNodeOptions>);
84
- }
85
55
  export type Events = TransportEvents & DhtNodeEvents;
86
- export declare const createPeerDescriptor: (msg?: ConnectivityResponse, peerId?: string, nodeName?: string) => PeerDescriptor;
56
+ export declare const createPeerDescriptor: (msg?: ConnectivityResponse, peerId?: string) => PeerDescriptor;
87
57
  export declare class DhtNode extends EventEmitter<Events> implements ITransport {
88
58
  private readonly config;
89
59
  private bucket?;
@@ -92,9 +62,8 @@ export declare class DhtNode extends EventEmitter<Events> implements ITransport
92
62
  private openInternetPeers?;
93
63
  private randomPeers?;
94
64
  private rpcCommunicator?;
95
- private transportLayer?;
65
+ private transport?;
96
66
  private ownPeerDescriptor?;
97
- private ownPeerId?;
98
67
  router?: Router;
99
68
  dataStore?: DataStore;
100
69
  private localDataStore;
@@ -104,16 +73,14 @@ export declare class DhtNode extends EventEmitter<Events> implements ITransport
104
73
  private started;
105
74
  private stopped;
106
75
  private entryPointDisconnectTimeout?;
107
- contactAddCounter: number;
108
- contactOnAddedCounter: number;
109
- constructor(conf: Partial<DhtNodeConfig>);
76
+ constructor(conf: DhtNodeOptions);
110
77
  start(): Promise<void>;
111
78
  private initKBuckets;
112
79
  private onTransportConnected;
113
80
  private onTransportDisconnected;
114
81
  private bindDefaultServerMethods;
115
82
  private isPeerCloserToIdThanSelf;
116
- handleMessage(message: Message): void;
83
+ private handleMessage;
117
84
  private generatePeerDescriptorCallBack;
118
85
  private getClosestPeerDescriptors;
119
86
  private onKBucketPing;
@@ -127,30 +94,27 @@ export declare class DhtNode extends EventEmitter<Events> implements ITransport
127
94
  private addNewContact;
128
95
  private connectToEntryPoint;
129
96
  removeContact(contact: PeerDescriptor, removeFromOpenInternetPeers?: boolean): void;
130
- send(msg: Message, _doNotConnect?: boolean): Promise<void>;
131
- joinDht(entryPointDescriptors: PeerDescriptor[], doRandomJoin?: boolean, retry?: boolean): Promise<void>;
97
+ send(msg: Message): Promise<void>;
98
+ joinDht(entryPointDescriptors: PeerDescriptor[], doAdditionalRandomPeerDiscovery?: boolean, retry?: boolean): Promise<void>;
132
99
  startRecursiveFind(idToFind: Uint8Array, findMode?: FindMode, excludedPeer?: PeerDescriptor): Promise<RecursiveFindResult>;
133
100
  storeDataToDht(key: Uint8Array, data: Any): Promise<PeerDescriptor[]>;
134
101
  storeDataViaPeer(key: Uint8Array, data: Any, peer: PeerDescriptor): Promise<PeerDescriptor[]>;
135
- getDataFromDht(idToFind: Uint8Array): Promise<RecursiveFindResult>;
102
+ getDataFromDht(idToFind: Uint8Array): Promise<DataEntry[]>;
136
103
  deleteDataFromDht(idToDelete: Uint8Array): Promise<void>;
137
104
  findDataViaPeer(idToFind: Uint8Array, peer: PeerDescriptor): Promise<DataEntry[]>;
138
105
  getRpcCommunicator(): RoutingRpcCommunicator;
139
106
  getTransport(): ITransport;
140
107
  getPeerDescriptor(): PeerDescriptor;
141
108
  getAllConnectionPeerDescriptors(): PeerDescriptor[];
142
- getK(): number;
143
109
  getKBucketPeers(): PeerDescriptor[];
144
- getOpenInternetPeerDescriptors(): PeerDescriptor[];
145
110
  getNumberOfConnections(): number;
146
111
  getNumberOfLocalLockedConnections(): number;
147
112
  getNumberOfRemoteLockedConnections(): number;
148
113
  getNumberOfWeakLockedConnections(): number;
149
- isJoinOngoing(): boolean;
114
+ waitForNetworkConnectivity(): Promise<void>;
150
115
  hasJoined(): boolean;
151
- getKnownEntryPoints(): PeerDescriptor[];
152
116
  stop(): Promise<void>;
153
117
  private getClosestPeers;
154
118
  private ping;
155
- leaveNotice(request: LeaveNotice, context: ServerCallContext): Promise<Empty>;
119
+ private leaveNotice;
156
120
  }