@streamr/trackerless-network 100.0.0-pretestnet.6 → 100.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. package/README.md +57 -0
  2. package/dist/package.json +12 -12
  3. package/dist/src/NetworkNode.d.ts +6 -5
  4. package/dist/src/NetworkNode.js +9 -2
  5. package/dist/src/NetworkNode.js.map +1 -1
  6. package/dist/src/NetworkStack.d.ts +13 -9
  7. package/dist/src/NetworkStack.js +80 -12
  8. package/dist/src/NetworkStack.js.map +1 -1
  9. package/dist/src/exports.d.ts +4 -3
  10. package/dist/src/exports.js +12 -1
  11. package/dist/src/exports.js.map +1 -1
  12. package/dist/src/logic/DeliveryRpcLocal.d.ts +4 -5
  13. package/dist/src/logic/DeliveryRpcLocal.js +6 -5
  14. package/dist/src/logic/DeliveryRpcLocal.js.map +1 -1
  15. package/dist/src/logic/DeliveryRpcRemote.d.ts +5 -4
  16. package/dist/src/logic/DeliveryRpcRemote.js +4 -3
  17. package/dist/src/logic/DeliveryRpcRemote.js.map +1 -1
  18. package/dist/src/logic/DuplicateMessageDetector.d.ts +3 -3
  19. package/dist/src/logic/DuplicateMessageDetector.js +10 -6
  20. package/dist/src/logic/DuplicateMessageDetector.js.map +1 -1
  21. package/dist/src/logic/EntryPointDiscovery.d.ts +8 -5
  22. package/dist/src/logic/EntryPointDiscovery.js +24 -15
  23. package/dist/src/logic/EntryPointDiscovery.js.map +1 -1
  24. package/dist/src/logic/Layer0Node.d.ts +6 -4
  25. package/dist/src/logic/Layer1Node.d.ts +12 -6
  26. package/dist/src/logic/NodeList.d.ts +13 -15
  27. package/dist/src/logic/NodeList.js +19 -16
  28. package/dist/src/logic/NodeList.js.map +1 -1
  29. package/dist/src/logic/RandomGraphNode.d.ts +26 -22
  30. package/dist/src/logic/RandomGraphNode.js +85 -52
  31. package/dist/src/logic/RandomGraphNode.js.map +1 -1
  32. package/dist/src/logic/StreamrNode.d.ts +6 -6
  33. package/dist/src/logic/StreamrNode.js +53 -37
  34. package/dist/src/logic/StreamrNode.js.map +1 -1
  35. package/dist/src/logic/createRandomGraphNode.d.ts +2 -2
  36. package/dist/src/logic/createRandomGraphNode.js +33 -21
  37. package/dist/src/logic/createRandomGraphNode.js.map +1 -1
  38. package/dist/src/logic/formStreamPartDeliveryServiceId.d.ts +2 -1
  39. package/dist/src/logic/formStreamPartDeliveryServiceId.js.map +1 -1
  40. package/dist/src/logic/inspect/InspectSession.d.ts +4 -3
  41. package/dist/src/logic/inspect/InspectSession.js +6 -2
  42. package/dist/src/logic/inspect/InspectSession.js.map +1 -1
  43. package/dist/src/logic/inspect/Inspector.d.ts +11 -16
  44. package/dist/src/logic/inspect/Inspector.js +21 -9
  45. package/dist/src/logic/inspect/Inspector.js.map +1 -1
  46. package/dist/src/logic/neighbor-discovery/HandshakeRpcLocal.d.ts +7 -9
  47. package/dist/src/logic/neighbor-discovery/HandshakeRpcLocal.js +55 -32
  48. package/dist/src/logic/neighbor-discovery/HandshakeRpcLocal.js.map +1 -1
  49. package/dist/src/logic/neighbor-discovery/HandshakeRpcRemote.d.ts +8 -6
  50. package/dist/src/logic/neighbor-discovery/HandshakeRpcRemote.js +25 -16
  51. package/dist/src/logic/neighbor-discovery/HandshakeRpcRemote.js.map +1 -1
  52. package/dist/src/logic/neighbor-discovery/Handshaker.d.ts +9 -15
  53. package/dist/src/logic/neighbor-discovery/Handshaker.js +68 -44
  54. package/dist/src/logic/neighbor-discovery/Handshaker.js.map +1 -1
  55. package/dist/src/logic/neighbor-discovery/NeighborFinder.d.ts +8 -10
  56. package/dist/src/logic/neighbor-discovery/NeighborFinder.js +12 -2
  57. package/dist/src/logic/neighbor-discovery/NeighborFinder.js.map +1 -1
  58. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.d.ts +7 -10
  59. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js +11 -9
  60. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js.map +1 -1
  61. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.d.ts +8 -4
  62. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.js +33 -24
  63. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.js.map +1 -1
  64. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcRemote.d.ts +5 -4
  65. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcRemote.js +4 -5
  66. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcRemote.js.map +1 -1
  67. package/dist/src/logic/node-info/NodeInfoClient.d.ts +9 -0
  68. package/dist/src/logic/node-info/NodeInfoClient.js +21 -0
  69. package/dist/src/logic/node-info/NodeInfoClient.js.map +1 -0
  70. package/dist/src/logic/node-info/NodeInfoRpcLocal.d.ts +12 -0
  71. package/dist/src/logic/node-info/NodeInfoRpcLocal.js +22 -0
  72. package/dist/src/logic/node-info/NodeInfoRpcLocal.js.map +1 -0
  73. package/dist/src/logic/node-info/NodeInfoRpcRemote.d.ts +6 -0
  74. package/dist/src/logic/node-info/NodeInfoRpcRemote.js +11 -0
  75. package/dist/src/logic/node-info/NodeInfoRpcRemote.js.map +1 -0
  76. package/dist/src/logic/propagation/FifoMapWithTTL.js +7 -3
  77. package/dist/src/logic/propagation/FifoMapWithTTL.js.map +1 -1
  78. package/dist/src/logic/propagation/Propagation.d.ts +4 -4
  79. package/dist/src/logic/propagation/Propagation.js +4 -0
  80. package/dist/src/logic/propagation/Propagation.js.map +1 -1
  81. package/dist/src/logic/propagation/PropagationTaskStore.d.ts +2 -2
  82. package/dist/src/logic/propagation/PropagationTaskStore.js +1 -0
  83. package/dist/src/logic/propagation/PropagationTaskStore.js.map +1 -1
  84. package/dist/src/logic/protocol-integration/stream-message/GroupKeyRequestTranslator.js +1 -1
  85. package/dist/src/logic/protocol-integration/stream-message/GroupKeyRequestTranslator.js.map +1 -1
  86. package/dist/src/logic/protocol-integration/stream-message/GroupKeyResponseTranslator.js +1 -1
  87. package/dist/src/logic/protocol-integration/stream-message/GroupKeyResponseTranslator.js.map +1 -1
  88. package/dist/src/logic/protocol-integration/stream-message/StreamMessageTranslator.js +87 -53
  89. package/dist/src/logic/protocol-integration/stream-message/StreamMessageTranslator.js.map +1 -1
  90. package/dist/src/logic/protocol-integration/stream-message/oldStreamMessageBinaryUtils.d.ts +7 -0
  91. package/dist/src/logic/protocol-integration/stream-message/oldStreamMessageBinaryUtils.js +32 -0
  92. package/dist/src/logic/protocol-integration/stream-message/oldStreamMessageBinaryUtils.js.map +1 -0
  93. package/dist/src/logic/proxy/ProxyClient.d.ts +8 -6
  94. package/dist/src/logic/proxy/ProxyClient.js +40 -28
  95. package/dist/src/logic/proxy/ProxyClient.js.map +1 -1
  96. package/dist/src/logic/proxy/ProxyConnectionRpcLocal.d.ts +6 -7
  97. package/dist/src/logic/proxy/ProxyConnectionRpcLocal.js +8 -8
  98. package/dist/src/logic/proxy/ProxyConnectionRpcLocal.js.map +1 -1
  99. package/dist/src/logic/proxy/ProxyConnectionRpcRemote.d.ts +3 -3
  100. package/dist/src/logic/proxy/ProxyConnectionRpcRemote.js +1 -1
  101. package/dist/src/logic/proxy/ProxyConnectionRpcRemote.js.map +1 -1
  102. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.d.ts +9 -4
  103. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.js +21 -6
  104. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.js.map +1 -1
  105. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcRemote.d.ts +4 -3
  106. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcRemote.js +13 -3
  107. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcRemote.js.map +1 -1
  108. package/dist/src/logic/utils.js.map +1 -1
  109. package/dist/src/proto/google/protobuf/any.js +8 -8
  110. package/dist/src/proto/google/protobuf/any.js.map +1 -1
  111. package/dist/src/proto/google/protobuf/empty.js +2 -4
  112. package/dist/src/proto/google/protobuf/empty.js.map +1 -1
  113. package/dist/src/proto/google/protobuf/timestamp.js +10 -10
  114. package/dist/src/proto/google/protobuf/timestamp.js.map +1 -1
  115. package/dist/src/proto/packages/dht/protos/DhtRpc.client.d.ts +36 -49
  116. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js +54 -52
  117. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js.map +1 -1
  118. package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +184 -234
  119. package/dist/src/proto/packages/dht/protos/DhtRpc.js +118 -168
  120. package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
  121. package/dist/src/proto/packages/dht/protos/DhtRpc.server.d.ts +20 -29
  122. package/dist/src/proto/packages/proto-rpc/protos/ProtoRpc.js +1 -1
  123. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.d.ts +42 -5
  124. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.js +52 -19
  125. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.js.map +1 -1
  126. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.d.ts +193 -28
  127. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.js +129 -20
  128. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.js.map +1 -1
  129. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.server.d.ts +20 -3
  130. package/dist/test/benchmark/first-message.js +14 -15
  131. package/dist/test/benchmark/first-message.js.map +1 -1
  132. package/dist/test/utils/utils.d.ts +2 -4
  133. package/dist/test/utils/utils.js +20 -19
  134. package/dist/test/utils/utils.js.map +1 -1
  135. package/jest.config.js +3 -38
  136. package/package.json +12 -12
  137. package/protos/NetworkRpc.proto +57 -12
  138. package/src/NetworkNode.ts +13 -6
  139. package/src/NetworkStack.ts +94 -16
  140. package/src/exports.ts +11 -3
  141. package/src/logic/DeliveryRpcLocal.ts +7 -8
  142. package/src/logic/DeliveryRpcRemote.ts +7 -5
  143. package/src/logic/DuplicateMessageDetector.ts +7 -7
  144. package/src/logic/EntryPointDiscovery.ts +26 -19
  145. package/src/logic/Layer0Node.ts +6 -4
  146. package/src/logic/Layer1Node.ts +21 -6
  147. package/src/logic/NodeList.ts +26 -27
  148. package/src/logic/RandomGraphNode.ts +158 -78
  149. package/src/logic/StreamrNode.ts +58 -41
  150. package/src/logic/createRandomGraphNode.ts +37 -25
  151. package/src/logic/formStreamPartDeliveryServiceId.ts +2 -1
  152. package/src/logic/inspect/InspectSession.ts +8 -4
  153. package/src/logic/inspect/Inspector.ts +34 -24
  154. package/src/logic/neighbor-discovery/HandshakeRpcLocal.ts +72 -38
  155. package/src/logic/neighbor-discovery/HandshakeRpcRemote.ts +32 -20
  156. package/src/logic/neighbor-discovery/Handshaker.ts +90 -75
  157. package/src/logic/neighbor-discovery/NeighborFinder.ts +18 -13
  158. package/src/logic/neighbor-discovery/NeighborUpdateManager.ts +19 -20
  159. package/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.ts +43 -33
  160. package/src/logic/neighbor-discovery/NeighborUpdateRpcRemote.ts +6 -6
  161. package/src/logic/node-info/NodeInfoClient.ts +23 -0
  162. package/src/logic/node-info/NodeInfoRpcLocal.ts +28 -0
  163. package/src/logic/node-info/NodeInfoRpcRemote.ts +11 -0
  164. package/src/logic/propagation/Propagation.ts +7 -6
  165. package/src/logic/propagation/PropagationTaskStore.ts +2 -2
  166. package/src/logic/protocol-integration/stream-message/GroupKeyRequestTranslator.ts +1 -1
  167. package/src/logic/protocol-integration/stream-message/GroupKeyResponseTranslator.ts +1 -2
  168. package/src/logic/protocol-integration/stream-message/StreamMessageTranslator.ts +95 -69
  169. package/src/logic/protocol-integration/stream-message/oldStreamMessageBinaryUtils.ts +37 -0
  170. package/src/logic/proxy/ProxyClient.ts +60 -40
  171. package/src/logic/proxy/ProxyConnectionRpcLocal.ts +15 -19
  172. package/src/logic/proxy/ProxyConnectionRpcRemote.ts +3 -3
  173. package/src/logic/temporary-connection/TemporaryConnectionRpcLocal.ts +30 -10
  174. package/src/logic/temporary-connection/TemporaryConnectionRpcRemote.ts +14 -4
  175. package/src/proto/google/protobuf/any.ts +4 -4
  176. package/src/proto/google/protobuf/empty.ts +2 -4
  177. package/src/proto/google/protobuf/timestamp.ts +4 -4
  178. package/src/proto/packages/dht/protos/DhtRpc.client.ts +50 -66
  179. package/src/proto/packages/dht/protos/DhtRpc.server.ts +21 -30
  180. package/src/proto/packages/dht/protos/DhtRpc.ts +242 -316
  181. package/src/proto/packages/proto-rpc/protos/ProtoRpc.ts +1 -1
  182. package/src/proto/packages/trackerless-network/protos/NetworkRpc.client.ts +49 -7
  183. package/src/proto/packages/trackerless-network/protos/NetworkRpc.server.ts +21 -4
  184. package/src/proto/packages/trackerless-network/protos/NetworkRpc.ts +251 -44
  185. package/test/benchmark/StreamPartIdDataKeyDistribution.test.ts +60 -0
  186. package/test/benchmark/first-message.ts +38 -17
  187. package/test/end-to-end/inspect.test.ts +16 -4
  188. package/test/end-to-end/proxy-and-full-node.test.ts +26 -13
  189. package/test/end-to-end/proxy-connections.test.ts +23 -11
  190. package/test/end-to-end/proxy-key-exchange.test.ts +25 -15
  191. package/test/end-to-end/random-graph-with-real-connections.test.ts +35 -32
  192. package/test/end-to-end/webrtc-full-node-network.test.ts +11 -12
  193. package/test/end-to-end/websocket-full-node-network.test.ts +12 -12
  194. package/test/integration/DeliveryRpcRemote.test.ts +6 -9
  195. package/test/integration/HandshakeRpcRemote.test.ts +6 -8
  196. package/test/integration/Handshakes.test.ts +29 -27
  197. package/test/integration/Inspect.test.ts +0 -2
  198. package/test/integration/NeighborUpdateRpcRemote.test.ts +6 -7
  199. package/test/integration/NetworkNode.test.ts +27 -12
  200. package/test/integration/NetworkRpc.test.ts +3 -5
  201. package/test/integration/NetworkStack.test.ts +2 -2
  202. package/test/integration/NodeInfoRpc.test.ts +104 -0
  203. package/test/integration/Propagation.test.ts +3 -3
  204. package/test/integration/RandomGraphNode-Layer1Node-Latencies.test.ts +24 -25
  205. package/test/integration/RandomGraphNode-Layer1Node.test.ts +26 -24
  206. package/test/integration/StreamrNode.test.ts +4 -16
  207. package/test/integration/joining-streams-on-offline-peers.test.ts +7 -31
  208. package/test/integration/stream-without-default-entrypoints.test.ts +22 -23
  209. package/test/integration/streamEntryPointReplacing.test.ts +94 -0
  210. package/test/unit/DeliveryRpcLocal.test.ts +2 -1
  211. package/test/unit/EntrypointDiscovery.test.ts +11 -8
  212. package/test/unit/GroupKeyResponseTranslator.test.ts +1 -1
  213. package/test/unit/HandshakeRpcLocal.test.ts +80 -28
  214. package/test/unit/Handshaker.test.ts +14 -9
  215. package/test/unit/InspectSession.test.ts +5 -6
  216. package/test/unit/Inspector.test.ts +3 -4
  217. package/test/unit/NeighborFinder.test.ts +12 -9
  218. package/test/unit/NeighborUpdateRpcLocal.test.ts +139 -0
  219. package/test/unit/NodeList.test.ts +77 -80
  220. package/test/unit/Propagation.test.ts +21 -16
  221. package/test/unit/ProxyConnectionRpcRemote.test.ts +18 -12
  222. package/test/unit/RandomGraphNode.test.ts +23 -20
  223. package/test/unit/StreamMessageTranslator.test.ts +10 -8
  224. package/test/unit/StreamPartIDDataKey.test.ts +12 -0
  225. package/test/unit/StreamrNode.test.ts +2 -0
  226. package/test/unit/TemporaryConnectionRpcLocal.test.ts +38 -0
  227. package/test/unit/oldStreamMessageBinaryUtils.test.ts +39 -0
  228. package/test/utils/mock/MockHandshaker.ts +6 -5
  229. package/test/utils/mock/MockLayer0Node.ts +7 -2
  230. package/test/utils/mock/MockLayer1Node.ts +5 -2
  231. package/test/utils/mock/MockNeighborFinder.ts +3 -2
  232. package/test/utils/mock/MockNeighborUpdateManager.ts +3 -2
  233. package/test/utils/mock/Transport.ts +1 -1
  234. package/test/utils/utils.ts +40 -25
  235. package/tsconfig.jest.json +5 -4
  236. package/tsconfig.node.json +2 -2
  237. package/dist/src/identifiers.d.ts +0 -4
  238. package/dist/src/identifiers.js +0 -9
  239. package/dist/src/identifiers.js.map +0 -1
  240. package/src/identifiers.ts +0 -8
  241. package/test/unit/GroupKeyRequestTranslator.test.ts +0 -36
