@streamr/trackerless-network 100.0.0-testnet-two.4 → 100.0.0-testnet-three.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 (188) 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 +27 -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 +16 -15
  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 +5 -3
  34. package/dist/src/logic/inspect/Inspector.js +15 -2
  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 +2 -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 +4 -1
  50. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.js +31 -20
  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 +5 -3
  84. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.js +9 -2
  85. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcLocal.js.map +1 -1
  86. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcRemote.d.ts +1 -0
  87. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcRemote.js +11 -0
  88. package/dist/src/logic/temporary-connection/TemporaryConnectionRpcRemote.js.map +1 -1
  89. package/dist/src/logic/utils.js.map +1 -1
  90. package/dist/src/proto/google/protobuf/any.js +8 -8
  91. package/dist/src/proto/google/protobuf/any.js.map +1 -1
  92. package/dist/src/proto/google/protobuf/empty.js +2 -4
  93. package/dist/src/proto/google/protobuf/empty.js.map +1 -1
  94. package/dist/src/proto/google/protobuf/timestamp.js +10 -10
  95. package/dist/src/proto/google/protobuf/timestamp.js.map +1 -1
  96. package/dist/src/proto/packages/dht/protos/DhtRpc.client.d.ts +4 -5
  97. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js +38 -29
  98. package/dist/src/proto/packages/dht/protos/DhtRpc.client.js.map +1 -1
  99. package/dist/src/proto/packages/dht/protos/DhtRpc.d.ts +26 -12
  100. package/dist/src/proto/packages/dht/protos/DhtRpc.js +12 -16
  101. package/dist/src/proto/packages/dht/protos/DhtRpc.js.map +1 -1
  102. package/dist/src/proto/packages/dht/protos/DhtRpc.server.d.ts +2 -3
  103. package/dist/src/proto/packages/proto-rpc/protos/ProtoRpc.js +1 -1
  104. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.d.ts +36 -0
  105. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.js +50 -17
  106. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.client.js.map +1 -1
  107. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.d.ts +118 -5
  108. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.js +91 -8
  109. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.js.map +1 -1
  110. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.server.d.ts +16 -0
  111. package/dist/test/benchmark/first-message.js +7 -5
  112. package/dist/test/benchmark/first-message.js.map +1 -1
  113. package/dist/test/utils/utils.js +2 -1
  114. package/dist/test/utils/utils.js.map +1 -1
  115. package/jest.config.js +3 -38
  116. package/package.json +7 -7
  117. package/protos/NetworkRpc.proto +38 -5
  118. package/src/NetworkNode.ts +5 -1
  119. package/src/NetworkStack.ts +23 -2
  120. package/src/exports.ts +4 -0
  121. package/src/logic/DuplicateMessageDetector.ts +7 -7
  122. package/src/logic/EntryPointDiscovery.ts +3 -3
  123. package/src/logic/Layer0Node.ts +2 -0
  124. package/src/logic/Layer1Node.ts +4 -4
  125. package/src/logic/NodeList.ts +9 -15
  126. package/src/logic/RandomGraphNode.ts +27 -23
  127. package/src/logic/StreamrNode.ts +18 -4
  128. package/src/logic/createRandomGraphNode.ts +19 -18
  129. package/src/logic/inspect/Inspector.ts +18 -5
  130. package/src/logic/neighbor-discovery/HandshakeRpcLocal.ts +18 -18
  131. package/src/logic/neighbor-discovery/Handshaker.ts +31 -32
  132. package/src/logic/neighbor-discovery/NeighborFinder.ts +2 -2
  133. package/src/logic/neighbor-discovery/NeighborUpdateManager.ts +7 -5
  134. package/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.ts +39 -27
  135. package/src/logic/node-info/NodeInfoClient.ts +21 -0
  136. package/src/logic/node-info/NodeInfoRpcLocal.ts +35 -0
  137. package/src/logic/node-info/NodeInfoRpcRemote.ts +11 -0
  138. package/src/logic/protocol-integration/stream-message/GroupKeyRequestTranslator.ts +1 -1
  139. package/src/logic/protocol-integration/stream-message/GroupKeyResponseTranslator.ts +1 -1
  140. package/src/logic/protocol-integration/stream-message/StreamMessageTranslator.ts +56 -27
  141. package/src/logic/protocol-integration/stream-message/oldStreamMessageBinaryUtils.ts +11 -0
  142. package/src/logic/proxy/ProxyClient.ts +10 -10
  143. package/src/logic/temporary-connection/TemporaryConnectionRpcLocal.ts +15 -4
  144. package/src/logic/temporary-connection/TemporaryConnectionRpcRemote.ts +11 -0
  145. package/src/proto/google/protobuf/any.ts +4 -4
  146. package/src/proto/google/protobuf/empty.ts +2 -4
  147. package/src/proto/google/protobuf/timestamp.ts +4 -4
  148. package/src/proto/packages/dht/protos/DhtRpc.client.ts +6 -7
  149. package/src/proto/packages/dht/protos/DhtRpc.server.ts +3 -4
  150. package/src/proto/packages/dht/protos/DhtRpc.ts +37 -20
  151. package/src/proto/packages/proto-rpc/protos/ProtoRpc.ts +1 -1
  152. package/src/proto/packages/trackerless-network/protos/NetworkRpc.client.ts +42 -1
  153. package/src/proto/packages/trackerless-network/protos/NetworkRpc.server.ts +17 -1
  154. package/src/proto/packages/trackerless-network/protos/NetworkRpc.ts +155 -12
  155. package/test/benchmark/first-message.ts +28 -8
  156. package/test/end-to-end/inspect.test.ts +13 -1
  157. package/test/end-to-end/proxy-and-full-node.test.ts +14 -1
  158. package/test/end-to-end/proxy-connections.test.ts +14 -2
  159. package/test/end-to-end/proxy-key-exchange.test.ts +15 -8
  160. package/test/end-to-end/random-graph-with-real-connections.test.ts +21 -21
  161. package/test/end-to-end/webrtc-full-node-network.test.ts +3 -3
  162. package/test/end-to-end/websocket-full-node-network.test.ts +3 -3
  163. package/test/integration/Handshakes.test.ts +8 -8
  164. package/test/integration/NetworkNode.test.ts +19 -1
  165. package/test/integration/NetworkRpc.test.ts +3 -2
  166. package/test/integration/NodeInfoRpc.test.ts +103 -0
  167. package/test/integration/Propagation.test.ts +2 -2
  168. package/test/integration/RandomGraphNode-Layer1Node-Latencies.test.ts +20 -21
  169. package/test/integration/RandomGraphNode-Layer1Node.test.ts +22 -19
  170. package/test/integration/stream-without-default-entrypoints.test.ts +17 -11
  171. package/test/unit/HandshakeRpcLocal.test.ts +15 -15
  172. package/test/unit/Handshaker.test.ts +3 -3
  173. package/test/unit/NeighborFinder.test.ts +5 -5
  174. package/test/unit/NeighborUpdateRpcLocal.test.ts +125 -0
  175. package/test/unit/NodeList.test.ts +56 -57
  176. package/test/unit/Propagation.test.ts +4 -2
  177. package/test/unit/RandomGraphNode.test.ts +7 -8
  178. package/test/unit/StreamMessageTranslator.test.ts +7 -4
  179. package/test/unit/StreamrNode.test.ts +2 -0
  180. package/test/unit/TemporaryConnectionRpcLocal.test.ts +32 -0
  181. package/test/unit/oldStreamMessageBinaryUtils.test.ts +39 -0
  182. package/test/utils/mock/MockLayer0Node.ts +6 -1
  183. package/test/utils/mock/MockLayer1Node.ts +2 -2
  184. package/test/utils/mock/Transport.ts +1 -1
  185. package/test/utils/utils.ts +3 -1
  186. package/tsconfig.jest.json +3 -3
  187. package/tsconfig.node.json +0 -1
  188. package/dist/package.json +0 -55
