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

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 (39) hide show
  1. package/README.md +57 -0
  2. package/dist/package.json +55 -0
  3. package/dist/src/NetworkStack.js +7 -2
  4. package/dist/src/NetworkStack.js.map +1 -1
  5. package/dist/src/exports.d.ts +2 -1
  6. package/dist/src/exports.js +4 -1
  7. package/dist/src/exports.js.map +1 -1
  8. package/dist/src/logic/createRandomGraphNode.js +5 -2
  9. package/dist/src/logic/createRandomGraphNode.js.map +1 -1
  10. package/dist/src/logic/neighbor-discovery/Handshaker.d.ts +1 -1
  11. package/dist/src/logic/neighbor-discovery/Handshaker.js +17 -15
  12. package/dist/src/logic/neighbor-discovery/Handshaker.js.map +1 -1
  13. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.d.ts +2 -1
  14. package/dist/src/logic/neighbor-discovery/NeighborUpdateManager.js.map +1 -1
  15. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.d.ts +2 -1
  16. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.js +1 -1
  17. package/dist/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.js.map +1 -1
  18. package/dist/src/logic/node-info/NodeInfoRpcLocal.js +3 -1
  19. package/dist/src/logic/node-info/NodeInfoRpcLocal.js.map +1 -1
  20. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.d.ts +4 -0
  21. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.js +2 -1
  22. package/dist/src/proto/packages/trackerless-network/protos/NetworkRpc.js.map +1 -1
  23. package/package.json +6 -6
  24. package/protos/NetworkRpc.proto +1 -0
  25. package/src/NetworkStack.ts +9 -3
  26. package/src/exports.ts +2 -1
  27. package/src/logic/createRandomGraphNode.ts +5 -2
  28. package/src/logic/neighbor-discovery/Handshaker.ts +20 -15
  29. package/src/logic/neighbor-discovery/NeighborUpdateManager.ts +2 -1
  30. package/src/logic/neighbor-discovery/NeighborUpdateRpcLocal.ts +3 -2
  31. package/src/logic/node-info/NodeInfoRpcLocal.ts +3 -1
  32. package/src/proto/packages/trackerless-network/protos/NetworkRpc.ts +6 -1
  33. package/test/end-to-end/proxy-key-exchange.test.ts +2 -2
  34. package/test/integration/Handshakes.test.ts +2 -1
  35. package/test/integration/NodeInfoRpc.test.ts +2 -1
  36. package/test/unit/Handshaker.test.ts +2 -1
  37. package/test/unit/NeighborUpdateRpcLocal.test.ts +16 -2
  38. package/tsconfig.jest.json +2 -1
  39. package/tsconfig.node.json +2 -1
package/README.md CHANGED
@@ -1,6 +1,63 @@
1
1
  # Trackerless Network
2
2
 
3
+ A P2P topic publish-subscribe network.
4
+
3
5
  The Trackerless Network package is a reimplementation of the old (Corea-Brubeck) network package.
4
6
  The package is reimplemented to use the network and transport stacks of the proto-rpc and DHT packages.
5
7
  The main change to the network is that the `d-regular random graph` stream topologies are now generated
6
8
  using a decentralized algorithm based on peer discovery from the DHT.