@@ -1,4 +1,4 @@
1
- // @generated by protobuf-ts 2.9.1 with parameter server_generic,generate_dependencies,long_type_number
1
+ // @generated by protobuf-ts 2.9.3 with parameter server_generic,generate_dependencies,long_type_number
2
2
  // @generated from protobuf file "packages/proto-rpc/protos/ProtoRpc.proto" (package "protorpc", syntax proto3)
3
3
  // tslint:disable
4
4
  import { MessageType } from "@protobuf-ts/runtime";
@@ -1,13 +1,18 @@
1
- // @generated by protobuf-ts 2.9.1 with parameter server_generic,generate_dependencies,long_type_number
1
+ // @generated by protobuf-ts 2.9.3 with parameter server_generic,generate_dependencies,long_type_number
2
2
  // @generated from protobuf file "packages/trackerless-network/protos/NetworkRpc.proto" (syntax proto3)
3
3
  // tslint:disable
4
+ import { NodeInfoRpc } from "./NetworkRpc";
5
+ import type { NodeInfoResponse } from "./NetworkRpc";
6
+ import type { NodeInfoRequest } from "./NetworkRpc";
4
7
  import { TemporaryConnectionRpc } from "./NetworkRpc";
8
+ import type { CloseTemporaryConnection } from "./NetworkRpc";
5
9
  import type { TemporaryConnectionResponse } from "./NetworkRpc";
