@streamr/trackerless-network 100.0.0-testnet-two.4 → 100.0.0-testnet-three.0

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 (176) hide show
  1. package/dist/src/NetworkNode.d.ts +2 -1
  2. package/dist/src/NetworkNode.js +6 -2
  3. package/dist/src/NetworkNode.js.map +1 -1
  4. package/dist/src/NetworkStack.d.ts +6 -2
  5. package/dist/src/NetworkStack.js +21 -1
  6. package/dist/src/NetworkStack.js.map +1 -1
  7. package/dist/src/exports.d.ts +1 -0
  8. package/dist/src/exports.js +4 -1
  9. package/dist/src/exports.js.map +1 -1
  10. package/dist/src/logic/DeliveryRpcLocal.js +1 -0
  11. package/dist/src/logic/DeliveryRpcLocal.js.map +1 -1
  12. package/dist/src/logic/DuplicateMessageDetector.d.ts +3 -3
  13. package/dist/src/logic/DuplicateMessageDetector.js +10 -6
  14. package/dist/src/logic/DuplicateMessageDetector.js.map +1 -1
  15. package/dist/src/logic/EntryPointDiscovery.js +8 -5
  16. package/dist/src/logic/EntryPointDiscovery.js.map +1 -1
  17. package/dist/src/logic/Layer0Node.d.ts +2 -0
  18. package/dist/src/logic/Layer1Node.d.ts +4 -4
  19. package/dist/src/logic/NodeList.d.ts +6 -8
  20. package/dist/src/logic/NodeList.js +10 -12
  21. package/dist/src/logic/NodeList.js.map +1 -1
  22. package/dist/src/logic/RandomGraphNode.d.ts +5 -5
  23. package/dist/src/logic/RandomGraphNode.js +26 -22
  24. package/dist/src/logic/RandomGraphNode.js.map +1 -1
  25. package/dist/src/logic/StreamrNode.d.ts +3 -2
  26. package/dist/src/logic/StreamrNode.js +25 -6
  27. package/dist/src/logic/StreamrNode.js.map +1 -1
  28. package/dist/src/logic/createRandomGraphNode.d.ts +2 -2
  29. package/dist/src/logic/createRandomGraphNode.js +14 -14
  30. package/dist/src/logic/createRandomGraphNode.js.map +1 -1
  31. package/dist/src/logic/inspect/InspectSession.js +3 -2
  32. package/dist/src/logic/inspect/InspectSession.js.map +1 -1
  33. package/dist/src/logic/inspect/Inspector.d.ts +2 -3
  34. package/dist/src/logic/inspect/Inspector.js +7 -1
  35. package/dist/src/logic/inspect/Inspector.js.map +1 -1
  36. package/dist/src/logic/neighbor-discovery/HandshakeRpcLocal.d.ts +1 -1
  37. package/dist/src/logic/neighbor-discovery/HandshakeRpcLocal.js +18 -17
  38. package/dist/src/logic/neighbor-discovery/HandshakeRpcLocal.js.map +1 -1
  39. package/dist/src/logic/neighbor-discovery/HandshakeRpcRemote.js.map +1 -1
  40. package/dist/src/logic/neighbor-discovery/Handshaker.d.ts +3 -4
  41. package/dist/src/logic/neighbor-discovery/Handshaker.js +29 -27
  42. package/dist/src/logic/neighbor-discovery/Handshaker.js.map +1 -1
  43. package/dist/src/logic/neighbor-discovery/NeighborFinder.d.ts +1 -1
  44. package/dist/src/logic/neighbor-discovery/NeighborFinder.js +4 -2
  45. package/dist/src/logic/neighbor-discovery/NeighborFinder.js.map +1 -1
  46. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.d.ts +1 -1
  47. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js +8 -4
  48. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js.map +1 -1
  49. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.d.ts +1 -1
  50. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.js +5 -4
  51. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.js.map +1 -1
  52. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcRemote.js.map +1 -1
  53. package/dist/src/logic/node-info/NodeInfoClient.d.ts +9 -0
  54. package/dist/src/logic/node-info/NodeInfoClient.js +19 -0
  55. package/dist/src/logic/node-info/NodeInfoClient.js.map +1 -0
  56. package/dist/src/logic/node-info/NodeInfoRpcLocal.d.ts +12 -0
  57. package/dist/src/logic/node-info/NodeInfoRpcLocal.js +29 -0
  58. package/dist/src/logic/node-info/NodeInfoRpcLocal.js.map +1 -0
  59. package/dist/src/logic/node-info/NodeInfoRpcRemote.d.ts +6 -0
  60. package/dist/src/logic/node-info/NodeInfoRpcRemote.js +11 -0
  61. package/dist/src/logic/node-info/NodeInfoRpcRemote.js.map +1 -0
  62. package/dist/src/logic/propagation/FifoMapWithTTL.js +7 -3
  63. package/dist/src/logic/propagation/FifoMapWithTTL.js.map +1 -1
  64. package/dist/src/logic/propagation/Propagation.js +3 -0
  65. package/dist/src/logic/propagation/Propagation.js.map +1 -1
  66. package/dist/src/logic/propagation/PropagationTaskStore.js +1 -0
  67. package/dist/src/logic/propagation/PropagationTaskStore.js.map +1 -1
  68. package/dist/src/logic/protocol-integration/stream-message/GroupKeyRequestTranslator.js +1 -1
  69. package/dist/src/logic/protocol-integration/stream-message/GroupKeyRequestTranslator.js.map +1 -1
  70. package/dist/src/logic/protocol-integration/stream-message/GroupKeyResponseTranslator.js +1 -1
  71. package/dist/src/logic/protocol-integration/stream-message/GroupKeyResponseTranslator.js.map +1 -1
  72. package/dist/src/logic/protocol-integration/stream-message/StreamMessageTranslator.js +43 -15
  73. package/dist/src/logic/protocol-integration/stream-message/StreamMessageTranslator.js.map +1 -1
  74. package/dist/src/logic/protocol-integration/stream-message/oldStreamMessageBinaryUtils.d.ts +3 -0
  75. package/dist/src/logic/protocol-integration/stream-message/oldStreamMessageBinaryUtils.js +14 -0
  76. package/dist/src/logic/protocol-integration/stream-message/oldStreamMessageBinaryUtils.js.map +1 -0
  77. package/dist/src/logic/proxy/ProxyClient.d.ts +1 -1
  78. package/dist/src/logic/proxy/ProxyClient.js +18 -11
  79. package/dist/src/logic/proxy/ProxyClient.js.map +1 -1
  80. package/dist/src/logic/proxy/ProxyConnectionRpcLocal.js +2 -1
  81. package/dist/src/logic/proxy/ProxyConnectionRpcLocal.js.map +1 -1
  82. package/dist/src/logic/proxy/ProxyConnectionRpcRemote.js.map +1 -1
  83. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.d.ts +2 -2
  84. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.js +4 -2
  85. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.js.map +1 -1
  86. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcRemote.js.map +1 -1
  87. package/dist/src/logic/utils.js.map +1 -1
  88. package/dist/src/proto/google/protobuf/any.js.map +1 -1
  89. package/dist/src/proto/google/protobuf/timestamp.js.map +1 -1
  90. package/dist/src/proto/packages/dht/protos/DhtRpc.client.d.ts +4 -5
  91. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js +38 -29
  92. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js.map +1 -1
  93. package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +22 -12
  94. package/dist/src/proto/packages/dht/protos/DhtRpc.js +11 -16
  95. package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
  96. package/dist/src/proto/packages/dht/protos/DhtRpc.server.d.ts +2 -3
  97. package/dist/src/proto/packages/proto-rpc/protos/ProtoRpc.js +1 -1
  98. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.d.ts +27 -0
  99. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.js +43 -17
  100. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.js.map +1 -1
  101. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.d.ts +106 -5
  102. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.js +79 -7
  103. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.js.map +1 -1
  104. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.server.d.ts +11 -0
  105. package/dist/test/benchmark/first-message.js +7 -5
  106. package/dist/test/benchmark/first-message.js.map +1 -1
  107. package/dist/test/utils/utils.js +2 -1
  108. package/dist/test/utils/utils.js.map +1 -1
  109. package/jest.config.js +3 -38
  110. package/package.json +7 -7
  111. package/protos/NetworkRpc.proto +34 -5
  112. package/src/NetworkNode.ts +5 -1
  113. package/src/NetworkStack.ts +23 -2
  114. package/src/exports.ts +4 -0
  115. package/src/logic/DuplicateMessageDetector.ts +7 -7
  116. package/src/logic/EntryPointDiscovery.ts +3 -3
  117. package/src/logic/Layer0Node.ts +2 -0
  118. package/src/logic/Layer1Node.ts +4 -4
  119. package/src/logic/NodeList.ts +9 -15
  120. package/src/logic/RandomGraphNode.ts +24 -23
  121. package/src/logic/StreamrNode.ts +18 -4
  122. package/src/logic/createRandomGraphNode.ts +17 -17
  123. package/src/logic/inspect/Inspector.ts +3 -4
  124. package/src/logic/neighbor-discovery/HandshakeRpcLocal.ts +18 -18
  125. package/src/logic/neighbor-discovery/Handshaker.ts +31 -32
  126. package/src/logic/neighbor-discovery/NeighborFinder.ts +2 -2
  127. package/src/logic/neighbor-discovery/NeighborUpdateManager.ts +6 -5
  128. package/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.ts +5 -5
  129. package/src/logic/node-info/NodeInfoClient.ts +21 -0
  130. package/src/logic/node-info/NodeInfoRpcLocal.ts +35 -0
  131. package/src/logic/node-info/NodeInfoRpcRemote.ts +11 -0
  132. package/src/logic/protocol-integration/stream-message/GroupKeyRequestTranslator.ts +1 -1
  133. package/src/logic/protocol-integration/stream-message/GroupKeyResponseTranslator.ts +1 -1
  134. package/src/logic/protocol-integration/stream-message/StreamMessageTranslator.ts +56 -27
  135. package/src/logic/protocol-integration/stream-message/oldStreamMessageBinaryUtils.ts +11 -0
  136. package/src/logic/proxy/ProxyClient.ts +10 -10
  137. package/src/logic/temporary-connection/TemporaryConnectionRpcLocal.ts +3 -3
  138. package/src/proto/packages/dht/protos/DhtRpc.client.ts +6 -7
  139. package/src/proto/packages/dht/protos/DhtRpc.server.ts +3 -4
  140. package/src/proto/packages/dht/protos/DhtRpc.ts +32 -20
  141. package/src/proto/packages/proto-rpc/protos/ProtoRpc.ts +1 -1
  142. package/src/proto/packages/trackerless-network/protos/NetworkRpc.client.ts +30 -1
  143. package/src/proto/packages/trackerless-network/protos/NetworkRpc.server.ts +12 -1
  144. package/src/proto/packages/trackerless-network/protos/NetworkRpc.ts +138 -11
  145. package/test/benchmark/first-message.ts +28 -8
  146. package/test/end-to-end/inspect.test.ts +13 -1
  147. package/test/end-to-end/proxy-and-full-node.test.ts +14 -1
  148. package/test/end-to-end/proxy-connections.test.ts +14 -2
  149. package/test/end-to-end/proxy-key-exchange.test.ts +15 -8
  150. package/test/end-to-end/random-graph-with-real-connections.test.ts +21 -21
  151. package/test/end-to-end/webrtc-full-node-network.test.ts +3 -3
  152. package/test/end-to-end/websocket-full-node-network.test.ts +3 -3
  153. package/test/integration/Handshakes.test.ts +8 -8
  154. package/test/integration/NetworkNode.test.ts +19 -1
  155. package/test/integration/NetworkRpc.test.ts +3 -2
  156. package/test/integration/NodeInfoRpc.test.ts +103 -0
  157. package/test/integration/Propagation.test.ts +2 -2
  158. package/test/integration/RandomGraphNode-Layer1Node-Latencies.test.ts +20 -21
  159. package/test/integration/RandomGraphNode-Layer1Node.test.ts +22 -19
  160. package/test/integration/stream-without-default-entrypoints.test.ts +17 -11
  161. package/test/unit/HandshakeRpcLocal.test.ts +15 -15
  162. package/test/unit/Handshaker.test.ts +3 -3
  163. package/test/unit/NeighborFinder.test.ts +5 -5
  164. package/test/unit/NodeList.test.ts +56 -57
  165. package/test/unit/Propagation.test.ts +4 -2
  166. package/test/unit/RandomGraphNode.test.ts +7 -8
  167. package/test/unit/StreamMessageTranslator.test.ts +7 -4
  168. package/test/unit/StreamrNode.test.ts +2 -0
  169. package/test/unit/oldStreamMessageBinaryUtils.test.ts +39 -0
  170. package/test/utils/mock/MockLayer0Node.ts +6 -1
  171. package/test/utils/mock/MockLayer1Node.ts +2 -2
  172. package/test/utils/mock/Transport.ts +1 -1
  173. package/test/utils/utils.ts +3 -1
  174. package/tsconfig.jest.json +3 -3
  175. package/tsconfig.node.json +0 -1
  176. package/dist/package.json +0 -55
