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

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 (255) 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/ConnectionLockRpcRemote.d.ts +10 -0
  4. package/dist/src/connection/{RemoteConnectionLocker.js → ConnectionLockRpcRemote.js} +21 -35
  5. package/dist/src/connection/ConnectionLockRpcRemote.js.map +1 -0
  6. package/dist/src/connection/ConnectionManager.d.ts +17 -41
  7. package/dist/src/connection/ConnectionManager.js +148 -212
  8. package/dist/src/connection/ConnectionManager.js.map +1 -1
  9. package/dist/src/connection/ConnectivityChecker.js +16 -13
  10. package/dist/src/connection/ConnectivityChecker.js.map +1 -1
  11. package/dist/src/connection/ConnectorFacade.d.ts +49 -0
  12. package/dist/src/connection/ConnectorFacade.js +83 -0
  13. package/dist/src/connection/ConnectorFacade.js.map +1 -0
  14. package/dist/src/connection/Handshaker.d.ts +1 -2
  15. package/dist/src/connection/Handshaker.js +1 -4
  16. package/dist/src/connection/Handshaker.js.map +1 -1
  17. package/dist/src/connection/ManagedConnection.d.ts +2 -6
  18. package/dist/src/connection/ManagedConnection.js +27 -36
  19. package/dist/src/connection/ManagedConnection.js.map +1 -1
  20. package/dist/src/connection/ManagedWebRtcConnection.d.ts +1 -1
  21. package/dist/src/connection/ManagedWebRtcConnection.js +2 -2
  22. package/dist/src/connection/ManagedWebRtcConnection.js.map +1 -1
  23. package/dist/src/connection/Simulator/Simulator.d.ts +0 -2
  24. package/dist/src/connection/Simulator/Simulator.js +0 -5
  25. package/dist/src/connection/Simulator/Simulator.js.map +1 -1
  26. package/dist/src/connection/Simulator/SimulatorConnection.js +16 -13
  27. package/dist/src/connection/Simulator/SimulatorConnection.js.map +1 -1
  28. package/dist/src/connection/Simulator/SimulatorConnector.d.ts +2 -3
  29. package/dist/src/connection/Simulator/SimulatorConnector.js +12 -14
  30. package/dist/src/connection/Simulator/SimulatorConnector.js.map +1 -1
  31. package/dist/src/connection/Simulator/SimulatorTransport.js +6 -1
  32. package/dist/src/connection/Simulator/SimulatorTransport.js.map +1 -1
  33. package/dist/src/connection/WebRTC/NodeWebRtcConnection.d.ts +3 -1
  34. package/dist/src/connection/WebRTC/NodeWebRtcConnection.js +12 -12
  35. package/dist/src/connection/WebRTC/NodeWebRtcConnection.js.map +1 -1
  36. package/dist/src/connection/WebRTC/{WebRtcConnector.d.ts → WebRtcConnectorRpcLocal.d.ts} +13 -13
  37. package/dist/src/connection/WebRTC/{WebRtcConnector.js → WebRtcConnectorRpcLocal.js} +46 -38
  38. package/dist/src/connection/WebRTC/WebRtcConnectorRpcLocal.js.map +1 -0
  39. package/dist/src/connection/WebRTC/WebRtcConnectorRpcRemote.d.ts +11 -0
  40. package/dist/src/connection/WebRTC/WebRtcConnectorRpcRemote.js +55 -0
  41. package/dist/src/connection/WebRTC/WebRtcConnectorRpcRemote.js.map +1 -0
  42. package/dist/src/connection/WebRTC/iceServerAsString.d.ts +1 -1
  43. package/dist/src/connection/WebSocket/{WebSocketConnector.d.ts → WebSocketConnectorRpcLocal.d.ts} +21 -11
  44. package/dist/src/connection/WebSocket/{WebSocketConnector.js → WebSocketConnectorRpcLocal.js} +80 -59
  45. package/dist/src/connection/WebSocket/WebSocketConnectorRpcLocal.js.map +1 -0
  46. package/dist/src/connection/WebSocket/WebSocketConnectorRpcRemote.d.ts +8 -0
  47. package/dist/src/connection/WebSocket/{RemoteWebSocketConnector.js → WebSocketConnectorRpcRemote.js} +12 -16
  48. package/dist/src/connection/WebSocket/WebSocketConnectorRpcRemote.js.map +1 -0
  49. package/dist/src/connection/WebSocket/WebSocketServer.d.ts +11 -1
  50. package/dist/src/connection/WebSocket/WebSocketServer.js +15 -10
  51. package/dist/src/connection/WebSocket/WebSocketServer.js.map +1 -1
  52. package/dist/src/dht/DhtNode.d.ts +18 -55
  53. package/dist/src/dht/DhtNode.js +122 -145
  54. package/dist/src/dht/DhtNode.js.map +1 -1
  55. package/dist/src/dht/{RemoteExternalApi.d.ts → ExternalApiRpcRemote.d.ts} +2 -2
  56. package/dist/src/dht/{RemoteExternalApi.js → ExternalApiRpcRemote.js} +5 -6
  57. package/dist/src/dht/ExternalApiRpcRemote.js.map +1 -0
  58. package/dist/src/dht/{DhtPeer.d.ts → RemoteDhtNode.d.ts} +2 -3
  59. package/dist/src/dht/{DhtPeer.js → RemoteDhtNode.js} +21 -19
  60. package/dist/src/dht/RemoteDhtNode.js.map +1 -0
  61. package/dist/src/dht/contact/ContactList.d.ts +0 -1
  62. package/dist/src/dht/contact/ContactList.js +0 -3
  63. package/dist/src/dht/contact/ContactList.js.map +1 -1
  64. package/dist/src/dht/contact/RandomContactList.d.ts +0 -1
  65. package/dist/src/dht/contact/RandomContactList.js +0 -3
  66. package/dist/src/dht/contact/RandomContactList.js.map +1 -1
  67. package/dist/src/dht/contact/SortedContactList.d.ts +0 -3
  68. package/dist/src/dht/contact/SortedContactList.js +0 -9
  69. package/dist/src/dht/contact/SortedContactList.js.map +1 -1
  70. package/dist/src/dht/discovery/DiscoverySession.d.ts +5 -7
  71. package/dist/src/dht/discovery/DiscoverySession.js +9 -10
  72. package/dist/src/dht/discovery/DiscoverySession.js.map +1 -1
  73. package/dist/src/dht/discovery/PeerDiscovery.d.ts +12 -11
  74. package/dist/src/dht/discovery/PeerDiscovery.js +33 -37
  75. package/dist/src/dht/discovery/PeerDiscovery.js.map +1 -1
  76. package/dist/src/dht/find/RecursiveFindSession.d.ts +9 -10
  77. package/dist/src/dht/find/RecursiveFindSession.js +13 -13
  78. package/dist/src/dht/find/RecursiveFindSession.js.map +1 -1
  79. package/dist/src/dht/find/RecursiveFinder.d.ts +9 -11
  80. package/dist/src/dht/find/RecursiveFinder.js +35 -36
  81. package/dist/src/dht/find/RecursiveFinder.js.map +1 -1
  82. package/dist/src/dht/find/RemoteRecursiveFindSession.d.ts +1 -1
  83. package/dist/src/dht/find/RemoteRecursiveFindSession.js +4 -4
  84. package/dist/src/dht/find/RemoteRecursiveFindSession.js.map +1 -1
  85. package/dist/src/dht/registerExternalApiRpcMethods.d.ts +1 -1
  86. package/dist/src/dht/registerExternalApiRpcMethods.js +4 -3
  87. package/dist/src/dht/registerExternalApiRpcMethods.js.map +1 -1
  88. package/dist/src/dht/routing/DuplicateDetector.d.ts +1 -2
  89. package/dist/src/dht/routing/DuplicateDetector.js +2 -7
  90. package/dist/src/dht/routing/DuplicateDetector.js.map +1 -1
  91. package/dist/src/dht/routing/Router.d.ts +12 -15
  92. package/dist/src/dht/routing/Router.js +30 -33
  93. package/dist/src/dht/routing/Router.js.map +1 -1
  94. package/dist/src/dht/routing/{RemoteRouter.d.ts → RouterRpcRemote.d.ts} +2 -2
  95. package/dist/src/dht/routing/{RemoteRouter.js → RouterRpcRemote.js} +5 -5
  96. package/dist/src/dht/routing/RouterRpcRemote.js.map +1 -0
  97. package/dist/src/dht/routing/RoutingSession.d.ts +3 -4
  98. package/dist/src/dht/routing/RoutingSession.js +6 -5
  99. package/dist/src/dht/routing/RoutingSession.js.map +1 -1
  100. package/dist/src/dht/store/{DataStore.d.ts → StoreRpcLocal.d.ts} +6 -6
  101. package/dist/src/dht/store/{DataStore.js → StoreRpcLocal.js} +34 -34
  102. package/dist/src/dht/store/StoreRpcLocal.js.map +1 -0
  103. package/dist/src/dht/store/{RemoteStore.d.ts → StoreRpcRemote.d.ts} +2 -2
  104. package/dist/src/dht/store/{RemoteStore.js → StoreRpcRemote.js} +4 -4
  105. package/dist/src/dht/store/StoreRpcRemote.js.map +1 -0
  106. package/dist/src/exports.d.ts +2 -8
  107. package/dist/src/exports.js +2 -14
  108. package/dist/src/exports.js.map +1 -1
  109. package/dist/src/helpers/PeerID.d.ts +0 -1
  110. package/dist/src/helpers/PeerID.js +0 -6
  111. package/dist/src/helpers/PeerID.js.map +1 -1
  112. package/dist/src/helpers/browser/isBrowserEnvironment.d.ts +1 -0
  113. package/dist/src/helpers/browser/isBrowserEnvironment.js +6 -0
  114. package/dist/src/helpers/browser/isBrowserEnvironment.js.map +1 -0
  115. package/dist/src/helpers/browser/isBrowserEnvironment_override.d.ts +1 -0
  116. package/dist/src/helpers/browser/isBrowserEnvironment_override.js +7 -0
  117. package/dist/src/helpers/browser/isBrowserEnvironment_override.js.map +1 -0
  118. package/dist/src/helpers/kademliaId.d.ts +1 -0
  119. package/dist/src/helpers/kademliaId.js +14 -0
  120. package/dist/src/helpers/kademliaId.js.map +1 -0
  121. package/dist/src/helpers/peerIdFromPeerDescriptor.d.ts +1 -1
  122. package/dist/src/helpers/peerIdFromPeerDescriptor.js +3 -3
  123. package/dist/src/helpers/peerIdFromPeerDescriptor.js.map +1 -1
  124. package/dist/src/helpers/protoClasses.js +2 -2
  125. package/dist/src/helpers/protoClasses.js.map +1 -1
  126. package/dist/src/proto/packages/dht/protos/DhtRpc.client.d.ts +29 -29
  127. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js +39 -39
  128. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js.map +1 -1
  129. package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +49 -162
  130. package/dist/src/proto/packages/dht/protos/DhtRpc.js +47 -88
  131. package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
  132. package/dist/src/proto/packages/dht/protos/DhtRpc.server.d.ts +15 -15
  133. package/dist/src/transport/RoutingRpcCommunicator.js +1 -0
  134. package/dist/src/transport/RoutingRpcCommunicator.js.map +1 -1
  135. package/package.json +10 -9
  136. package/protos/DhtRpc.proto +30 -60
  137. package/src/connection/ConnectionLockHandler.ts +1 -1
  138. package/src/connection/ConnectionLockRpcRemote.ts +62 -0
  139. package/src/connection/ConnectionManager.ts +178 -274
  140. package/src/connection/ConnectivityChecker.ts +15 -12
  141. package/src/connection/ConnectorFacade.ts +140 -0
  142. package/src/connection/Handshaker.ts +0 -5
  143. package/src/connection/ManagedConnection.ts +26 -40
  144. package/src/connection/ManagedWebRtcConnection.ts +0 -2
  145. package/src/connection/Simulator/Simulator.ts +0 -7
  146. package/src/connection/Simulator/SimulatorConnection.ts +16 -13
  147. package/src/connection/Simulator/SimulatorConnector.ts +13 -19
  148. package/src/connection/Simulator/SimulatorTransport.ts +6 -1
  149. package/src/connection/WebRTC/NodeWebRtcConnection.ts +15 -14
  150. package/src/connection/WebRTC/{WebRtcConnector.ts → WebRtcConnectorRpcLocal.ts} +68 -56
  151. package/src/connection/WebRTC/WebRtcConnectorRpcRemote.ts +71 -0
  152. package/src/connection/WebRTC/iceServerAsString.ts +1 -1
  153. package/src/connection/WebSocket/{WebSocketConnector.ts → WebSocketConnectorRpcLocal.ts} +102 -79
  154. package/src/connection/WebSocket/WebSocketConnectorRpcRemote.ts +45 -0
  155. package/src/connection/WebSocket/WebSocketServer.ts +26 -8
  156. package/src/dht/DhtNode.ts +176 -203
  157. package/src/dht/{RemoteExternalApi.ts → ExternalApiRpcRemote.ts} +3 -4
  158. package/src/dht/{DhtPeer.ts → RemoteDhtNode.ts} +11 -9
  159. package/src/dht/contact/ContactList.ts +0 -4
  160. package/src/dht/contact/RandomContactList.ts +0 -4
  161. package/src/dht/contact/SortedContactList.ts +0 -12
  162. package/src/dht/discovery/DiscoverySession.ts +20 -23
  163. package/src/dht/discovery/PeerDiscovery.ts +47 -45
  164. package/src/dht/find/RecursiveFindSession.ts +21 -22
  165. package/src/dht/find/RecursiveFinder.ts +45 -49
  166. package/src/dht/find/RemoteRecursiveFindSession.ts +6 -6
  167. package/src/dht/registerExternalApiRpcMethods.ts +8 -5
  168. package/src/dht/routing/DuplicateDetector.ts +3 -10
  169. package/src/dht/routing/Router.ts +39 -45
  170. package/src/dht/routing/{RemoteRouter.ts → RouterRpcRemote.ts} +4 -4
  171. package/src/dht/routing/RoutingSession.ts +15 -15
  172. package/src/dht/store/{DataStore.ts → StoreRpcLocal.ts} +42 -42
  173. package/src/dht/store/{RemoteStore.ts → StoreRpcRemote.ts} +2 -2
  174. package/src/exports.ts +2 -8
  175. package/src/helpers/PeerID.ts +0 -7
  176. package/src/helpers/browser/isBrowserEnvironment.ts +1 -0
  177. package/src/helpers/browser/isBrowserEnvironment_override.ts +3 -0
  178. package/src/helpers/kademliaId.ts +8 -0
  179. package/src/helpers/peerIdFromPeerDescriptor.ts +1 -1
  180. package/src/helpers/protoClasses.ts +4 -4
  181. package/src/proto/packages/dht/protos/DhtRpc.client.ts +54 -54
  182. package/src/proto/packages/dht/protos/DhtRpc.server.ts +15 -15
  183. package/src/proto/packages/dht/protos/DhtRpc.ts +77 -216
  184. package/src/transport/RoutingRpcCommunicator.ts +1 -0
  185. package/test/benchmark/KademliaCorrectness.test.ts +4 -2
  186. package/test/benchmark/RecursiveFind.test.ts +6 -6
  187. package/test/end-to-end/Layer0-Layer1.test.ts +9 -9
  188. package/test/end-to-end/Layer0WebRTC-Layer1.test.ts +5 -5
  189. package/test/end-to-end/Layer0WebRTC.test.ts +5 -6
  190. package/test/end-to-end/Layer1-Scale-WebRTC.test.ts +13 -8
  191. package/test/end-to-end/Layer1-Scale-WebSocket.test.ts +15 -10
  192. package/test/end-to-end/WebSocketConnectionRequest.test.ts +5 -5
  193. package/test/integration/ConnectionLocking.test.ts +32 -26
  194. package/test/integration/ConnectionManager.test.ts +90 -93
  195. package/test/integration/DhtJoinPeerDiscovery.test.ts +53 -0
  196. package/test/integration/DhtRpc.test.ts +4 -6
  197. package/test/integration/Layer1-scale.test.ts +8 -8
  198. package/test/integration/MigrateData.test.ts +9 -9
  199. package/test/integration/Mock-Layer1-Layer0.test.ts +1 -2
  200. package/test/integration/RecursiveFind.test.ts +5 -5
  201. package/test/integration/{DhtPeer.test.ts → RemoteDhtNode.test.ts} +11 -12
  202. package/test/integration/RouteMessage.test.ts +7 -9
  203. package/test/integration/{RemoteRouter.test.ts → RouterRpcRemote.test.ts} +13 -14
  204. package/test/integration/RpcErrors.test.ts +25 -10
  205. package/test/integration/ScaleDownDht.test.ts +8 -8
  206. package/test/integration/SimultaneousConnections.test.ts +35 -36
  207. package/test/integration/Store.test.ts +8 -9
  208. package/test/integration/StoreAndDelete.test.ts +11 -11
  209. package/test/integration/StoreOnDhtWithTwoNodes.test.ts +7 -7
  210. package/test/integration/{RemoteStore.test.ts → StoreRpcRemote.test.ts} +17 -18
  211. package/test/integration/WebRtcConnectionManagement.test.ts +26 -19
  212. package/test/integration/WebRtcConnectorRpc.test.ts +17 -32
  213. package/test/integration/WebSocket.test.ts +4 -2
  214. package/test/integration/WebSocketConnectionManagement.test.ts +30 -17
  215. package/test/integration/WebSocketConnectorRpc.test.ts +10 -15
  216. package/test/unit/DuplicateDetector.test.ts +3 -4
  217. package/test/unit/LocalDataStore.test.ts +6 -8
  218. package/test/unit/RandomContactList.test.ts +1 -1
  219. package/test/unit/RecursiveFinder.test.ts +13 -18
  220. package/test/unit/Router.test.ts +18 -21
  221. package/test/unit/WebSocketConnectorRpcLocal.test.ts +64 -0
  222. package/test/unit/WebSocketServer.test.ts +24 -12
  223. package/test/unit/{webrtcReplaceInternalIpWithExternalIp.ts → webrtcReplaceInternalIpWithExternalIp.test.ts} +1 -1
  224. package/test/utils/mock/RecursiveFinder.ts +2 -2
  225. package/test/utils/mock/Router.ts +9 -11
  226. package/test/utils/mock/Transport.ts +2 -2
  227. package/test/utils/utils.ts +55 -74
  228. package/dist/src/connection/RemoteConnectionLocker.d.ts +0 -13
  229. package/dist/src/connection/RemoteConnectionLocker.js.map +0 -1
  230. package/dist/src/connection/WebRTC/RemoteWebrtcConnector.d.ts +0 -12
  231. package/dist/src/connection/WebRTC/RemoteWebrtcConnector.js +0 -74
  232. package/dist/src/connection/WebRTC/RemoteWebrtcConnector.js.map +0 -1
  233. package/dist/src/connection/WebRTC/WebRtcConnector.js.map +0 -1
  234. package/dist/src/connection/WebSocket/RemoteWebSocketConnector.d.ts +0 -9
  235. package/dist/src/connection/WebSocket/RemoteWebSocketConnector.js.map +0 -1
  236. package/dist/src/connection/WebSocket/WebSocketConnector.js.map +0 -1
  237. package/dist/src/dht/DhtPeer.js.map +0 -1
  238. package/dist/src/dht/RemoteExternalApi.js.map +0 -1
  239. package/dist/src/dht/routing/RemoteRouter.js.map +0 -1
  240. package/dist/src/dht/store/DataStore.js.map +0 -1
  241. package/dist/src/dht/store/RemoteStore.js.map +0 -1
  242. package/dist/src/helpers/browser/isBrowser.d.ts +0 -1
  243. package/dist/src/helpers/browser/isBrowser.js +0 -6
  244. package/dist/src/helpers/browser/isBrowser.js.map +0 -1
  245. package/dist/src/helpers/browser/isNodeJS.d.ts +0 -1
  246. package/dist/src/helpers/browser/isNodeJS.js +0 -6
  247. package/dist/src/helpers/browser/isNodeJS.js.map +0 -1
  248. package/src/connection/RemoteConnectionLocker.ts +0 -84
  249. package/src/connection/WebRTC/RemoteWebrtcConnector.ts +0 -93
  250. package/src/connection/WebSocket/RemoteWebSocketConnector.ts +0 -49
  251. package/src/helpers/browser/isBrowser.ts +0 -1
  252. package/src/helpers/browser/isNodeJS.ts +0 -1
  253. package/test/integration/DhtWithMockConnectionLatencies.test.ts +0 -46
  254. package/test/integration/DhtWithMockConnections.test.ts +0 -46
  255. package/test/integration/DhtWithRealConnectionLatencies.test.ts +0 -47