6
10
  import type { TemporaryConnectionRequest } from "./NetworkRpc";
7
11
  import { NeighborUpdateRpc } from "./NetworkRpc";
8
12
  import type { NeighborUpdate } from "./NetworkRpc";
9
13
  import { HandshakeRpc } from "./NetworkRpc";
10
- import type { InterleaveNotice } from "./NetworkRpc";
14
+ import type { InterleaveResponse } from "./NetworkRpc";
15
+ import type { InterleaveRequest } from "./NetworkRpc";
11
16
  import type { StreamPartHandshakeResponse } from "./NetworkRpc";
12
17
  import type { StreamPartHandshakeRequest } from "./NetworkRpc";
13
18
  import { ProxyConnectionRpc } from "./NetworkRpc";
@@ -94,9 +99,9 @@ export interface IHandshakeRpcClient {
94
99
  */
95
100
  handshake(input: StreamPartHandshakeRequest, options?: RpcOptions): UnaryCall<StreamPartHandshakeRequest, StreamPartHandshakeResponse>;
96
101
  /**
97
- * @generated from protobuf rpc: interleaveNotice(InterleaveNotice) returns (google.protobuf.Empty);
102
+ * @generated from protobuf rpc: interleaveRequest(InterleaveRequest) returns (InterleaveResponse);
98
103
  */
99
- interleaveNotice(input: InterleaveNotice, options?: RpcOptions): UnaryCall<InterleaveNotice, Empty>;
104
+ interleaveRequest(input: InterleaveRequest, options?: RpcOptions): UnaryCall<InterleaveRequest, InterleaveResponse>;
100
105
  }