@@ -1,11 +1,10 @@
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/dht/protos/DhtRpc.proto" (package "dht", syntax proto3)
3
3
  // tslint:disable
4
4
  import { ExternalStoreDataResponse } from "./DhtRpc";
5
5
  import { ExternalStoreDataRequest } from "./DhtRpc";
6
6
  import { ExternalFindDataResponse } from "./DhtRpc";
7
7
  import { ExternalFindDataRequest } from "./DhtRpc";
8
- import { DisconnectNoticeResponse } from "./DhtRpc";
9
8
  import { DisconnectNotice } from "./DhtRpc";
10
9
  import { UnlockRequest } from "./DhtRpc";
11
10
  import { LockResponse } from "./DhtRpc";
@@ -132,9 +131,9 @@ export interface IConnectionLockRpc<T = ServerCallContext> {
132
131
  */
133
132
  unlockRequest(request: UnlockRequest, context: T): Promise<Empty>;
134
133
  /**
135
- * @generated from protobuf rpc: gracefulDisconnect(dht.DisconnectNotice) returns (dht.DisconnectNoticeResponse);
134
+ * @generated from protobuf rpc: gracefulDisconnect(dht.DisconnectNotice) returns (google.protobuf.Empty);
136
135
  */
137
- gracefulDisconnect(request: DisconnectNotice, context: T): Promise<DisconnectNoticeResponse>;
136
+ gracefulDisconnect(request: DisconnectNotice, context: T): Promise<Empty>;
138
137
  }