9
+
10
+ ## Running a node
11
+
12
+ Running a network node requires a DhtNode from the `@streamr/dht` to use as control layer. For more details on how to configure the DHT node go [here](packages/dht/README.md) The control layer node is configured as follows:
13
+
14
+ ```js
15
+ const networkNode = new NetworkNode({
16
+ // Give all control layer DHT configs here.
17
+ layer0: {
18
+
19
+ },
20
+ // Content layer specific configurations:
21
+ networkNode: {
22
+
23
+ }
24
+ })
25
+ await networkNode.start()
26
+ ```
27
+
28
+ ### Publishing messages
29
+
30
+ ```js
31
+ const streamPartId = StreamPartIDUtils.parse('test#0')
32
+ const message = new StreamMessage({
33
+ messageId: new MessageID(
34
+ StreamPartIDUtils.getStreamID(streamPartId),
35
+ StreamPartIDUtils.getStreamPartition(streamPartId),
36
+ 666,
37
+ 0,
38
+ '0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' as EthereumAddress,
39
+ 'msgChainId'
40
+ ),
41
+ prevMsgRef: new MessageRef(665, 0),
42
+ content: utf8ToBinary(JSON.stringify({
43
+ hello: 'world'
44
+ })),
45
+ contentType: ContentType.JSON,
46
+ messageType: StreamMessageType.MESSAGE,
47
+ encryptionType: EncryptionType.NONE,
48
+ signatureType: SignatureType.SECP256K1,
49
+ signature: hexToBinary('0x1234')
50
+ })
51
+ await networkNode.broadcast(streamMessage)
52
+
53
+ ```
54
+
55
+ ### Subscribing to messages
56
+
57
+ ```js
58
+ const streamPartId = StreamPartIDUtils.parse('test#0')
59
+ networkNode.addMessageListener((msg) => {
60
+ console.log(msg)
61
+ })
62
+ await networkNode.join(streamPartId)
63
+ ```
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "@streamr/trackerless-network",
3
+ "version": "100.0.0-testnet-three.4",
4
+ "description": "Minimal and extendable implementation of the Streamr Network node.",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/streamr-dev/network-monorepo.git",
8
+ "directory": "packages/trackerless-network"
9
+ },
10
+ "main": "dist/src/exports.js",
11
+ "types": "dist/src/exports.d.ts",
12
+ "license": "STREAMR NETWORK OPEN SOURCE LICENSE",
13
+ "author": "Streamr Network AG <contact@streamr.network>",
14
+ "scripts": {
15
+ "build": "tsc -b tsconfig.node.json",
16
+ "build-browser": "webpack --mode=development --progress",
17
+ "generate-protoc-code": "./proto.sh",
18
+ "check": "tsc -p ./tsconfig.jest.json --noEmit",
19
+ "clean": "jest --clearCache || true; rm -rf dist *.tsbuildinfo node_modules/.cache || true",
20
+ "coverage": "jest --coverage",
21
+ "eslint": "eslint --cache --cache-location=node_modules/.cache/.eslintcache/ '*/**/*.{js,ts}'",
22
+ "test": "npm run test-unit && npm run test-integration && npm run test-end-to-end",
23
+ "test-browser": "karma start karma.config.js",
24
+ "test-unit": "jest test/unit",
25
+ "test-integration": "jest --bail test/integration",
26
+ "test-end-to-end": "jest --bail test/end-to-end",
27
+ "network": "ts-node bin/network",
28
+ "run-joining-benchmark": "node --max-old-space-size=24288 dist/test/benchmark/first-message.js"
29
+ },
30
+ "dependencies": {
31
+ "@protobuf-ts/runtime": "^2.8.2",
32
+ "@protobuf-ts/runtime-rpc": "^2.8.2",
33
+ "@streamr/dht": "100.0.0-testnet-three.4",
34
+ "@streamr/proto-rpc": "100.0.0-testnet-three.4",
35
+ "@streamr/protocol": "100.0.0-testnet-three.4",
36
+ "@streamr/test-utils": "100.0.0-testnet-three.4",
37
+ "@streamr/utils": "100.0.0-testnet-three.4",
38
+ "eventemitter3": "^5.0.0",
39
+ "lodash": "^4.17.21",
40
+ "uuid": "^9.0.1",
41
+ "yallist": "^4.0.0"
42
+ },
43
+ "devDependencies": {
44
+ "@streamr/browser-test-runner": "^0.0.1",
45
+ "@types/lodash": "^4.14.202",
46
+ "@types/uuid": "^9.0.7",
47
+ "@types/yallist": "^4.0.1",
48
+ "commander": "^11.1.0",
49
+ "expect": "^29.6.2",
50
+ "express": "^4.17.1",
51
+ "ts-essentials": "^9.4.1",
52
+ "ts-loader": "^9.5.1",
53
+ "ts-node": "^10.9.2"
54
+ }
55
+ }
@@ -9,6 +9,7 @@ const NetworkRpc_1 = require("./proto/packages/trackerless-network/protos/Networ
9
9
  const lodash_1 = require("lodash");
10
10
  const NodeInfoRpcLocal_1 = require("./logic/node-info/NodeInfoRpcLocal");
11
11
  const NodeInfoClient_1 = require("./logic/node-info/NodeInfoClient");
12
+ const logger = new utils_1.Logger(module);
12
13
  const instances = [];
13
14
  const stopInstances = async () => {
14
15
  // make a clone so that it is ok for each instance.stop() to remove itself from the list (at line 139)
@@ -18,9 +19,13 @@ const stopInstances = async () => {
18
19
  };
19
20
  const EXIT_EVENTS = [`exit`, `SIGINT`, `SIGUSR1`, `SIGUSR2`, `uncaughtException`, `unhandledRejection`, `SIGTERM`];
20
21
  EXIT_EVENTS.forEach((event) => {
21
- process.on(event, async () => {
22
+ process.on(event, async (eventArg) => {
23
+ const isError = (event === 'uncaughtException') || (event === 'unhandledRejection');
24
+ if (isError) {
25
+ logger.error(`exit event: ${event}`, eventArg);
26
+ }
22
27
  await stopInstances();
23
- process.exit();
28
+ process.exit(isError ? 1 : 0);
24
29
  });
25
30
  });
26
31
  if (typeof window === 'object') {
@@ -1 +1 @@
1
- {"version":3,"file":"NetworkStack.js","sourceRoot":"","sources":["../../src/NetworkStack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NetworkStack.js","sourceRoot":"","sources":["../../src/NetworkStack.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  export { NetworkStack, NetworkOptions } from './NetworkStack';
2
2
  export { NetworkNode, createNetworkNode } from './NetworkNode';
3
3
  export { StreamrNodeConfig } from './logic/StreamrNode';
4
- export { ProxyDirection } from './proto/packages/trackerless-network/protos/NetworkRpc';
4
+ export { ProxyDirection, NodeInfoResponse } from './proto/packages/trackerless-network/protos/NetworkRpc';
5
+ export { streamPartIdToDataKey } from './logic/EntryPointDiscovery';
5
6
  export { convertStreamMessageToBytes, convertBytesToStreamMessage } from './logic/protocol-integration/stream-message/oldStreamMessageBinaryUtils';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.convertBytesToStreamMessage = exports.convertStreamMessageToBytes = exports.ProxyDirection = exports.createNetworkNode = exports.NetworkNode = exports.NetworkStack = void 0;
3
+ exports.convertBytesToStreamMessage = exports.convertStreamMessageToBytes = exports.streamPartIdToDataKey = exports.NodeInfoResponse = exports.ProxyDirection = exports.createNetworkNode = exports.NetworkNode = exports.NetworkStack = void 0;
4
4
  var NetworkStack_1 = require("./NetworkStack");
5
5
  Object.defineProperty(exports, "NetworkStack", { enumerable: true, get: function () { return NetworkStack_1.NetworkStack; } });
6
6
  var NetworkNode_1 = require("./NetworkNode");
@@ -8,6 +8,9 @@ Object.defineProperty(exports, "NetworkNode", { enumerable: true, get: function
8
8
  Object.defineProperty(exports, "createNetworkNode", { enumerable: true, get: function () { return NetworkNode_1.createNetworkNode; } });
9
9
  var NetworkRpc_1 = require("./proto/packages/trackerless-network/protos/NetworkRpc");
10
10
  Object.defineProperty(exports, "ProxyDirection", { enumerable: true, get: function () { return NetworkRpc_1.ProxyDirection; } });
11
+ Object.defineProperty(exports, "NodeInfoResponse", { enumerable: true, get: function () { return NetworkRpc_1.NodeInfoResponse; } });
12
+ var EntryPointDiscovery_1 = require("./logic/EntryPointDiscovery");
13
+ Object.defineProperty(exports, "streamPartIdToDataKey", { enumerable: true, get: function () { return EntryPointDiscovery_1.streamPartIdToDataKey; } });
11
14
  var oldStreamMessageBinaryUtils_1 = require("./logic/protocol-integration/stream-message/oldStreamMessageBinaryUtils");
12
15
  Object.defineProperty(exports, "convertStreamMessageToBytes", { enumerable: true, get: function () { return oldStreamMessageBinaryUtils_1.convertStreamMessageToBytes; } });
13
16
  Object.defineProperty(exports, "convertBytesToStreamMessage", { enumerable: true, get: function () { return oldStreamMessageBinaryUtils_1.convertBytesToStreamMessage; } });
@@ -1 +1 @@
1
- {"version":3,"file":"exports.js","sourceRoot":"","sources":["../../src/exports.ts"],"names":[],"mappings":";;;AAAA,+CAA6D;AAApD,4GAAA,YAAY,OAAA;AACrB,6CAA8D;AAArD,0GAAA,WAAW,OAAA;AAAE,gHAAA,iBAAiB,OAAA;AAEvC,qFAAuF;AAA9E,4GAAA,cAAc,OAAA;AACvB,uHAGgF;AAF5E,0IAAA,2BAA2B,OAAA;AAC3B,0IAAA,2BAA2B,OAAA"}
1
+ {"version":3,"file":"exports.js","sourceRoot":"","sources":["../../src/exports.ts"],"names":[],"mappings":";;;AAAA,+CAA6D;AAApD,4GAAA,YAAY,OAAA;AACrB,6CAA8D;AAArD,0GAAA,WAAW,OAAA;AAAE,gHAAA,iBAAiB,OAAA;AAEvC,qFAAyG;AAAhG,4GAAA,cAAc,OAAA;AAAE,8GAAA,gBAAgB,OAAA;AACzC,mEAAmE;AAA1D,4HAAA,qBAAqB,OAAA;AAC9B,uHAGgF;AAF5E,0IAAA,2BAA2B,OAAA;AAC3B,0IAAA,2BAA2B,OAAA"}
@@ -23,6 +23,7 @@ const createConfigWithDefaults = (config) => {
23
23
  const nearbyNodeView = config.nearbyNodeView ?? new NodeList_1.NodeList(ownNodeId, maxContactCount);
24
24
  const randomNodeView = config.randomNodeView ?? new NodeList_1.NodeList(ownNodeId, maxContactCount);
25
25
  const neighbors = config.neighbors ?? new NodeList_1.NodeList(ownNodeId, maxContactCount);
26
+ const ongoingHandshakes = new Set();
26
27
  const temporaryConnectionRpcLocal = new TemporaryConnectionRpcLocal_1.TemporaryConnectionRpcLocal({
27
28
  rpcCommunicator,
28
29
  localPeerDescriptor: config.localPeerDescriptor
@@ -57,7 +58,8 @@ const createConfigWithDefaults = (config) => {
57
58
  randomNodeView,
58
59
  neighbors,
59
60
  maxNeighborCount: neighborTargetCount,
60
- rpcRequestTimeout: config.rpcRequestTimeout
61
+ rpcRequestTimeout: config.rpcRequestTimeout,
62
+ ongoingHandshakes
61
63
  });
62
64
  const neighborFinder = config.neighborFinder ?? new NeighborFinder_1.NeighborFinder({
63
65
  neighbors,
@@ -74,7 +76,8 @@ const createConfigWithDefaults = (config) => {
74
76
  rpcCommunicator,
75
77
  neighborUpdateInterval,
76
78
  neighborTargetCount,
77
- connectionLocker: config.connectionLocker
79
+ connectionLocker: config.connectionLocker,
80
+ ongoingHandshakes
78
81
  });
79
82
  const inspector = config.inspector ?? new Inspector_1.Inspector({
80
83
  localPeerDescriptor: config.localPeerDescriptor,
@@ -1 +1 @@
1
- {"version":3,"file":"createRandomGraphNode.js","sourceRoot":"","sources":["../../../src/logic/createRandomGraphNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createRandomGraphNode.js","sourceRoot":"","sources":["../../../src/logic/createRandomGraphNode.ts"],"names":[],"mappings":"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"}
@@ -10,10 +10,10 @@ interface HandshakerConfig {
10
10
  randomNodeView: NodeList;
11
11
  rpcCommunicator: ListeningRpcCommunicator;
12
12
  maxNeighborCount: number;
13
+ ongoingHandshakes: Set<DhtAddress>;
13
14
  rpcRequestTimeout?: number;
14
15
  }
15
16
  export declare class Handshaker {
16
- private readonly ongoingHandshakes;
17
17
  private config;
18
18
  private readonly rpcLocal;
19
19
  constructor(config: HandshakerConfig);
@@ -11,7 +11,6 @@ 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
14
  config;
16
15
  rpcLocal;
17
16
  constructor(config) {
@@ -20,7 +19,7 @@ class Handshaker {
20
19
  streamPartId: this.config.streamPartId,
21
20
  neighbors: this.config.neighbors,
22
21
  connectionLocker: this.config.connectionLocker,
23
- ongoingHandshakes: this.ongoingHandshakes,
22
+ ongoingHandshakes: this.config.ongoingHandshakes,
24
23
  ongoingInterleaves: new Set(),
25
24
  maxNeighborCount: this.config.maxNeighborCount,
26
25
  handshakeWithInterleaving: (target, senderId) => this.handshakeWithInterleaving(target, senderId),
@@ -32,11 +31,11 @@ class Handshaker {
32
31
  }
33
32
  async attemptHandshakesOnContacts(excludedIds) {
34
33
  // TODO use config option or named constant? or why the value 2?
35
- if (this.config.neighbors.size() + this.ongoingHandshakes.size < this.config.maxNeighborCount - 2) {
34
+ if (this.config.neighbors.size() + this.config.ongoingHandshakes.size < this.config.maxNeighborCount - 2) {
36
35
  logger.trace(`Attempting parallel handshakes with ${PARALLEL_HANDSHAKE_COUNT} targets`);
37
36
  return this.selectParallelTargetsAndHandshake(excludedIds);
38
37
  }
39
- else if (this.config.neighbors.size() + this.ongoingHandshakes.size < this.config.maxNeighborCount) {
38
+ else if (this.config.neighbors.size() + this.config.ongoingHandshakes.size < this.config.maxNeighborCount) {
40
39
  logger.trace(`Attempting handshake with new target`);
41
40
  return this.selectNewTargetAndHandshake(excludedIds);
42
41
  }
@@ -45,16 +44,19 @@ class Handshaker {
45
44
  async selectParallelTargetsAndHandshake(excludedIds) {
46
45
  const exclude = excludedIds.concat(this.config.neighbors.getIds());
47
46
  const neighbors = this.selectParallelTargets(exclude);
48
- neighbors.forEach((contact) => this.ongoingHandshakes.add((0, dht_1.getNodeIdFromPeerDescriptor)(contact.getPeerDescriptor())));
47
+ neighbors.forEach((contact) => this.config.ongoingHandshakes.add((0, dht_1.getNodeIdFromPeerDescriptor)(contact.getPeerDescriptor())));
49
48
  return this.doParallelHandshakes(neighbors, exclude);
50
49
  }
51
50
  selectParallelTargets(excludedIds) {
52
51
  const neighbors = this.config.nearbyNodeView.getFirstAndLast(excludedIds);
53
- while (neighbors.length < PARALLEL_HANDSHAKE_COUNT && this.config.randomNodeView.size(excludedIds) > 0) {
54
- const random = this.config.randomNodeView.getRandom(excludedIds);
55
- if (random) {
56
- neighbors.push(random);
57
- }
52
+ const getExcludedFromRandomView = () => [
53
+ ...excludedIds,
54
+ ...neighbors.map((neighbor) => (0, dht_1.getNodeIdFromPeerDescriptor)(neighbor.getPeerDescriptor()))
55
+ ];
56
+ while (neighbors.length < PARALLEL_HANDSHAKE_COUNT
57
+ && this.config.randomNodeView.size(getExcludedFromRandomView()) > 0) {
58
+ const random = this.config.randomNodeView.getRandom(getExcludedFromRandomView());
59
+ neighbors.push(random);
58
60
  }
59
61
  return neighbors.map((neighbor) => this.createRpcRemote(neighbor.getPeerDescriptor()));
60
62
  }
@@ -85,7 +87,7 @@ class Handshaker {
85
87
  }
86
88
  async handshakeWithTarget(neighbor, concurrentNodeId) {
87
89
  const targetNodeId = (0, dht_1.getNodeIdFromPeerDescriptor)(neighbor.getPeerDescriptor());
88
- this.ongoingHandshakes.add(targetNodeId);
90
+ this.config.ongoingHandshakes.add(targetNodeId);
89
91
  const result = await neighbor.handshake(this.config.streamPartId, this.config.neighbors.getIds(), concurrentNodeId);
90
92
  if (result.accepted) {
91
93
  this.config.neighbors.add(this.createDeliveryRpcRemote(neighbor.getPeerDescriptor()));
@@ -94,19 +96,19 @@ class Handshaker {
94
96
  if (result.interleaveTargetDescriptor) {
95
97
  await this.handshakeWithInterleaving(result.interleaveTargetDescriptor, targetNodeId);
96
98
  }
97
- this.ongoingHandshakes.delete(targetNodeId);
99
+ this.config.ongoingHandshakes.delete(targetNodeId);
98
100
  return result.accepted;
99
101
  }
100
102
  async handshakeWithInterleaving(target, interleaveSourceId) {
101
103
  const neighbor = this.createRpcRemote(target);
102
104
  const targetNodeId = (0, dht_1.getNodeIdFromPeerDescriptor)(neighbor.getPeerDescriptor());
103
- this.ongoingHandshakes.add(targetNodeId);
105
+ this.config.ongoingHandshakes.add(targetNodeId);
104
106
  const result = await neighbor.handshake(this.config.streamPartId, this.config.neighbors.getIds(), undefined, interleaveSourceId);
105
107
  if (result.accepted) {
106
108
  this.config.neighbors.add(this.createDeliveryRpcRemote(neighbor.getPeerDescriptor()));
107
109
  this.config.connectionLocker.lockConnection(neighbor.getPeerDescriptor(), this.config.streamPartId);
108
110
  }
109
- this.ongoingHandshakes.delete(targetNodeId);
111
+ this.config.ongoingHandshakes.delete(targetNodeId);
110
112
  return result.accepted;
111
113
  }
112
114
  createRpcRemote(targetPeerDescriptor) {
@@ -116,7 +118,7 @@ class Handshaker {
116
118
  return new DeliveryRpcRemote_1.DeliveryRpcRemote(this.config.localPeerDescriptor, targetPeerDescriptor, this.config.rpcCommunicator, NetworkRpc_client_1.DeliveryRpcClient, this.config.rpcRequestTimeout);
117
119
  }
118
120
  getOngoingHandshakes() {
119
- return this.ongoingHandshakes;
121
+ return this.config.ongoingHandshakes;
120
122
  }
121
123
  }
122
124
  exports.Handshaker = Handshaker;
@@ -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,4 +1,4 @@
1
- import { ConnectionLocker, ListeningRpcCommunicator, PeerDescriptor } from '@streamr/dht';
1
+ import { ConnectionLocker, DhtAddress, ListeningRpcCommunicator, PeerDescriptor } from '@streamr/dht';
2
2
  import { NeighborFinder } from './NeighborFinder';
3
3
  import { NodeList } from '../NodeList';
4
4
  import { StreamPartID } from '@streamr/protocol';
@@ -12,6 +12,7 @@ interface NeighborUpdateManagerConfig {
12
12
  rpcCommunicator: ListeningRpcCommunicator;
13
13
  neighborUpdateInterval: number;
14
14
  neighborTargetCount: number;
15
+ ongoingHandshakes: Set<DhtAddress>;
15
16
  }
16
17
  export declare class NeighborUpdateManager {
17
18
  private readonly abortController;
@@ -1 +1 @@
1
- {"version":3,"file":"NeighborUpdateManager.js","sourceRoot":"","sources":["../../../../src/logic/neighbor-discovery/NeighborUpdateManager.ts"],"names":[],"mappings":";;;AAAA,2FAA2F;AAC3F,sCAAsH;AACtH,yGAA2G;AAC3G,0CAA2D;AAG3D,uEAAmE;AACnE,qEAAiE;AAejE,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,gBAAgB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,iBAAiB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;gBACrG,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;AA5CD,sDA4CC"}
1
+ {"version":3,"file":"NeighborUpdateManager.js","sourceRoot":"","sources":["../../../../src/logic/neighbor-discovery/NeighborUpdateManager.ts"],"names":[],"mappings":";;;AAAA,2FAA2F;AAC3F,sCAAkI;AAClI,yGAA2G;AAC3G,0CAA2D;AAG3D,uEAAmE;AACnE,qEAAiE;AAgBjE,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,gBAAgB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,iBAAiB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;gBACrG,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;AA5CD,sDA4CC"}
@@ -1,5 +1,5 @@
1
1
  import { ServerCallContext } from '@protobuf-ts/runtime-rpc';
2
- import { ConnectionLocker, ListeningRpcCommunicator, PeerDescriptor } from '@streamr/dht';
2
+ import { ConnectionLocker, DhtAddress, ListeningRpcCommunicator, PeerDescriptor } from '@streamr/dht';
3
3
  import { NeighborUpdate } from '../../proto/packages/trackerless-network/protos/NetworkRpc';
4
4
  import { INeighborUpdateRpc } from '../../proto/packages/trackerless-network/protos/NetworkRpc.server';
5
5
  import { NodeList } from '../NodeList';
@@ -14,6 +14,7 @@ interface NeighborUpdateRpcLocalConfig {
14
14
  connectionLocker: ConnectionLocker;
15
15
  rpcCommunicator: ListeningRpcCommunicator;
16
16
  neighborTargetCount: number;
17
+ ongoingHandshakes: Set<DhtAddress>;
17
18
  }
18
19
  export declare class NeighborUpdateRpcLocal implements INeighborUpdateRpc {
19
20
  private readonly config;
@@ -29,7 +29,7 @@ class NeighborUpdateRpcLocal {
29
29
  const senderPeerDescriptor = context.incomingSourceDescriptor;
30
30
  const senderId = (0, dht_1.getNodeIdFromPeerDescriptor)(senderPeerDescriptor);
31
31
  this.updateContacts(message.neighborDescriptors);
32
- if (!this.config.neighbors.has(senderId)) {
32
+ if (!this.config.neighbors.has(senderId) && !this.config.ongoingHandshakes.has(senderId)) {
33
33
  return this.createResponse(true);
34
34
  }
35
35
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"NeighborUpdateRpcLocal.js","sourceRoot":"","sources":["../../../../src/logic/neighbor-discovery/NeighborUpdateRpcLocal.ts"],"names":[],"mappings":";;;AACA,sCAAsI;AAEtI,yGAAqG;AAGrG,4DAAwD;AAexD,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,mBAAmB;gBACtF,0GAA0G;gBAC1G,yGAAyG;gBACzG,WAAW;mBACR,OAAO,CAAC,mBAAmB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAA;YAC3E,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;gBACtC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;YACjG,CAAC;YACD,OAAO,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAA;QACnD,CAAC;IACL,CAAC;CACJ;AAtDD,wDAsDC"}
1
+ {"version":3,"file":"NeighborUpdateRpcLocal.js","sourceRoot":"","sources":["../../../../src/logic/neighbor-discovery/NeighborUpdateRpcLocal.ts"],"names":[],"mappings":";;;AACA,sCAAkJ;AAElJ,yGAAqG;AAGrG,4DAAwD;AAgBxD,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,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvF,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,mBAAmB;gBACtF,0GAA0G;gBAC1G,yGAAyG;gBACzG,WAAW;mBACR,OAAO,CAAC,mBAAmB,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAA;YAC3E,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;gBACtC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;YACjG,CAAC;YACD,OAAO,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAA;QACnD,CAAC;IACL,CAAC;CACJ;AAtDD,wDAsDC"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NodeInfoRpcLocal = exports.NODE_INFO_RPC_SERVICE_ID = void 0;
4
4
  const NetworkRpc_1 = require("../../proto/packages/trackerless-network/protos/NetworkRpc");
5
+ const package_json_1 = require("../../../package.json");
5
6
  exports.NODE_INFO_RPC_SERVICE_ID = 'system/node-info-rpc';
6
7
  class NodeInfoRpcLocal {
7
8
  stack;
@@ -21,7 +22,8 @@ class NodeInfoRpcLocal {
21
22
  connections: this.stack.getLayer0Node().getConnections(),
22
23
  neighbors: this.stack.getLayer0Node().getNeighbors()
23
24
  },
24
- streamPartitions: this.stack.getStreamrNode().getNodeInfo()
25
+ streamPartitions: this.stack.getStreamrNode().getNodeInfo(),
26
+ version: package_json_1.version
25
27
  };
26
28
  }
27
29
  }
@@ -1 +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"}
1
+ {"version":3,"file":"NodeInfoRpcLocal.js","sourceRoot":"","sources":["../../../../src/logic/node-info/NodeInfoRpcLocal.ts"],"names":[],"mappings":";;;AAAA,2FAA8G;AAI9G,wDAA+D;AAElD,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;YAC3D,OAAO,EAAE,sBAAY;SACxB,CAAA;IACL,CAAC;CAEJ;AA5BD,4CA4BC"}
@@ -325,6 +325,10 @@ export interface NodeInfoResponse {
325
325
  * @generated from protobuf field: optional ControlLayerInfo controlLayer = 3;
326
326
  */
327
327
  controlLayer?: ControlLayerInfo;
328
+ /**
329
+ * @generated from protobuf field: string version = 4;
330
+ */
331
+ version: string;
328
332
  }
329
333
  /**
330
334
  * @generated from protobuf enum StreamMessageType
@@ -356,7 +356,8 @@ class NodeInfoResponse$Type extends runtime_1.MessageType {
356
356
  super("NodeInfoResponse", [
357
357
  { no: 1, name: "peerDescriptor", kind: "message", T: () => DhtRpc_1.PeerDescriptor },
358
358
  { no: 2, name: "streamPartitions", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => exports.StreamPartitionInfo },
359
- { no: 3, name: "controlLayer", kind: "message", T: () => exports.ControlLayerInfo }
359
+ { no: 3, name: "controlLayer", kind: "message", T: () => exports.ControlLayerInfo },
360
+ { no: 4, name: "version", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
360
361
  ]);
361
362
  }
362
363
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NetworkRpc.js","sourceRoot":"","sources":["../../../../../../src/proto/packages/trackerless-network/protos/NetworkRpc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NetworkRpc.js","sourceRoot":"","sources":["../../../../../../src/proto/packages/trackerless-network/protos/NetworkRpc.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@streamr/trackerless-network",
3
- "version": "100.0.0-testnet-three.3",
3
+ "version": "100.0.0-testnet-three.4",
4
4
  "description": "Minimal and extendable implementation of the Streamr Network node.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -30,11 +30,11 @@
30
30
  "dependencies": {
31
31
  "@protobuf-ts/runtime": "^2.8.2",
32
32
  "@protobuf-ts/runtime-rpc": "^2.8.2",
33
- "@streamr/dht": "100.0.0-testnet-three.3",
34
- "@streamr/proto-rpc": "100.0.0-testnet-three.3",
35
- "@streamr/protocol": "100.0.0-testnet-three.3",
36
- "@streamr/test-utils": "100.0.0-testnet-three.3",
37
- "@streamr/utils": "100.0.0-testnet-three.3",
33
+ "@streamr/dht": "100.0.0-testnet-three.4",
34
+ "@streamr/proto-rpc": "100.0.0-testnet-three.4",
35
+ "@streamr/protocol": "100.0.0-testnet-three.4",
36
+ "@streamr/test-utils": "100.0.0-testnet-three.4",
37
+ "@streamr/utils": "100.0.0-testnet-three.4",
38
38
  "eventemitter3": "^5.0.0",
39
39
  "lodash": "^4.17.21",
40
40
  "uuid": "^9.0.1",
@@ -175,4 +175,5 @@ message NodeInfoResponse {
175
175
  dht.PeerDescriptor peerDescriptor = 1;
176
176
  repeated StreamPartitionInfo streamPartitions = 2;
177
177
  optional ControlLayerInfo controlLayer = 3;
178
+ string version = 4;
178
179
  }
@@ -1,6 +1,6 @@
1
1
  import { ConnectionManager, DhtNode, DhtNodeOptions, ListeningRpcCommunicator, PeerDescriptor, areEqualPeerDescriptors } from '@streamr/dht'
2
2
  import { StreamrNode, StreamrNodeConfig } from './logic/StreamrNode'
3
- import { MetricsContext, waitForCondition } from '@streamr/utils'
3
+ import { Logger, MetricsContext, waitForCondition } from '@streamr/utils'
4
4
  import { StreamID, StreamPartID, toStreamPartID } from '@streamr/protocol'
5
5
  import { NodeInfoResponse, ProxyDirection, StreamMessage, StreamMessageType } from './proto/packages/trackerless-network/protos/NetworkRpc'
6
6
  import { Layer0Node } from './logic/Layer0Node'
@@ -14,6 +14,8 @@ export interface NetworkOptions {
14
14
  metricsContext?: MetricsContext
15
15
  }
16
16
 
17
+ const logger = new Logger(module)
18
+
17
19
  const instances: NetworkStack[] = []
18
20
  const stopInstances = async () => {
19
21
  // make a clone so that it is ok for each instance.stop() to remove itself from the list (at line 139)
@@ -23,9 +25,13 @@ const stopInstances = async () => {
23
25
  }
24
26
  const EXIT_EVENTS = [`exit`, `SIGINT`, `SIGUSR1`, `SIGUSR2`, `uncaughtException`, `unhandledRejection`, `SIGTERM`]
25
27
  EXIT_EVENTS.forEach((event) => {
26
- process.on(event, async () => {
28
+ process.on(event, async (eventArg) => {
29
+ const isError = (event === 'uncaughtException') || (event === 'unhandledRejection')
30
+ if (isError) {
31
+ logger.error(`exit event: ${event}`, eventArg)
32
+ }
27
33
  await stopInstances()
28
- process.exit()
34
+ process.exit(isError ? 1 : 0)
29
35
  })
30
36
  })
31
37
  declare let window: any
package/src/exports.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  export { NetworkStack, NetworkOptions } from './NetworkStack'
2
2
  export { NetworkNode, createNetworkNode } from './NetworkNode'
3
3
  export { StreamrNodeConfig } from './logic/StreamrNode'
4
- export { ProxyDirection } from './proto/packages/trackerless-network/protos/NetworkRpc'
4
+ export { ProxyDirection, NodeInfoResponse } from './proto/packages/trackerless-network/protos/NetworkRpc'
5
+ export { streamPartIdToDataKey } from './logic/EntryPointDiscovery'
5
6
  export {
6
7
  convertStreamMessageToBytes,
7
8
  convertBytesToStreamMessage
@@ -37,6 +37,7 @@ const createConfigWithDefaults = (config: RandomGraphNodeConfig): StrictRandomGr
37
37
  const nearbyNodeView = config.nearbyNodeView ?? new NodeList(ownNodeId, maxContactCount)
38
38
  const randomNodeView = config.randomNodeView ?? new NodeList(ownNodeId, maxContactCount)
39
39
  const neighbors = config.neighbors ?? new NodeList(ownNodeId, maxContactCount)
40
+ const ongoingHandshakes = new Set<DhtAddress>()
40
41
 
41
42
  const temporaryConnectionRpcLocal = new TemporaryConnectionRpcLocal({
42
43
  rpcCommunicator,
@@ -70,7 +71,8 @@ const createConfigWithDefaults = (config: RandomGraphNodeConfig): StrictRandomGr
70
71
  randomNodeView,
71
72
  neighbors,
72
73
  maxNeighborCount: neighborTargetCount,
73
- rpcRequestTimeout: config.rpcRequestTimeout
74
+ rpcRequestTimeout: config.rpcRequestTimeout,
75
+ ongoingHandshakes
74
76
  })
75
77
  const neighborFinder = config.neighborFinder ?? new NeighborFinder({
76
78
  neighbors,
@@ -87,7 +89,8 @@ const createConfigWithDefaults = (config: RandomGraphNodeConfig): StrictRandomGr
87
89
  rpcCommunicator,
88
90
  neighborUpdateInterval,
89
91
  neighborTargetCount,
90
- connectionLocker: config.connectionLocker
92
+ connectionLocker: config.connectionLocker,
93
+ ongoingHandshakes
91
94
  })
92
95
  const inspector = config.inspector ?? new Inspector({
93
96
  localPeerDescriptor: config.localPeerDescriptor,
@@ -25,6 +25,7 @@ interface HandshakerConfig {
25
25
  randomNodeView: NodeList
26
26
  rpcCommunicator: ListeningRpcCommunicator
27
27
  maxNeighborCount: number
28
+ ongoingHandshakes: Set<DhtAddress>
28
29
  rpcRequestTimeout?: number
29
30
  }
30
31
 
@@ -34,7 +35,6 @@ const PARALLEL_HANDSHAKE_COUNT = 2
34
35
 
35
36
  export class Handshaker {
36
37
 
37
- private readonly ongoingHandshakes: Set<DhtAddress> = new Set()
38
38
  private config: HandshakerConfig
39
39
  private readonly rpcLocal: IHandshakeRpc
40
40
 
@@ -44,7 +44,7 @@ export class Handshaker {
44
44
  streamPartId: this.config.streamPartId,
45
45
  neighbors: this.config.neighbors,
46
46
  connectionLocker: this.config.connectionLocker,
47
- ongoingHandshakes: this.ongoingHandshakes,
47
+ ongoingHandshakes: this.config.ongoingHandshakes,
48
48
  ongoingInterleaves: new Set(),
49
49
  maxNeighborCount: this.config.maxNeighborCount,
50
50
  handshakeWithInterleaving: (target: PeerDescriptor, senderId: DhtAddress) => this.handshakeWithInterleaving(target, senderId),
@@ -59,10 +59,10 @@ export class Handshaker {
59
59
 
60
60
  async attemptHandshakesOnContacts(excludedIds: DhtAddress[]): Promise<DhtAddress[]> {
61
61
  // TODO use config option or named constant? or why the value 2?
62
- if (this.config.neighbors.size() + this.ongoingHandshakes.size < this.config.maxNeighborCount - 2) {
62
+ if (this.config.neighbors.size() + this.config.ongoingHandshakes.size < this.config.maxNeighborCount - 2) {
63
63
  logger.trace(`Attempting parallel handshakes with ${PARALLEL_HANDSHAKE_COUNT} targets`)
64
64
  return this.selectParallelTargetsAndHandshake(excludedIds)
65
- } else if (this.config.neighbors.size() + this.ongoingHandshakes.size < this.config.maxNeighborCount) {
65
+ } else if (this.config.neighbors.size() + this.config.ongoingHandshakes.size < this.config.maxNeighborCount) {
66
66
  logger.trace(`Attempting handshake with new target`)
67
67
  return this.selectNewTargetAndHandshake(excludedIds)
68
68
  }
@@ -72,17 +72,22 @@ export class Handshaker {
72
72
  private async selectParallelTargetsAndHandshake(excludedIds: DhtAddress[]): Promise<DhtAddress[]> {
73
73
  const exclude = excludedIds.concat(this.config.neighbors.getIds())
74
74
  const neighbors = this.selectParallelTargets(exclude)
75
- neighbors.forEach((contact) => this.ongoingHandshakes.add(getNodeIdFromPeerDescriptor(contact.getPeerDescriptor())))
75
+ neighbors.forEach((contact) => this.config.ongoingHandshakes.add(getNodeIdFromPeerDescriptor(contact.getPeerDescriptor())))
76
76
  return this.doParallelHandshakes(neighbors, exclude)
77
77
  }
78
78
 
79
79
  private selectParallelTargets(excludedIds: DhtAddress[]): HandshakeRpcRemote[] {
80
80
  const neighbors = this.config.nearbyNodeView.getFirstAndLast(excludedIds)
81
- while (neighbors.length < PARALLEL_HANDSHAKE_COUNT && this.config.randomNodeView.size(excludedIds) > 0) {
82
- const random = this.config.randomNodeView.getRandom(excludedIds)
83
- if (random) {
84
- neighbors.push(random)
85
- }
81
+ const getExcludedFromRandomView = () => [
82
+ ...excludedIds,
83
+ ...neighbors.map((neighbor) => getNodeIdFromPeerDescriptor(neighbor.getPeerDescriptor()))
84
+ ]
85
+ while (
86
+ neighbors.length < PARALLEL_HANDSHAKE_COUNT
87
+ && this.config.randomNodeView.size(getExcludedFromRandomView()) > 0
88
+ ) {
89
+ const random = this.config.randomNodeView.getRandom(getExcludedFromRandomView())!
90
+ neighbors.push(random)
86
91
  }
87
92
  return neighbors.map((neighbor) => this.createRpcRemote(neighbor.getPeerDescriptor()))
88
93
  }
@@ -118,7 +123,7 @@ export class Handshaker {
118
123
 
119
124
  private async handshakeWithTarget(neighbor: HandshakeRpcRemote, concurrentNodeId?: DhtAddress): Promise<boolean> {
120
125
  const targetNodeId = getNodeIdFromPeerDescriptor(neighbor.getPeerDescriptor())
121
- this.ongoingHandshakes.add(targetNodeId)
126
+ this.config.ongoingHandshakes.add(targetNodeId)
122
127
  const result = await neighbor.handshake(
123
128
  this.config.streamPartId,
124
129
  this.config.neighbors.getIds(),
@@ -131,14 +136,14 @@ export class Handshaker {
131
136
  if (result.interleaveTargetDescriptor) {
132
137
  await this.handshakeWithInterleaving(result.interleaveTargetDescriptor, targetNodeId)
133
138
  }
134
- this.ongoingHandshakes.delete(targetNodeId)
139
+ this.config.ongoingHandshakes.delete(targetNodeId)
135
140
  return result.accepted
136
141
  }
137
142
 
138
143
  private async handshakeWithInterleaving(target: PeerDescriptor, interleaveSourceId: DhtAddress): Promise<boolean> {
139
144
  const neighbor = this.createRpcRemote(target)
140
145
  const targetNodeId = getNodeIdFromPeerDescriptor(neighbor.getPeerDescriptor())
141
- this.ongoingHandshakes.add(targetNodeId)
146
+ this.config.ongoingHandshakes.add(targetNodeId)
142
147
  const result = await neighbor.handshake(
143
148
  this.config.streamPartId,
144
149
  this.config.neighbors.getIds(),
@@ -149,7 +154,7 @@ export class Handshaker {
149
154
  this.config.neighbors.add(this.createDeliveryRpcRemote(neighbor.getPeerDescriptor()))
150
155
  this.config.connectionLocker.lockConnection(neighbor.getPeerDescriptor(), this.config.streamPartId)
151
156
  }
152
- this.ongoingHandshakes.delete(targetNodeId)
157
+ this.config.ongoingHandshakes.delete(targetNodeId)
153
158
  return result.accepted
154
159
  }
155
160
 
@@ -174,7 +179,7 @@ export class Handshaker {
174
179
  }
175
180
 
176
181
  getOngoingHandshakes(): Set<DhtAddress> {
177
- return this.ongoingHandshakes
182
+ return this.config.ongoingHandshakes
178
183
  }
179
184
 
180
185
  }
@@ -1,5 +1,5 @@
1
1
  import { NeighborUpdate } from '../../proto/packages/trackerless-network/protos/NetworkRpc'
2
- import { ConnectionLocker, ListeningRpcCommunicator, PeerDescriptor, getNodeIdFromPeerDescriptor } from '@streamr/dht'
2
+ import { ConnectionLocker, DhtAddress, ListeningRpcCommunicator, PeerDescriptor, getNodeIdFromPeerDescriptor } from '@streamr/dht'
3
3
  import { NeighborUpdateRpcClient } from '../../proto/packages/trackerless-network/protos/NetworkRpc.client'
4
4
  import { Logger, scheduleAtInterval } from '@streamr/utils'
5
5
  import { NeighborFinder } from './NeighborFinder'
@@ -18,6 +18,7 @@ interface NeighborUpdateManagerConfig {
18
18
  rpcCommunicator: ListeningRpcCommunicator
19
19
  neighborUpdateInterval: number
20
20
  neighborTargetCount: number
21
+ ongoingHandshakes: Set<DhtAddress>
21
22
  }
22
23
 
23
24
  const logger = new Logger(module)
@@ -1,5 +1,5 @@
1
1
  import { ServerCallContext } from '@protobuf-ts/runtime-rpc'
2
- import { ConnectionLocker, DhtCallContext, ListeningRpcCommunicator, PeerDescriptor, getNodeIdFromPeerDescriptor } from '@streamr/dht'
2
+ import { ConnectionLocker, DhtAddress, DhtCallContext, ListeningRpcCommunicator, PeerDescriptor, getNodeIdFromPeerDescriptor } from '@streamr/dht'
3
3
  import { NeighborUpdate } from '../../proto/packages/trackerless-network/protos/NetworkRpc'
4
4
  import { DeliveryRpcClient } from '../../proto/packages/trackerless-network/protos/NetworkRpc.client'
5
5
  import { INeighborUpdateRpc } from '../../proto/packages/trackerless-network/protos/NetworkRpc.server'
@@ -17,6 +17,7 @@ interface NeighborUpdateRpcLocalConfig {
17
17
  connectionLocker: ConnectionLocker
18
18
  rpcCommunicator: ListeningRpcCommunicator
19
19
  neighborTargetCount: number
20
+ ongoingHandshakes: Set<DhtAddress>
20
21
  }
21
22
 
22
23
  export class NeighborUpdateRpcLocal implements INeighborUpdateRpc {
@@ -56,7 +57,7 @@ export class NeighborUpdateRpcLocal implements INeighborUpdateRpc {
56
57
  const senderPeerDescriptor = (context as DhtCallContext).incomingSourceDescriptor!
57
58
  const senderId = getNodeIdFromPeerDescriptor(senderPeerDescriptor)
58
59
  this.updateContacts(message.neighborDescriptors)
59
- if (!this.config.neighbors.has(senderId)) {
60
+ if (!this.config.neighbors.has(senderId) && !this.config.ongoingHandshakes.has(senderId)) {
60
61
  return this.createResponse(true)
61
62
  } else {
62
63
  const isOverNeighborCount = this.config.neighbors.size() > this.config.neighborTargetCount
@@ -2,6 +2,7 @@ import { NodeInfoRequest, NodeInfoResponse } from '../../proto/packages/trackerl
2
2
  import { INodeInfoRpc } from '../../proto/packages/trackerless-network/protos/NetworkRpc.server'
3
3
  import { NetworkStack } from '../../NetworkStack'
4
4
  import { ListeningRpcCommunicator } from '@streamr/dht'
5
+ import { version as localVersion } from '../../../package.json'
5
6
 
6
7
  export const NODE_INFO_RPC_SERVICE_ID = 'system/node-info-rpc'
7
8
 
@@ -28,7 +29,8 @@ export class NodeInfoRpcLocal implements INodeInfoRpc {
28
29
  connections: this.stack.getLayer0Node().getConnections(),
29
30
  neighbors: this.stack.getLayer0Node().getNeighbors()
30
31
  },
31
- streamPartitions: this.stack.getStreamrNode().getNodeInfo()
32
+ streamPartitions: this.stack.getStreamrNode().getNodeInfo(),
33
+ version: localVersion
32
34
  }
33
35
  }
34
36
 
@@ -329,6 +329,10 @@ export interface NodeInfoResponse {
329
329
  * @generated from protobuf field: optional ControlLayerInfo controlLayer = 3;
330
330
  */
331
331
  controlLayer?: ControlLayerInfo;
332
+ /**
333
+ * @generated from protobuf field: string version = 4;
334
+ */
335
+ version: string;
332
336
  }
333
337
  /**
334
338
  * @generated from protobuf enum StreamMessageType
@@ -673,7 +677,8 @@ class NodeInfoResponse$Type extends MessageType<NodeInfoResponse> {
673
677
  super("NodeInfoResponse", [
674
678
  { no: 1, name: "peerDescriptor", kind: "message", T: () => PeerDescriptor },
675
679
  { no: 2, name: "streamPartitions", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => StreamPartitionInfo },
676
- { no: 3, name: "controlLayer", kind: "message", T: () => ControlLayerInfo }
680
+ { no: 3, name: "controlLayer", kind: "message", T: () => ControlLayerInfo },
681
+ { no: 4, name: "version", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
677
682
  ]);
678
683
  }
679
684
  }
@@ -47,7 +47,7 @@ describe('proxy group key exchange', () => {
47
47
  proxyNode.stack.getStreamrNode()!.joinStreamPart(STREAM_PART_ID)
48
48
  publisher = createNetworkNode({
49
49
  layer0: {
50
- entryPoints: [publisherDescriptor],
50
+ entryPoints: [proxyNodeDescriptor],
51
51
  peerDescriptor: publisherDescriptor,
52
52
  }
53
53
  })
@@ -55,7 +55,7 @@ describe('proxy group key exchange', () => {
55
55
 
56
56
  subscriber = createNetworkNode({
57
57
  layer0: {
58
- entryPoints: [subscriberDescriptor],
58
+ entryPoints: [proxyNodeDescriptor],
59
59
  peerDescriptor: subscriberDescriptor,
60
60
  }
61
61
  })
@@ -92,7 +92,8 @@ describe('Handshakes', () => {
92
92
  neighbors,
93
93
  connectionLocker: mockConnectionLocker,
94
94
  rpcCommunicator: rpcCommunicator2,
95
- maxNeighborCount: 4
95
+ maxNeighborCount: 4,
96
+ ongoingHandshakes: new Set()
96
97
  })
97
98
 
98
99
  })
@@ -95,7 +95,8 @@ describe('NetworkStack NodeInfoRpc', () => {
95
95
  controlLayerNeighbors: [normalizePeerDescriptor(otherPeerDescriptor)],
96
96
  deliveryLayerNeighbors: [normalizePeerDescriptor(otherPeerDescriptor)]
97
97
  }
98
- ]
98
+ ],
99
+ version: expect.any(String)
99
100
  })
100
101
  expect(result.streamPartitions.length).toEqual(2)
101
102
  })
@@ -40,7 +40,8 @@ describe('Handshaker', () => {
40
40
  randomNodeView,
41
41
  rpcCommunicator,
42
42
  maxNeighborCount,
43
- rpcRequestTimeout: 5000
43
+ rpcRequestTimeout: 5000,
44
+ ongoingHandshakes: new Set()
44
45
  })
45
46
  })
46
47
 
@@ -1,4 +1,4 @@
1
- import { ListeningRpcCommunicator, getNodeIdFromPeerDescriptor } from '@streamr/dht'
1
+ import { DhtAddress, ListeningRpcCommunicator, getNodeIdFromPeerDescriptor } from '@streamr/dht'
2
2
  import { NeighborFinder } from '../../src/logic/neighbor-discovery/NeighborFinder'
3
3
  import { NeighborUpdateRpcLocal } from '../../src/logic/neighbor-discovery/NeighborUpdateRpcLocal'
4
4
  import { createMockPeerDescriptor } from '../utils/utils'
@@ -20,6 +20,7 @@ describe('NeighborUpdateRpcLocal', () => {
20
20
  let nearbyNodeView: NodeList
21
21
  let neighborFinder: NeighborFinder
22
22
  let rpcCommunicator: ListeningRpcCommunicator
23
+ let ongoingHandshakes: Set<DhtAddress>
23
24
 
24
25
  const addNeighbors = (count: number) => {
25
26
  for (let i = 0; i < count; i++) {
@@ -42,6 +43,7 @@ describe('NeighborUpdateRpcLocal', () => {
42
43
  const connectionLocker = {
43
44
  unlockConnection: jest.fn()
44
45
  } as any
46
+ ongoingHandshakes = new Set()
45
47
 
46
48
  rpcLocal = new NeighborUpdateRpcLocal({
47
49
  localPeerDescriptor,
@@ -51,7 +53,8 @@ describe('NeighborUpdateRpcLocal', () => {
51
53
  streamPartId,
52
54
  rpcCommunicator,
53
55
  neighborTargetCount,
54
- connectionLocker
56
+ connectionLocker,
57
+ ongoingHandshakes
55
58
  })
56
59
  })
57
60
 
@@ -126,4 +129,15 @@ describe('NeighborUpdateRpcLocal', () => {
126
129
  expect(neighbors.has(getNodeIdFromPeerDescriptor(caller))).toEqual(false)
127
130
  })
128
131
 
132
+ it('does not ask to be removed if there is an ongoing handshake to the caller', async () => {
133
+ const caller = createMockPeerDescriptor()
134
+ ongoingHandshakes.add(getNodeIdFromPeerDescriptor(caller))
135
+ const res = await rpcLocal.neighborUpdate({
136
+ streamPartId,
137
+ neighborDescriptors: [localPeerDescriptor],
138
+ removeMe: false
139
+ }, { incomingSourceDescriptor: caller } as any)
140
+ expect(res.removeMe).toEqual(false)
141
+ })
142
+
129
143
  })
@@ -6,7 +6,8 @@
6
6
  },
7
7
  "include": [
8
8
  "src/**/*",
9
- "test/**/*"
9
+ "test/**/*",
10
+ "package.json"
10
11
  ],
11
12
  "references": [
12
13
  { "path": "../protocol/tsconfig.node.json" },
@@ -7,7 +7,8 @@
7
7
  "include": [
8
8
  "src/**/*",
9
9
  "test/benchmark/first-message.ts",
10
- "test/utils/utils.ts"
10
+ "test/utils/utils.ts",
11
+ "package.json"
11
12
  ],
12
13
  "references": [
13
14
  { "path": "../protocol/tsconfig.node.json" },