101
106
  /**
102
107
  * @generated from protobuf service HandshakeRpc
@@ -115,11 +120,11 @@ export class HandshakeRpcClient implements IHandshakeRpcClient, ServiceInfo {
115
120
  return stackIntercept<StreamPartHandshakeRequest, StreamPartHandshakeResponse>("unary", this._transport, method, opt, input);
116
121
  }
117
122
  /**
118
- * @generated from protobuf rpc: interleaveNotice(InterleaveNotice) returns (google.protobuf.Empty);
123
+ * @generated from protobuf rpc: interleaveRequest(InterleaveRequest) returns (InterleaveResponse);
119
124
  */
120
- interleaveNotice(input: InterleaveNotice, options?: RpcOptions): UnaryCall<InterleaveNotice, Empty> {
125
+ interleaveRequest(input: InterleaveRequest, options?: RpcOptions): UnaryCall<InterleaveRequest, InterleaveResponse> {
121
126
  const method = this.methods[1], opt = this._transport.mergeOptions(options);
122
- return stackIntercept<InterleaveNotice, Empty>("unary", this._transport, method, opt, input);
127
+ return stackIntercept<InterleaveRequest, InterleaveResponse>("unary", this._transport, method, opt, input);
123
128
  }
124
129
  }
125
130
  /**
@@ -156,6 +161,10 @@ export interface ITemporaryConnectionRpcClient {
156
161
  * @generated from protobuf rpc: openConnection(TemporaryConnectionRequest) returns (TemporaryConnectionResponse);
157
162
  */
158
163
  openConnection(input: TemporaryConnectionRequest, options?: RpcOptions): UnaryCall<TemporaryConnectionRequest, TemporaryConnectionResponse>;
164
+ /**
165
+ * @generated from protobuf rpc: closeConnection(CloseTemporaryConnection) returns (google.protobuf.Empty);
166
+ */
167
+ closeConnection(input: CloseTemporaryConnection, options?: RpcOptions): UnaryCall<CloseTemporaryConnection, Empty>;
159
168
  }
160
169
  /**
161
170
  * @generated from protobuf service TemporaryConnectionRpc
@@ -173,4 +182,37 @@ export class TemporaryConnectionRpcClient implements ITemporaryConnectionRpcClie
173
182
  const method = this.methods[0], opt = this._transport.mergeOptions(options);
174
183
  return stackIntercept<TemporaryConnectionRequest, TemporaryConnectionResponse>("unary", this._transport, method, opt, input);
175
184
  }
185
+ /**
186
+ * @generated from protobuf rpc: closeConnection(CloseTemporaryConnection) returns (google.protobuf.Empty);
187
+ */
188
+ closeConnection(input: CloseTemporaryConnection, options?: RpcOptions): UnaryCall<CloseTemporaryConnection, Empty> {
189
+ const method = this.methods[1], opt = this._transport.mergeOptions(options);
190
+ return stackIntercept<CloseTemporaryConnection, Empty>("unary", this._transport, method, opt, input);
191
+ }
192
+ }
193
+ /**
194
+ * @generated from protobuf service NodeInfoRpc
195
+ */
196
+ export interface INodeInfoRpcClient {
197
+ /**
198
+ * @generated from protobuf rpc: getInfo(NodeInfoRequest) returns (NodeInfoResponse);
199
+ */
200
+ getInfo(input: NodeInfoRequest, options?: RpcOptions): UnaryCall<NodeInfoRequest, NodeInfoResponse>;
201
+ }
202
+ /**
203
+ * @generated from protobuf service NodeInfoRpc
204
+ */
205
+ export class NodeInfoRpcClient implements INodeInfoRpcClient, ServiceInfo {
206
+ typeName = NodeInfoRpc.typeName;
207
+ methods = NodeInfoRpc.methods;
208
+ options = NodeInfoRpc.options;
209
+ constructor(private readonly _transport: RpcTransport) {
210
+ }
211
+ /**
212
+ * @generated from protobuf rpc: getInfo(NodeInfoRequest) returns (NodeInfoResponse);
213
+ */
214
+ getInfo(input: NodeInfoRequest, options?: RpcOptions): UnaryCall<NodeInfoRequest, NodeInfoResponse> {
215
+ const method = this.methods[0], opt = this._transport.mergeOptions(options);
216
+ return stackIntercept<NodeInfoRequest, NodeInfoResponse>("unary", this._transport, method, opt, input);
217
+ }
176
218
  }
@@ -1,10 +1,14 @@
1
- // @generated by protobuf-ts 2.9.1 with parameter server_generic,generate_dependencies,long_type_number
1
+ // @generated by protobuf-ts 2.9.3 with parameter server_generic,generate_dependencies,long_type_number
2
2
  // @generated from protobuf file "packages/trackerless-network/protos/NetworkRpc.proto" (syntax proto3)