139
138
  /**
140
139
  * @generated from protobuf service dht.ExternalApiRpc
@@ -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/dht/protos/DhtRpc.proto" (package "dht", syntax proto3)
3
3
  // tslint:disable
4
4
  import { Empty } from "../../../google/protobuf/empty";
@@ -218,6 +218,20 @@ export interface PeerDescriptor {
218
218
  * @generated from protobuf field: optional uint32 region = 6;
219
219
  */
220
220
  region?: number;
221
+ /**
222
+ * @generated from protobuf field: optional uint32 ipAddress = 7;
223
+ */
224
+ ipAddress?: number;
225
+ /**
226
+ * @generated from protobuf field: optional bytes publicKey = 8;
227
+ */
228
+ publicKey?: Uint8Array;
229
+ /**
230
+ * signature of fields 2-8
231
+ *
232
+ * @generated from protobuf field: optional bytes signature = 9;
233
+ */
234
+ signature?: Uint8Array;
221
235
  }
222
236
  /**
223
237
  * @generated from protobuf message dht.ConnectivityMethod
@@ -264,6 +278,10 @@ export interface RouteMessageWrapper {
264
278
  * @generated from protobuf field: repeated dht.PeerDescriptor routingPath = 6;
265
279
  */
266
280
  routingPath: PeerDescriptor[];
281
+ /**
282
+ * @generated from protobuf field: repeated string parallelRootNodeIds = 7;
283
+ */
284
+ parallelRootNodeIds: string[];
267
285
  }
268
286
  /**
269
287
  * @generated from protobuf message dht.RouteMessageAck
@@ -317,6 +335,10 @@ export interface ConnectivityResponse {
317
335
  * @generated from protobuf field: dht.ConnectivityMethod websocket = 3;
318
336
  */
319
337
  websocket?: ConnectivityMethod;
338
+ /**
339
+ * @generated from protobuf field: uint32 ipAddress = 4;
340
+ */
341
+ ipAddress: number;
320
342
  }
321
343
  /**
322
344
  * @generated from protobuf message dht.HandshakeRequest
@@ -514,11 +536,6 @@ export interface DisconnectNotice {
514
536
  */
