@streamr/dht 100.0.0-testnet-two.1 → 100.0.0-testnet-two.3
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.
- package/dist/package.json +5 -5
- package/dist/src/connection/ConnectionLockHandler.d.ts +11 -11
- package/dist/src/connection/ConnectionLockHandler.js.map +1 -1
- package/dist/src/connection/ConnectionLockRpcLocal.d.ts +3 -3
- package/dist/src/connection/ConnectionManager.d.ts +5 -4
- package/dist/src/connection/ConnectionManager.js +32 -36
- package/dist/src/connection/ConnectionManager.js.map +1 -1
- package/dist/src/connection/ManagedConnection.d.ts +2 -2
- package/dist/src/connection/simulator/Simulator.js.map +1 -1
- package/dist/src/connection/simulator/SimulatorConnection.js +21 -22
- package/dist/src/connection/simulator/SimulatorConnection.js.map +1 -1
- package/dist/src/connection/simulator/SimulatorConnector.js +4 -3
- package/dist/src/connection/simulator/SimulatorConnector.js.map +1 -1
- package/dist/src/connection/webrtc/NodeWebrtcConnection.js +11 -8
- package/dist/src/connection/webrtc/NodeWebrtcConnection.js.map +1 -1
- package/dist/src/connection/webrtc/WebrtcConnector.js +1 -1
- package/dist/src/connection/webrtc/WebrtcConnector.js.map +1 -1
- package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.d.ts +2 -2
- package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js +1 -1
- package/dist/src/connection/webrtc/WebrtcConnectorRpcLocal.js.map +1 -1
- package/dist/src/connection/websocket/WebsocketConnector.js +6 -5
- package/dist/src/connection/websocket/WebsocketConnector.js.map +1 -1
- package/dist/src/dht/DhtNode.d.ts +9 -8
- package/dist/src/dht/DhtNode.js +26 -22
- package/dist/src/dht/DhtNode.js.map +1 -1
- package/dist/src/dht/DhtNodeRpcLocal.d.ts +2 -1
- package/dist/src/dht/DhtNodeRpcLocal.js +2 -1
- package/dist/src/dht/DhtNodeRpcLocal.js.map +1 -1
- package/dist/src/dht/DhtNodeRpcRemote.d.ts +6 -5
- package/dist/src/dht/DhtNodeRpcRemote.js +9 -7
- package/dist/src/dht/DhtNodeRpcRemote.js.map +1 -1
- package/dist/src/dht/ExternalApiRpcLocal.d.ts +3 -3
- package/dist/src/dht/ExternalApiRpcLocal.js +3 -2
- package/dist/src/dht/ExternalApiRpcLocal.js.map +1 -1
- package/dist/src/dht/ExternalApiRpcRemote.d.ts +3 -2
- package/dist/src/dht/ExternalApiRpcRemote.js +3 -2
- package/dist/src/dht/ExternalApiRpcRemote.js.map +1 -1
- package/dist/src/dht/PeerManager.d.ts +9 -9
- package/dist/src/dht/PeerManager.js +35 -30
- package/dist/src/dht/PeerManager.js.map +1 -1
- package/dist/src/dht/contact/Contact.d.ts +2 -2
- package/dist/src/dht/contact/ContactList.d.ts +7 -7
- package/dist/src/dht/contact/ContactList.js.map +1 -1
- package/dist/src/dht/contact/RandomContactList.d.ts +4 -4
- package/dist/src/dht/contact/RandomContactList.js +2 -3
- package/dist/src/dht/contact/RandomContactList.js.map +1 -1
- package/dist/src/dht/contact/RpcRemote.d.ts +1 -4
- package/dist/src/dht/contact/RpcRemote.js +1 -5
- package/dist/src/dht/contact/RpcRemote.js.map +1 -1
- package/dist/src/dht/contact/SortedContactList.d.ts +13 -13
- package/dist/src/dht/contact/SortedContactList.js +5 -5
- package/dist/src/dht/contact/SortedContactList.js.map +1 -1
- package/dist/src/dht/discovery/DiscoverySession.d.ts +3 -2
- package/dist/src/dht/discovery/DiscoverySession.js +9 -9
- package/dist/src/dht/discovery/DiscoverySession.js.map +1 -1
- package/dist/src/dht/discovery/PeerDiscovery.d.ts +3 -1
- package/dist/src/dht/discovery/PeerDiscovery.js +18 -10
- package/dist/src/dht/discovery/PeerDiscovery.js.map +1 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationManager.d.ts +3 -3
- package/dist/src/dht/recursive-operation/RecursiveOperationManager.js +15 -14
- package/dist/src/dht/recursive-operation/RecursiveOperationManager.js.map +1 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationRpcRemote.js +2 -2
- package/dist/src/dht/recursive-operation/RecursiveOperationRpcRemote.js.map +1 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationSession.d.ts +2 -1
- package/dist/src/dht/recursive-operation/RecursiveOperationSession.js +6 -6
- package/dist/src/dht/recursive-operation/RecursiveOperationSession.js.map +1 -1
- package/dist/src/dht/routing/Router.d.ts +2 -2
- package/dist/src/dht/routing/Router.js +2 -2
- package/dist/src/dht/routing/Router.js.map +1 -1
- package/dist/src/dht/routing/RouterRpcLocal.js +3 -3
- package/dist/src/dht/routing/RouterRpcLocal.js.map +1 -1
- package/dist/src/dht/routing/RouterRpcRemote.js +4 -2
- package/dist/src/dht/routing/RouterRpcRemote.js.map +1 -1
- package/dist/src/dht/routing/RoutingSession.d.ts +3 -3
- package/dist/src/dht/routing/RoutingSession.js +4 -4
- package/dist/src/dht/routing/RoutingSession.js.map +1 -1
- package/dist/src/dht/store/LocalDataStore.d.ts +6 -9
- package/dist/src/dht/store/LocalDataStore.js +27 -32
- package/dist/src/dht/store/LocalDataStore.js.map +1 -1
- package/dist/src/dht/store/StoreManager.d.ts +3 -3
- package/dist/src/dht/store/StoreManager.js +26 -23
- package/dist/src/dht/store/StoreManager.js.map +1 -1
- package/dist/src/dht/store/StoreRpcLocal.d.ts +2 -1
- package/dist/src/dht/store/StoreRpcLocal.js +10 -8
- package/dist/src/dht/store/StoreRpcLocal.js.map +1 -1
- package/dist/src/exports.d.ts +2 -0
- package/dist/src/exports.js +6 -1
- package/dist/src/exports.js.map +1 -1
- package/dist/src/helpers/AddressTools.js +2 -0
- package/dist/src/helpers/AddressTools.js.map +1 -1
- package/dist/src/helpers/PeerID.d.ts +2 -2
- package/dist/src/helpers/PeerID.js +3 -3
- package/dist/src/helpers/PeerID.js.map +1 -1
- package/dist/src/helpers/peerIdFromPeerDescriptor.d.ts +2 -2
- package/dist/src/helpers/peerIdFromPeerDescriptor.js +2 -3
- package/dist/src/helpers/peerIdFromPeerDescriptor.js.map +1 -1
- package/dist/src/identifiers.d.ts +6 -0
- package/dist/src/identifiers.js +23 -0
- package/dist/src/identifiers.js.map +1 -0
- package/package.json +5 -5
- package/src/connection/ConnectionLockHandler.ts +15 -15
- package/src/connection/ConnectionLockRpcLocal.ts +3 -3
- package/src/connection/ConnectionManager.ts +36 -46
- package/src/connection/ManagedConnection.ts +2 -2
- package/src/connection/simulator/Simulator.ts +2 -2
- package/src/connection/simulator/SimulatorConnection.ts +21 -23
- package/src/connection/simulator/SimulatorConnector.ts +6 -5
- package/src/connection/webrtc/BrowserWebrtcConnection.ts +0 -4
- package/src/connection/webrtc/NodeWebrtcConnection.ts +11 -10
- package/src/connection/webrtc/WebrtcConnector.ts +2 -3
- package/src/connection/webrtc/WebrtcConnectorRpcLocal.ts +2 -3
- package/src/connection/websocket/WebsocketConnector.ts +9 -9
- package/src/dht/DhtNode.ts +36 -35
- package/src/dht/DhtNodeRpcLocal.ts +3 -2
- package/src/dht/DhtNodeRpcRemote.ts +14 -12
- package/src/dht/ExternalApiRpcLocal.ts +15 -6
- package/src/dht/ExternalApiRpcRemote.ts +5 -4
- package/src/dht/PeerManager.ts +43 -38
- package/src/dht/contact/Contact.ts +2 -2
- package/src/dht/contact/ContactList.ts +7 -7
- package/src/dht/contact/RandomContactList.ts +6 -6
- package/src/dht/contact/RpcRemote.ts +0 -8
- package/src/dht/contact/SortedContactList.ts +22 -22
- package/src/dht/discovery/DiscoverySession.ts +16 -14
- package/src/dht/discovery/PeerDiscovery.ts +34 -12
- package/src/dht/recursive-operation/RecursiveOperationManager.ts +17 -17
- package/src/dht/recursive-operation/RecursiveOperationRpcRemote.ts +2 -2
- package/src/dht/recursive-operation/RecursiveOperationSession.ts +11 -11
- package/src/dht/routing/Router.ts +5 -5
- package/src/dht/routing/RouterRpcLocal.ts +3 -3
- package/src/dht/routing/RouterRpcRemote.ts +4 -4
- package/src/dht/routing/RoutingSession.ts +6 -8
- package/src/dht/store/LocalDataStore.ts +31 -40
- package/src/dht/store/StoreManager.ts +31 -31
- package/src/dht/store/StoreRpcLocal.ts +11 -9
- package/src/exports.ts +2 -0
- package/src/helpers/AddressTools.ts +2 -0
- package/src/helpers/PeerID.ts +4 -4
- package/src/helpers/peerIdFromPeerDescriptor.ts +4 -6
- package/src/identifiers.ts +20 -0
- package/test/RandomGraphSimulation.ts +3 -2
- package/test/benchmark/Find.test.ts +4 -3
- package/test/benchmark/KademliaCorrectness.test.ts +4 -4
- package/test/benchmark/SortedContactListBenchmark.test.ts +15 -14
- package/test/benchmark/kademlia-simulation/Contact.ts +7 -8
- package/test/benchmark/kademlia-simulation/KademliaSimulation.ts +2 -2
- package/test/benchmark/kademlia-simulation/SimulationNode.ts +10 -11
- package/test/data/generateGroundTruthData.ts +5 -4
- package/test/end-to-end/Layer0Webrtc-Layer1.test.ts +2 -2
- package/test/end-to-end/RecoveryFromFailedAutoCertification.test.ts +1 -1
- package/test/end-to-end/memory-leak.test.ts +3 -2
- package/test/integration/ConnectionManager.test.ts +3 -3
- package/test/integration/DhtJoinPeerDiscovery.test.ts +2 -1
- package/test/integration/DhtNodeExternalAPI.test.ts +7 -7
- package/test/integration/DhtNodeRpcRemote.test.ts +3 -2
- package/test/integration/Find.test.ts +3 -3
- package/test/integration/Layer1-scale.test.ts +3 -3
- package/test/integration/Mock-Layer1-Layer0.test.ts +6 -5
- package/test/integration/ReplicateData.test.ts +38 -30
- package/test/integration/RouteMessage.test.ts +9 -10
- package/test/integration/RouterRpcRemote.test.ts +1 -1
- package/test/integration/ScaleDownDht.test.ts +4 -4
- package/test/integration/SimultaneousConnections.test.ts +7 -14
- package/test/integration/Store.test.ts +17 -7
- package/test/integration/StoreAndDelete.test.ts +11 -10
- package/test/integration/StoreOnDhtWithTwoNodes.test.ts +7 -6
- package/test/integration/StoreRpcRemote.test.ts +3 -5
- package/test/unit/AddressTools.test.ts +4 -0
- package/test/unit/LocalDataStore.test.ts +41 -41
- package/test/unit/PeerManager.test.ts +7 -8
- package/test/unit/RandomContactList.test.ts +3 -3
- package/test/unit/RecursiveOperationManager.test.ts +2 -1
- package/test/unit/RecursiveOperationSession.test.ts +2 -3
- package/test/unit/Router.test.ts +2 -2
- package/test/unit/RoutingSession.test.ts +2 -2
- package/test/unit/SortedContactList.test.ts +6 -6
- package/test/unit/StoreManager.test.ts +26 -23
- package/test/utils/customMatchers.ts +3 -2
- package/test/utils/mock/mockDataEntry.ts +8 -6
- package/test/utils/utils.ts +4 -4
- package/dist/src/helpers/nodeId.d.ts +0 -6
- package/dist/src/helpers/nodeId.js +0 -31
- package/dist/src/helpers/nodeId.js.map +0 -1
- package/src/helpers/nodeId.ts +0 -28
|
@@ -1,35 +1,35 @@
|
|
|
1
1
|
import { ContactState, Events } from './ContactList';
|
|
2
2
|
import EventEmitter from 'eventemitter3';
|
|
3
|
-
import {
|
|
3
|
+
import { DhtAddress } from '../../identifiers';
|
|
4
4
|
export interface SortedContactListConfig {
|
|
5
|
-
referenceId:
|
|
5
|
+
referenceId: DhtAddress;
|
|
6
6
|
allowToContainReferenceId: boolean;
|
|
7
7
|
emitEvents: boolean;
|
|
8
8
|
maxSize?: number;
|
|
9
|
-
nodeIdDistanceLimit?:
|
|
10
|
-
excludedNodeIds?: Set<
|
|
9
|
+
nodeIdDistanceLimit?: DhtAddress;
|
|
10
|
+
excludedNodeIds?: Set<DhtAddress>;
|
|
11
11
|
}
|
|
12
12
|
export declare class SortedContactList<C extends {
|
|
13
|
-
getNodeId: () =>
|
|
13
|
+
getNodeId: () => DhtAddress;
|
|
14
14
|
}> extends EventEmitter<Events<C>> {
|
|
15
15
|
private config;
|
|
16
16
|
private contactsById;
|
|
17
17
|
private contactIds;
|
|
18
18
|
constructor(config: SortedContactListConfig);
|
|
19
|
-
getClosestContactId():
|
|
20
|
-
getContactIds():
|
|
19
|
+
getClosestContactId(): DhtAddress;
|
|
20
|
+
getContactIds(): DhtAddress[];
|
|
21
21
|
addContact(contact: C): void;
|
|
22
22
|
addContacts(contacts: C[]): void;
|
|
23
|
-
getContact(id:
|
|
24
|
-
setContacted(contactId:
|
|
25
|
-
setActive(contactId:
|
|
23
|
+
getContact(id: DhtAddress): ContactState<C> | undefined;
|
|
24
|
+
setContacted(contactId: DhtAddress): void;
|
|
25
|
+
setActive(contactId: DhtAddress): void;
|
|
26
26
|
getClosestContacts(limit?: number): C[];
|
|
27
27
|
getUncontactedContacts(num: number): C[];
|
|
28
28
|
getActiveContacts(limit?: number): C[];
|
|
29
|
-
compareIds(id1:
|
|
29
|
+
compareIds(id1: DhtAddress, id2: DhtAddress): number;
|
|
30
30
|
private distanceToReferenceId;
|
|
31
|
-
removeContact(id:
|
|
32
|
-
isActive(id:
|
|
31
|
+
removeContact(id: DhtAddress): boolean;
|
|
32
|
+
isActive(id: DhtAddress): boolean;
|
|
33
33
|
getAllContacts(): C[];
|
|
34
34
|
getSize(): number;
|
|
35
35
|
clear(): void;
|
|
@@ -8,7 +8,7 @@ const ContactList_1 = require("./ContactList");
|
|
|
8
8
|
const lodash_1 = require("lodash");
|
|
9
9
|
const eventemitter3_1 = __importDefault(require("eventemitter3"));
|
|
10
10
|
const PeerManager_1 = require("../PeerManager");
|
|
11
|
-
const
|
|
11
|
+
const identifiers_1 = require("../../identifiers");
|
|
12
12
|
class SortedContactList extends eventemitter3_1.default {
|
|
13
13
|
constructor(config) {
|
|
14
14
|
super();
|
|
@@ -27,7 +27,7 @@ class SortedContactList extends eventemitter3_1.default {
|
|
|
27
27
|
if (this.config.excludedNodeIds !== undefined && this.config.excludedNodeIds.has(contact.getNodeId())) {
|
|
28
28
|
return;
|
|
29
29
|
}
|
|
30
|
-
if ((!this.config.allowToContainReferenceId && (
|
|
30
|
+
if ((!this.config.allowToContainReferenceId && (this.config.referenceId === contact.getNodeId())) ||
|
|
31
31
|
(this.config.nodeIdDistanceLimit !== undefined && this.compareIds(this.config.nodeIdDistanceLimit, contact.getNodeId()) < 0)) {
|
|
32
32
|
return;
|
|
33
33
|
}
|
|
@@ -121,14 +121,14 @@ class SortedContactList extends eventemitter3_1.default {
|
|
|
121
121
|
}
|
|
122
122
|
// TODO inline this method?
|
|
123
123
|
distanceToReferenceId(id) {
|
|
124
|
-
// TODO maybe this class should store the referenceId also as
|
|
125
|
-
return (0, PeerManager_1.getDistance)(this.config.referenceId, id);
|
|
124
|
+
// TODO maybe this class should store the referenceId also as DhtAddressRaw so that we don't need to convert it here?
|
|
125
|
+
return (0, PeerManager_1.getDistance)((0, identifiers_1.getRawFromDhtAddress)(this.config.referenceId), (0, identifiers_1.getRawFromDhtAddress)(id));
|
|
126
126
|
}
|
|
127
127
|
removeContact(id) {
|
|
128
128
|
if (this.contactsById.has(id)) {
|
|
129
129
|
const removed = this.contactsById.get(id).contact;
|
|
130
130
|
// TODO use sortedIndexBy?
|
|
131
|
-
const index = this.contactIds.findIndex((nodeId) => (
|
|
131
|
+
const index = this.contactIds.findIndex((nodeId) => (nodeId === id));
|
|
132
132
|
this.contactIds.splice(index, 1);
|
|
133
133
|
this.contactsById.delete(id);
|
|
134
134
|
if (this.config.emitEvents) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SortedContactList.js","sourceRoot":"","sources":["../../../../src/dht/contact/SortedContactList.ts"],"names":[],"mappings":";;;;;;AAAA,+CAAoD;AACpD,mCAAsC;AACtC,kEAAwC;AACxC,gDAA4C;AAC5C,
|
|
1
|
+
{"version":3,"file":"SortedContactList.js","sourceRoot":"","sources":["../../../../src/dht/contact/SortedContactList.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { PeerManager } from '../PeerManager';
|
|
2
|
+
import { DhtAddress } from '../../identifiers';
|
|
2
3
|
interface DiscoverySessionConfig {
|
|
3
|
-
targetId:
|
|
4
|
+
targetId: DhtAddress;
|
|
4
5
|
parallelism: number;
|
|
5
6
|
noProgressLimit: number;
|
|
6
7
|
peerManager: PeerManager;
|
|
8
|
+
contactedPeers: Set<DhtAddress>;
|
|
7
9
|
}
|
|
8
10
|
export declare class DiscoverySession {
|
|
9
11
|
readonly id: string;
|
|
@@ -11,7 +13,6 @@ export declare class DiscoverySession {
|
|
|
11
13
|
private emitter;
|
|
12
14
|
private noProgressCounter;
|
|
13
15
|
private ongoingClosestPeersRequests;
|
|
14
|
-
private contactedPeers;
|
|
15
16
|
private readonly config;
|
|
16
17
|
constructor(config: DiscoverySessionConfig);
|
|
17
18
|
private addNewContacts;
|
|
@@ -9,7 +9,7 @@ const eventemitter3_1 = __importDefault(require("eventemitter3"));
|
|
|
9
9
|
const uuid_1 = require("uuid");
|
|
10
10
|
const PeerManager_1 = require("../PeerManager");
|
|
11
11
|
const peerIdFromPeerDescriptor_1 = require("../../helpers/peerIdFromPeerDescriptor");
|
|
12
|
-
const
|
|
12
|
+
const identifiers_1 = require("../../identifiers");
|
|
13
13
|
const logger = new utils_1.Logger(module);
|
|
14
14
|
class DiscoverySession {
|
|
15
15
|
constructor(config) {
|
|
@@ -18,7 +18,6 @@ class DiscoverySession {
|
|
|
18
18
|
this.emitter = new eventemitter3_1.default();
|
|
19
19
|
this.noProgressCounter = 0;
|
|
20
20
|
this.ongoingClosestPeersRequests = new Set();
|
|
21
|
-
this.contactedPeers = new Set();
|
|
22
21
|
this.config = config;
|
|
23
22
|
}
|
|
24
23
|
addNewContacts(contacts) {
|
|
@@ -32,7 +31,7 @@ class DiscoverySession {
|
|
|
32
31
|
return [];
|
|
33
32
|
}
|
|
34
33
|
logger.trace(`Getting closest peers from contact: ${(0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(contact.getPeerDescriptor())}`);
|
|
35
|
-
this.contactedPeers.add(contact.getNodeId());
|
|
34
|
+
this.config.contactedPeers.add(contact.getNodeId());
|
|
36
35
|
const returnedContacts = await contact.getClosestPeers(this.config.targetId);
|
|
37
36
|
this.config.peerManager.handlePeerActive(contact.getNodeId());
|
|
38
37
|
return returnedContacts;
|
|
@@ -42,11 +41,12 @@ class DiscoverySession {
|
|
|
42
41
|
return;
|
|
43
42
|
}
|
|
44
43
|
this.ongoingClosestPeersRequests.delete(nodeId);
|
|
45
|
-
const
|
|
46
|
-
const
|
|
44
|
+
const targetId = (0, identifiers_1.getRawFromDhtAddress)(this.config.targetId);
|
|
45
|
+
const oldClosestNeighbor = this.config.peerManager.getClosestNeighborsTo(this.config.targetId, 1)[0];
|
|
46
|
+
const oldClosestDistance = (0, PeerManager_1.getDistance)(targetId, (0, identifiers_1.getRawFromDhtAddress)(oldClosestNeighbor.getNodeId()));
|
|
47
47
|
this.addNewContacts(contacts);
|
|
48
|
-
const newClosestNeighbor = this.config.peerManager.getClosestNeighborsTo(
|
|
49
|
-
const newClosestDistance = (0, PeerManager_1.getDistance)((0,
|
|
48
|
+
const newClosestNeighbor = this.config.peerManager.getClosestNeighborsTo(this.config.targetId, 1)[0];
|
|
49
|
+
const newClosestDistance = (0, PeerManager_1.getDistance)(targetId, (0, identifiers_1.getRawFromDhtAddress)(newClosestNeighbor.getNodeId()));
|
|
50
50
|
if (newClosestDistance >= oldClosestDistance) {
|
|
51
51
|
this.noProgressCounter++;
|
|
52
52
|
}
|
|
@@ -62,7 +62,7 @@ class DiscoverySession {
|
|
|
62
62
|
if (this.stopped) {
|
|
63
63
|
return;
|
|
64
64
|
}
|
|
65
|
-
const uncontacted = this.config.peerManager.getClosestContactsTo(
|
|
65
|
+
const uncontacted = this.config.peerManager.getClosestContactsTo(this.config.targetId, this.config.parallelism, this.config.contactedPeers);
|
|
66
66
|
if (uncontacted.length === 0 || this.noProgressCounter >= this.config.noProgressLimit) {
|
|
67
67
|
this.emitter.emit('discoveryCompleted');
|
|
68
68
|
this.stopped = true;
|
|
@@ -83,7 +83,7 @@ class DiscoverySession {
|
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
85
|
async findClosestNodes(timeout) {
|
|
86
|
-
if (this.config.peerManager.getNumberOfContacts(this.contactedPeers) === 0) {
|
|
86
|
+
if (this.config.peerManager.getNumberOfContacts(this.config.contactedPeers) === 0) {
|
|
87
87
|
return;
|
|
88
88
|
}
|
|
89
89
|
// TODO add abortController and signal it in stop()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiscoverySession.js","sourceRoot":"","sources":["../../../../src/dht/discovery/DiscoverySession.ts"],"names":[],"mappings":";;;;;;AAAA,0CAA6D;AAC7D,kEAAwC;AACxC,+BAAyB;AAEzB,gDAAyD;AAEzD,qFAAoF;AACpF,
|
|
1
|
+
{"version":3,"file":"DiscoverySession.js","sourceRoot":"","sources":["../../../../src/dht/discovery/DiscoverySession.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { PeerDescriptor } from '../../proto/packages/dht/protos/DhtRpc';
|
|
2
2
|
import { ConnectionManager } from '../../connection/ConnectionManager';
|
|
3
3
|
import { PeerManager } from '../PeerManager';
|
|
4
|
+
import { DhtAddress } from '../../identifiers';
|
|
4
5
|
import { ServiceID } from '../../types/ServiceID';
|
|
5
6
|
interface PeerDiscoveryConfig {
|
|
6
7
|
localPeerDescriptor: PeerDescriptor;
|
|
@@ -20,7 +21,8 @@ export declare class PeerDiscovery {
|
|
|
20
21
|
private recoveryIntervalStarted;
|
|
21
22
|
private readonly config;
|
|
22
23
|
constructor(config: PeerDiscoveryConfig);
|
|
23
|
-
joinDht(
|
|
24
|
+
joinDht(entryPoints: PeerDescriptor[], doAdditionalRandomPeerDiscovery?: boolean, retry?: boolean): Promise<void>;
|
|
25
|
+
joinThroughEntryPoint(entryPointDescriptor: PeerDescriptor, contactedPeers: Set<DhtAddress>, doAdditionalRandomPeerDiscovery?: boolean, retry?: boolean): Promise<void>;
|
|
24
26
|
private createSession;
|
|
25
27
|
private runSessions;
|
|
26
28
|
rejoinDht(entryPoint: PeerDescriptor): Promise<void>;
|
|
@@ -4,7 +4,7 @@ exports.PeerDiscovery = void 0;
|
|
|
4
4
|
const DiscoverySession_1 = require("./DiscoverySession");
|
|
5
5
|
const peerIdFromPeerDescriptor_1 = require("../../helpers/peerIdFromPeerDescriptor");
|
|
6
6
|
const utils_1 = require("@streamr/utils");
|
|
7
|
-
const
|
|
7
|
+
const identifiers_1 = require("../../identifiers");
|
|
8
8
|
const logger = new utils_1.Logger(module);
|
|
9
9
|
class PeerDiscovery {
|
|
10
10
|
constructor(config) {
|
|
@@ -15,7 +15,13 @@ class PeerDiscovery {
|
|
|
15
15
|
this.config = config;
|
|
16
16
|
this.abortController = new AbortController();
|
|
17
17
|
}
|
|
18
|
-
async joinDht(
|
|
18
|
+
async joinDht(entryPoints, doAdditionalRandomPeerDiscovery = true, retry = true) {
|
|
19
|
+
const contactedPeers = new Set();
|
|
20
|
+
await Promise.all(entryPoints.map((entryPoint) => this.joinThroughEntryPoint(entryPoint, contactedPeers, doAdditionalRandomPeerDiscovery, retry)));
|
|
21
|
+
}
|
|
22
|
+
async joinThroughEntryPoint(entryPointDescriptor,
|
|
23
|
+
// Note that this set is mutated by DiscoverySession
|
|
24
|
+
contactedPeers, doAdditionalRandomPeerDiscovery = true, retry = true) {
|
|
19
25
|
if (this.isStopped()) {
|
|
20
26
|
return;
|
|
21
27
|
}
|
|
@@ -27,20 +33,21 @@ class PeerDiscovery {
|
|
|
27
33
|
}
|
|
28
34
|
this.config.connectionManager?.lockConnection(entryPointDescriptor, `${this.config.serviceId}::joinDht`);
|
|
29
35
|
this.config.peerManager.handleNewPeers([entryPointDescriptor]);
|
|
30
|
-
const targetId = (0, peerIdFromPeerDescriptor_1.
|
|
31
|
-
const sessions = [this.createSession(targetId)];
|
|
36
|
+
const targetId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(this.config.localPeerDescriptor);
|
|
37
|
+
const sessions = [this.createSession(targetId, contactedPeers)];
|
|
32
38
|
if (doAdditionalRandomPeerDiscovery) {
|
|
33
|
-
sessions.push(this.createSession((0,
|
|
39
|
+
sessions.push(this.createSession((0, identifiers_1.createRandomDhtAddress)(), contactedPeers));
|
|
34
40
|
}
|
|
35
41
|
await this.runSessions(sessions, entryPointDescriptor, retry);
|
|
36
42
|
this.config.connectionManager?.unlockConnection(entryPointDescriptor, `${this.config.serviceId}::joinDht`);
|
|
37
43
|
}
|
|
38
|
-
createSession(targetId) {
|
|
44
|
+
createSession(targetId, contactedPeers) {
|
|
39
45
|
const sessionOptions = {
|
|
40
46
|
targetId,
|
|
41
47
|
parallelism: this.config.parallelism,
|
|
42
48
|
noProgressLimit: this.config.joinNoProgressLimit,
|
|
43
|
-
peerManager: this.config.peerManager
|
|
49
|
+
peerManager: this.config.peerManager,
|
|
50
|
+
contactedPeers
|
|
44
51
|
};
|
|
45
52
|
return new DiscoverySession_1.DiscoverySession(sessionOptions);
|
|
46
53
|
}
|
|
@@ -77,7 +84,7 @@ class PeerDiscovery {
|
|
|
77
84
|
logger.debug(`Rejoining DHT ${this.config.serviceId}`);
|
|
78
85
|
this.rejoinOngoing = true;
|
|
79
86
|
try {
|
|
80
|
-
await this.
|
|
87
|
+
await this.joinThroughEntryPoint(entryPoint, new Set());
|
|
81
88
|
logger.debug(`Rejoined DHT successfully ${this.config.serviceId}!`);
|
|
82
89
|
}
|
|
83
90
|
catch (err) {
|
|
@@ -103,9 +110,10 @@ class PeerDiscovery {
|
|
|
103
110
|
if (this.isStopped()) {
|
|
104
111
|
return;
|
|
105
112
|
}
|
|
106
|
-
const
|
|
113
|
+
const localNodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(this.config.localPeerDescriptor);
|
|
114
|
+
const nodes = this.config.peerManager.getClosestNeighborsTo(localNodeId, this.config.parallelism);
|
|
107
115
|
await Promise.allSettled(nodes.map(async (peer) => {
|
|
108
|
-
const contacts = await peer.getClosestPeers(
|
|
116
|
+
const contacts = await peer.getClosestPeers(localNodeId);
|
|
109
117
|
this.config.peerManager.handleNewPeers(contacts);
|
|
110
118
|
}));
|
|
111
119
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PeerDiscovery.js","sourceRoot":"","sources":["../../../../src/dht/discovery/PeerDiscovery.ts"],"names":[],"mappings":";;;AAAA,yDAAqD;AAErD,
|
|
1
|
+
{"version":3,"file":"PeerDiscovery.js","sourceRoot":"","sources":["../../../../src/dht/discovery/PeerDiscovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,11 +5,11 @@ import { DhtNodeRpcRemote } from '../DhtNodeRpcRemote';
|
|
|
5
5
|
import { ITransport } from '../../transport/ITransport';
|
|
6
6
|
import { LocalDataStore } from '../store/LocalDataStore';
|
|
7
7
|
import { ServiceID } from '../../types/ServiceID';
|
|
8
|
-
import {
|
|
8
|
+
import { DhtAddress } from '../../identifiers';
|
|
9
9
|
interface RecursiveOperationManagerConfig {
|
|
10
10
|
rpcCommunicator: RoutingRpcCommunicator;
|
|
11
11
|
sessionTransport: ITransport;
|
|
12
|
-
connections: Map<
|
|
12
|
+
connections: Map<DhtAddress, DhtNodeRpcRemote>;
|
|
13
13
|
router: Router;
|
|
14
14
|
localPeerDescriptor: PeerDescriptor;
|
|
15
15
|
serviceId: ServiceID;
|
|
@@ -26,7 +26,7 @@ export declare class RecursiveOperationManager {
|
|
|
26
26
|
private readonly config;
|
|
27
27
|
constructor(config: RecursiveOperationManagerConfig);
|
|
28
28
|
private registerLocalRpcMethods;
|
|
29
|
-
execute(targetId:
|
|
29
|
+
execute(targetId: DhtAddress, operation: RecursiveOperation, excludedPeer?: PeerDescriptor, waitForCompletion?: boolean): Promise<RecursiveOperationResult>;
|
|
30
30
|
private sendResponse;
|
|
31
31
|
private doRouteRequest;
|
|
32
32
|
private getClosestConnections;
|
|
@@ -13,7 +13,7 @@ const SortedContactList_1 = require("../contact/SortedContactList");
|
|
|
13
13
|
const getPreviousPeer_1 = require("../routing/getPreviousPeer");
|
|
14
14
|
const RouterRpcLocal_1 = require("../routing/RouterRpcLocal");
|
|
15
15
|
const RecursiveOperationRpcLocal_1 = require("./RecursiveOperationRpcLocal");
|
|
16
|
-
const
|
|
16
|
+
const identifiers_1 = require("../../identifiers");
|
|
17
17
|
const PeerManager_1 = require("../PeerManager");
|
|
18
18
|
const logger = new utils_1.Logger(module);
|
|
19
19
|
class RecursiveOperationManager {
|
|
@@ -56,8 +56,8 @@ class RecursiveOperationManager {
|
|
|
56
56
|
}
|
|
57
57
|
});
|
|
58
58
|
if (this.config.connections.size === 0) {
|
|
59
|
-
const
|
|
60
|
-
session.onResponseReceived([this.config.localPeerDescriptor], [this.config.localPeerDescriptor],
|
|
59
|
+
const dataEntries = Array.from(this.config.localDataStore.values(targetId));
|
|
60
|
+
session.onResponseReceived([this.config.localPeerDescriptor], [this.config.localPeerDescriptor], dataEntries, true);
|
|
61
61
|
return session.getResults();
|
|
62
62
|
}
|
|
63
63
|
this.ongoingSessions.set(session.getId(), session);
|
|
@@ -78,7 +78,7 @@ class RecursiveOperationManager {
|
|
|
78
78
|
await (0, utils_1.wait)(50);
|
|
79
79
|
}
|
|
80
80
|
if (operation === DhtRpc_1.RecursiveOperation.FETCH_DATA) {
|
|
81
|
-
const dataEntries = Array.from(this.config.localDataStore.
|
|
81
|
+
const dataEntries = Array.from(this.config.localDataStore.values(targetId));
|
|
82
82
|
if (dataEntries.length > 0) {
|
|
83
83
|
this.sendResponse([], this.config.localPeerDescriptor, session.getId(), [], dataEntries, true);
|
|
84
84
|
}
|
|
@@ -99,7 +99,7 @@ class RecursiveOperationManager {
|
|
|
99
99
|
else {
|
|
100
100
|
// TODO use config option or named constant?
|
|
101
101
|
const remoteCommunicator = new ListeningRpcCommunicator_1.ListeningRpcCommunicator(serviceId, this.config.sessionTransport, { rpcRequestTimeout: 15000 });
|
|
102
|
-
const rpcRemote = new RecursiveOperationSessionRpcRemote_1.RecursiveOperationSessionRpcRemote(this.config.localPeerDescriptor, targetPeerDescriptor,
|
|
102
|
+
const rpcRemote = new RecursiveOperationSessionRpcRemote_1.RecursiveOperationSessionRpcRemote(this.config.localPeerDescriptor, targetPeerDescriptor, remoteCommunicator, DhtRpc_client_1.RecursiveOperationSessionRpcClient,
|
|
103
103
|
// TODO use config option or named constant?
|
|
104
104
|
10000);
|
|
105
105
|
rpcRemote.sendResponse(routingPath, closestNodes, dataEntries, noCloserNodesFound);
|
|
@@ -110,15 +110,15 @@ class RecursiveOperationManager {
|
|
|
110
110
|
if (this.stopped) {
|
|
111
111
|
return (0, RouterRpcLocal_1.createRouteMessageAck)(routedMessage, DhtRpc_1.RouteMessageError.STOPPED);
|
|
112
112
|
}
|
|
113
|
-
const targetId = (0,
|
|
113
|
+
const targetId = (0, identifiers_1.getDhtAddressFromRaw)(routedMessage.target);
|
|
114
114
|
const request = routedMessage.message.body.recursiveOperationRequest;
|
|
115
115
|
// TODO use config option or named constant?
|
|
116
|
-
const closestPeersToDestination = this.getClosestConnections(
|
|
116
|
+
const closestPeersToDestination = this.getClosestConnections(targetId, 5);
|
|
117
117
|
const dataEntries = (request.operation === DhtRpc_1.RecursiveOperation.FETCH_DATA)
|
|
118
|
-
? Array.from(this.config.localDataStore.
|
|
118
|
+
? Array.from(this.config.localDataStore.values(targetId))
|
|
119
119
|
: [];
|
|
120
120
|
if (request.operation === DhtRpc_1.RecursiveOperation.DELETE_DATA) {
|
|
121
|
-
this.config.localDataStore.markAsDeleted(
|
|
121
|
+
this.config.localDataStore.markAsDeleted(targetId, (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(routedMessage.sourcePeer));
|
|
122
122
|
}
|
|
123
123
|
if ((0, utils_1.areEqualBinaries)(this.config.localPeerDescriptor.nodeId, routedMessage.target)) {
|
|
124
124
|
// TODO this is also very similar case to what we do at line 255, could simplify the code paths?
|
|
@@ -137,10 +137,10 @@ class RecursiveOperationManager {
|
|
|
137
137
|
return ack;
|
|
138
138
|
}
|
|
139
139
|
}
|
|
140
|
-
getClosestConnections(
|
|
140
|
+
getClosestConnections(referenceId, limit) {
|
|
141
141
|
const connectedPeers = Array.from(this.config.connections.values());
|
|
142
142
|
const closestPeers = new SortedContactList_1.SortedContactList({
|
|
143
|
-
referenceId
|
|
143
|
+
referenceId,
|
|
144
144
|
maxSize: limit,
|
|
145
145
|
allowToContainReferenceId: true,
|
|
146
146
|
emitEvents: false
|
|
@@ -148,9 +148,10 @@ class RecursiveOperationManager {
|
|
|
148
148
|
closestPeers.addContacts(connectedPeers);
|
|
149
149
|
return closestPeers.getClosestContacts(limit).map((peer) => peer.getPeerDescriptor());
|
|
150
150
|
}
|
|
151
|
-
isPeerCloserToIdThanSelf(peer,
|
|
152
|
-
const
|
|
153
|
-
const
|
|
151
|
+
isPeerCloserToIdThanSelf(peer, nodeIdOrDataKey) {
|
|
152
|
+
const nodeIdOrDataKeyRaw = (0, identifiers_1.getRawFromDhtAddress)(nodeIdOrDataKey);
|
|
153
|
+
const distance1 = (0, PeerManager_1.getDistance)(peer.nodeId, nodeIdOrDataKeyRaw);
|
|
154
|
+
const distance2 = (0, PeerManager_1.getDistance)(this.config.localPeerDescriptor.nodeId, nodeIdOrDataKeyRaw);
|
|
154
155
|
return distance1 < distance2;
|
|
155
156
|
}
|
|
156
157
|
stop() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecursiveOperationManager.js","sourceRoot":"","sources":["../../../../src/dht/recursive-operation/RecursiveOperationManager.ts"],"names":[],"mappings":";;;AAAA,mEAQ+C;AAE/C,8DAAuD;AACvD,qFAA6G;AAC7G,
|
|
1
|
+
{"version":3,"file":"RecursiveOperationManager.js","sourceRoot":"","sources":["../../../../src/dht/recursive-operation/RecursiveOperationManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,8 +32,8 @@ class RecursiveOperationRpcRemote extends RpcRemote_1.RpcRemote {
|
|
|
32
32
|
const fromNode = previousPeer
|
|
33
33
|
? (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(previousPeer)
|
|
34
34
|
: (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(params.sourcePeer);
|
|
35
|
-
|
|
36
|
-
logger.debug(`Failed to send routeRequest message from ${fromNode} to ${
|
|
35
|
+
const toNode = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(this.getPeerDescriptor());
|
|
36
|
+
logger.debug(`Failed to send routeRequest message from ${fromNode} to ${toNode} with: ${err}`);
|
|
37
37
|
return false;
|
|
38
38
|
}
|
|
39
39
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecursiveOperationRpcRemote.js","sourceRoot":"","sources":["../../../../src/dht/recursive-operation/RecursiveOperationRpcRemote.ts"],"names":[],"mappings":";;;AAAA,0CAAuC;AACvC,+BAAyB;AACzB,qFAAoF;AAGpF,oDAAgD;AAChD,gEAA4D;AAE5D,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,2BAA4B,SAAQ,qBAAsC;IAEnF,KAAK,CAAC,YAAY,CAAC,MAA2B;QAC1C,MAAM,OAAO,GAAwB;YACjC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAA,SAAE,GAAE;YACnC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,EAAE;YAC/C,WAAW,EAAE,MAAM,CAAC,WAAW;SAClC,CAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACnC,OAAO,EAAE,KAAK;SACjB,CAAC,CAAA;QACF,IAAI;YACA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YACjE,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,EAAE;gBACzB,MAAM,CAAC,KAAK,CAAC,gCAAgC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAA;gBAC1D,OAAO,KAAK,CAAA;aACf;SACJ;QAAC,OAAO,GAAG,EAAE;YACV,MAAM,YAAY,GAAG,IAAA,iCAAe,EAAC,MAAM,CAAC,CAAA;YAC5C,MAAM,QAAQ,GAAG,YAAY;gBACzB,CAAC,CAAC,IAAA,sDAA2B,EAAC,YAAY,CAAC;gBAC3C,CAAC,CAAC,IAAA,sDAA2B,EAAC,MAAM,CAAC,UAAW,CAAC,CAAA;YACrD,
|
|
1
|
+
{"version":3,"file":"RecursiveOperationRpcRemote.js","sourceRoot":"","sources":["../../../../src/dht/recursive-operation/RecursiveOperationRpcRemote.ts"],"names":[],"mappings":";;;AAAA,0CAAuC;AACvC,+BAAyB;AACzB,qFAAoF;AAGpF,oDAAgD;AAChD,gEAA4D;AAE5D,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAa,2BAA4B,SAAQ,qBAAsC;IAEnF,KAAK,CAAC,YAAY,CAAC,MAA2B;QAC1C,MAAM,OAAO,GAAwB;YACjC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAA,SAAE,GAAE;YACnC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,EAAE;YAC/C,WAAW,EAAE,MAAM,CAAC,WAAW;SAClC,CAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACnC,OAAO,EAAE,KAAK;SACjB,CAAC,CAAA;QACF,IAAI;YACA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YACjE,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,EAAE;gBACzB,MAAM,CAAC,KAAK,CAAC,gCAAgC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAA;gBAC1D,OAAO,KAAK,CAAA;aACf;SACJ;QAAC,OAAO,GAAG,EAAE;YACV,MAAM,YAAY,GAAG,IAAA,iCAAe,EAAC,MAAM,CAAC,CAAA;YAC5C,MAAM,QAAQ,GAAG,YAAY;gBACzB,CAAC,CAAC,IAAA,sDAA2B,EAAC,YAAY,CAAC;gBAC3C,CAAC,CAAC,IAAA,sDAA2B,EAAC,MAAM,CAAC,UAAW,CAAC,CAAA;YACrD,MAAM,MAAM,GAAG,IAAA,sDAA2B,EAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAA;YACpE,MAAM,CAAC,KAAK,CAAC,4CAA4C,QAAQ,OAAO,MAAM,UAAU,GAAG,EAAE,CAAC,CAAA;YAC9F,OAAO,KAAK,CAAA;SACf;QACD,OAAO,IAAI,CAAA;IACf,CAAC;CACJ;AA/BD,kEA+BC"}
|
|
@@ -3,12 +3,13 @@ import { DataEntry, PeerDescriptor, RecursiveOperation, RouteMessageWrapper, Rou
|
|
|
3
3
|
import { ITransport } from '../../transport/ITransport';
|
|
4
4
|
import { RecursiveOperationResult } from './RecursiveOperationManager';
|
|
5
5
|
import { ServiceID } from '../../types/ServiceID';
|
|
6
|
+
import { DhtAddress } from '../../identifiers';
|
|
6
7
|
export interface RecursiveOperationSessionEvents {
|
|
7
8
|
completed: () => void;
|
|
8
9
|
}
|
|
9
10
|
export interface RecursiveOperationSessionConfig {
|
|
10
11
|
transport: ITransport;
|
|
11
|
-
targetId:
|
|
12
|
+
targetId: DhtAddress;
|
|
12
13
|
localPeerDescriptor: PeerDescriptor;
|
|
13
14
|
waitedRoutingPathCompletions: number;
|
|
14
15
|
operation: RecursiveOperation;
|
|
@@ -12,7 +12,7 @@ const Contact_1 = require("../contact/Contact");
|
|
|
12
12
|
const SortedContactList_1 = require("../contact/SortedContactList");
|
|
13
13
|
const peerIdFromPeerDescriptor_1 = require("../../helpers/peerIdFromPeerDescriptor");
|
|
14
14
|
const RecursiveOperationSessionRpcLocal_1 = require("./RecursiveOperationSessionRpcLocal");
|
|
15
|
-
const
|
|
15
|
+
const identifiers_1 = require("../../identifiers");
|
|
16
16
|
class RecursiveOperationSession extends eventemitter3_1.default {
|
|
17
17
|
constructor(config) {
|
|
18
18
|
super();
|
|
@@ -24,7 +24,7 @@ class RecursiveOperationSession extends eventemitter3_1.default {
|
|
|
24
24
|
this.noCloserNodesReceivedCounter = 0;
|
|
25
25
|
this.config = config;
|
|
26
26
|
this.results = new SortedContactList_1.SortedContactList({
|
|
27
|
-
referenceId:
|
|
27
|
+
referenceId: config.targetId,
|
|
28
28
|
maxSize: 10,
|
|
29
29
|
allowToContainReferenceId: true,
|
|
30
30
|
emitEvents: false
|
|
@@ -63,7 +63,7 @@ class RecursiveOperationSession extends eventemitter3_1.default {
|
|
|
63
63
|
const routeMessage = {
|
|
64
64
|
message: msg,
|
|
65
65
|
requestId: (0, uuid_1.v4)(),
|
|
66
|
-
target: this.config.targetId,
|
|
66
|
+
target: (0, identifiers_1.getRawFromDhtAddress)(this.config.targetId),
|
|
67
67
|
sourcePeer: this.config.localPeerDescriptor,
|
|
68
68
|
reachableThrough: [],
|
|
69
69
|
routingPath: []
|
|
@@ -107,7 +107,7 @@ class RecursiveOperationSession extends eventemitter3_1.default {
|
|
|
107
107
|
const localNodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(this.config.localPeerDescriptor);
|
|
108
108
|
routingPath.forEach((desc) => {
|
|
109
109
|
const newNodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(desc);
|
|
110
|
-
if (
|
|
110
|
+
if (localNodeId !== newNodeId) {
|
|
111
111
|
this.allKnownHops.add(newNodeId);
|
|
112
112
|
}
|
|
113
113
|
});
|
|
@@ -115,7 +115,7 @@ class RecursiveOperationSession extends eventemitter3_1.default {
|
|
|
115
115
|
setHopAsReported(desc) {
|
|
116
116
|
const localNodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(this.config.localPeerDescriptor);
|
|
117
117
|
const newNodeId = (0, peerIdFromPeerDescriptor_1.getNodeIdFromPeerDescriptor)(desc);
|
|
118
|
-
if (
|
|
118
|
+
if (localNodeId !== newNodeId) {
|
|
119
119
|
this.reportedHops.add(newNodeId);
|
|
120
120
|
}
|
|
121
121
|
if (this.isCompleted()) {
|
|
@@ -131,7 +131,7 @@ class RecursiveOperationSession extends eventemitter3_1.default {
|
|
|
131
131
|
}
|
|
132
132
|
processFoundData(dataEntries) {
|
|
133
133
|
dataEntries.forEach((entry) => {
|
|
134
|
-
const creatorNodeId = (0,
|
|
134
|
+
const creatorNodeId = (0, identifiers_1.getDhtAddressFromRaw)(entry.creator);
|
|
135
135
|
const existingEntry = this.foundData.get(creatorNodeId);
|
|
136
136
|
if (!existingEntry || existingEntry.createdAt < entry.createdAt
|
|
137
137
|
|| (existingEntry.createdAt <= entry.createdAt && entry.deleted)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecursiveOperationSession.js","sourceRoot":"","sources":["../../../../src/dht/recursive-operation/RecursiveOperationSession.ts"],"names":[],"mappings":";;;;;;AAAA,kEAAwC;AACxC,+BAAyB;AACzB,mEAU+C;AAE/C,uFAAmF;AACnF,gDAA4C;AAC5C,oEAAgE;AAEhE,qFAAoF;AAEpF,2FAAuF;AACvF,
|
|
1
|
+
{"version":3,"file":"RecursiveOperationSession.js","sourceRoot":"","sources":["../../../../src/dht/recursive-operation/RecursiveOperationSession.ts"],"names":[],"mappings":"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"}
|