3
3
  // tslint:disable
4
+ import { NodeInfoResponse } from "./NetworkRpc";
5
+ import { NodeInfoRequest } from "./NetworkRpc";
6
+ import { CloseTemporaryConnection } from "./NetworkRpc";
4
7
  import { TemporaryConnectionResponse } from "./NetworkRpc";
5
8
  import { TemporaryConnectionRequest } from "./NetworkRpc";
6
9
  import { NeighborUpdate } from "./NetworkRpc";
7
- import { InterleaveNotice } from "./NetworkRpc";
10
+ import { InterleaveResponse } from "./NetworkRpc";
11
+ import { InterleaveRequest } from "./NetworkRpc";
8
12
  import { StreamPartHandshakeResponse } from "./NetworkRpc";
9
13
  import { StreamPartHandshakeRequest } from "./NetworkRpc";
10
14
  import { ProxyConnectionResponse } from "./NetworkRpc";
@@ -44,9 +48,9 @@ export interface IHandshakeRpc<T = ServerCallContext> {
44
48
  */
45
49
  handshake(request: StreamPartHandshakeRequest, context: T): Promise<StreamPartHandshakeResponse>;
46
50
  /**
47
- * @generated from protobuf rpc: interleaveNotice(InterleaveNotice) returns (google.protobuf.Empty);
51
+ * @generated from protobuf rpc: interleaveRequest(InterleaveRequest) returns (InterleaveResponse);
48
52
  */
49
- interleaveNotice(request: InterleaveNotice, context: T): Promise<Empty>;
53
+ interleaveRequest(request: InterleaveRequest, context: T): Promise<InterleaveResponse>;
50
54
  }
51
55
  /**
52
56
  * @generated from protobuf service NeighborUpdateRpc
@@ -65,4 +69,17 @@ export interface ITemporaryConnectionRpc<T = ServerCallContext> {
65
69
  * @generated from protobuf rpc: openConnection(TemporaryConnectionRequest) returns (TemporaryConnectionResponse);
66
70
  */
67
71
  openConnection(request: TemporaryConnectionRequest, context: T): Promise<TemporaryConnectionResponse>;
72
+ /**
73
+ * @generated from protobuf rpc: closeConnection(CloseTemporaryConnection) returns (google.protobuf.Empty);
74
+ */
75
+ closeConnection(request: CloseTemporaryConnection, context: T): Promise<Empty>;
76
+ }
77
+ /**
78
+ * @generated from protobuf service NodeInfoRpc
79
+ */
80
+ export interface INodeInfoRpc<T = ServerCallContext> {
81
+ /**
82
+ * @generated from protobuf rpc: getInfo(NodeInfoRequest) returns (NodeInfoResponse);
83
+ */
84
+ getInfo(request: NodeInfoRequest, context: T): Promise<NodeInfoResponse>;
68
85
  }
@@ -1,4 +1,4 @@
1
- // @generated by protobuf-ts 2.9.1 with parameter server_generic,generate_dependencies,long_type_number
1
+ // @generated by protobuf-ts 2.9.3 with parameter server_generic,generate_dependencies,long_type_number
2
2
  // @generated from protobuf file "packages/trackerless-network/protos/NetworkRpc.proto" (syntax proto3)
3
3
  // tslint:disable
4
4
  import { Empty } from "../../../google/protobuf/empty";