515
537
  disconnectMode: DisconnectMode;
516
538
  }
517
- /**
518
- * @generated from protobuf message dht.DisconnectNoticeResponse
519
- */
520
- export interface DisconnectNoticeResponse {
521
- }
522
539
  /**
523
540
  * @generated from protobuf message dht.ExternalFindDataRequest
524
541
  */
@@ -848,7 +865,10 @@ class PeerDescriptor$Type extends MessageType$<PeerDescriptor> {
848
865
  { no: 3, name: "udp", kind: "message", T: () => ConnectivityMethod },
849
866
  { no: 4, name: "tcp", kind: "message", T: () => ConnectivityMethod },
850
867
  { no: 5, name: "websocket", kind: "message", T: () => ConnectivityMethod },
851
- { no: 6, name: "region", kind: "scalar", opt: true, T: 13 /*ScalarType.UINT32*/ }
868
+ { no: 6, name: "region", kind: "scalar", opt: true, T: 13 /*ScalarType.UINT32*/ },
869
+ { no: 7, name: "ipAddress", kind: "scalar", opt: true, T: 13 /*ScalarType.UINT32*/ },
870
+ { no: 8, name: "publicKey", kind: "scalar", opt: true, T: 12 /*ScalarType.BYTES*/ },
871
+ { no: 9, name: "signature", kind: "scalar", opt: true, T: 12 /*ScalarType.BYTES*/ }
852
872
  ]);
853
873
  }
854
874
  }
@@ -879,7 +899,8 @@ class RouteMessageWrapper$Type extends MessageType$<RouteMessageWrapper> {
879
899
  { no: 3, name: "target", kind: "scalar", T: 12 /*ScalarType.BYTES*/ },
880
900
  { no: 4, name: "message", kind: "message", T: () => Message },
881
901
  { no: 5, name: "reachableThrough", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => PeerDescriptor },
882
- { no: 6, name: "routingPath", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => PeerDescriptor }
902
+ { no: 6, name: "routingPath", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => PeerDescriptor },
903
+ { no: 7, name: "parallelRootNodeIds", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }
883
904
  ]);
884
905
  }
885
906
  }