@@ -10,7 +10,7 @@ import { ClientWebSocket } from './WebSocket/ClientWebSocket'
10
10
  import { v4 } from 'uuid'
11
11
  import { NatType } from './ConnectionManager'
12
12
  import { ServerWebSocket } from './WebSocket/ServerWebSocket'
13
- import { connectivityMethodToWebSocketUrl } from './WebSocket/WebSocketConnector'
13
+ import { connectivityMethodToWebSocketUrl } from './WebSocket/WebSocketConnectorRpcLocal'
14
14
 
15
15
  const logger = new Logger(module)
16
16
 
@@ -21,7 +21,7 @@ const logger = new Logger(module)
21
21
  export enum ConnectionMode { REQUEST = 'connectivityRequest', PROBE = 'connectivityProbe' }
22
22
  export class ConnectivityChecker {
23
23
 
24
- private static readonly CONNECTIVITY_CHECKER_SERVICE_ID = 'system/connectivitychecker'
24
+ private static readonly CONNECTIVITY_CHECKER_SERVICE_ID = 'system/connectivity-checker'
25
25
  private static readonly CONNECTIVITY_CHECKER_TIMEOUT = 5000
26
26
  private destroyed = false
27
27
  private readonly webSocketPort: number
@@ -49,7 +49,7 @@ export class ConnectivityChecker {
49
49
  mode: ConnectionMode.REQUEST
50
50
  })
