@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
@@ -14,40 +14,40 @@ service DhtRpcService {
14
14
  rpc leaveNotice (LeaveNotice) returns (google.protobuf.Empty);
15
15
  }
16
16
 
17
- service RoutingService {
17
+ service RouterRpc {
18
18
  rpc routeMessage (RouteMessageWrapper) returns (RouteMessageAck);
19
19
  rpc forwardMessage (RouteMessageWrapper) returns (RouteMessageAck);
20
20
  rpc findRecursively (RouteMessageWrapper) returns (RouteMessageAck);
21
21
  }
22
22
 
23
- service StoreService {
23
+ service StoreRpc {
24
24
  rpc storeData (StoreDataRequest) returns (StoreDataResponse);
25
25
  rpc migrateData (MigrateDataRequest) returns (MigrateDataResponse);
26
26
  rpc deleteData (DeleteDataRequest) returns (DeleteDataResponse);
27
27
  }
28
28
 
29
29
  service RecursiveFindSessionService {
30
- rpc reportRecursiveFindResult(RecursiveFindReport) returns (google.protobuf.Empty);
30
+ rpc sendFindResponse(FindResponse) returns (google.protobuf.Empty);
31
31
  }
32
32
 
33
- service WebSocketConnectorService {
33
+ service WebSocketConnectorRpc {
34
34
  rpc requestConnection (WebSocketConnectionRequest) returns (WebSocketConnectionResponse);
35
35
  }
36
36
 
37
- service WebRtcConnectorService {
37
+ service WebRtcConnectorRpc {
38
38
  rpc requestConnection (WebRtcConnectionRequest) returns (google.protobuf.Empty);
39
39
  rpc rtcOffer (RtcOffer) returns (google.protobuf.Empty);
40
40
  rpc rtcAnswer (RtcAnswer) returns (google.protobuf.Empty);
41
41
  rpc iceCandidate (IceCandidate) returns (google.protobuf.Empty);
42
42
  }
43
43
 
44
- service ConnectionLocker {
44
+ service ConnectionLockRpc {
45
45
  rpc lockRequest (LockRequest) returns (LockResponse);
46
46
  rpc unlockRequest (UnlockRequest) returns (google.protobuf.Empty);
47
47
  rpc gracefulDisconnect (DisconnectNotice) returns (DisconnectNoticeResponse);
48
48
  }
49
49
 
50
- service ExternalApiService {
50
+ service ExternalApiRpc {
51
51
  rpc findData (FindDataRequest) returns (FindDataResponse);
52
52
  rpc externalStoreData (ExternalStoreDataRequest) returns (ExternalStoreDataResponse);
53
53
  }
@@ -111,18 +111,13 @@ message ClosestPeersResponse {
111
111
  string requestId = 2;
112
112
  }
113
113
 
114
- enum FindMode {
115
- NODE = 0;
116
- DATA = 1;
114
+ message FindRequest {
115
+ string sessionId = 1;
116
+ bool fetchData = 2;
117
117
  }
118
118
 
119
- message RecursiveFindRequest {
120
- string recursiveFindSessionId = 1;
121
- FindMode findMode = 2;
122
- }
123
-
124
- message RecursiveFindReport {
125
- repeated PeerDescriptor nodes = 1;
119
+ message FindResponse {
120
+ repeated PeerDescriptor closestConnectedPeers = 1;
126
121
  repeated DataEntry dataEntries = 2;
127
122
  optional bool noCloserNodesFound = 3;
128
123
  repeated PeerDescriptor routingPath = 4;
@@ -148,7 +143,6 @@ message PeerDescriptor {
148
143
  ConnectivityMethod websocket = 5;
149
144
  optional bool openInternet = 6;
150
145
  optional uint32 region = 7;
151
- optional string nodeName = 8;
152
146
  }
153
147
 
154
148
  message ConnectivityMethod {
@@ -181,10 +175,8 @@ message RouteMessageWrapper {
181
175
  }
182
176
 
183
177
  message RouteMessageAck {
184
- PeerDescriptor sourcePeer = 1;
185
- string requestId = 2;
186
- PeerDescriptor destinationPeer = 3;
187
- string error = 4;
178
+ string requestId = 1;
179
+ string error = 2;
188
180
  }
189
181
 
190
182
  // Correspond to the MessageType Enum
@@ -204,15 +196,13 @@ message ConnectivityResponse {
204
196
 
205
197
  message HandshakeRequest {
206
198
  bytes sourceId = 1;
207
- string protocolVersion = 2;
208
- PeerDescriptor peerDescriptor = 3;
199
+ PeerDescriptor peerDescriptor = 2;
209
200
  }
210
201
 
211
202
  message HandshakeResponse {
212
203
  bytes sourceId = 1;
213
- string protocolVersion = 2;
214
- PeerDescriptor peerDescriptor = 3;
215
- optional string responseError = 4;
204
+ PeerDescriptor peerDescriptor = 2;
205
+ optional string responseError = 3;
216
206
  }
217
207
 
218
208
  // Wraps all messages
@@ -238,7 +228,7 @@ message Message {
238
228
  HandshakeRequest handshakeRequest = 8;
239
229
  HandshakeResponse handshakeResponse = 9;
240
230
  protorpc.RpcMessage rpcMessage = 10;
241
- RecursiveFindRequest RecursiveFindRequest = 11;
231
+ FindRequest findRequest = 11;
242
232
  };
243
233
  }
244
234
 
@@ -246,58 +236,42 @@ message Message {
246
236
 
247
237
  // WebSocket
248
238
  message WebSocketConnectionRequest {
249
- PeerDescriptor requester = 1;
250
- PeerDescriptor target = 2;
251
- string ip = 3;
252
- uint32 port = 4;
239
+ string ip = 1;
240
+ uint32 port = 2;
253
241
  }
254
242
 
255
243
  message WebSocketConnectionResponse {
256
- PeerDescriptor requester = 1;
257
- PeerDescriptor target = 2;
258
- bool accepted = 3;
259
- optional string reason = 4;
244
+ bool accepted = 1;
245
+ optional string reason = 2;
260
246
  }
261
247
 
262
248
  // WebRTC
263
249
  message WebRtcConnectionRequest {
264
- PeerDescriptor requester = 1;
265
- PeerDescriptor target = 2;
266
- string connectionId = 3;
250
+ string connectionId = 1;
267
251
  }
268
252
 
269
253
  message RtcOffer {
270
- PeerDescriptor requester = 1;
271
- PeerDescriptor target = 2;
272
- string description = 3;
273
- string connectionId = 4;
254
+ string description = 1;
255
+ string connectionId = 2;
274
256
  }
275
257
 
276
258
  message RtcAnswer {
277
- PeerDescriptor requester = 1;
278
- PeerDescriptor target = 2;
279
- string description = 3;
280
- string connectionId = 4;
259
+ string description = 1;
260
+ string connectionId = 2;
281
261
  }
282
262
 
283
263
  message IceCandidate {
284
264
  string candidate = 1;
285
265
  string mid = 2;
286
266
  string connectionId = 3;
287
- PeerDescriptor requester = 4;
288
- PeerDescriptor target = 5;
289
267
  }
290
268
 
291
269
  message LockRequest {
292
- string protocolVersion = 1;
293
- PeerDescriptor peerDescriptor = 2;
294
- string serviceId = 3;
270
+ string serviceId = 1;
295
271
  }
296
272
 
297
273
  message UnlockRequest {
298
- string protocolVersion = 1;
299
- PeerDescriptor peerDescriptor = 2;
300
- string serviceId = 3;
274
+ string serviceId = 1;
301
275
  }
302
276
 
303
277
  message LockResponse {
@@ -311,18 +285,14 @@ enum DisconnectMode {
311
285
  }
312
286
 
313
287
  message DisconnectNotice {
314
- string protocolVersion = 1;
315
- PeerDescriptor peerDescriptor = 2;
316
- DisconnectMode disconnecMode = 3;
288
+ DisconnectMode disconnectMode = 1;
317
289
  }
318
290
 
319
291
  message DisconnectNoticeResponse {
320
- string protocolVersion = 1;
321
292
  }
322
293
 
323
294
  message FindDataRequest {
324
295
  bytes kademliaId = 1;
325
- PeerDescriptor requestor = 2;
326
296
  }
327
297
 
328
298
  message FindDataResponse {
@@ -43,7 +43,7 @@ export class ConnectionLockHandler {
43
43
  }
44
44
  }
45
45
 
46
- public isWeakLocked(id: PeerIDKey): boolean {
46
+ private isWeakLocked(id: PeerIDKey): boolean {
47
47
  return this.weakLocks.has(id)
48
48
  }
49
49
 
@@ -0,0 +1,62 @@
1
+ import { Logger } from '@streamr/utils'
2
+ import { ProtoRpcClient } from '@streamr/proto-rpc'
3
+ import { IConnectionLockRpcClient } from '../proto/packages/dht/protos/DhtRpc.client'
4
+ import { LockRequest, UnlockRequest, PeerDescriptor, DisconnectNotice, DisconnectMode } from '../proto/packages/dht/protos/DhtRpc'
5
+
6
+ import * as Err from '../helpers/errors'
7
+ import { keyFromPeerDescriptor } from '../helpers/peerIdFromPeerDescriptor'
8
+ import { Remote } from '../dht/contact/Remote'
9
+
10
+ const logger = new Logger(module)
11
+
12
+ export class ConnectionLockRpcRemote extends Remote<IConnectionLockRpcClient> {
13
+
14
+ constructor(
15
+ ownPeerDescriptor: PeerDescriptor,
16
+ targetPeerDescriptor: PeerDescriptor,
17
+ client: ProtoRpcClient<IConnectionLockRpcClient>
18
+ ) {
19
+ super(ownPeerDescriptor, targetPeerDescriptor, 'DUMMY', client)
20
+ }
21
+
22
+ public async lockRequest(serviceId: string): Promise<boolean> {
23
+ logger.trace(`Requesting locked connection to ${keyFromPeerDescriptor(this.getPeerDescriptor())}`)
24
+ const request: LockRequest = {
25
+ serviceId
26
+ }
27
+ const options = this.formDhtRpcOptions()
28
+ try {
29
+ const res = await this.getClient().lockRequest(request, options)
30
+ return res.accepted
31
+ } catch (err) {
32
+ logger.debug(new Err.ConnectionLocker('Connection lock rejected', err).stack!)
33
+ return false
34
+ }
35
+ }
36
+
37
+ public unlockRequest(serviceId: string): void {
38
+ logger.trace(`Requesting connection to be unlocked from ${keyFromPeerDescriptor(this.getPeerDescriptor())}`)
39
+ const request: UnlockRequest = {
40
+ serviceId
41
+ }
42
+ const options = this.formDhtRpcOptions({
43
+ notification: true
44
+ })
45
+ this.getClient().unlockRequest(request, options).catch((_e) => {
46
+ logger.trace('failed to send unlockRequest')
47
+ })
48
+ }
49
+
50
+ public async gracefulDisconnect(disconnectMode: DisconnectMode): Promise<void> {
51
+ logger.trace(`Notifying a graceful disconnect to ${keyFromPeerDescriptor(this.getPeerDescriptor())}`)
52
+ const request: DisconnectNotice = {
53
+ disconnectMode
54
+ }
55
+ const options = this.formDhtRpcOptions({
56
+ doNotConnect: true,
57
+ doNotMindStopped: true,
58
+ timeout: 2000
59
+ })
60
+ await this.getClient().gracefulDisconnect(request, options)
61
+ }
62
+ }