@@ -921,7 +942,8 @@ class ConnectivityResponse$Type extends MessageType$<ConnectivityResponse> {
921
942
  super("dht.ConnectivityResponse", [
922
943
  { no: 1, name: "host", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
923
944
  { no: 2, name: "natType", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
924
- { no: 3, name: "websocket", kind: "message", T: () => ConnectivityMethod }
945
+ { no: 3, name: "websocket", kind: "message", T: () => ConnectivityMethod },
946
+ { no: 4, name: "ipAddress", kind: "scalar", T: 13 /*ScalarType.UINT32*/ }
925
947
  ]);
926
948
  }
927
949
  }
@@ -1088,16 +1110,6 @@ class DisconnectNotice$Type extends MessageType$<DisconnectNotice> {
1088
1110
  */
1089
1111
  export const DisconnectNotice = new DisconnectNotice$Type();
1090
1112
  // @generated message type with reflection information, may provide speed optimized methods
1091
- class DisconnectNoticeResponse$Type extends MessageType$<DisconnectNoticeResponse> {
1092
- constructor() {
1093
- super("dht.DisconnectNoticeResponse", []);
1094
- }
1095
- }
1096
- /**
1097
- * @generated MessageType for protobuf message dht.DisconnectNoticeResponse
1098
- */
1099
- export const DisconnectNoticeResponse = new DisconnectNoticeResponse$Type();
1100
- // @generated message type with reflection information, may provide speed optimized methods
1101
1113
  class ExternalFindDataRequest$Type extends MessageType$<ExternalFindDataRequest> {
1102
1114
  constructor() {
1103
1115
  super("dht.ExternalFindDataRequest", [
@@ -1176,7 +1188,7 @@ export const WebrtcConnectorRpc = new ServiceType("dht.WebrtcConnectorRpc", [
1176
1188
  export const ConnectionLockRpc = new ServiceType("dht.ConnectionLockRpc", [
1177
1189
  { name: "lockRequest", options: {}, I: LockRequest, O: LockResponse },
1178
1190
  { name: "unlockRequest", options: {}, I: UnlockRequest, O: Empty },
1179
- { name: "gracefulDisconnect", options: {}, I: DisconnectNotice, O: DisconnectNoticeResponse }
1191
+ { name: "gracefulDisconnect", options: {}, I: DisconnectNotice, O: Empty }
1180
1192
  ]);
1181
1193
  /**
1182
1194
  * @generated ServiceType for protobuf service dht.ExternalApiRpc
@@ -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,6 +1,9 @@
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";
5
8
  import type { TemporaryConnectionResponse } from "./NetworkRpc";
6
9
  import type { TemporaryConnectionRequest } from "./NetworkRpc";
@@ -175,3 +178,29 @@ export class TemporaryConnectionRpcClient implements ITemporaryConnectionRpcClie
175
178
  return stackIntercept<TemporaryConnectionRequest, TemporaryConnectionResponse>("unary", this._transport, method, opt, input);
176
179
  }
177
180
  }
181
+ /**
182
+ * @generated from protobuf service NodeInfoRpc
183
+ */
184
+ export interface INodeInfoRpcClient {
185
+ /**
186
+ * @generated from protobuf rpc: getInfo(NodeInfoRequest) returns (NodeInfoResponse);
187
+ */
188
+ getInfo(input: NodeInfoRequest, options?: RpcOptions): UnaryCall<NodeInfoRequest, NodeInfoResponse>;
189
+ }
190
+ /**
191
+ * @generated from protobuf service NodeInfoRpc
192
+ */
193
+ export class NodeInfoRpcClient implements INodeInfoRpcClient, ServiceInfo {
194
+ typeName = NodeInfoRpc.typeName;
195
+ methods = NodeInfoRpc.methods;
196
+ options = NodeInfoRpc.options;
197
+ constructor(private readonly _transport: RpcTransport) {
198
+ }
199
+ /**
200
+ * @generated from protobuf rpc: getInfo(NodeInfoRequest) returns (NodeInfoResponse);
201
+ */
202
+ getInfo(input: NodeInfoRequest, options?: RpcOptions): UnaryCall<NodeInfoRequest, NodeInfoResponse> {
203
+ const method = this.methods[0], opt = this._transport.mergeOptions(options);
204
+ return stackIntercept<NodeInfoRequest, NodeInfoResponse>("unary", this._transport, method, opt, input);
205
+ }
206
+ }
@@ -1,6 +1,8 @@
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";
4
6
  import { TemporaryConnectionResponse } from "./NetworkRpc";
5
7
  import { TemporaryConnectionRequest } from "./NetworkRpc";
6
8
  import { NeighborUpdate } from "./NetworkRpc";
@@ -67,3 +69,12 @@ export interface ITemporaryConnectionRpc<T = ServerCallContext> {
67
69
  */
68
70
  openConnection(request: TemporaryConnectionRequest, context: T): Promise<TemporaryConnectionResponse>;
69
71
  }
72
+ /**
73
+ * @generated from protobuf service NodeInfoRpc
74
+ */
75
+ export interface INodeInfoRpc<T = ServerCallContext> {
76
+ /**
77
+ * @generated from protobuf rpc: getInfo(NodeInfoRequest) returns (NodeInfoResponse);
78
+ */
79
+ getInfo(request: NodeInfoRequest, context: T): Promise<NodeInfoResponse>;
80
+ }
@@ -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";
@@ -68,25 +68,29 @@ export interface StreamMessage {
68
68
  */
69
69
  content: Uint8Array;
70
70
  /**
71
- * @generated from protobuf field: bytes signature = 5;
71
+ * @generated from protobuf field: SignatureType signatureType = 5;
72
+ */
73
+ signatureType: SignatureType;
74
+ /**
75
+ * @generated from protobuf field: bytes signature = 6;
72
76
  */
73
77
  signature: Uint8Array;
74
78
  /**
75
79
  * this is a required field but in generated NetworkRpc.ts it is incorrectly annotated as optional (NET-1082)
76
80
  *
77
- * @generated from protobuf field: MessageID messageId = 6;
81
+ * @generated from protobuf field: MessageID messageId = 7;
78
82
  */
79
83
  messageId?: MessageID;
80
84
  /**
81
- * @generated from protobuf field: optional MessageRef previousMessageRef = 7;
85
+ * @generated from protobuf field: optional MessageRef previousMessageRef = 8;
82
86
  */
83
87
  previousMessageRef?: MessageRef;
84
88
  /**
85
- * @generated from protobuf field: optional string groupKeyId = 8;
89
+ * @generated from protobuf field: optional string groupKeyId = 9;
86
90
  */
87
91
  groupKeyId?: string;
88
92
  /**
89
- * @generated from protobuf field: optional GroupKey newGroupKey = 9;
93
+ * @generated from protobuf field: optional GroupKey newGroupKey = 10;
90
94
  */
91
95
  newGroupKey?: GroupKey;
92
96
  }
@@ -269,6 +273,58 @@ export interface TemporaryConnectionResponse {
269
273
  */
270
274
  accepted: boolean;
271
275
  }
276
+ /**
277
+ * @generated from protobuf message StreamPartitionInfo
278
+ */
279
+ export interface StreamPartitionInfo {
280
+ /**
281
+ * @generated from protobuf field: string id = 1;
282
+ */
283
+ id: string;
284
+ /**
285
+ * @generated from protobuf field: repeated dht.PeerDescriptor controlLayerNeighbors = 2;
286
+ */
287
+ controlLayerNeighbors: PeerDescriptor[];
288
+ /**
289
+ * @generated from protobuf field: repeated dht.PeerDescriptor deliveryLayerNeighbors = 3;
290
+ */
291
+ deliveryLayerNeighbors: PeerDescriptor[];
292
+ }
293
+ /**
294
+ * @generated from protobuf message ControlLayerInfo
295
+ */
296
+ export interface ControlLayerInfo {
297
+ /**
298
+ * @generated from protobuf field: repeated dht.PeerDescriptor neighbors = 1;
299
+ */
300
+ neighbors: PeerDescriptor[];
301
+ /**
302
+ * @generated from protobuf field: repeated dht.PeerDescriptor connections = 2;
303
+ */
304
+ connections: PeerDescriptor[];
305
+ }
306
+ /**
307
+ * @generated from protobuf message NodeInfoRequest
308
+ */
309
+ export interface NodeInfoRequest {
310
+ }
311
+ /**
312
+ * @generated from protobuf message NodeInfoResponse
313
+ */
314
+ export interface NodeInfoResponse {
315
+ /**
316
+ * @generated from protobuf field: dht.PeerDescriptor peerDescriptor = 1;
317
+ */
318
+ peerDescriptor?: PeerDescriptor;
319
+ /**
320
+ * @generated from protobuf field: repeated StreamPartitionInfo streamPartitions = 2;
321
+ */
322
+ streamPartitions: StreamPartitionInfo[];
323
+ /**
324
+ * @generated from protobuf field: optional ControlLayerInfo controlLayer = 3;
325
+ */
326
+ controlLayer?: ControlLayerInfo;
327
+ }
272
328
  /**
273
329
  * @generated from protobuf enum StreamMessageType
274
330
  */
@@ -312,6 +368,19 @@ export enum EncryptionType {
312
368
  */
313
369
  AES = 1
314
370
  }
371
+ /**
372
+ * @generated from protobuf enum SignatureType
373
+ */
374
+ export enum SignatureType {
375
+ /**
376
+ * @generated from protobuf enum value: LEGACY_SECP256K1 = 0;
377
+ */
378
+ LEGACY_SECP256K1 = 0,
379
+ /**
380
+ * @generated from protobuf enum value: SECP256K1 = 1;
381
+ */
382
+ SECP256K1 = 1
383
+ }
315
384
  /**
316
385
  * @generated from protobuf enum ProxyDirection
317
386
  */
@@ -363,11 +432,12 @@ class StreamMessage$Type extends MessageType<StreamMessage> {
363
432
  { no: 2, name: "contentType", kind: "enum", T: () => ["ContentType", ContentType] },
364
433
  { no: 3, name: "encryptionType", kind: "enum", T: () => ["EncryptionType", EncryptionType] },
365
434
  { no: 4, name: "content", kind: "scalar", T: 12 /*ScalarType.BYTES*/ },
366
- { no: 5, name: "signature", kind: "scalar", T: 12 /*ScalarType.BYTES*/ },
367
- { no: 6, name: "messageId", kind: "message", T: () => MessageID },
368
- { no: 7, name: "previousMessageRef", kind: "message", T: () => MessageRef },
369
- { no: 8, name: "groupKeyId", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ },
370
- { no: 9, name: "newGroupKey", kind: "message", T: () => GroupKey }
435
+ { no: 5, name: "signatureType", kind: "enum", T: () => ["SignatureType", SignatureType] },
436
+ { no: 6, name: "signature", kind: "scalar", T: 12 /*ScalarType.BYTES*/ },
437
+ { no: 7, name: "messageId", kind: "message", T: () => MessageID },
438
+ { no: 8, name: "previousMessageRef", kind: "message", T: () => MessageRef },
439
+ { no: 9, name: "groupKeyId", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ },
440
+ { no: 10, name: "newGroupKey", kind: "message", T: () => GroupKey }
371
441
  ]);
372
442
  }
373
443
  }
@@ -545,6 +615,57 @@ class TemporaryConnectionResponse$Type extends MessageType<TemporaryConnectionRe
545
615
  * @generated MessageType for protobuf message TemporaryConnectionResponse
546
616
  */
547
617
  export const TemporaryConnectionResponse = new TemporaryConnectionResponse$Type();
618
+ // @generated message type with reflection information, may provide speed optimized methods
619
+ class StreamPartitionInfo$Type extends MessageType<StreamPartitionInfo> {
620
+ constructor() {
621
+ super("StreamPartitionInfo", [
622
+ { no: 1, name: "id", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
623
+ { no: 2, name: "controlLayerNeighbors", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => PeerDescriptor },
624
+ { no: 3, name: "deliveryLayerNeighbors", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => PeerDescriptor }
625
+ ]);
626
+ }
627
+ }
628
+ /**
629
+ * @generated MessageType for protobuf message StreamPartitionInfo
630
+ */
631
+ export const StreamPartitionInfo = new StreamPartitionInfo$Type();
632
+ // @generated message type with reflection information, may provide speed optimized methods
633
+ class ControlLayerInfo$Type extends MessageType<ControlLayerInfo> {
634
+ constructor() {
635
+ super("ControlLayerInfo", [
636
+ { no: 1, name: "neighbors", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => PeerDescriptor },
637
+ { no: 2, name: "connections", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => PeerDescriptor }
638
+ ]);
639
+ }
640
+ }
641
+ /**
642
+ * @generated MessageType for protobuf message ControlLayerInfo
643
+ */
644
+ export const ControlLayerInfo = new ControlLayerInfo$Type();
645
+ // @generated message type with reflection information, may provide speed optimized methods
646
+ class NodeInfoRequest$Type extends MessageType<NodeInfoRequest> {
647
+ constructor() {
648
+ super("NodeInfoRequest", []);
649
+ }
650
+ }
651
+ /**
652
+ * @generated MessageType for protobuf message NodeInfoRequest
653
+ */
654
+ export const NodeInfoRequest = new NodeInfoRequest$Type();
655
+ // @generated message type with reflection information, may provide speed optimized methods
656
+ class NodeInfoResponse$Type extends MessageType<NodeInfoResponse> {
657
+ constructor() {
658
+ super("NodeInfoResponse", [
659
+ { no: 1, name: "peerDescriptor", kind: "message", T: () => PeerDescriptor },
660
+ { no: 2, name: "streamPartitions", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => StreamPartitionInfo },
661
+ { no: 3, name: "controlLayer", kind: "message", T: () => ControlLayerInfo }
662
+ ]);
663
+ }
664
+ }
665
+ /**
666
+ * @generated MessageType for protobuf message NodeInfoResponse
667
+ */
668
+ export const NodeInfoResponse = new NodeInfoResponse$Type();
548
669
  /**
549
670
  * @generated ServiceType for protobuf service DeliveryRpc
550
671
  */
@@ -577,3 +698,9 @@ export const NeighborUpdateRpc = new ServiceType("NeighborUpdateRpc", [
577
698
  export const TemporaryConnectionRpc = new ServiceType("TemporaryConnectionRpc", [
578
699
  { name: "openConnection", options: {}, I: TemporaryConnectionRequest, O: TemporaryConnectionResponse }
579
700
  ]);
701
+ /**
702
+ * @generated ServiceType for protobuf service NodeInfoRpc
703
+ */
704
+ export const NodeInfoRpc = new ServiceType("NodeInfoRpc", [
705
+ { name: "getInfo", options: {}, I: NodeInfoRequest, O: NodeInfoResponse }
706
+ ]);
@@ -1,10 +1,27 @@
1
1
  /* eslint-disable no-console */
2
2
 
3
- import { DhtNode, LatencyType, Simulator, getNodeIdFromPeerDescriptor, getRandomRegion } from '@streamr/dht'
4
- import { MessageID, StreamMessage, StreamMessageType, StreamPartID, StreamPartIDUtils, toStreamID, toStreamPartID } from '@streamr/protocol'
3
+ import {
4
+ DhtNode,
5
+ getNodeIdFromPeerDescriptor,
6
+ getRandomRegion,
7
+ LatencyType,
8
+ PeerDescriptor,
9
+ Simulator
10
+ } from '@streamr/dht'
11
+ import {
12
+ ContentType,
13
+ EncryptionType,
14
+ MessageID,
15
+ SignatureType,
16
+ StreamMessage,
17
+ StreamMessageType,
18
+ StreamPartID,
19
+ StreamPartIDUtils,
20
+ toStreamID,
21
+ toStreamPartID
22
+ } from '@streamr/protocol'
5
23
  import { hexToBinary, utf8ToBinary, waitForEvent3 } from '@streamr/utils'
6
24
  import fs from 'fs'
7
- import { PeerDescriptor } from '@streamr/dht'
8
25
  import { NetworkNode } from '../../src/NetworkNode'
9
26
  import { streamPartIdToDataKey } from '../../src/logic/EntryPointDiscovery'
10
27
  import { createMockPeerDescriptor, createNetworkNodeWithSimulator } from '../utils/utils'
@@ -78,12 +95,15 @@ const measureJoiningTime = async () => {
78
95
  '2222' as any,
79
96
  'msgChainId'
80
97
  ),
81
- prevMsgRef: null,
82
98
  content: utf8ToBinary(JSON.stringify({
83
99
  hello: 'world'
84
100
  })),
85
101
  messageType: StreamMessageType.MESSAGE,
102
+ contentType: ContentType.JSON,
103
+ encryptionType: EncryptionType.NONE,
86
104
  signature: hexToBinary('0x1234'),
105
+ signatureType: SignatureType.SECP256K1,
106
+
87
107
  })
88
108
  streamParts.get(stream)!.broadcast(streamMessage)
89
109
  }, 1000)
@@ -138,11 +158,11 @@ run().then(() => {
138
158
  const foundData = nodes[0].stack.getLayer0Node().getDataFromDht(streamPartIdToDataKey(streamParts[0]))
139
159
  console.log(foundData)
140
160
  const layer0Node = currentNode.stack.getLayer0Node() as DhtNode
141
- console.log(layer0Node.getAllNeighborPeerDescriptors().length)
142
- console.log(layer0Node.getNumberOfConnections())
161
+ console.log(layer0Node.getNeighbors().length)
162
+ console.log(layer0Node.getConnectionCount())
143
163
  const streamPartDelivery = streamrNode.getStreamPartDelivery(streamParts[0])! as { layer1Node: Layer1Node, node: RandomGraphNode }
144
- console.log(streamPartDelivery.layer1Node.getAllNeighborPeerDescriptors())
145
- console.log(streamPartDelivery.node.getTargetNeighborIds())
164
+ console.log(streamPartDelivery.layer1Node.getNeighbors())
165
+ console.log(streamPartDelivery.node.getNeighbors())
146
166
  console.log(nodes[nodes.length - 1])
147
167
  if (publishInterval) {
148
168
  clearInterval(publishInterval)
@@ -1,4 +1,13 @@
1
- import { MessageID, MessageRef, StreamMessage, StreamMessageType, StreamPartIDUtils } from '@streamr/protocol'
1
+ import {
2
+ ContentType,
3
+ EncryptionType,
4
+ MessageID,
5
+ MessageRef,
6
+ SignatureType,
7
+ StreamMessage,
8
+ StreamMessageType,
9
+ StreamPartIDUtils
10
+ } from '@streamr/protocol'
2
11
  import { randomEthereumAddress } from '@streamr/test-utils'
3
12
  import { hexToBinary, utf8ToBinary, waitForCondition } from '@streamr/utils'
4
13
  import { NetworkNode, createNetworkNode } from '../../src/NetworkNode'
@@ -52,6 +61,9 @@ describe('inspect', () => {
52
61
  hello: 'world'
53
62
  })),
54
63
  messageType: StreamMessageType.MESSAGE,
64
+ contentType: ContentType.JSON,
65
+ encryptionType: EncryptionType.NONE,
66
+ signatureType: SignatureType.SECP256K1,
55
67
  signature: hexToBinary('0x1234'),
56
68
  })
57
69
 
@@ -1,4 +1,14 @@
1
- import { MessageID, MessageRef, StreamMessage, StreamMessageType, StreamPartID, StreamPartIDUtils } from '@streamr/protocol'
1
+ import {
2
+ ContentType,
3
+ EncryptionType,
4
+ MessageID,
5
+ MessageRef,
6
+ SignatureType,
7
+ StreamMessage,
8
+ StreamMessageType,
9
+ StreamPartID,
10
+ StreamPartIDUtils
11
+ } from '@streamr/protocol'
2
12
  import { randomEthereumAddress } from '@streamr/test-utils'
3
13
  import { hexToBinary, utf8ToBinary, waitForEvent3 } from '@streamr/utils'
4
14
  import { NetworkNode, createNetworkNode } from '../../src/NetworkNode'
@@ -22,6 +32,9 @@ const createMessage = (streamPartId: StreamPartID): StreamMessage => {
22
32
  hello: 'world'
23
33
  })),
24
34
  messageType: StreamMessageType.MESSAGE,
35
+ contentType: ContentType.JSON,
36
+ encryptionType: EncryptionType.NONE,
37
+ signatureType: SignatureType.SECP256K1,
25
38
  signature: hexToBinary('0x1234'),
26
39
  })