@@ -52,41 +52,70 @@ export interface MessageRef {
52
52
  */
53
53
  export interface StreamMessage {
54
54
  /**
55
- * @generated from protobuf field: StreamMessageType messageType = 1;
55
+ * this is a required field but in generated NetworkRpc.ts it is incorrectly annotated as optional (NET-1082)
56
+ *
57
+ * @generated from protobuf field: MessageID messageId = 1;
56
58
  */
57
- messageType: StreamMessageType;
59
+ messageId?: MessageID;
58
60
  /**
59
- * @generated from protobuf field: ContentType contentType = 2;
61
+ * @generated from protobuf field: optional MessageRef previousMessageRef = 2;
60
62
  */
61
- contentType: ContentType;
63
+ previousMessageRef?: MessageRef;
62
64
  /**
63
- * @generated from protobuf field: EncryptionType encryptionType = 3;
65
+ * @generated from protobuf field: bytes signature = 3;
64
66
  */
65
- encryptionType: EncryptionType;
67
+ signature: Uint8Array;
66
68
  /**
67
- * @generated from protobuf field: bytes content = 4;
69
+ * @generated from protobuf field: SignatureType signatureType = 4;
68
70
  */
69
- content: Uint8Array;
71
+ signatureType: SignatureType;
70
72
  /**
71
- * @generated from protobuf field: bytes signature = 5;
73
+ * @generated from protobuf oneof: body
72
74
  */
73
- signature: Uint8Array;
75
+ body: {
76
+ oneofKind: "contentMessage";
77
+ /**
78
+ * @generated from protobuf field: ContentMessage contentMessage = 5;
79
+ */
80
+ contentMessage: ContentMessage;
81
+ } | {
82
+ oneofKind: "groupKeyRequest";
83
+ /**
84
+ * @generated from protobuf field: GroupKeyRequest groupKeyRequest = 6;
85
+ */
86
+ groupKeyRequest: GroupKeyRequest;
87
+ } | {
88
+ oneofKind: "groupKeyResponse";
89
+ /**
90
+ * @generated from protobuf field: GroupKeyResponse groupKeyResponse = 7;
91
+ */
92
+ groupKeyResponse: GroupKeyResponse;
93
+ } | {
94
+ oneofKind: undefined;
95
+ };
96
+ }
97
+ /**
98
+ * @generated from protobuf message ContentMessage
99
+ */
100
+ export interface ContentMessage {
74
101
  /**
75
- * this is a required field but in generated NetworkRpc.ts it is incorrectly annotated as optional (NET-1082)
76
- *
77
- * @generated from protobuf field: MessageID messageId = 6;
102
+ * @generated from protobuf field: bytes content = 1;
78
103
  */
79
- messageId?: MessageID;
104
+ content: Uint8Array;
80
105
  /**
81
- * @generated from protobuf field: optional MessageRef previousMessageRef = 7;
106
+ * @generated from protobuf field: ContentType contentType = 2;
82
107
  */
83
- previousMessageRef?: MessageRef;
108
+ contentType: ContentType;
84
109
  /**
85
- * @generated from protobuf field: optional string groupKeyId = 8;
110
+ * @generated from protobuf field: EncryptionType encryptionType = 3;
111
+ */
112
+ encryptionType: EncryptionType;
113
+ /**
114
+ * @generated from protobuf field: optional string groupKeyId = 4;
86
115
  */
87
116
  groupKeyId?: string;
88
117
  /**
89
- * @generated from protobuf field: optional GroupKey newGroupKey = 9;
118
+ * @generated from protobuf field: optional GroupKey newGroupKey = 5;
90
119
  */
91
120
  newGroupKey?: GroupKey;
92
121
  }
@@ -184,20 +213,25 @@ export interface StreamPartHandshakeResponse {
184
213
  interleaveTargetDescriptor?: PeerDescriptor;
185
214
  }
186
215
  /**
187
- * @generated from protobuf message InterleaveNotice
216
+ * @generated from protobuf message InterleaveRequest
188
217
  */
189
- export interface InterleaveNotice {
190
- /**
191
- * @generated from protobuf field: string streamPartId = 1;
192
- */
193
- streamPartId: string;
218
+ export interface InterleaveRequest {
194
219
  /**
195
220
  * this is a required field but in generated NetworkRpc.ts it is incorrectly annotated as optional (NET-1082)
196
221
  *
197
- * @generated from protobuf field: dht.PeerDescriptor interleaveTargetDescriptor = 2;
222
+ * @generated from protobuf field: dht.PeerDescriptor interleaveTargetDescriptor = 1;
198
223
  */
199
224
  interleaveTargetDescriptor?: PeerDescriptor;
200
225
  }
226
+ /**
227
+ * @generated from protobuf message InterleaveResponse
228
+ */
229
+ export interface InterleaveResponse {
230
+ /**
231
+ * @generated from protobuf field: bool accepted = 1;
232
+ */
233
+ accepted: boolean;
234
+ }
201
235
  /**
202
236
  * @generated from protobuf message LeaveStreamPartNotice
203
237
  */
@@ -206,6 +240,10 @@ export interface LeaveStreamPartNotice {
206
240
  * @generated from protobuf field: string streamPartId = 1;
207
241
  */
208
242
  streamPartId: string;
243
+ /**
244
+ * @generated from protobuf field: bool isEntryPoint = 2;
245
+ */
246
+ isEntryPoint: boolean;
209
247
  }
210
248
  /**
211
249
  * @generated from protobuf message NeighborUpdate
@@ -260,6 +298,67 @@ export interface TemporaryConnectionResponse {
260
298
  */
261
299
  accepted: boolean;
262
300
  }
301
+ /**
302
+ * @generated from protobuf message CloseTemporaryConnection
303
+ */
304
+ export interface CloseTemporaryConnection {
305
+ }
306
+ /**
307
+ * @generated from protobuf message StreamPartitionInfo
308
+ */
309
+ export interface StreamPartitionInfo {
310
+ /**
311
+ * @generated from protobuf field: string id = 1;
312
+ */
313
+ id: string;
314
+ /**
315
+ * @generated from protobuf field: repeated dht.PeerDescriptor controlLayerNeighbors = 2;
316
+ */
317
+ controlLayerNeighbors: PeerDescriptor[];
318
+ /**
319
+ * @generated from protobuf field: repeated dht.PeerDescriptor deliveryLayerNeighbors = 3;
320
+ */
321
+ deliveryLayerNeighbors: PeerDescriptor[];
322
+ }
323
+ /**
324
+ * @generated from protobuf message ControlLayerInfo
325
+ */
326
+ export interface ControlLayerInfo {
327
+ /**
328
+ * @generated from protobuf field: repeated dht.PeerDescriptor neighbors = 1;
329
+ */
330
+ neighbors: PeerDescriptor[];
331
+ /**
332
+ * @generated from protobuf field: repeated dht.PeerDescriptor connections = 2;
333
+ */
334
+ connections: PeerDescriptor[];
335
+ }
336
+ /**
337
+ * @generated from protobuf message NodeInfoRequest
338
+ */
339
+ export interface NodeInfoRequest {
340
+ }
341
+ /**
342
+ * @generated from protobuf message NodeInfoResponse
343
+ */
344
+ export interface NodeInfoResponse {
345
+ /**
346
+ * @generated from protobuf field: dht.PeerDescriptor peerDescriptor = 1;
347
+ */
348
+ peerDescriptor?: PeerDescriptor;
349
+ /**
350
+ * @generated from protobuf field: repeated StreamPartitionInfo streamPartitions = 2;
351
+ */
352
+ streamPartitions: StreamPartitionInfo[];
353
+ /**
354
+ * @generated from protobuf field: optional ControlLayerInfo controlLayer = 3;
355
+ */
356
+ controlLayer?: ControlLayerInfo;
357
+ /**
358
+ * @generated from protobuf field: string version = 4;
359
+ */
360
+ version: string;
361
+ }
263
362
  /**
264
363
  * @generated from protobuf enum StreamMessageType
265
364
  */
@@ -303,6 +402,19 @@ export enum EncryptionType {
303
402
  */
304
403
  AES = 1
305
404
  }
405
+ /**
406
+ * @generated from protobuf enum SignatureType
407
+ */
408
+ export enum SignatureType {
409
+ /**
410
+ * @generated from protobuf enum value: LEGACY_SECP256K1 = 0;
411
+ */
412
+ LEGACY_SECP256K1 = 0,
413
+ /**
414
+ * @generated from protobuf enum value: SECP256K1 = 1;
415
+ */
416
+ SECP256K1 = 1
417
+ }
306
418
  /**
307
419
  * @generated from protobuf enum ProxyDirection
308
420
  */
@@ -350,15 +462,13 @@ export const MessageRef = new MessageRef$Type();
350
462
  class StreamMessage$Type extends MessageType<StreamMessage> {
351
463
  constructor() {
352
464
  super("StreamMessage", [
353
- { no: 1, name: "messageType", kind: "enum", T: () => ["StreamMessageType", StreamMessageType] },
354
- { no: 2, name: "contentType", kind: "enum", T: () => ["ContentType", ContentType] },
355
- { no: 3, name: "encryptionType", kind: "enum", T: () => ["EncryptionType", EncryptionType] },
356
- { no: 4, name: "content", kind: "scalar", T: 12 /*ScalarType.BYTES*/ },
357
- { no: 5, name: "signature", kind: "scalar", T: 12 /*ScalarType.BYTES*/ },
358
- { no: 6, name: "messageId", kind: "message", T: () => MessageID },
359
- { no: 7, name: "previousMessageRef", kind: "message", T: () => MessageRef },
360
- { no: 8, name: "groupKeyId", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ },
361
- { no: 9, name: "newGroupKey", kind: "message", T: () => GroupKey }
465
+ { no: 1, name: "messageId", kind: "message", T: () => MessageID },
466
+ { no: 2, name: "previousMessageRef", kind: "message", T: () => MessageRef },
467
+ { no: 3, name: "signature", kind: "scalar", T: 12 /*ScalarType.BYTES*/ },
468
+ { no: 4, name: "signatureType", kind: "enum", T: () => ["SignatureType", SignatureType] },
469
+ { no: 5, name: "contentMessage", kind: "message", oneof: "body", T: () => ContentMessage },
470
+ { no: 6, name: "groupKeyRequest", kind: "message", oneof: "body", T: () => GroupKeyRequest },
471
+ { no: 7, name: "groupKeyResponse", kind: "message", oneof: "body", T: () => GroupKeyResponse }
362
472
  ]);
363
473
  }
364
474
  }
@@ -367,6 +477,22 @@ class StreamMessage$Type extends MessageType<StreamMessage> {
367
477
  */
368
478
  export const StreamMessage = new StreamMessage$Type();
369
479
  // @generated message type with reflection information, may provide speed optimized methods
480
+ class ContentMessage$Type extends MessageType<ContentMessage> {
481
+ constructor() {
482
+ super("ContentMessage", [
483
+ { no: 1, name: "content", kind: "scalar", T: 12 /*ScalarType.BYTES*/ },
484
+ { no: 2, name: "contentType", kind: "enum", T: () => ["ContentType", ContentType] },
485
+ { no: 3, name: "encryptionType", kind: "enum", T: () => ["EncryptionType", EncryptionType] },
486
+ { no: 4, name: "groupKeyId", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ },
487
+ { no: 5, name: "newGroupKey", kind: "message", T: () => GroupKey }
488
+ ]);
489
+ }
490
+ }
491
+ /**
492
+ * @generated MessageType for protobuf message ContentMessage
493
+ */
494
+ export const ContentMessage = new ContentMessage$Type();
495
+ // @generated message type with reflection information, may provide speed optimized methods
370
496
  class GroupKeyRequest$Type extends MessageType<GroupKeyRequest> {
371
497
  constructor() {
372
498
  super("GroupKeyRequest", [
@@ -439,23 +565,35 @@ class StreamPartHandshakeResponse$Type extends MessageType<StreamPartHandshakeRe
439
565
  */
440
566
  export const StreamPartHandshakeResponse = new StreamPartHandshakeResponse$Type();
441
567
  // @generated message type with reflection information, may provide speed optimized methods
442
- class InterleaveNotice$Type extends MessageType<InterleaveNotice> {
568
+ class InterleaveRequest$Type extends MessageType<InterleaveRequest> {
443
569
  constructor() {
444
- super("InterleaveNotice", [
445
- { no: 1, name: "streamPartId", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
446
- { no: 2, name: "interleaveTargetDescriptor", kind: "message", T: () => PeerDescriptor }
570
+ super("InterleaveRequest", [
571
+ { no: 1, name: "interleaveTargetDescriptor", kind: "message", T: () => PeerDescriptor }
447
572
  ]);
448
573
  }
449
574
  }
450
575
  /**
451
- * @generated MessageType for protobuf message InterleaveNotice
576
+ * @generated MessageType for protobuf message InterleaveRequest
452
577
  */
453
- export const InterleaveNotice = new InterleaveNotice$Type();
578
+ export const InterleaveRequest = new InterleaveRequest$Type();
579
+ // @generated message type with reflection information, may provide speed optimized methods
580
+ class InterleaveResponse$Type extends MessageType<InterleaveResponse> {
581
+ constructor() {
582
+ super("InterleaveResponse", [
583
+ { no: 1, name: "accepted", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }
584
+ ]);
585
+ }
586
+ }
587
+ /**
588
+ * @generated MessageType for protobuf message InterleaveResponse
589
+ */
590
+ export const InterleaveResponse = new InterleaveResponse$Type();
454
591
  // @generated message type with reflection information, may provide speed optimized methods
455
592
  class LeaveStreamPartNotice$Type extends MessageType<LeaveStreamPartNotice> {
456
593
  constructor() {
457
594
  super("LeaveStreamPartNotice", [
458
- { no: 1, name: "streamPartId", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
595
+ { no: 1, name: "streamPartId", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
596
+ { no: 2, name: "isEntryPoint", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }
459
597
  ]);
460
598
  }
461
599
  }
@@ -524,6 +662,68 @@ class TemporaryConnectionResponse$Type extends MessageType<TemporaryConnectionRe
524
662
  * @generated MessageType for protobuf message TemporaryConnectionResponse
525
663
  */
526
664
  export const TemporaryConnectionResponse = new TemporaryConnectionResponse$Type();
665
+ // @generated message type with reflection information, may provide speed optimized methods
666
+ class CloseTemporaryConnection$Type extends MessageType<CloseTemporaryConnection> {
667
+ constructor() {
668
+ super("CloseTemporaryConnection", []);
669
+ }
670
+ }
671
+ /**
672
+ * @generated MessageType for protobuf message CloseTemporaryConnection
673
+ */
674
+ export const CloseTemporaryConnection = new CloseTemporaryConnection$Type();
675
+ // @generated message type with reflection information, may provide speed optimized methods
676
+ class StreamPartitionInfo$Type extends MessageType<StreamPartitionInfo> {
677
+ constructor() {
678
+ super("StreamPartitionInfo", [
679
+ { no: 1, name: "id", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
680
+ { no: 2, name: "controlLayerNeighbors", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => PeerDescriptor },
681
+ { no: 3, name: "deliveryLayerNeighbors", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => PeerDescriptor }
682
+ ]);
683
+ }
684
+ }
685
+ /**
686
+ * @generated MessageType for protobuf message StreamPartitionInfo
687
+ */
688
+ export const StreamPartitionInfo = new StreamPartitionInfo$Type();
689
+ // @generated message type with reflection information, may provide speed optimized methods
690
+ class ControlLayerInfo$Type extends MessageType<ControlLayerInfo> {
691
+ constructor() {
692
+ super("ControlLayerInfo", [
693
+ { no: 1, name: "neighbors", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => PeerDescriptor },
694
+ { no: 2, name: "connections", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => PeerDescriptor }
695
+ ]);
696
+ }
697
+ }
698
+ /**
699
+ * @generated MessageType for protobuf message ControlLayerInfo
700
+ */
701
+ export const ControlLayerInfo = new ControlLayerInfo$Type();
702
+ // @generated message type with reflection information, may provide speed optimized methods
703
+ class NodeInfoRequest$Type extends MessageType<NodeInfoRequest> {
704
+ constructor() {
705
+ super("NodeInfoRequest", []);
706
+ }
707
+ }
708
+ /**
709
+ * @generated MessageType for protobuf message NodeInfoRequest
710
+ */
711
+ export const NodeInfoRequest = new NodeInfoRequest$Type();
712
+ // @generated message type with reflection information, may provide speed optimized methods
713
+ class NodeInfoResponse$Type extends MessageType<NodeInfoResponse> {
714
+ constructor() {
715
+ super("NodeInfoResponse", [
716
+ { no: 1, name: "peerDescriptor", kind: "message", T: () => PeerDescriptor },
717
+ { no: 2, name: "streamPartitions", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => StreamPartitionInfo },
718
+ { no: 3, name: "controlLayer", kind: "message", T: () => ControlLayerInfo },
719
+ { no: 4, name: "version", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
720
+ ]);
721
+ }
722
+ }
723
+ /**
724
+ * @generated MessageType for protobuf message NodeInfoResponse
725
+ */
726
+ export const NodeInfoResponse = new NodeInfoResponse$Type();
527
727
  /**
528
728
  * @generated ServiceType for protobuf service DeliveryRpc
529
729
  */
@@ -542,7 +742,7 @@ export const ProxyConnectionRpc = new ServiceType("ProxyConnectionRpc", [
542
742
  */
543
743
  export const HandshakeRpc = new ServiceType("HandshakeRpc", [
544
744
  { name: "handshake", options: {}, I: StreamPartHandshakeRequest, O: StreamPartHandshakeResponse },
545
- { name: "interleaveNotice", options: {}, I: InterleaveNotice, O: Empty }
745
+ { name: "interleaveRequest", options: {}, I: InterleaveRequest, O: InterleaveResponse }
546
746
  ]);
547
747
  /**
548
748
  * @generated ServiceType for protobuf service NeighborUpdateRpc
@@ -554,5 +754,12 @@ export const NeighborUpdateRpc = new ServiceType("NeighborUpdateRpc", [
554
754
  * @generated ServiceType for protobuf service TemporaryConnectionRpc
555
755
  */
556
756
  export const TemporaryConnectionRpc = new ServiceType("TemporaryConnectionRpc", [
557
- { name: "openConnection", options: {}, I: TemporaryConnectionRequest, O: TemporaryConnectionResponse }
757
+ { name: "openConnection", options: {}, I: TemporaryConnectionRequest, O: TemporaryConnectionResponse },
758
+ { name: "closeConnection", options: {}, I: CloseTemporaryConnection, O: Empty }
759
+ ]);
760
+ /**
761
+ * @generated ServiceType for protobuf service NodeInfoRpc
762
+ */
763
+ export const NodeInfoRpc = new ServiceType("NodeInfoRpc", [
764
+ { name: "getInfo", options: {}, I: NodeInfoRequest, O: NodeInfoResponse }
558
765
  ]);
@@ -0,0 +1,60 @@
1
+ /* eslint-disable no-console */
2
+
3
+ import { groupBy, range } from 'lodash'
4
+ import { streamPartIdToDataKey } from '../../src/logic/EntryPointDiscovery'
5
+ import { StreamPartIDUtils } from '@streamr/protocol'
6
+ import { DhtAddress } from '@streamr/dht'
7
+
8
+ describe('StreamPartIdDataKeyDistribution', () => {
9
+
10
+ it('partitions are well distributed', () => {
11
+
12
+ const streamId = 'stream'
13
+ const dataKeys = range(100).map((i) => {
14
+ const streamPartId = StreamPartIDUtils.parse(streamId + '#' + i)
15
+ return streamPartIdToDataKey(streamPartId)
16
+ })
17
+
18
+ const byInitials = groupBy(dataKeys, (dataKey: DhtAddress) => dataKey[0])
19
+ expect(Object.keys(byInitials).length).toEqual(16)
20
+ console.log(Object.values(byInitials).map((a) => a.length))
21
+ })
22
+
23
+ it('streamIds are well distributed', () => {
24
+ const dataKeys = range(10000).map(() => {
25
+ const streamPartId = StreamPartIDUtils.parse(Math.random().toString(32).substr(2, 32) + '#0')
26
+ return streamPartIdToDataKey(streamPartId)
27
+ })
28
+ const byInitials = groupBy(dataKeys, (dataKey: DhtAddress) => dataKey[0])
29
+ expect(Object.keys(byInitials).length).toEqual(16)
30
+ console.log(Object.values(byInitials).map((a) => a.length))
31
+ })
32
+
33
+ it('streamPartIds are well distributed', () => {
34
+ const streamIds = range(10000).map(() => Math.random().toString(32).substr(2, 32))
35
+ const dataKeys: DhtAddress[] = []
36
+ streamIds.forEach((streamId) => {
37
+ range(100).forEach((i) => {
38
+ const streamPartId = StreamPartIDUtils.parse(streamId + '#' + i)
39
+ dataKeys.push(streamPartIdToDataKey(streamPartId))
40
+ })
41
+ })
42
+
43
+ const byInitials = groupBy(dataKeys, (dataKey: DhtAddress) => dataKey[0])
44
+ expect(Object.keys(byInitials).length).toEqual(16)
45
+ console.log(Object.values(byInitials).map((a) => a.length))
46
+
47
+ const byTwoInitials = groupBy(dataKeys, (dataKey: DhtAddress) => dataKey[0] + dataKey[1])
48
+ expect(Object.keys(byTwoInitials).length).toEqual(16 * 16)
49
+ console.log(Object.values(byTwoInitials).map((a) => a.length))
50
+
51
+ const byThreeInitials = groupBy(dataKeys, (dataKey: DhtAddress) => dataKey[0] + dataKey[1] + dataKey[2])
52
+ expect(Object.keys(byThreeInitials).length).toEqual(16 * 16 * 16)
53
+ console.log(Object.values(byThreeInitials).map((a) => a.length))
54
+
55
+ const byFourInitials = groupBy(dataKeys, (dataKey: DhtAddress) => dataKey[0] + dataKey[1] + dataKey[2] + dataKey[3])
56
+ expect(Object.keys(byFourInitials).length).toEqual(16 * 16 * 16 * 16)
57
+ console.log(Object.values(byFourInitials).map((a) => a.length))
58
+ })
59
+
60
+ })