51
51
  } catch (e) {
52
- throw new Err.ConnectionFailed('Failed to connect to the entrypoints', e)
52
+ throw new Err.ConnectionFailed(`Failed to connect to the entrypoint ${connectivityMethodToWebSocketUrl(entryPoint.websocket!)}`, e)
53
53
  }
54
54
  // send connectivity request
55
55
  const connectivityRequestMessage: ConnectivityRequest = { port: this.webSocketPort, host: this.host, tls: this.tls }
@@ -72,6 +72,7 @@ export class ConnectivityChecker {
72
72
  try {
73
73
  const message: Message = Message.fromBinary(bytes)
74
74
  if (message.body.oneofKind === 'connectivityResponse') {
75
+ logger.trace('ConnectivityResponse received: ' + JSON.stringify(Message.toJson(message)))
75
76
  const connectivityResponseMessage = message.body.connectivityResponse
76
77
  outgoingConnection!.off('data', listener)
77
78
  clearTimeout(timeoutId)
@@ -88,9 +89,8 @@ export class ConnectivityChecker {
88
89
  }
89
90
  try {
90
91
  const retPromise = responseAwaiter()
91
- logger.trace('trying to send connectivity request')
92
92
  outgoingConnection.send(Message.toBinary(msg))
93
- logger.debug('connectivity request sent: ' + JSON.stringify(Message.toJson(msg)))
93
+ logger.trace('ConnectivityRequest sent: ' + JSON.stringify(Message.toJson(msg)))
94
94
  return await retPromise
95
95
  } catch (e) {
96
96
  logger.error('error getting connectivityresponse')
@@ -104,7 +104,7 @@ export class ConnectivityChecker {
104
104
  try {
105
105
  const message = Message.fromBinary(data)
106
106
  if (message.body.oneofKind === 'connectivityRequest') {
107
- logger.trace('received connectivity request')
107
+ logger.trace('ConnectivityRequest received: ' + JSON.stringify(Message.toJson(message)))
108
108
  this.handleIncomingConnectivityRequest(connectionToListenTo, message.body.connectivityRequest).then(() => {
109
109
  logger.trace('handleIncomingConnectivityRequest ok')
110
110
  return
@@ -130,12 +130,14 @@ export class ConnectivityChecker {
130
130
  let connectivityResponseMessage: ConnectivityResponse | undefined
131
131
  const host = connectivityRequest.host ?? connection.getRemoteAddress()
132
132
  try {
133
+ const wsServerInfo = {
134
+ host,
135
+ port: connectivityRequest.port,
136
+ tls: connectivityRequest.tls
137
+ }
138
+ logger.trace(`Attempting Connectivity Check to ${connectivityMethodToWebSocketUrl(wsServerInfo)}`)
133
139
  outgoingConnection = await this.connectAsync({
134
- wsServerInfo: {
135
- host,
136
- port: connectivityRequest.port,
137
- tls: connectivityRequest.tls
138
- },
140
+ wsServerInfo,
139
141
  mode: ConnectionMode.PROBE
140
142
  })
141
143
  } catch (err) {
@@ -148,7 +150,7 @@ export class ConnectivityChecker {
148
150
  }
149
151
  if (outgoingConnection) {
150
152
  outgoingConnection.close('OTHER')
151
- logger.trace('Connectivity test produced positive result, communicating reply to the requester')
153
+ logger.trace('Connectivity test produced positive result, communicating reply to the requester ' + host + ':' + connectivityRequest.port)
152
154
  connectivityResponseMessage = {
153
155
  openInternet: true,
154
156
  host,
@@ -165,6 +167,7 @@ export class ConnectivityChecker {
165
167
  }
166
168
  }
167
169
  connection.send(Message.toBinary(msg))
170
+ logger.trace('ConnectivityResponse sent: ' + JSON.stringify(Message.toJson(msg)))
168
171
  }
169
172
 
170
173
  // eslint-disable-next-line class-methods-use-this
@@ -0,0 +1,140 @@
1
+ import { Logger } from '@streamr/utils'
2
+ import {
3
+ ConnectivityResponse,
4
+ PeerDescriptor
5
+ } from '../proto/packages/dht/protos/DhtRpc'
6
+ import { ITransport } from '../transport/ITransport'
7
+ import { PortRange, TlsCertificate } from './ConnectionManager'
8
+ import { ManagedConnection } from './ManagedConnection'
9
+ import { Simulator } from './Simulator/Simulator'
10
+ import { SimulatorConnector } from './Simulator/SimulatorConnector'
11
+ import { IceServer, WebRtcConnectorRpcLocal } from './WebRTC/WebRtcConnectorRpcLocal'
12
+ import { WebSocketConnectorRpcLocal } from './WebSocket/WebSocketConnectorRpcLocal'
13
+
14
+ export interface ConnectorFacade {
15
+ createConnection: (peerDescriptor: PeerDescriptor) => ManagedConnection
16
+ getOwnPeerDescriptor: () => PeerDescriptor | undefined
17
+ start: (
18
+ onIncomingConnection: (connection: ManagedConnection) => boolean,
19
+ canConnect: (peerDescriptor: PeerDescriptor) => boolean
20
+ ) => Promise<void>
21
+ stop: () => Promise<void>
22
+ }
23
+
24
+ const logger = new Logger(module)
25
+
26
+ export interface DefaultConnectorFacadeConfig {
27
+ transport: ITransport
28
+ websocketHost?: string
29
+ websocketPortRange?: PortRange
30
+ entryPoints?: PeerDescriptor[]
31
+ iceServers?: IceServer[]
32
+ webrtcAllowPrivateAddresses?: boolean
33
+ webrtcDatachannelBufferThresholdLow?: number
34
+ webrtcDatachannelBufferThresholdHigh?: number
35
+ webrtcNewConnectionTimeout?: number
36
+ externalIp?: string
37
+ webrtcPortRange?: PortRange
38
+ maxMessageSize?: number
39
+ tlsCertificate?: TlsCertificate
40
+ createOwnPeerDescriptor: (connectivityResponse: ConnectivityResponse) => PeerDescriptor
41
+ }
42
+
43
+ export class DefaultConnectorFacade implements ConnectorFacade {
44
+
45
+ private readonly config: DefaultConnectorFacadeConfig
46
+ private ownPeerDescriptor?: PeerDescriptor
47
+ private webSocketConnector?: WebSocketConnectorRpcLocal
48
+ private webrtcConnector?: WebRtcConnectorRpcLocal
49
+
50
+ constructor(config: DefaultConnectorFacadeConfig) {
51
+ this.config = config
52
+ }
53
+
54
+ async start(
55
+ onIncomingConnection: (connection: ManagedConnection) => boolean,
56
+ canConnect: (peerDescriptor: PeerDescriptor) => boolean
57
+ ): Promise<void> {
58
+ logger.trace(`Creating WebSocketConnector`)
59
+ this.webSocketConnector = new WebSocketConnectorRpcLocal({
60
+ transport: this.config.transport!,
61
+ // TODO should we use canConnect also for WebRtcConnector? (NET-1142)
62
+ canConnect: (peerDescriptor: PeerDescriptor) => canConnect(peerDescriptor),
63
+ onIncomingConnection,
64
+ portRange: this.config.websocketPortRange,
65
+ host: this.config.websocketHost,
66
+ entrypoints: this.config.entryPoints,
67
+ tlsCertificate: this.config.tlsCertificate,
68
+ maxMessageSize: this.config.maxMessageSize
69
+ })
70
+ logger.trace(`Creating WebRTCConnector`)
71
+ this.webrtcConnector = new WebRtcConnectorRpcLocal({
72
+ transport: this.config.transport!,
73
+ iceServers: this.config.iceServers,
74
+ allowPrivateAddresses: this.config.webrtcAllowPrivateAddresses,
75
+ bufferThresholdLow: this.config.webrtcDatachannelBufferThresholdLow,
76
+ bufferThresholdHigh: this.config.webrtcDatachannelBufferThresholdHigh,
77
+ connectionTimeout: this.config.webrtcNewConnectionTimeout,
78
+ externalIp: this.config.externalIp,
79
+ portRange: this.config.webrtcPortRange,
80
+ maxMessageSize: this.config.maxMessageSize
81
+ }, onIncomingConnection)
82
+ await this.webSocketConnector.start()
83
+ const connectivityResponse = await this.webSocketConnector.checkConnectivity()
84
+ const ownPeerDescriptor = this.config.createOwnPeerDescriptor(connectivityResponse)
85
+ this.ownPeerDescriptor = ownPeerDescriptor
86
+ this.webSocketConnector.setOwnPeerDescriptor(ownPeerDescriptor)
87
+ this.webrtcConnector.setOwnPeerDescriptor(ownPeerDescriptor)
88
+ }
89
+
90
+ createConnection(peerDescriptor: PeerDescriptor): ManagedConnection {
91
+ if (this.webSocketConnector!.isPossibleToFormConnection(peerDescriptor)) {
92
+ return this.webSocketConnector!.connect(peerDescriptor)
93
+ } else {
94
+ return this.webrtcConnector!.connect(peerDescriptor)
95
+ }
96
+ }
97
+
98
+ getOwnPeerDescriptor(): PeerDescriptor | undefined {
99
+ return this.ownPeerDescriptor
100
+ }
101
+
102
+ async stop(): Promise<void> {
103
+ await this.webSocketConnector!.destroy()
104
+ await this.webrtcConnector!.stop()
105
+ }
106
+ }
107
+
108
+ export class SimulatorConnectorFacade implements ConnectorFacade {
109
+
110
+ private readonly ownPeerDescriptor: PeerDescriptor
111
+ private simulatorConnector?: SimulatorConnector
112
+ private simulator: Simulator
113
+
114
+ constructor(ownPeerDescriptor: PeerDescriptor, simulator: Simulator) {
115
+ this.ownPeerDescriptor = ownPeerDescriptor
116
+ this.simulator = simulator
117
+ }
118
+
119
+ async start(onIncomingConnection: (connection: ManagedConnection) => boolean): Promise<void> {
120
+ logger.trace(`Creating SimulatorConnector`)
121
+ this.simulatorConnector = new SimulatorConnector(
122
+ this.ownPeerDescriptor,
123
+ this.simulator,
124
+ onIncomingConnection
125
+ )
126
+ this.simulator.addConnector(this.simulatorConnector)
127
+ }
128
+
129
+ createConnection(peerDescriptor: PeerDescriptor): ManagedConnection {
130
+ return this.simulatorConnector!.connect(peerDescriptor)
131
+ }
132
+
133
+ getOwnPeerDescriptor(): PeerDescriptor {
134
+ return this.ownPeerDescriptor
135
+ }
136
+
137
+ async stop(): Promise<void> {
138
+ await this.simulatorConnector!.stop()
139
+ }
140
+ }
@@ -16,17 +16,14 @@ export class Handshaker extends EventEmitter<HandshakerEvents> {
16
16
 
17
17
  private static readonly HANDSHAKER_SERVICE_ID = 'system/handshaker'
18
18
  private ownPeerDescriptor: PeerDescriptor
19
- private protocolVersion: string
20
19
  private connection: IConnection
21
20
 
22
21
  constructor(
23
22
  ownPeerDescriptor: PeerDescriptor,
24
- protocolVersion: string,
25
23
  connection: IConnection
26
24
  ) {
27
25
  super()
28
26
  this.ownPeerDescriptor = ownPeerDescriptor
29
- this.protocolVersion = protocolVersion
30
27
  this.connection = connection
31
28
  this.connection.on('data', this.onData)
32
29
  }
@@ -57,7 +54,6 @@ export class Handshaker extends EventEmitter<HandshakerEvents> {
57
54
  public sendHandshakeRequest(): void {
58
55
  const outgoingHandshake: HandshakeRequest = {
59
56
  sourceId: this.ownPeerDescriptor.kademliaId,
60
- protocolVersion: this.protocolVersion,
61
57
  peerDescriptor: this.ownPeerDescriptor
62
58
  }
63
59
  const msg: Message = {
@@ -76,7 +72,6 @@ export class Handshaker extends EventEmitter<HandshakerEvents> {
76
72
  public sendHandshakeResponse(error?: string): void {
77
73
  const outgoingHandshakeResponse: HandshakeResponse = {
78
74
  sourceId: this.ownPeerDescriptor.kademliaId,
79
- protocolVersion: this.protocolVersion,
80
75
  peerDescriptor: this.ownPeerDescriptor
81
76
  }
82
77
  if (error) {
@@ -7,6 +7,7 @@ import EventEmitter from 'eventemitter3'
7
7
  import { PeerIDKey } from '../helpers/PeerID'
8
8
  import { keyFromPeerDescriptor } from '../helpers/peerIdFromPeerDescriptor'
9
9
  import { DisconnectionType } from '../transport/ITransport'
10
+ import { keyOrUnknownFromPeerDescriptor } from './ConnectionManager'
10
11
 
11
12
  export interface ManagedConnectionEvents {
12
13
  managedData: (bytes: Uint8Array, remotePeerDescriptor: PeerDescriptor) => void
@@ -23,8 +24,6 @@ const logger = new Logger(module)
23
24
  export type Events = ManagedConnectionEvents & ConnectionEvents
24
25
  export class ManagedConnection extends EventEmitter<Events> {
25
26
 
26
- private static objectCounter = 0
27
- public objectId = 0
28
27
  private implementation?: IConnection
29
28
 
30
29
  private outputBuffer: Uint8Array[] = []
@@ -46,25 +45,20 @@ export class ManagedConnection extends EventEmitter<Events> {
46
45
  private closing = false
47
46
  public replacedByOtherConnection = false
48
47
  private ownPeerDescriptor: PeerDescriptor
49
- private protocolVersion: string
50
48
  protected outgoingConnection?: IConnection
51
49
  protected incomingConnection?: IConnection
52
50
 
53
51
  constructor(
54
52
  ownPeerDescriptor: PeerDescriptor,
55
- protocolVersion: string,
56
53
  connectionType: ConnectionType,
57
54
  outgoingConnection?: IConnection,
58
55
  incomingConnection?: IConnection,
59
56
  ) {
60
57
  super()
61
- this.objectId = ManagedConnection.objectCounter
62
- ManagedConnection.objectCounter++
63
58
 
64
59
  this.send = this.send.bind(this)
65
60
 
66
61
  this.ownPeerDescriptor = ownPeerDescriptor
67
- this.protocolVersion = protocolVersion
68
62
  this.outgoingConnection = outgoingConnection
69
63
  this.incomingConnection = incomingConnection
70
64
  this.connectionType = connectionType
@@ -72,24 +66,23 @@ export class ManagedConnection extends EventEmitter<Events> {
72
66
 
73
67
  this.onDisconnected = this.onDisconnected.bind(this)
74
68
 
75
- logger.trace('creating ManagedConnection of type: ' + connectionType + ' objectId: ' + this.objectId)
69
+ logger.trace('creating ManagedConnection of type: ' + connectionType)
76
70
  if (incomingConnection && outgoingConnection) {
77
71
  throw new Err.IllegalArguments('Managed connection constructor only accepts either an incoming connection OR a outgoing connection')
78
72
  }
79
73
 
80
74
  if (outgoingConnection) {
81
- this.handshaker = new Handshaker(this.ownPeerDescriptor, this.protocolVersion, outgoingConnection)
75
+ this.handshaker = new Handshaker(this.ownPeerDescriptor, outgoingConnection)
82
76
 
83
77
  this.handshaker.once('handshakeFailed', (errorMessage) => {
84
- logger.trace(' ' + this.ownPeerDescriptor.nodeName + ', ' + this.peerDescriptor?.nodeName + ' handshakeFailed: ' + errorMessage)
78
+ logger.trace(keyOrUnknownFromPeerDescriptor(this.peerDescriptor) + ' handshakeFailed: ' + errorMessage)
85
79
  this.emit('handshakeFailed')
86
80
  })
87
81
 
88
82
  this.handshaker.on('handshakeCompleted', (peerDescriptor: PeerDescriptor) => {
89
- logger.trace('handshake completed for outgoing connection ' + this.ownPeerDescriptor.nodeName +
90
- ', ' + this.peerDescriptor?.nodeName + ' objectid: ' + this.objectId
83
+ logger.trace('handshake completed for outgoing connection '
84
+ + ', ' + keyOrUnknownFromPeerDescriptor(this.peerDescriptor)
91
85
  + ' outputBuffer.length: ' + this.outputBuffer.length)
92
-
93
86
  this.attachImplementation(outgoingConnection)
94
87
  this.onHandshakeCompleted(peerDescriptor)
95
88
  })
@@ -102,7 +95,7 @@ export class ManagedConnection extends EventEmitter<Events> {
102
95
 
103
96
  } else {
104
97
  if (incomingConnection) {
105
- this.handshaker = new Handshaker(this.ownPeerDescriptor, this.protocolVersion, incomingConnection)
98
+ this.handshaker = new Handshaker(this.ownPeerDescriptor, incomingConnection)
106
99
  this.handshaker.on('handshakeRequest', (peerDescriptor: PeerDescriptor) => {
107
100
  this.setPeerDescriptor(peerDescriptor)
108
101
  this.emit('handshakeRequest', peerDescriptor)
@@ -124,7 +117,7 @@ export class ManagedConnection extends EventEmitter<Events> {
124
117
  ): this {
125
118
  if (event === 'managedData' && this.listenerCount('managedData') === 0) {
126
119
  while (this.inputBuffer.length > 0) {
127
- logger.trace('emptying inputBuffer objectId: ' + this.objectId)
120
+ logger.trace('emptying inputBuffer')
128
121
  const data = this.inputBuffer.shift()!
129
122
  fn(data, this.getPeerDescriptor())
130
123
  }
@@ -142,7 +135,7 @@ export class ManagedConnection extends EventEmitter<Events> {
142
135
  if (event === 'managedData' && this.listenerCount('managedData') === 0) {
143
136
  if (this.inputBuffer.length > 0) {
144
137
  while (this.inputBuffer.length > 0) {
145
- logger.trace('emptying inputBuffer objectId: ' + this.objectId)
138
+ logger.trace('emptying inputBuffer')
146
139
  const data = this.inputBuffer.shift()!
147
140
  fn(data, this.getPeerDescriptor())
148
141
  }
@@ -179,17 +172,16 @@ export class ManagedConnection extends EventEmitter<Events> {
179
172
  this.handshakeCompleted = true
180
173
 
181
174
  while (this.outputBuffer.length > 0) {
182
- logger.trace('emptying outputBuffer objectId: ' + this.objectId)
183
-
175
+ logger.trace('emptying outputBuffer')
184
176
  this.implementation!.send(this.outputBuffer.shift()!)
185
177
  }
186
178
 
187
- logger.trace('emitting handshake_completed, objectId: ' + this.objectId)
179
+ logger.trace('emitting handshake_completed')
188
180
  this.emit('handshakeCompleted', peerDescriptor)
189
181
  }
190
182
 
191
- public attachImplementation(impl: IConnection, _peerDescriptor?: PeerDescriptor): void {
192
- logger.trace('attachImplementation() objectId: ' + this.objectId)
183
+ public attachImplementation(impl: IConnection): void {
184
+ logger.trace('attachImplementation()')
193
185
  this.implementation = impl
194
186
 
195
187
  impl.on('data', (bytes: Uint8Array) => {
@@ -215,8 +207,8 @@ export class ManagedConnection extends EventEmitter<Events> {
215
207
  impl.on('disconnected', this.onDisconnected)
216
208
  }
217
209
 
218
- private onDisconnected(disconnectionType: DisconnectionType, _code?: number, _reason?: string): void {
219
- logger.trace(' ' + this.ownPeerDescriptor.nodeName + ', ' + this.peerDescriptor?.nodeName + ' onDisconnected() ' + disconnectionType)
210
+ private onDisconnected(disconnectionType: DisconnectionType): void {
211
+ logger.trace(keyOrUnknownFromPeerDescriptor(this.peerDescriptor) + ' onDisconnected() ' + disconnectionType)
220
212
  if (this.bufferSentbyOtherConnection) {
221
213
  return
222
214
  }
@@ -238,7 +230,7 @@ export class ManagedConnection extends EventEmitter<Events> {
238
230
  } else if (this.implementation) {
239
231
  this.implementation.send(data)
240
232
  } else {
241
- logger.trace('adding data to outputBuffer objectId: ' + this.objectId)
233
+ logger.trace('adding data to outputBuffer')
242
234
 
243
235
  let result: RunAndRaceEventsReturnType<Events>
244
236
 
@@ -248,7 +240,7 @@ export class ManagedConnection extends EventEmitter<Events> {
248
240
  result = await runAndRaceEvents3<Events>([() => { this.outputBuffer.push(data) }], this, ['handshakeCompleted', 'handshakeFailed',
249
241
  'bufferSentByOtherConnection', 'closing', 'internal_disconnected'], 15000)
250
242
  } catch (e) {
251
- logger.debug(`Connection from ${this.ownPeerDescriptor.nodeName} to ${this.peerDescriptor?.nodeName} timed out`)
243
+ logger.debug(`Connection to ${keyOrUnknownFromPeerDescriptor(this.peerDescriptor)} timed out`)
252
244
  throw e
253
245
  }
254
246
 
@@ -256,7 +248,7 @@ export class ManagedConnection extends EventEmitter<Events> {
256
248
  this.doNotEmitDisconnected = false
257
249
  this.doDisconnect('OTHER')
258
250
  } else if (result.winnerName === 'handshakeFailed') {
259
- logger.trace(' ' + this.ownPeerDescriptor.nodeName + ', ' + this.peerDescriptor?.nodeName + ' handshakeFailed received')
251
+ logger.trace(keyOrUnknownFromPeerDescriptor(this.peerDescriptor) + ' handshakeFailed received')
260
252
 
261
253
  if (this.bufferSentbyOtherConnection) {
262
254
  logger.trace('bufferSentByOtherConnection already true')
@@ -269,8 +261,8 @@ export class ManagedConnection extends EventEmitter<Events> {
269
261
  result2 = await raceEvents3<Events>(this,
270
262
  ['bufferSentByOtherConnection', 'closing', 'disconnected'], 15000)
271
263
  } catch (ex) {
272
- logger.trace(' ' + this.ownPeerDescriptor.nodeName + ', ' + this.peerDescriptor?.nodeName +
273
- ' Exception from raceEvents3 while waiting bufferSentByOtherConnection or closing ' + ex)
264
+ logger.trace(keyOrUnknownFromPeerDescriptor(this.peerDescriptor)
265
+ + ' Exception from raceEvents3 while waiting bufferSentByOtherConnection or closing ' + ex)
274
266
  throw ex
275
267
  }
276
268
  if (result2.winnerName === 'bufferSentByOtherConnection') {
@@ -294,13 +286,13 @@ export class ManagedConnection extends EventEmitter<Events> {
294
286
  if (this.implementation) {
295
287
  this.implementation.send(data)
296
288
  } else {
297
- logger.trace('adding data to outputBuffer objectId: ' + this.objectId)
289
+ logger.trace('adding data to outputBuffer')
298
290
  this.outputBuffer.push(data)
299
291
  }
300
292
  }
301
293
 
302
294
  public reportBufferSentByOtherConnection(): void {
303
- logger.trace(' ' + this.ownPeerDescriptor.nodeName + ', ' + this.peerDescriptor?.nodeName + ' reportBufferSentByOtherConnection')
295
+ logger.trace(keyOrUnknownFromPeerDescriptor(this.peerDescriptor) + ' reportBufferSentByOtherConnection')
304
296
  if (this.handshaker) {
305
297
  this.handshaker.removeAllListeners()
306
298
  }
@@ -309,16 +301,11 @@ export class ManagedConnection extends EventEmitter<Events> {
309
301
  this.emit('bufferSentByOtherConnection')
310
302
  }
311
303
 
312
- public reportBufferSendingByOtherConnectionFailed(): void {
313
- logger.trace('reportBufferSendingByOtherConnectionFailed')
314
- this.doDisconnect('OTHER')
315
- }
316
-
317
304
  public acceptHandshake(): void {
318
305
  // This happens when connectionRequest has been made and answered
319
306
  if (this.implementation) {
320
307
  if (!this.handshaker) {
321
- this.handshaker = new Handshaker(this.ownPeerDescriptor, this.protocolVersion, this.implementation)
308
+ this.handshaker = new Handshaker(this.ownPeerDescriptor, this.implementation)
322
309
  }
323
310
 
324
311
  this.handshaker.sendHandshakeResponse()
@@ -336,14 +323,13 @@ export class ManagedConnection extends EventEmitter<Events> {
336
323
  }
337
324
 
338
325
  private doDisconnect(disconnectionType: DisconnectionType) {
339
- logger.trace(' ' + this.ownPeerDescriptor.nodeName + ', ' + this.peerDescriptor?.nodeName + ' doDisconnect() emitting')
326
+ logger.trace(keyOrUnknownFromPeerDescriptor(this.peerDescriptor) + ' doDisconnect() emitting')
340
327
 
341
328
  if (!this.doNotEmitDisconnected) {
342
- logger.trace(' ' + this.ownPeerDescriptor.nodeName + ', ' + this.peerDescriptor?.nodeName + ' emitting disconnected')
329
+ logger.trace(keyOrUnknownFromPeerDescriptor(this.peerDescriptor) + ' emitting disconnected')
343
330
  this.emit('disconnected', disconnectionType)
344
331
  } else {
345
- logger.trace(' ' + this.ownPeerDescriptor.nodeName + ', ' + this.peerDescriptor?.nodeName +
346
- ' not emitting disconnected because doNotEmitDisconnected flag is set')
332
+ logger.trace(keyOrUnknownFromPeerDescriptor(this.peerDescriptor) + ' not emitting disconnected because doNotEmitDisconnected flag is set')
347
333
  }
348
334
  }
349
335
 
@@ -6,12 +6,10 @@ import { NodeWebRtcConnection } from './WebRTC/NodeWebRtcConnection'
6
6
  export class ManagedWebRtcConnection extends ManagedConnection {
7
7
 
8
8
  constructor(ownPeerDescriptor: PeerDescriptor,
9
- protocolVersion: string,
10
9
  connectingConnection?: NodeWebRtcConnection,
11
10
  connectedConnection?: NodeWebRtcConnection) {
12
11
  super(
13
12
  ownPeerDescriptor,
14
- protocolVersion,
15
13
  ConnectionType.WEBRTC,
16
14
  connectingConnection,
17
15
  connectedConnection)
@@ -110,7 +110,6 @@ export class Simulator extends EventEmitter<ConnectionSourceEvents> {
110
110
  private fixedLatency?: number
111
111
 
112
112
  private loopCounter = 0
113
- private operationCounter = 0
114
113
  private MAX_LOOPS = 1000
115
114
 
116
115
  private operationQueue: Heap<SimulatorOperation> = new Heap<SimulatorOperation>((a: SimulatorOperation, b: SimulatorOperation) => {
@@ -273,8 +272,6 @@ export class Simulator extends EventEmitter<ConnectionSourceEvents> {
273
272
  && this.operationQueue.peek()!.executionTime <= currentTime) {
274
273
  const operation = this.operationQueue.pop()
275
274
 
276
- this.operationCounter++
277
-
278
275
  if (operation instanceof ConnectOperation) {
279
276
  this.executeConnectOperation(operation)
280
277
  } else if (operation instanceof CloseOperation) {
@@ -296,10 +293,6 @@ export class Simulator extends EventEmitter<ConnectionSourceEvents> {
296
293
  this.scheduleNextTimeout()
297
294
  }
298
295
 
299
- public getOperationCounter(): number {
300
- return this.operationCounter
301
- }
302
-
303
296
  private scheduleNextTimeout(): void {
304
297
  if (this.simulatorTimeout) {
305
298
  clearTimeout(this.simulatorTimeout)
@@ -5,6 +5,7 @@ import { Connection } from '../Connection'
5
5
  import { Logger } from '@streamr/utils'
6
6
  import { protoToString } from '../../helpers/protoToString'
7
7
  import { DisconnectionType } from '../../transport/ITransport'
8
+ import { keyFromPeerDescriptor } from '../../helpers/peerIdFromPeerDescriptor'
8
9
 
9
10
  const logger = new Logger(module)
10
11
 
@@ -45,35 +46,36 @@ export class SimulatorConnection extends Connection implements IConnection {
45
46
  this.simulator.send(this, data)
46
47
 
47
48
  } else {
48
- logger.error(' ' + this.ownPeerDescriptor.nodeName + ', ' + (this.targetPeerDescriptor.nodeName!) +
49
+ logger.error(keyFromPeerDescriptor(this.ownPeerDescriptor) + ', ' + keyFromPeerDescriptor(this.targetPeerDescriptor) +
49
50
  'tried to send() on a stopped connection')
50
51
  }
51
52
  }
52
53
 
53
54
  public async close(disconnectionType: DisconnectionType): Promise<void> {
54
- logger.trace(' ' + this.ownPeerDescriptor.nodeName + ', ' + (this.targetPeerDescriptor.nodeName!) + ' close()')
55
+ logger.trace(keyFromPeerDescriptor(this.ownPeerDescriptor) + ', ' + keyFromPeerDescriptor(this.targetPeerDescriptor) + ' close()')
55
56
 
56
57
  if (!this.stopped) {
57
- logger.trace(' ' + this.ownPeerDescriptor.nodeName + ', ' + (this.targetPeerDescriptor.nodeName!) + ' close() not stopped')
58
+ logger.trace(keyFromPeerDescriptor(this.ownPeerDescriptor) + ', '
59
+ + keyFromPeerDescriptor(this.targetPeerDescriptor) + ' close() not stopped')
58
60
  this.stopped = true
59
61
 
60
62
  try {
61
- logger.trace(' ' + this.ownPeerDescriptor.nodeName + ', ' + (this.targetPeerDescriptor.nodeName!) +
63
+ logger.trace(keyFromPeerDescriptor(this.ownPeerDescriptor) + ', ' + keyFromPeerDescriptor(this.targetPeerDescriptor) +
62
64
  ' close() calling simulator.disconnect()')
63
65
  this.simulator.close(this)
64
- logger.trace(' ' + this.ownPeerDescriptor.nodeName + ', ' + (this.targetPeerDescriptor.nodeName!) +
66
+ logger.trace(keyFromPeerDescriptor(this.ownPeerDescriptor) + ', ' + keyFromPeerDescriptor(this.targetPeerDescriptor) +
65
67
  ' close() simulator.disconnect returned')
66
68
  } catch (e) {
67
- logger.trace(' ' + this.ownPeerDescriptor.nodeName + ', ' + (this.targetPeerDescriptor.nodeName!) +
69
+ logger.trace(keyFromPeerDescriptor(this.ownPeerDescriptor) + ', ' + keyFromPeerDescriptor(this.targetPeerDescriptor) +
68
70
  'close aborted' + e)
69
71
  } finally {
70
- logger.trace(' ' + this.ownPeerDescriptor.nodeName + ', ' + (this.targetPeerDescriptor.nodeName!) +
72
+ logger.trace(keyFromPeerDescriptor(this.ownPeerDescriptor) + ', ' + keyFromPeerDescriptor(this.targetPeerDescriptor) +
71
73
  ' calling this.doDisconnect')
72
74
  this.doDisconnect(disconnectionType)
73
75
  }
74
76
 
75
77
  } else {
76
- logger.trace(' ' + this.ownPeerDescriptor.nodeName + ', ' + (this.targetPeerDescriptor.nodeName!) +
78
+ logger.trace(keyFromPeerDescriptor(this.ownPeerDescriptor) + ', ' + keyFromPeerDescriptor(this.targetPeerDescriptor) +
77
79
  ' close() tried to close a stopped connection')
78
80
  }
79
81
  }
@@ -107,7 +109,7 @@ export class SimulatorConnection extends Connection implements IConnection {
107
109
 
108
110
  public handleIncomingDisconnection(): void {
109
111
  if (!this.stopped) {
110
- logger.trace(this.ownPeerDescriptor.nodeName + ' handleIncomingDisconnection()')
112
+ logger.trace(keyFromPeerDescriptor(this.ownPeerDescriptor) + ' handleIncomingDisconnection()')
111
113
  this.stopped = true
112
114
  this.doDisconnect('OTHER')
113
115
  } else {
@@ -117,19 +119,20 @@ export class SimulatorConnection extends Connection implements IConnection {
117
119
 
118
120
  public destroy(): void {
119
121
  if (!this.stopped) {
120
- logger.trace(this.ownPeerDescriptor.nodeName + ' destroy()')
122
+ logger.trace(keyFromPeerDescriptor(this.ownPeerDescriptor) + ' destroy()')
121
123
  this.removeAllListeners()
122
124
  this.close('OTHER').catch((_e) => { })
123
125
  } else {
124
- logger.trace(this.ownPeerDescriptor.nodeName + ' tried to call destroy() a stopped connection')
126
+ logger.trace(keyFromPeerDescriptor(this.ownPeerDescriptor) + ' tried to call destroy() a stopped connection')
125
127
  }
126
128
  }
127
129
 
128
130
  private doDisconnect(disconnectionType: DisconnectionType) {
129
- logger.trace(this.ownPeerDescriptor.nodeName + ' doDisconnect()')
131
+ logger.trace(keyFromPeerDescriptor(this.ownPeerDescriptor) + ' doDisconnect()')
130
132
  this.stopped = true
131
133
 
132
- logger.trace(' ' + this.ownPeerDescriptor.nodeName + ', ' + (this.targetPeerDescriptor.nodeName!) + ' doDisconnect emitting')
134
+ logger.trace(keyFromPeerDescriptor(this.ownPeerDescriptor) + ', '
135
+ + keyFromPeerDescriptor(this.targetPeerDescriptor) + ' doDisconnect emitting')
133
136
 
134
137
  this.emit('disconnected', disconnectionType)
135
138