27
40
  }
@@ -1,4 +1,13 @@
1
- import { MessageID, MessageRef, StreamMessage, StreamMessageType, StreamPartIDUtils } from '@streamr/protocol'
1
+ import {
2
+ ContentType,
3
+ EncryptionType,
4
+ MessageID,
5
+ MessageRef,
6
+ SignatureType,
7
+ StreamMessage,
8
+ StreamMessageType,
9
+ StreamPartIDUtils
10
+ } from '@streamr/protocol'
2
11
  import { randomEthereumAddress } from '@streamr/test-utils'
3
12
  import { hexToBinary, utf8ToBinary, wait, waitForCondition, waitForEvent3 } from '@streamr/utils'
4
13
  import { NetworkNode, createNetworkNode } from '../../src/NetworkNode'
@@ -24,7 +33,10 @@ const MESSAGE = new StreamMessage({
24
33
  hello: 'world'
25
34
  })),
26
35
  messageType: StreamMessageType.MESSAGE,
27
- signature: hexToBinary('0x1234')
36
+ encryptionType: EncryptionType.NONE,
37
+ signatureType: SignatureType.SECP256K1,
38
+ signature: hexToBinary('0x1234'),
39
+ contentType: ContentType.JSON
28
40
  })
29
41
 
30
42
  describe('Proxy connections', () => {
@@ -1,13 +1,16 @@
1
1
  import {
2
+ ContentType,
2
3
  EncryptionType,
3
4
  GroupKeyRequest,
4
5
  GroupKeyResponse,
5
6
  MessageID,
7
+ serializeGroupKeyRequest,
8
+ serializeGroupKeyResponse, SignatureType,
6
9
  StreamMessage,
7
10
  StreamMessageType,
8
11
  StreamPartIDUtils
9
12
  } from '@streamr/protocol'
10
- import { hexToBinary, toEthereumAddress, utf8ToBinary, waitForEvent3 } from '@streamr/utils'
13
+ import { hexToBinary, toEthereumAddress, waitForEvent3 } from '@streamr/utils'
11
14
  import { NetworkNode, createNetworkNode } from '../../src/NetworkNode'
12
15
  import { ProxyDirection } from '../../src/proto/packages/trackerless-network/protos/NetworkRpc'
13
16
  import { createMockPeerDescriptor } from '../utils/utils'
@@ -69,14 +72,14 @@ describe('proxy group key exchange', () => {
69
72
  await publisher.setProxies(STREAM_PART_ID, [proxyNodeDescriptor], ProxyDirection.PUBLISH, publisherUserId)
70
73
  await subscriber.setProxies(STREAM_PART_ID, [proxyNodeDescriptor], ProxyDirection.SUBSCRIBE, subscriberUserId)
71
74
 
72
- const requestContent = utf8ToBinary(new GroupKeyRequest({
75
+ const groupKeyRequest = new GroupKeyRequest({
73
76
  recipient: publisherUserId,
74
77
  requestId: 'requestId',
75
78
  rsaPublicKey: 'mockKey',
76
79
  groupKeyIds: [
77
80
  'mock'
78
81
  ],
79
- }).serialize())
82
+ })
80
83
  const request = new StreamMessage({
81
84
  messageId: new MessageID(
82
85
  StreamPartIDUtils.getStreamID(STREAM_PART_ID),
@@ -87,8 +90,10 @@ describe('proxy group key exchange', () => {
87
90
  '0'
88
91
  ),
89
92
  messageType: StreamMessageType.GROUP_KEY_REQUEST,
93
+ contentType: ContentType.JSON,
90
94
  encryptionType: EncryptionType.NONE,
91
- content: requestContent,
95
+ content: serializeGroupKeyRequest(groupKeyRequest),
96
+ signatureType: SignatureType.SECP256K1,
92
97
  signature: hexToBinary('1234')
93
98
  })
94
99
 
@@ -102,11 +107,11 @@ describe('proxy group key exchange', () => {
102
107
  await publisher.setProxies(STREAM_PART_ID, [proxyNodeDescriptor], ProxyDirection.PUBLISH, publisherUserId)
103
108
  await subscriber.setProxies(STREAM_PART_ID, [proxyNodeDescriptor], ProxyDirection.SUBSCRIBE, subscriberUserId)
104
109
 
105
- const responseContent = utf8ToBinary(new GroupKeyResponse({
110
+ const groupKeyResponse = new GroupKeyResponse({
106
111
  recipient: publisherUserId,
107
112
  requestId: 'requestId',
108
113
  encryptedGroupKeys: []
109
- }).serialize())
114
+ })
110
115
  const response = new StreamMessage({
111
116
  messageId: new MessageID(
112
117
  StreamPartIDUtils.getStreamID(STREAM_PART_ID),
@@ -117,8 +122,10 @@ describe('proxy group key exchange', () => {
117
122
  '0'
118
123
  ),
119
124
  messageType: StreamMessageType.GROUP_KEY_RESPONSE,
120
- encryptionType: EncryptionType.RSA,
121
- content: responseContent,
125
+ contentType: ContentType.JSON,
126
+ encryptionType: EncryptionType.NONE,
127
+ content: serializeGroupKeyResponse(groupKeyResponse),
128
+ signatureType: SignatureType.SECP256K1,
122
129
  signature: hexToBinary('1234')
123
130
  })
124
131