@@ -5,6 +5,7 @@ const dht_1 = require("@streamr/dht");
5
5
  const utils_1 = require("@streamr/utils");
6
6
  const logger = new utils_1.Logger(module);
7
7
  class HandshakeRpcLocal {
8
+ config;
8
9
  constructor(config) {
9
10
  this.config = config;
10
11
  }
@@ -18,14 +19,14 @@ class HandshakeRpcLocal {
18
19
  if (this.config.ongoingInterleaves.has(senderNodeId)) {
19
20
  return this.rejectHandshake(request);
20
21
  }
21
- else if (this.config.targetNeighbors.hasNode(senderDescriptor)
22
+ else if (this.config.neighbors.has(senderNodeId)
22
23
  || this.config.ongoingHandshakes.has(senderNodeId)) {
23
24
  return this.acceptHandshake(request, senderDescriptor);
24
25
  }
25
- else if (this.config.targetNeighbors.size() + this.config.ongoingHandshakes.size < this.config.maxNeighborCount) {
26
+ else if (this.config.neighbors.size() + this.config.ongoingHandshakes.size < this.config.maxNeighborCount) {
26
27
  return this.acceptHandshake(request, senderDescriptor);
27
28
  }
28
- else if (this.config.targetNeighbors.size(getInterleaveSourceIds()) - this.config.ongoingInterleaves.size >= 2) {
29
+ else if (this.config.neighbors.size(getInterleaveSourceIds()) - this.config.ongoingInterleaves.size >= 2) {
29
30
  // Do not accept the handshakes requests if the target neighbor count can potentially drop below 2
30
31
  // due to interleaving. This ensures that a stable number of connections is kept during high churn.
31
32
  return this.acceptHandshakeWithInterleaving(request, senderDescriptor);
@@ -39,7 +40,7 @@ class HandshakeRpcLocal {
39
40
  requestId: request.requestId,
40
41
  accepted: true
41
42
  };
42
- this.config.targetNeighbors.add(this.config.createDeliveryRpcRemote(requester));
43
+ this.config.neighbors.add(this.config.createDeliveryRpcRemote(requester));
43
44
  this.config.connectionLocker.lockConnection(requester, this.config.streamPartId);
44
45
  return res;
45
46
  }
@@ -59,21 +60,21 @@ class HandshakeRpcLocal {
59
60
  if (request.interleaveSourceId !== undefined) {
60
61
  exclude.push((0, dht_1.getDhtAddressFromRaw)(request.interleaveSourceId));
61
62
  }
62
- const furthest = this.config.targetNeighbors.getFurthest(exclude);
63
- const furthestPeerDescriptor = furthest ? furthest.getPeerDescriptor() : undefined;
64
- if (furthest) {
65
- const nodeId = (0, dht_1.getNodeIdFromPeerDescriptor)(furthest.getPeerDescriptor());
66
- const remote = this.config.createRpcRemote(furthest.getPeerDescriptor());
63
+ const last = this.config.neighbors.getLast(exclude);
64
+ const lastPeerDescriptor = last ? last.getPeerDescriptor() : undefined;
65
+ if (last) {
66
+ const nodeId = (0, dht_1.getNodeIdFromPeerDescriptor)(last.getPeerDescriptor());
67
+ const remote = this.config.createRpcRemote(last.getPeerDescriptor());
67
68
  this.config.ongoingInterleaves.add(nodeId);
68
69
  // Run this with then catch instead of setImmediate to avoid changes in state
69
70
  // eslint-disable-next-line promise/catch-or-return
70
71
  remote.interleaveRequest(requester).then((response) => {
71
- // If response is accepted, remove the furthest node from the target neighbors
72
+ // If response is accepted, remove the last node from the target neighbors
72
73
  // and unlock the connection
73
- // If response is not accepted, keep the furthest node as a neighbor
74
+ // If response is not accepted, keep the last node as a neighbor
74
75
  if (response.accepted) {
75
- this.config.targetNeighbors.remove(furthest.getPeerDescriptor());
76
- this.config.connectionLocker.unlockConnection(furthestPeerDescriptor, this.config.streamPartId);
76
+ this.config.neighbors.remove((0, dht_1.getNodeIdFromPeerDescriptor)(lastPeerDescriptor));
77
+ this.config.connectionLocker.unlockConnection(lastPeerDescriptor, this.config.streamPartId);
77
78
  }
78
79
  return;
79
80
  }).catch(() => {
@@ -82,12 +83,12 @@ class HandshakeRpcLocal {
82
83
  this.config.ongoingInterleaves.delete(nodeId);
83
84
  });
84
85
  }
85
- this.config.targetNeighbors.add(this.config.createDeliveryRpcRemote(requester));
86
+ this.config.neighbors.add(this.config.createDeliveryRpcRemote(requester));
86
87
  this.config.connectionLocker.lockConnection(requester, this.config.streamPartId);
87
88
  return {
88
89
  requestId: request.requestId,
89
90
  accepted: true,
90
- interleaveTargetDescriptor: furthestPeerDescriptor
91
+ interleaveTargetDescriptor: lastPeerDescriptor
91
92
  };
92
93
  }
93
94
  async interleaveRequest(message, context) {
@@ -95,9 +96,9 @@ class HandshakeRpcLocal {
95
96
  const senderId = (0, dht_1.getNodeIdFromPeerDescriptor)(senderPeerDescriptor);
96
97
  try {
97
98
  await this.config.handshakeWithInterleaving(message.interleaveTargetDescriptor, senderId);
98
- if (this.config.targetNeighbors.hasNodeById(senderId)) {
99
+ if (this.config.neighbors.has(senderId)) {
99
100
  this.config.connectionLocker.unlockConnection(senderPeerDescriptor, this.config.streamPartId);
100
- this.config.targetNeighbors.remove(senderPeerDescriptor);
101
+ this.config.neighbors.remove(senderId);
101
102
  }
102
103
  return { accepted: true };
103
104
  }
@@ -1 +1 @@
1
- {"version":3,"file":"HandshakeRpcLocal.js","sourceRoot":"","sources":["../../../../src/logic/neighbor-discovery/HandshakeRpcLocal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HandshakeRpcLocal.js","sourceRoot":"","sources":["../../../../src/logic/neighbor-discovery/HandshakeRpcLocal.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"HandshakeRpcRemote.js","sourceRoot":"","sources":["../../../../src/logic/neighbor-discovery/HandshakeRpcRemote.ts"],"names":[],"mappings":";;;AAAA,sCAAuH;AACvH,0CAAuC;AACvC,+BAAyB;AAKzB,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAOpB,QAAA,0BAA0B,GAAG,KAAK,CAAA;AAE/C,MAAa,kBAAmB,SAAQ,eAA6B;IAEjE,KAAK,CAAC,SAAS,CACX,YAA0B,EAC1B,WAAyB,EACzB,2BAAwC,EACxC,kBAA+B;QAE/B,MAAM,OAAO,GAA+B;YACxC,YAAY;YACZ,SAAS,EAAE,IAAA,SAAE,GAAE;YACf,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAA,0BAAoB,EAAC,EAAE,CAAC,CAAC;YAC9D,2BAA2B,EAAE,CAAC,2BAA2B,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,IAAA,0BAAoB,EAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,SAAS;YACxI,kBAAkB,EAAE,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,IAAA,0BAAoB,EAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,SAAS;SAChH,CAAA;QACD,IAAI;YACA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAA;YACpF,OAAO;gBACH,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,0BAA0B,EAAE,QAAQ,CAAC,0BAA0B;aAClE,CAAA;SACJ;QAAC,OAAO,GAAQ,EAAE;YACf,MAAM,CAAC,KAAK,CAAC,gBAAgB,IAAA,iCAA2B,EAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,CAAA;YACpG,OAAO;gBACH,QAAQ,EAAE,KAAK;aAClB,CAAA;SACJ;IACL,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,oBAAoC;QACxD,MAAM,OAAO,GAAsB;YAC/B,0BAA0B,EAAE,oBAAoB;SACnD,CAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACnC,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,kCAA0B;SACtC,CAAC,CAAA;QACF,IAAI;YACA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YACtE,OAAO;gBACH,QAAQ,EAAE,GAAG,CAAC,QAAQ;aACzB,CAAA;SACJ;QAAC,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,KAAK,CAAC,wBAAwB,IAAA,iCAA2B,EAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,CAAA;YAC5G,OAAO;gBACH,QAAQ,EAAE,KAAK;aAClB,CAAA;SACJ;IAEL,CAAC;CACJ;AAlDD,gDAkDC"}
1
+ {"version":3,"file":"HandshakeRpcRemote.js","sourceRoot":"","sources":["../../../../src/logic/neighbor-discovery/HandshakeRpcRemote.ts"],"names":[],"mappings":";;;AAAA,sCAAuH;AACvH,0CAAuC;AACvC,+BAAyB;AAKzB,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAOpB,QAAA,0BAA0B,GAAG,KAAK,CAAA;AAE/C,MAAa,kBAAmB,SAAQ,eAA6B;IAEjE,KAAK,CAAC,SAAS,CACX,YAA0B,EAC1B,WAAyB,EACzB,2BAAwC,EACxC,kBAA+B;QAE/B,MAAM,OAAO,GAA+B;YACxC,YAAY;YACZ,SAAS,EAAE,IAAA,SAAE,GAAE;YACf,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAA,0BAAoB,EAAC,EAAE,CAAC,CAAC;YAC9D,2BAA2B,EAAE,CAAC,2BAA2B,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,IAAA,0BAAoB,EAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,SAAS;YACxI,kBAAkB,EAAE,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,IAAA,0BAAoB,EAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,SAAS;SAChH,CAAA;QACD,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAA;YACpF,OAAO;gBACH,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,0BAA0B,EAAE,QAAQ,CAAC,0BAA0B;aAClE,CAAA;QACL,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAChB,MAAM,CAAC,KAAK,CAAC,gBAAgB,IAAA,iCAA2B,EAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,CAAA;YACpG,OAAO;gBACH,QAAQ,EAAE,KAAK;aAClB,CAAA;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,oBAAoC;QACxD,MAAM,OAAO,GAAsB;YAC/B,0BAA0B,EAAE,oBAAoB;SACnD,CAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACnC,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,kCAA0B;SACtC,CAAC,CAAA;QACF,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YACtE,OAAO;gBACH,QAAQ,EAAE,GAAG,CAAC,QAAQ;aACzB,CAAA;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,wBAAwB,IAAA,iCAA2B,EAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,CAAA;YAC5G,OAAO;gBACH,QAAQ,EAAE,KAAK;aAClB,CAAA;QACL,CAAC;IAEL,CAAC;CACJ;AAlDD,gDAkDC"}
@@ -1,15 +1,14 @@
1
- import { ConnectionLocker, DhtAddress, PeerDescriptor } from '@streamr/dht';
1
+ import { ConnectionLocker, DhtAddress, PeerDescriptor, ListeningRpcCommunicator } from '@streamr/dht';
2
2
  import { NodeList } from '../NodeList';
3
- import { RpcCommunicator } from '@streamr/proto-rpc';
4
3
  import { StreamPartID } from '@streamr/protocol';
5
4
  interface HandshakerConfig {
6
5
  localPeerDescriptor: PeerDescriptor;
7
6
  streamPartId: StreamPartID;
8
7
  connectionLocker: ConnectionLocker;
9
- targetNeighbors: NodeList;
8
+ neighbors: NodeList;
10
9
  nearbyNodeView: NodeList;
11
10
  randomNodeView: NodeList;
12
- rpcCommunicator: RpcCommunicator;
11
+ rpcCommunicator: ListeningRpcCommunicator;
13
12
  maxNeighborCount: number;
14
13
  rpcRequestTimeout?: number;
15
14
  }
@@ -11,12 +11,14 @@ const HandshakeRpcLocal_1 = require("./HandshakeRpcLocal");
11
11
  const logger = new utils_1.Logger(module);
12
12
  const PARALLEL_HANDSHAKE_COUNT = 2;
13
13
  class Handshaker {
14
+ ongoingHandshakes = new Set();
15
+ config;
16
+ rpcLocal;
14
17
  constructor(config) {
15
- this.ongoingHandshakes = new Set();
16
18
  this.config = config;
17
19
  this.rpcLocal = new HandshakeRpcLocal_1.HandshakeRpcLocal({
18
20
  streamPartId: this.config.streamPartId,
19
- targetNeighbors: this.config.targetNeighbors,
21
+ neighbors: this.config.neighbors,
20
22
  connectionLocker: this.config.connectionLocker,
21
23
  ongoingHandshakes: this.ongoingHandshakes,
22
24
  ongoingInterleaves: new Set(),
@@ -30,31 +32,31 @@ class Handshaker {
30
32
  }
31
33
  async attemptHandshakesOnContacts(excludedIds) {
32
34
  // TODO use config option or named constant? or why the value 2?
33
- if (this.config.targetNeighbors.size() + this.ongoingHandshakes.size < this.config.maxNeighborCount - 2) {
35
+ if (this.config.neighbors.size() + this.ongoingHandshakes.size < this.config.maxNeighborCount - 2) {
34
36
  logger.trace(`Attempting parallel handshakes with ${PARALLEL_HANDSHAKE_COUNT} targets`);
35
37
  return this.selectParallelTargetsAndHandshake(excludedIds);
36
38
  }
37
- else if (this.config.targetNeighbors.size() + this.ongoingHandshakes.size < this.config.maxNeighborCount) {
39
+ else if (this.config.neighbors.size() + this.ongoingHandshakes.size < this.config.maxNeighborCount) {
38
40
  logger.trace(`Attempting handshake with new target`);
39
41
  return this.selectNewTargetAndHandshake(excludedIds);
40
42
  }
41
43
  return excludedIds;
42
44
  }
43
45
  async selectParallelTargetsAndHandshake(excludedIds) {
44
- const exclude = excludedIds.concat(this.config.targetNeighbors.getIds());
45
- const targetNeighbors = this.selectParallelTargets(exclude);
46
- targetNeighbors.forEach((contact) => this.ongoingHandshakes.add((0, dht_1.getNodeIdFromPeerDescriptor)(contact.getPeerDescriptor())));
47
- return this.doParallelHandshakes(targetNeighbors, exclude);
46
+ const exclude = excludedIds.concat(this.config.neighbors.getIds());
47
+ const neighbors = this.selectParallelTargets(exclude);
48
+ neighbors.forEach((contact) => this.ongoingHandshakes.add((0, dht_1.getNodeIdFromPeerDescriptor)(contact.getPeerDescriptor())));
49
+ return this.doParallelHandshakes(neighbors, exclude);
48
50
  }
49
51
  selectParallelTargets(excludedIds) {
50
- const targetNeighbors = this.config.nearbyNodeView.getClosestAndFurthest(excludedIds);
51
- while (targetNeighbors.length < PARALLEL_HANDSHAKE_COUNT && this.config.randomNodeView.size(excludedIds) > 0) {
52
+ const neighbors = this.config.nearbyNodeView.getFirstAndLast(excludedIds);
53
+ while (neighbors.length < PARALLEL_HANDSHAKE_COUNT && this.config.randomNodeView.size(excludedIds) > 0) {
52
54
  const random = this.config.randomNodeView.getRandom(excludedIds);
53
55
  if (random) {
54
- targetNeighbors.push(random);
56
+ neighbors.push(random);
55
57
  }
56
58
  }
57
- return targetNeighbors.map((neighbor) => this.createRpcRemote(neighbor.getPeerDescriptor()));
59
+ return neighbors.map((neighbor) => this.createRpcRemote(neighbor.getPeerDescriptor()));
58
60
  }
59
61
  async doParallelHandshakes(targets, excludedIds) {
60
62
  const results = await Promise.allSettled(Array.from(targets.values()).map(async (target, i) => {
@@ -71,23 +73,23 @@ class Handshaker {
71
73
  return excludedIds;
72
74
  }
73
75
  async selectNewTargetAndHandshake(excludedIds) {
74
- const exclude = excludedIds.concat(this.config.targetNeighbors.getIds());
75
- const targetNeighbor = this.config.nearbyNodeView.getClosest(exclude) ?? this.config.randomNodeView.getRandom(exclude);
76
- if (targetNeighbor) {
77
- const accepted = await this.handshakeWithTarget(this.createRpcRemote(targetNeighbor.getPeerDescriptor()));
76
+ const exclude = excludedIds.concat(this.config.neighbors.getIds());
77
+ const neighbor = this.config.nearbyNodeView.getFirst(exclude) ?? this.config.randomNodeView.getRandom(exclude);
78
+ if (neighbor) {
79
+ const accepted = await this.handshakeWithTarget(this.createRpcRemote(neighbor.getPeerDescriptor()));
78
80
  if (!accepted) {
79
- excludedIds.push((0, dht_1.getNodeIdFromPeerDescriptor)(targetNeighbor.getPeerDescriptor()));
81
+ excludedIds.push((0, dht_1.getNodeIdFromPeerDescriptor)(neighbor.getPeerDescriptor()));
80
82
  }
81
83
  }
82
84
  return excludedIds;
83
85
  }
84
- async handshakeWithTarget(targetNeighbor, concurrentNodeId) {
85
- const targetNodeId = (0, dht_1.getNodeIdFromPeerDescriptor)(targetNeighbor.getPeerDescriptor());
86
+ async handshakeWithTarget(neighbor, concurrentNodeId) {
87
+ const targetNodeId = (0, dht_1.getNodeIdFromPeerDescriptor)(neighbor.getPeerDescriptor());
86
88
  this.ongoingHandshakes.add(targetNodeId);
87
- const result = await targetNeighbor.handshake(this.config.streamPartId, this.config.targetNeighbors.getIds(), concurrentNodeId);
89
+ const result = await neighbor.handshake(this.config.streamPartId, this.config.neighbors.getIds(), concurrentNodeId);
88
90
  if (result.accepted) {
89
- this.config.targetNeighbors.add(this.createDeliveryRpcRemote(targetNeighbor.getPeerDescriptor()));
90
- this.config.connectionLocker.lockConnection(targetNeighbor.getPeerDescriptor(), this.config.streamPartId);
91
+ this.config.neighbors.add(this.createDeliveryRpcRemote(neighbor.getPeerDescriptor()));
92
+ this.config.connectionLocker.lockConnection(neighbor.getPeerDescriptor(), this.config.streamPartId);
91
93
  }
92
94
  if (result.interleaveTargetDescriptor) {
93
95
  await this.handshakeWithInterleaving(result.interleaveTargetDescriptor, targetNodeId);
@@ -96,13 +98,13 @@ class Handshaker {
96
98
  return result.accepted;
97
99
  }
98
100
  async handshakeWithInterleaving(target, interleaveSourceId) {
99
- const targetNeighbor = this.createRpcRemote(target);
100
- const targetNodeId = (0, dht_1.getNodeIdFromPeerDescriptor)(targetNeighbor.getPeerDescriptor());
101
+ const neighbor = this.createRpcRemote(target);
102
+ const targetNodeId = (0, dht_1.getNodeIdFromPeerDescriptor)(neighbor.getPeerDescriptor());
101
103
  this.ongoingHandshakes.add(targetNodeId);
102
- const result = await targetNeighbor.handshake(this.config.streamPartId, this.config.targetNeighbors.getIds(), undefined, interleaveSourceId);
104
+ const result = await neighbor.handshake(this.config.streamPartId, this.config.neighbors.getIds(), undefined, interleaveSourceId);
103
105
  if (result.accepted) {
104
- this.config.targetNeighbors.add(this.createDeliveryRpcRemote(targetNeighbor.getPeerDescriptor()));
105
- this.config.connectionLocker.lockConnection(targetNeighbor.getPeerDescriptor(), this.config.streamPartId);
106
+ this.config.neighbors.add(this.createDeliveryRpcRemote(neighbor.getPeerDescriptor()));
107
+ this.config.connectionLocker.lockConnection(neighbor.getPeerDescriptor(), this.config.streamPartId);
106
108
  }
107
109
  this.ongoingHandshakes.delete(targetNodeId);
108
110
  return result.accepted;
@@ -1 +1 @@
1
- {"version":3,"file":"Handshaker.js","sourceRoot":"","sources":["../../../../src/logic/neighbor-discovery/Handshaker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Handshaker.js","sourceRoot":"","sources":["../../../../src/logic/neighbor-discovery/Handshaker.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { NodeList } from '../NodeList';
2
2
  import { DhtAddress } from '@streamr/dht';
3
3
  interface FindNeighborsSessionConfig {
4
- targetNeighbors: NodeList;
4
+ neighbors: NodeList;
5
5
  nearbyNodeView: NodeList;
6
6
  doFindNeighbors: (excludedNodes: DhtAddress[]) => Promise<DhtAddress[]>;
7
7
  minCount: number;
@@ -5,8 +5,10 @@ const utils_1 = require("@streamr/utils");
5
5
  const INITIAL_WAIT = 100;
6
6
  const INTERVAL = 250;
7
7
  class NeighborFinder {
8
+ abortController;
9
+ config;
10
+ running = false;
8
11
  constructor(config) {
9
- this.running = false;
10
12
  this.config = config;
11
13
  this.abortController = new AbortController();
12
14
  }
@@ -15,7 +17,7 @@ class NeighborFinder {
15
17
  return;
16
18
  }
17
19
  const newExcludes = await this.config.doFindNeighbors(excluded);
18
- if (this.config.targetNeighbors.size() < this.config.minCount && newExcludes.length < this.config.nearbyNodeView.size()) {
20
+ if (this.config.neighbors.size() < this.config.minCount && newExcludes.length < this.config.nearbyNodeView.size()) {
19
21
  // TODO should we catch possible promise rejection?
20
22
  (0, utils_1.setAbortableTimeout)(() => this.findNeighbors(newExcludes), INTERVAL, this.abortController.signal);
21
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NeighborFinder.js","sourceRoot":"","sources":["../../../../src/logic/neighbor-discovery/NeighborFinder.ts"],"names":[],"mappings":";;;AAAA,0CAAoD;AAWpD,MAAM,YAAY,GAAG,GAAG,CAAA;AACxB,MAAM,QAAQ,GAAG,GAAG,CAAA;AAEpB,MAAa,cAAc;IAKvB,YAAY,MAAkC;QAFtC,YAAO,GAAG,KAAK,CAAA;QAGnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;IAChD,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,QAAsB;QAC9C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,OAAM;SACT;QACD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;QAC/D,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE;YACrH,mDAAmD;YACnD,IAAA,2BAAmB,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;SACpG;aAAM;YACH,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;SACvB;IACL,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,OAAO,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,WAAyB,EAAE;QAC7B,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,OAAM;SACT;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QACnB,mDAAmD;QACnD,IAAA,2BAAmB,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;IACtG,CAAC;IAED,IAAI;QACA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,OAAM;SACT;QACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAA;IAChC,CAAC;CACJ;AA3CD,wCA2CC"}
1
+ {"version":3,"file":"NeighborFinder.js","sourceRoot":"","sources":["../../../../src/logic/neighbor-discovery/NeighborFinder.ts"],"names":[],"mappings":";;;AAAA,0CAAoD;AAWpD,MAAM,YAAY,GAAG,GAAG,CAAA;AACxB,MAAM,QAAQ,GAAG,GAAG,CAAA;AAEpB,MAAa,cAAc;IACN,eAAe,CAAiB;IAChC,MAAM,CAA4B;IAC3C,OAAO,GAAG,KAAK,CAAA;IAEvB,YAAY,MAAkC;QAC1C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;IAChD,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,QAAsB;QAC9C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,OAAM;QACV,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;QAC/D,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC;YAChH,mDAAmD;YACnD,IAAA,2BAAmB,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;QACrG,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACxB,CAAC;IACL,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,OAAO,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,WAAyB,EAAE;QAC7B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAM;QACV,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QACnB,mDAAmD;QACnD,IAAA,2BAAmB,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;IACtG,CAAC;IAED,IAAI;QACA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,OAAM;QACV,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAA;IAChC,CAAC;CACJ;AA3CD,wCA2CC"}
@@ -4,12 +4,13 @@ import { NodeList } from '../NodeList';
4
4
  import { StreamPartID } from '@streamr/protocol';
5
5
  interface NeighborUpdateManagerConfig {
6
6
  localPeerDescriptor: PeerDescriptor;
7
- targetNeighbors: NodeList;
7
+ neighbors: NodeList;
8
8
  nearbyNodeView: NodeList;
9
9
  neighborFinder: NeighborFinder;
10
10
  streamPartId: StreamPartID;
11
11
  rpcCommunicator: ListeningRpcCommunicator;
12
12
  neighborUpdateInterval: number;
13
+ neighborCount: number;
13
14
  }
14
15
  export declare class NeighborUpdateManager {
15
16
  private readonly abortController;
@@ -9,6 +9,9 @@ const NeighborUpdateRpcRemote_1 = require("./NeighborUpdateRpcRemote");
9
9
  const NeighborUpdateRpcLocal_1 = require("./NeighborUpdateRpcLocal");
10
10
  const logger = new utils_1.Logger(module);
11
11
  class NeighborUpdateManager {
12
+ abortController;
13
+ config;
14
+ rpcLocal;
12
15
  constructor(config) {
13
16
  this.abortController = new AbortController();
14
17
  this.rpcLocal = new NeighborUpdateRpcLocal_1.NeighborUpdateRpcLocal(config);
@@ -23,12 +26,13 @@ class NeighborUpdateManager {
23
26
  }
24
27
  async updateNeighborInfo() {
25
28
  logger.trace(`Updating neighbor info to nodes`);
26
- const neighborDescriptors = this.config.targetNeighbors.getAll().map((neighbor) => neighbor.getPeerDescriptor());
27
- await Promise.allSettled(this.config.targetNeighbors.getAll().map(async (neighbor) => {
29
+ const neighborDescriptors = this.config.neighbors.getAll().map((neighbor) => neighbor.getPeerDescriptor());
30
+ await Promise.allSettled(this.config.neighbors.getAll().map(async (neighbor) => {
28
31
  const res = await this.createRemote(neighbor.getPeerDescriptor()).updateNeighbors(this.config.streamPartId, neighborDescriptors);
29
32
  if (res.removeMe) {
30
- this.config.targetNeighbors.remove(neighbor.getPeerDescriptor());
31
- this.config.neighborFinder.start([(0, dht_1.getNodeIdFromPeerDescriptor)(neighbor.getPeerDescriptor())]);
33
+ const nodeId = (0, dht_1.getNodeIdFromPeerDescriptor)(neighbor.getPeerDescriptor());
34
+ this.config.neighbors.remove(nodeId);
35
+ this.config.neighborFinder.start([nodeId]);
32
36
  }
33
37
  }));
34
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NeighborUpdateManager.js","sourceRoot":"","sources":["../../../../src/logic/neighbor-discovery/NeighborUpdateManager.ts"],"names":[],"mappings":";;;AAAA,2FAA2F;AAC3F,sCAAoG;AACpG,yGAA2G;AAC3G,0CAA2D;AAG3D,uEAAmE;AACnE,qEAAiE;AAajE,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,qBAAqB;IAM9B,YAAY,MAAmC;QAC3C,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;QAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,+CAAsB,CAAC,MAAM,CAAC,CAAA;QAClD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,iBAAiB,CAAC,2BAAc,EAAE,2BAAc,EAAE,gBAAgB,EAC1F,CAAC,GAAmB,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;IACrF,CAAC;IAED,KAAK,CAAC,KAAK;QACP,MAAM,IAAA,0BAAkB,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;IACrI,CAAC;IAED,IAAI;QACA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAA;IAChC,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC5B,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAA;QAC/C,MAAM,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAA;QAChH,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;YACjF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAA;YAChI,IAAI,GAAG,CAAC,QAAQ,EAAE;gBACd,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAA;gBAChE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,IAAA,iCAA2B,EAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAA;aAChG;QACL,CAAC,CAAC,CAAC,CAAA;IACP,CAAC;IAEO,YAAY,CAAC,oBAAoC;QACrD,OAAO,IAAI,iDAAuB,CAC9B,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAC/B,oBAAoB,EACpB,IAAI,CAAC,MAAM,CAAC,eAAe,EAC3B,2CAAuB,CAC1B,CAAA;IACL,CAAC;CACJ;AA1CD,sDA0CC"}
1
+ {"version":3,"file":"NeighborUpdateManager.js","sourceRoot":"","sources":["../../../../src/logic/neighbor-discovery/NeighborUpdateManager.ts"],"names":[],"mappings":";;;AAAA,2FAA2F;AAC3F,sCAAoG;AACpG,yGAA2G;AAC3G,0CAA2D;AAG3D,uEAAmE;AACnE,qEAAiE;AAcjE,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,qBAAqB;IAEb,eAAe,CAAiB;IAChC,MAAM,CAA6B;IACnC,QAAQ,CAAwB;IAEjD,YAAY,MAAmC;QAC3C,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;QAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,+CAAsB,CAAC,MAAM,CAAC,CAAA;QAClD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,iBAAiB,CAAC,2BAAc,EAAE,2BAAc,EAAE,gBAAgB,EAC1F,CAAC,GAAmB,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;IACrF,CAAC;IAED,KAAK,CAAC,KAAK;QACP,MAAM,IAAA,0BAAkB,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;IACrI,CAAC;IAED,IAAI;QACA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAA;IAChC,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC5B,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAA;QAC/C,MAAM,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAA;QAC1G,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;YAC3E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAA;YAChI,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACf,MAAM,MAAM,GAAG,IAAA,iCAA2B,EAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAA;gBACxE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;gBACpC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;YAC9C,CAAC;QACL,CAAC,CAAC,CAAC,CAAA;IACP,CAAC;IAEO,YAAY,CAAC,oBAAoC;QACrD,OAAO,IAAI,iDAAuB,CAC9B,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAC/B,oBAAoB,EACpB,IAAI,CAAC,MAAM,CAAC,eAAe,EAC3B,2CAAuB,CAC1B,CAAA;IACL,CAAC;CACJ;AA3CD,sDA2CC"}
@@ -8,14 +8,17 @@ import { StreamPartID } from '@streamr/protocol';
8
8
  interface NeighborUpdateRpcLocalConfig {
9
9
  localPeerDescriptor: PeerDescriptor;
10
10
  streamPartId: StreamPartID;
11
- targetNeighbors: NodeList;
11
+ neighbors: NodeList;
12
12
  nearbyNodeView: NodeList;
13
13
  neighborFinder: NeighborFinder;
14
14
  rpcCommunicator: ListeningRpcCommunicator;
15
+ neighborCount: number;
15
16
  }
16
17
  export declare class NeighborUpdateRpcLocal implements INeighborUpdateRpc {
17
18
  private readonly config;
18
19
  constructor(config: NeighborUpdateRpcLocalConfig);
20
+ private updateContacts;
21
+ private createResponse;
19
22
  neighborUpdate(message: NeighborUpdate, context: ServerCallContext): Promise<NeighborUpdate>;
20
23
  }
21
24
  export {};
@@ -5,35 +5,46 @@ const dht_1 = require("@streamr/dht");
5
5
  const NetworkRpc_client_1 = require("../../proto/packages/trackerless-network/protos/NetworkRpc.client");
6
6
  const DeliveryRpcRemote_1 = require("../DeliveryRpcRemote");
7
7
  class NeighborUpdateRpcLocal {
8
+ config;
8
9
  constructor(config) {
9
10
  this.config = config;
10
11
  }
12
+ updateContacts(neighborDescriptors) {
13
+ const ownNodeId = (0, dht_1.getNodeIdFromPeerDescriptor)(this.config.localPeerDescriptor);
14
+ const newPeerDescriptors = neighborDescriptors.filter((peerDescriptor) => {
15
+ const nodeId = (0, dht_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
16
+ return nodeId !== ownNodeId && !this.config.neighbors.getIds().includes(nodeId);
17
+ });
18
+ newPeerDescriptors.forEach((peerDescriptor) => this.config.nearbyNodeView.add(new DeliveryRpcRemote_1.DeliveryRpcRemote(this.config.localPeerDescriptor, peerDescriptor, this.config.rpcCommunicator, NetworkRpc_client_1.DeliveryRpcClient)));
19
+ }
20
+ createResponse(removeMe) {
21
+ return {
22
+ streamPartId: this.config.streamPartId,
23
+ neighborDescriptors: this.config.neighbors.getAll().map((neighbor) => neighbor.getPeerDescriptor()),
24
+ removeMe
25
+ };
26
+ }
11
27
  // INeighborUpdateRpc server method
12
28
  async neighborUpdate(message, context) {
13
29
  const senderPeerDescriptor = context.incomingSourceDescriptor;
14
30
  const senderId = (0, dht_1.getNodeIdFromPeerDescriptor)(senderPeerDescriptor);
15
- if (this.config.targetNeighbors.hasNodeById(senderId)) {
16
- const ownNodeId = (0, dht_1.getNodeIdFromPeerDescriptor)(this.config.localPeerDescriptor);
17
- const newPeerDescriptors = message.neighborDescriptors.filter((peerDescriptor) => {
18
- const nodeId = (0, dht_1.getNodeIdFromPeerDescriptor)(peerDescriptor);
19
- return nodeId !== ownNodeId && !this.config.targetNeighbors.getIds().includes(nodeId);
20
- });
21
- newPeerDescriptors.forEach((peerDescriptor) => this.config.nearbyNodeView.add(new DeliveryRpcRemote_1.DeliveryRpcRemote(this.config.localPeerDescriptor, peerDescriptor, this.config.rpcCommunicator, NetworkRpc_client_1.DeliveryRpcClient)));
22
- this.config.neighborFinder.start();
23
- const response = {
24
- streamPartId: this.config.streamPartId,
25
- neighborDescriptors: this.config.targetNeighbors.getAll().map((neighbor) => neighbor.getPeerDescriptor()),
26
- removeMe: false
27
- };
28
- return response;
31
+ this.updateContacts(message.neighborDescriptors);
32
+ if (!this.config.neighbors.has(senderId)) {
33
+ return this.createResponse(true);
29
34
  }
30
35
  else {
31
- const response = {
32
- streamPartId: this.config.streamPartId,
33
- neighborDescriptors: this.config.targetNeighbors.getAll().map((neighbor) => neighbor.getPeerDescriptor()),
34
- removeMe: true
35
- };
36
- return response;
36
+ const isOverNeighborCount = this.config.neighbors.size() > this.config.neighborCount
37
+ // Motivation: We don't know the remote's neighborCount setting here. We only ask to cut connections
38
+ // if the remote has a "sufficient" number of neighbors, where "sufficient" means our neighborCount
39
+ // setting.
40
+ && message.neighborDescriptors.length > this.config.neighborCount;
41
+ if (!isOverNeighborCount) {
42
+ this.config.neighborFinder.start();
43
+ }
44
+ else {
45
+ this.config.neighbors.remove(senderId);
46
+ }
47
+ return this.createResponse(isOverNeighborCount);
37
48
  }
38
49
  }
39
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NeighborUpdateRpcLocal.js","sourceRoot":"","sources":["../../../../src/logic/neighbor-discovery/NeighborUpdateRpcLocal.ts"],"names":[],"mappings":";;;AACA,sCAAoH;AAEpH,yGAAqG;AAGrG,4DAAwD;AAaxD,MAAa,sBAAsB;IAI/B,YAAY,MAAoC;QAC5C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,cAAc,CAAC,OAAuB,EAAE,OAA0B;QACpE,MAAM,oBAAoB,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QAClF,MAAM,QAAQ,GAAG,IAAA,iCAA2B,EAAC,oBAAoB,CAAC,CAAA;QAClE,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;YACnD,MAAM,SAAS,GAAG,IAAA,iCAA2B,EAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAA;YAC9E,MAAM,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,cAAc,EAAE,EAAE;gBAC7E,MAAM,MAAM,GAAG,IAAA,iCAA2B,EAAC,cAAc,CAAC,CAAA;gBAC1D,OAAO,MAAM,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YACzF,CAAC,CAAC,CAAA;YACF,kBAAkB,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CACzE,IAAI,qCAAiB,CACjB,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAC/B,cAAc,EACd,IAAI,CAAC,MAAM,CAAC,eAAe,EAC3B,qCAAiB,CACpB,CAAC,CACL,CAAA;YACD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,CAAA;YAClC,MAAM,QAAQ,GAAmB;gBAC7B,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;gBACtC,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;gBACzG,QAAQ,EAAE,KAAK;aAClB,CAAA;YACD,OAAO,QAAQ,CAAA;SAClB;aAAM;YACH,MAAM,QAAQ,GAAmB;gBAC7B,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;gBACtC,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;gBACzG,QAAQ,EAAE,IAAI;aACjB,CAAA;YACD,OAAO,QAAQ,CAAA;SAClB;IACL,CAAC;CACJ;AA1CD,wDA0CC"}
1
+ {"version":3,"file":"NeighborUpdateRpcLocal.js","sourceRoot":"","sources":["../../../../src/logic/neighbor-discovery/NeighborUpdateRpcLocal.ts"],"names":[],"mappings":";;;AACA,sCAAoH;AAEpH,yGAAqG;AAGrG,4DAAwD;AAcxD,MAAa,sBAAsB;IAEd,MAAM,CAA8B;IAErD,YAAY,MAAoC;QAC5C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAEO,cAAc,CAAC,mBAAqC;QACxD,MAAM,SAAS,GAAG,IAAA,iCAA2B,EAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAA;QAC9E,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,cAAc,EAAE,EAAE;YACrE,MAAM,MAAM,GAAG,IAAA,iCAA2B,EAAC,cAAc,CAAC,CAAA;YAC1D,OAAO,MAAM,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACnF,CAAC,CAAC,CAAA;QACF,kBAAkB,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CACzE,IAAI,qCAAiB,CACjB,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAC/B,cAAc,EACd,IAAI,CAAC,MAAM,CAAC,eAAe,EAC3B,qCAAiB,CACpB,CAAC,CACL,CAAA;IACL,CAAC;IAEO,cAAc,CAAC,QAAiB;QACpC,OAAO;YACH,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;YACtC,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;YACnG,QAAQ;SACX,CAAA;IACL,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,cAAc,CAAC,OAAuB,EAAE,OAA0B;QACpE,MAAM,oBAAoB,GAAI,OAA0B,CAAC,wBAAyB,CAAA;QAClF,MAAM,QAAQ,GAAG,IAAA,iCAA2B,EAAC,oBAAoB,CAAC,CAAA;QAClE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;QAChD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QACpC,CAAC;aAAM,CAAC;YACJ,MAAM,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa;gBAChF,oGAAoG;gBACpG,mGAAmG;gBACnG,WAAW;mBACR,OAAO,CAAC,mBAAmB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAA;YACrE,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,CAAA;YACtC,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YAC1C,CAAC;YACD,OAAO,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAA;QACnD,CAAC;IACL,CAAC;CACJ;AArDD,wDAqDC"}
@@ -1 +1 @@
1
- {"version":3,"file":"NeighborUpdateRpcRemote.js","sourceRoot":"","sources":["../../../../src/logic/neighbor-discovery/NeighborUpdateRpcRemote.ts"],"names":[],"mappings":";;;AAAA,sCAAqF;AACrF,0CAAuC;AAKvC,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAOjC,MAAa,uBAAwB,SAAQ,eAAkC;IAE3E,KAAK,CAAC,eAAe,CAAC,YAA0B,EAAE,SAA2B;QACzE,MAAM,OAAO,GAAmB;YAC5B,YAAY;YACZ,mBAAmB,EAAE,SAAS;YAC9B,QAAQ,EAAE,KAAK;SAClB,CAAA;QACD,IAAI;YACA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAA;YACzF,OAAO;gBACH,eAAe,EAAE,QAAQ,CAAC,mBAAmB;gBAC7C,QAAQ,EAAE,QAAQ,CAAC,QAAQ;aAC9B,CAAA;SACJ;QAAC,OAAO,GAAQ,EAAE;YACf,MAAM,CAAC,KAAK,CAAC,sBAAsB,IAAA,iCAA2B,EAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,CAAA;YAC1G,OAAO;gBACH,eAAe,EAAE,EAAE;gBACnB,QAAQ,EAAE,IAAI;aACjB,CAAA;SACJ;IACL,CAAC;CACJ;AAtBD,0DAsBC"}
1
+ {"version":3,"file":"NeighborUpdateRpcRemote.js","sourceRoot":"","sources":["../../../../src/logic/neighbor-discovery/NeighborUpdateRpcRemote.ts"],"names":[],"mappings":";;;AAAA,sCAAqF;AACrF,0CAAuC;AAKvC,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAOjC,MAAa,uBAAwB,SAAQ,eAAkC;IAE3E,KAAK,CAAC,eAAe,CAAC,YAA0B,EAAE,SAA2B;QACzE,MAAM,OAAO,GAAmB;YAC5B,YAAY;YACZ,mBAAmB,EAAE,SAAS;YAC9B,QAAQ,EAAE,KAAK;SAClB,CAAA;QACD,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAA;YACzF,OAAO;gBACH,eAAe,EAAE,QAAQ,CAAC,mBAAmB;gBAC7C,QAAQ,EAAE,QAAQ,CAAC,QAAQ;aAC9B,CAAA;QACL,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAChB,MAAM,CAAC,KAAK,CAAC,sBAAsB,IAAA,iCAA2B,EAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,CAAA;YAC1G,OAAO;gBACH,eAAe,EAAE,EAAE;gBACnB,QAAQ,EAAE,IAAI;aACjB,CAAA;QACL,CAAC;IACL,CAAC;CACJ;AAtBD,0DAsBC"}
@@ -0,0 +1,9 @@
1
+ import { DhtCallContext, PeerDescriptor } from '@streamr/dht';
2
+ import { NodeInfoResponse } from '../../proto/packages/trackerless-network/protos/NetworkRpc';
3
+ import { RpcCommunicator } from '@streamr/proto-rpc';
4
+ export declare class NodeInfoClient {
5
+ private readonly ownPeerDescriptor;
6
+ private readonly rpcCommunicator;
7
+ constructor(ownPeerDescriptor: PeerDescriptor, rpcCommunicator: RpcCommunicator<DhtCallContext>);
8
+ getInfo(node: PeerDescriptor): Promise<NodeInfoResponse>;
9
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NodeInfoClient = void 0;
4
+ const NodeInfoRpcRemote_1 = require("./NodeInfoRpcRemote");
5
+ const NetworkRpc_client_1 = require("../../proto/packages/trackerless-network/protos/NetworkRpc.client");
6
+ class NodeInfoClient {
7
+ ownPeerDescriptor;
8
+ rpcCommunicator;
9
+ constructor(ownPeerDescriptor, rpcCommunicator) {
10
+ this.ownPeerDescriptor = ownPeerDescriptor;
11
+ this.rpcCommunicator = rpcCommunicator;
12
+ }
13
+ async getInfo(node) {
14
+ const remote = new NodeInfoRpcRemote_1.NodeInfoRpcRemote(this.ownPeerDescriptor, node, this.rpcCommunicator, NetworkRpc_client_1.NodeInfoRpcClient);
15
+ return remote.getInfo();
16
+ }
17
+ }
18
+ exports.NodeInfoClient = NodeInfoClient;
19
+ //# sourceMappingURL=NodeInfoClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeInfoClient.js","sourceRoot":"","sources":["../../../../src/logic/node-info/NodeInfoClient.ts"],"names":[],"mappings":";;;AAEA,2DAAuD;AAEvD,yGAAqG;AAErG,MAAa,cAAc;IACN,iBAAiB,CAAgB;IACjC,eAAe,CAAiC;IAEjE,YAAY,iBAAiC,EAAE,eAAgD;QAC3F,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;QAC1C,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAoB;QAC9B,MAAM,MAAM,GAAG,IAAI,qCAAiB,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,qCAAiB,CAAC,CAAA;QAC3G,OAAO,MAAM,CAAC,OAAO,EAAE,CAAA;IAC3B,CAAC;CAEJ;AAdD,wCAcC"}
@@ -0,0 +1,12 @@
1
+ import { NodeInfoResponse } from '../../proto/packages/trackerless-network/protos/NetworkRpc';
2
+ import { INodeInfoRpc } from '../../proto/packages/trackerless-network/protos/NetworkRpc.server';
3
+ import { NetworkStack } from '../../NetworkStack';
4
+ import { ListeningRpcCommunicator } from '@streamr/dht';
5
+ export declare const NODE_INFO_RPC_SERVICE_ID = "system/node-info-rpc";
6
+ export declare class NodeInfoRpcLocal implements INodeInfoRpc {
7
+ private readonly stack;
8
+ private readonly rpcCommunicator;
9
+ constructor(stack: NetworkStack, rpcCommunicator: ListeningRpcCommunicator);
10
+ private registerDefaultServerMethods;
11
+ getInfo(): Promise<NodeInfoResponse>;
12
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NodeInfoRpcLocal = exports.NODE_INFO_RPC_SERVICE_ID = void 0;
4
+ const NetworkRpc_1 = require("../../proto/packages/trackerless-network/protos/NetworkRpc");
5
+ exports.NODE_INFO_RPC_SERVICE_ID = 'system/node-info-rpc';
6
+ class NodeInfoRpcLocal {
7
+ stack;
8
+ rpcCommunicator;
9
+ constructor(stack, rpcCommunicator) {
10
+ this.stack = stack;
11
+ this.rpcCommunicator = rpcCommunicator;
12
+ this.registerDefaultServerMethods();
13
+ }
14
+ registerDefaultServerMethods() {
15
+ this.rpcCommunicator.registerRpcMethod(NetworkRpc_1.NodeInfoRequest, NetworkRpc_1.NodeInfoResponse, 'getInfo', () => this.getInfo());
16
+ }
17
+ async getInfo() {
18
+ return {
19
+ peerDescriptor: this.stack.getLayer0Node().getLocalPeerDescriptor(),
20
+ controlLayer: {
21
+ connections: this.stack.getLayer0Node().getConnections(),
22
+ neighbors: this.stack.getLayer0Node().getNeighbors()
23
+ },
24
+ streamPartitions: this.stack.getStreamrNode().getNodeInfo()
25
+ };
26
+ }
27
+ }
28
+ exports.NodeInfoRpcLocal = NodeInfoRpcLocal;
29
+ //# sourceMappingURL=NodeInfoRpcLocal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeInfoRpcLocal.js","sourceRoot":"","sources":["../../../../src/logic/node-info/NodeInfoRpcLocal.ts"],"names":[],"mappings":";;;AAAA,2FAA8G;AAKjG,QAAA,wBAAwB,GAAG,sBAAsB,CAAA;AAE9D,MAAa,gBAAgB;IAER,KAAK,CAAc;IACnB,eAAe,CAA0B;IAE1D,YAAY,KAAmB,EAAE,eAAyC;QACtE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;QACtC,IAAI,CAAC,4BAA4B,EAAE,CAAA;IACvC,CAAC;IAEO,4BAA4B;QAChC,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,4BAAe,EAAE,6BAAgB,EAAE,SAAS,EAC/E,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,OAAO;QACT,OAAO;YACH,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,sBAAsB,EAAE;YACnE,YAAY,EAAE;gBACV,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,cAAc,EAAE;gBACxD,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,YAAY,EAAE;aACvD;YACD,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,WAAW,EAAE;SAC9D,CAAA;IACL,CAAC;CAEJ;AA3BD,4CA2BC"}
@@ -0,0 +1,6 @@
1
+ import { NodeInfoResponse } from '../../proto/packages/trackerless-network/protos/NetworkRpc';
2
+ import { NodeInfoRpcClient } from '../../proto/packages/trackerless-network/protos/NetworkRpc.client';
3
+ import { RpcRemote } from '@streamr/dht';
4
+ export declare class NodeInfoRpcRemote extends RpcRemote<NodeInfoRpcClient> {
5
+ getInfo(): Promise<NodeInfoResponse>;
6
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NodeInfoRpcRemote = void 0;
4
+ const dht_1 = require("@streamr/dht");
5
+ class NodeInfoRpcRemote extends dht_1.RpcRemote {
6
+ async getInfo() {
7
+ return this.getClient().getInfo({}, this.formDhtRpcOptions());
8
+ }
9
+ }
10
+ exports.NodeInfoRpcRemote = NodeInfoRpcRemote;
11
+ //# sourceMappingURL=NodeInfoRpcRemote.js.map