@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
@@ -26,7 +26,7 @@ export class MockLayer0Node extends EventEmitter implements Layer0Node {
26
26
  }
27
27
 
28
28
  // eslint-disable-next-line class-methods-use-this
29
- async getDataFromDht(): Promise<DataEntry[]> {
29
+ async fetchDataFromDht(): Promise<DataEntry[]> {
30
30
  return []
31
31
  }
32
32
 
@@ -45,7 +45,12 @@ export class MockLayer0Node extends EventEmitter implements Layer0Node {
45
45
  }
46
46
 
47
47
  // eslint-disable-next-line class-methods-use-this
48
- getAllConnectionPeerDescriptors(): PeerDescriptor[] {
48
+ getConnections(): PeerDescriptor[] {
49
+ return []
50
+ }
51
+
52
+ // eslint-disable-next-line class-methods-use-this
53
+ getNeighbors(): PeerDescriptor[] {
49
54
  return []
50
55
  }
51
56
 
@@ -16,11 +16,11 @@ export class MockLayer1Node extends EventEmitter implements Layer1Node {
16
16
  return []
17
17
  }
18
18
 
19
- getKBucketPeers(): PeerDescriptor[] {
19
+ getNeighbors(): PeerDescriptor[] {
20
20
  return this.kbucketPeers
21
21
  }
22
22
 
23
- getBucketSize(): number {
23
+ getNeighborCount(): number {
24
24
  return this.kbucketPeers.length
25
25
  }
26
26
 
@@ -31,6 +31,9 @@ export class MockLayer1Node extends EventEmitter implements Layer1Node {
31
31
  // eslint-disable-next-line class-methods-use-this
32
32
  async joinDht(): Promise<void> {}
33
33
 
34
+ // eslint-disable-next-line class-methods-use-this
35
+ async joinRing(): Promise<void> {}
36
+
34
37
  // eslint-disable-next-line class-methods-use-this
35
38
  async start(): Promise<void> {}
36
39
 
@@ -1,6 +1,7 @@
1
- import { INeighborFinder } from '../../../src/logic/neighbor-discovery/NeighborFinder'
1
+ import { Methods } from '@streamr/test-utils'
2
+ import { NeighborFinder } from '../../../src/logic/neighbor-discovery/NeighborFinder'
2
3
 
3
- export class MockNeighborFinder implements INeighborFinder {
4
+ export class MockNeighborFinder implements Methods<NeighborFinder> {
4
5
 
5
6
  // eslint-disable-next-line class-methods-use-this
6
7
  start(): void {
@@ -1,7 +1,8 @@
1
- import { INeighborUpdateManager } from '../../../src/logic/neighbor-discovery/NeighborUpdateManager'
1
+ import { Methods } from '@streamr/test-utils'
2
+ import { NeighborUpdateManager } from '../../../src/logic/neighbor-discovery/NeighborUpdateManager'
2
3
  import { NeighborUpdate } from '../../../src/proto/packages/trackerless-network/protos/NetworkRpc'
3
4
 
4
- export class MockNeighborUpdateManager implements INeighborUpdateManager {
5
+ export class MockNeighborUpdateManager implements Methods<NeighborUpdateManager> {
5
6
 
6
7
  // eslint-disable-next-line class-methods-use-this
7
8
  async start(): Promise<void> {
@@ -14,7 +14,7 @@ export class MockTransport extends EventEmitter implements ITransport {
14
14
  }
15
15
 
16
16
  // eslint-disable-next-line class-methods-use-this
17
- getAllConnectionPeerDescriptors(): PeerDescriptor[] {
17
+ getConnections(): PeerDescriptor[] {
18
18
  return []
19
19
  }
20
20
 
@@ -1,12 +1,21 @@
1
- import { randomBytes } from 'crypto'
2
- import { ConnectionLocker, DhtNode, NodeType, PeerDescriptor, Simulator, SimulatorTransport, getRandomRegion } from '@streamr/dht'
1
+ import {
2
+ ConnectionLocker,
3
+ DhtNode,
4
+ NodeType,
5
+ PeerDescriptor,
6
+ Simulator,
7
+ SimulatorTransport,
8
+ createRandomDhtAddress,
9
+ getRandomRegion,
10
+ getRawFromDhtAddress
11
+ } from '@streamr/dht'
3
12
  import { RandomGraphNode } from '../../src/logic/RandomGraphNode'
4
13
  import {
5
14
  ContentType,
6
15
  EncryptionType,
7
16
  MessageID,
8
- StreamMessage,
9
- StreamMessageType
17
+ SignatureType,
18
+ StreamMessage
10
19
  } from '../../src/proto/packages/trackerless-network/protos/NetworkRpc'
11
20
  import { DeliveryRpcRemote } from '../../src/logic/DeliveryRpcRemote'
12
21
  import { createRandomGraphNode } from '../../src/logic/createRandomGraphNode'
@@ -14,8 +23,9 @@ import { HandshakeRpcRemote } from '../../src/logic/neighbor-discovery/Handshake
14
23
  import { NetworkNode, createNetworkNode } from '../../src/NetworkNode'
15
24
  import { EthereumAddress, hexToBinary, utf8ToBinary } from '@streamr/utils'
16
25
  import { StreamPartID, StreamPartIDUtils } from '@streamr/protocol'
17
- import { NodeID } from '../../src/identifiers'
18
26
  import { Layer1Node } from '../../src/logic/Layer1Node'
27
+ import { DeliveryRpcClient, HandshakeRpcClient } from '../../src/proto/packages/trackerless-network/protos/NetworkRpc.client'
28
+ import { RpcCommunicator } from '@streamr/proto-rpc'
19
29
 
20
30
  export const mockConnectionLocker: ConnectionLocker = {
21
31
  lockConnection: () => {},
@@ -45,7 +55,8 @@ export const createMockRandomGraphNodeAndDhtNode = async (
45
55
  layer1Node,
46
56
  connectionLocker: mockCm,
47
57
  localPeerDescriptor,
48
- rpcRequestTimeout: 5000
58
+ rpcRequestTimeout: 5000,
59
+ isLocalNodeEntryPoint: () => false
49
60
  })
50
61
  return [layer1Node, randomGraphNode]
51
62
  }
@@ -66,51 +77,55 @@ export const createStreamMessage = (
66
77
  messageChainId: 'messageChain0',
67
78
  }
68
79
  const msg: StreamMessage = {
69
- messageType: StreamMessageType.MESSAGE,
70
- encryptionType: EncryptionType.NONE,
71
- content: utf8ToBinary(content),
72
- contentType: ContentType.JSON,
73
80
  messageId,
74
- signature: hexToBinary('0x1234')
81
+ signatureType: SignatureType.SECP256K1,
82
+ signature: hexToBinary('0x1234'),
83
+ body: {
84
+ oneofKind: 'contentMessage',
85
+ contentMessage: {
86
+ encryptionType: EncryptionType.NONE,
87
+ contentType: ContentType.JSON,
88
+ content: utf8ToBinary(content)
89
+ }
90
+ }
75
91
  }
76
92
  return msg
77
93
  }
78
94
 
79
- export const createRandomNodeId = (): NodeID => {
80
- return randomBytes(10).toString('hex') as NodeID
81
- }
82
-
83
- export const createMockPeerDescriptor = (opts?: Omit<Partial<PeerDescriptor>, 'kademliaId' | 'type'>): PeerDescriptor => {
95
+ export const createMockPeerDescriptor = (opts?: Omit<Partial<PeerDescriptor>, 'nodeId' | 'type'>): PeerDescriptor => {
84
96
  return {
85
97
  ...opts,
86
- kademliaId: hexToBinary(createRandomNodeId()),
98
+ nodeId: getRawFromDhtAddress(createRandomDhtAddress()),
87
99
  type: NodeType.NODEJS,
88
100
  region: getRandomRegion()
89
101
  }
90
102
  }
91
103
 
92
104
  export const createMockDeliveryRpcRemote = (remotePeerDescriptor?: PeerDescriptor): DeliveryRpcRemote => {
93
- return new DeliveryRpcRemote(createMockPeerDescriptor(), remotePeerDescriptor ?? createMockPeerDescriptor(), 'mock', {} as any)
105
+ return new DeliveryRpcRemote(
106
+ createMockPeerDescriptor(),
107
+ remotePeerDescriptor ?? createMockPeerDescriptor(),
108
+ new RpcCommunicator(),
109
+ DeliveryRpcClient
110
+ )
94
111
  }
95
112
 
96
113
  export const createMockHandshakeRpcRemote = (): HandshakeRpcRemote => {
97
114
  return new HandshakeRpcRemote(
98
115
  createMockPeerDescriptor(),
99
116
  createMockPeerDescriptor(),
100
- 'mock',
101
- {
102
- handshake: async () => {},
103
- interleaveNotice: async () => {}
104
- } as any
117
+ new RpcCommunicator(),
118
+ HandshakeRpcClient
105
119
  )
106
120
  }
107
121
 
108
- export const createNetworkNodeWithSimulator = (
122
+ export const createNetworkNodeWithSimulator = async (
109
123
  peerDescriptor: PeerDescriptor,
110
124
  simulator: Simulator,
111
125
  entryPoints: PeerDescriptor[]
112
- ): NetworkNode => {
126
+ ): Promise<NetworkNode> => {
113
127
  const transport = new SimulatorTransport(peerDescriptor, simulator)
128
+ await transport.start()
114
129
  return createNetworkNode({
115
130
  layer0: {
116
131
  peerDescriptor,
@@ -6,11 +6,12 @@
6
6
  },
7
7
  "include": [
8
8
  "src/**/*",
9
- "test/**/*"
10
- ],
11
- "exclude": [
9
+ "test/**/*",
10
+ "package.json"
12
11
  ],
13
12
  "references": [
14
- { "path": "tsconfig.node.json" }
13
+ { "path": "../protocol/tsconfig.node.json" },
14
+ { "path": "../proto-rpc/tsconfig.node.json" },
15
+ { "path": "../dht/tsconfig.node.json" }
15
16
  ]
16
17
  }
@@ -6,9 +6,9 @@
6
6
  },
7
7
  "include": [
8
8
  "src/**/*",
9
- "package.json",
10
9
  "test/benchmark/first-message.ts",
11
- "test/utils/utils.ts"
10
+ "test/utils/utils.ts",
11
+ "package.json"
12
12
  ],
13
13
  "references": [
14
14
  { "path": "../protocol/tsconfig.node.json" },
@@ -1,4 +0,0 @@
1
- import { PeerDescriptor } from '@streamr/dht';
2
- import { BrandedString } from '@streamr/utils';
3
- export type NodeID = BrandedString<'NodeID'>;
4
- export declare const getNodeIdFromPeerDescriptor: (peerDescriptor: PeerDescriptor) => NodeID;
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getNodeIdFromPeerDescriptor = void 0;
4
- const utils_1 = require("@streamr/utils");
5
- const getNodeIdFromPeerDescriptor = (peerDescriptor) => {
6
- return (0, utils_1.binaryToHex)(peerDescriptor.kademliaId);
7
- };
8
- exports.getNodeIdFromPeerDescriptor = getNodeIdFromPeerDescriptor;
9
- //# sourceMappingURL=identifiers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"identifiers.js","sourceRoot":"","sources":["../../src/identifiers.ts"],"names":[],"mappings":";;;AACA,0CAA2D;AAIpD,MAAM,2BAA2B,GAAG,CAAC,cAA8B,EAAU,EAAE;IAClF,OAAO,IAAA,mBAAW,EAAC,cAAc,CAAC,UAAU,CAAsB,CAAA;AACtE,CAAC,CAAA;AAFY,QAAA,2BAA2B,+BAEvC"}
@@ -1,8 +0,0 @@
1
- import { PeerDescriptor } from '@streamr/dht'
2
- import { BrandedString, binaryToHex } from '@streamr/utils'
3
-
4
- export type NodeID = BrandedString<'NodeID'>
5
-
6
- export const getNodeIdFromPeerDescriptor = (peerDescriptor: PeerDescriptor): NodeID => {
7
- return binaryToHex(peerDescriptor.kademliaId) as unknown as NodeID
8
- }
@@ -1,36 +0,0 @@
1
- import { GroupKeyRequest as OldGroupKeyRequest } from '@streamr/protocol'
2
- import { hexToBinary, toEthereumAddress, utf8ToBinary } from '@streamr/utils'
3
- import { GroupKeyRequest } from '../../src/proto/packages/trackerless-network/protos/NetworkRpc'
4
- import { GroupKeyRequestTranslator } from '../../src/logic/protocol-integration/stream-message/GroupKeyRequestTranslator'
5
-
6
- describe('GroupKeyRequestTranslator', () => {
7
-
8
- const oldGroupKeyRequest = new OldGroupKeyRequest({
9
- rsaPublicKey: 'aaaaaaaa',
10
- recipient: toEthereumAddress('0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'),
11
- requestId: 'request',
12
- groupKeyIds: ['id1', 'id2', 'id3']
13
- })
14
- const newGroupKeyRequest: GroupKeyRequest = {
15
- rsaPublicKey: utf8ToBinary('aaaaaaaa'),
16
- recipientId: hexToBinary('0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'),
17
- requestId: 'request',
18
- groupKeyIds: ['id1', 'id2', 'id3']
19
- }
20
-
21
- it('translates old protocol to protobuf', () => {
22
- const translated = GroupKeyRequestTranslator.toProtobuf(oldGroupKeyRequest)
23
- expect(translated.rsaPublicKey).toEqual(newGroupKeyRequest.rsaPublicKey)
24
- expect(translated.recipientId).toEqual(newGroupKeyRequest.recipientId)
25
- expect(translated.requestId).toEqual(newGroupKeyRequest.requestId)
26
- expect(translated.groupKeyIds).toEqual(newGroupKeyRequest.groupKeyIds)
27
- })
28
-
29
- it('translates protobuf to old protocol', () => {
30
- const translated = GroupKeyRequestTranslator.toClientProtocol(newGroupKeyRequest)
31
- expect(translated.rsaPublicKey).toEqual(oldGroupKeyRequest.rsaPublicKey)
32
- expect(translated.recipient).toEqual(oldGroupKeyRequest.recipient)
33
- expect(translated.requestId).toEqual(oldGroupKeyRequest.requestId)
34
- expect(translated.groupKeyIds).toEqual(oldGroupKeyRequest.groupKeyIds)
35
- })
36
- })