@streamr/dht 0.0.1-tatum.5 → 0.0.1-tatum.6

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 (52) hide show
  1. package/dist/src/connection/ConnectionManager.d.ts +1 -0
  2. package/dist/src/connection/ConnectionManager.js +14 -2
  3. package/dist/src/connection/ConnectionManager.js.map +1 -1
  4. package/dist/src/dht/DhtNode.d.ts +1 -3
  5. package/dist/src/dht/DhtNode.js +12 -11
  6. package/dist/src/dht/DhtNode.js.map +1 -1
  7. package/dist/src/dht/DhtPeer.d.ts +2 -0
  8. package/dist/src/dht/DhtPeer.js +4 -0
  9. package/dist/src/dht/DhtPeer.js.map +1 -1
  10. package/dist/src/dht/contact/Contact.d.ts +1 -15
  11. package/dist/src/dht/contact/Contact.js +1 -9
  12. package/dist/src/dht/contact/Contact.js.map +1 -1
  13. package/dist/src/dht/contact/ContactList.d.ts +13 -2
  14. package/dist/src/dht/contact/ContactList.js +9 -1
  15. package/dist/src/dht/contact/ContactList.js.map +1 -1
  16. package/dist/src/dht/contact/RandomContactList.d.ts +3 -2
  17. package/dist/src/dht/contact/RandomContactList.js +4 -5
  18. package/dist/src/dht/contact/RandomContactList.js.map +1 -1
  19. package/dist/src/dht/contact/Remote.d.ts +1 -5
  20. package/dist/src/dht/contact/Remote.js +0 -5
  21. package/dist/src/dht/contact/Remote.js.map +1 -1
  22. package/dist/src/dht/contact/SortedContactList.d.ts +3 -2
  23. package/dist/src/dht/contact/SortedContactList.js +9 -10
  24. package/dist/src/dht/contact/SortedContactList.js.map +1 -1
  25. package/dist/src/dht/routing/RemoteRouter.js +3 -3
  26. package/dist/src/dht/routing/RemoteRouter.js.map +1 -1
  27. package/dist/src/dht/routing/RoutingSession.d.ts +0 -1
  28. package/dist/src/dht/routing/RoutingSession.js +15 -10
  29. package/dist/src/dht/routing/RoutingSession.js.map +1 -1
  30. package/dist/src/exports.d.ts +0 -1
  31. package/dist/src/exports.js +1 -3
  32. package/dist/src/exports.js.map +1 -1
  33. package/package.json +4 -4
  34. package/src/connection/ConnectionManager.ts +16 -3
  35. package/src/dht/DhtNode.ts +17 -16
  36. package/src/dht/DhtPeer.ts +5 -0
  37. package/src/dht/contact/Contact.ts +1 -18
  38. package/src/dht/contact/ContactList.ts +16 -2
  39. package/src/dht/contact/RandomContactList.ts +6 -7
  40. package/src/dht/contact/Remote.ts +1 -10
  41. package/src/dht/contact/SortedContactList.ts +12 -13
  42. package/src/dht/find/RecursiveFinder.ts +1 -1
  43. package/src/dht/routing/RemoteRouter.ts +3 -3
  44. package/src/dht/routing/RoutingSession.ts +29 -20
  45. package/src/exports.ts +0 -1
  46. package/test/benchmark/KademliaCorrectness.test.ts +2 -1
  47. package/test/end-to-end/Layer0-Layer1.test.ts +10 -10
  48. package/test/integration/DhtWithMockConnectionLatencies.test.ts +1 -1
  49. package/test/integration/DhtWithMockConnections.test.ts +1 -1
  50. package/test/integration/DhtWithRealConnectionLatencies.test.ts +1 -1
  51. package/test/unit/RandomContactList.test.ts +26 -75
  52. package/test/unit/SortedContactList.test.ts +62 -112
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.SortedContactList = void 0;
7
7
  const k_bucket_1 = __importDefault(require("k-bucket"));
8
- const Contact_1 = require("./Contact");
9
8
  const ContactList_1 = require("./ContactList");
10
9
  class SortedContactList extends ContactList_1.ContactList {
11
10
  constructor(ownId, maxSize, defaultContactQueryLimit, allowOwnPeerId = false, peerIdDistanceLimit, excludedPeerIDs) {
@@ -32,20 +31,20 @@ class SortedContactList extends ContactList_1.ContactList {
32
31
  }
33
32
  if (!this.contactsById.has(contact.getPeerId().toKey())) {
34
33
  if (this.contactIds.length < this.maxSize) {
35
- this.contactsById.set(contact.getPeerId().toKey(), new Contact_1.ContactState(contact));
34
+ this.contactsById.set(contact.getPeerId().toKey(), new ContactList_1.ContactState(contact));
36
35
  this.contactIds.push(contact.getPeerId());
37
36
  this.contactIds.sort(this.compareIds);
38
37
  }
39
38
  else if (this.compareIds(this.contactIds[this.maxSize - 1], contact.getPeerId()) > 0) {
40
- const removed = this.contactIds.pop();
41
- const removedDescriptor = this.contactsById.get(removed.toKey()).contact.getPeerDescriptor();
42
- this.contactsById.delete(removed.toKey());
43
- this.contactsById.set(contact.getPeerId().toKey(), new Contact_1.ContactState(contact));
39
+ const removedId = this.contactIds.pop();
40
+ const removedContact = this.contactsById.get(removedId.toKey()).contact;
41
+ this.contactsById.delete(removedId.toKey());
42
+ this.contactsById.set(contact.getPeerId().toKey(), new ContactList_1.ContactState(contact));
44
43
  this.contactIds.push(contact.getPeerId());
45
44
  this.contactIds.sort(this.compareIds);
46
- this.emit('contactRemoved', removedDescriptor, this.getClosestContacts().map((contact) => contact.getPeerDescriptor()));
45
+ this.emit('contactRemoved', removedContact, this.getClosestContacts());
47
46
  }
48
- this.emit('newContact', contact.getPeerDescriptor(), this.getClosestContacts().map((contact) => contact.getPeerDescriptor()));
47
+ this.emit('newContact', contact, this.getClosestContacts());
49
48
  }
50
49
  }
51
50
  addContacts(contacts) {
@@ -109,11 +108,11 @@ class SortedContactList extends ContactList_1.ContactList {
109
108
  }
110
109
  removeContact(id) {
111
110
  if (this.contactsById.has(id.toKey())) {
112
- const removedDescriptor = this.contactsById.get(id.toKey()).contact.getPeerDescriptor();
111
+ const removed = this.contactsById.get(id.toKey()).contact;
113
112
  const index = this.contactIds.findIndex((element) => element.equals(id));
114
113
  this.contactIds.splice(index, 1);
115
114
  this.contactsById.delete(id.toKey());
116
- this.emit('contactRemoved', removedDescriptor, this.getClosestContacts().map((contact) => contact.getPeerDescriptor()));
115
+ this.emit('contactRemoved', removed, this.getClosestContacts());
117
116
  return true;
118
117
  }
119
118
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"SortedContactList.js","sourceRoot":"","sources":["../../../../src/dht/contact/SortedContactList.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SortedContactList.js","sourceRoot":"","sources":["../../../../src/dht/contact/SortedContactList.ts"],"names":[],"mappings":";;;;;;AAAA,wDAA8B;AAE9B,+CAAyD;AAEzD,MAAa,iBAAyD,SAAQ,yBAAc;IAMxF,YACI,KAAa,EACb,OAAe,EACf,wBAAiC,EACjC,cAAc,GAAG,KAAK,EACtB,mBAA4B,EAC5B,eAA0B;QAE1B,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,wBAAwB,CAAC,CAAA;QAC/C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC5C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAA;QAC9C,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;IAC1C,CAAC;IAEM,mBAAmB;QACtB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;IAC7B,CAAC;IAEM,aAAa;QAChB,OAAO,IAAI,CAAC,UAAU,CAAA;IAC1B,CAAC;IAEM,UAAU,CAAC,OAAU;QACxB,IAAI,IAAI,CAAC,eAAe;eACjB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE;YAC9E,OAAM;SACT;QAED,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;YAChE,CAAC,IAAI,CAAC,mBAAmB,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;YAChH,OAAM;SACT;QACD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE;YACrD,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE;gBACvC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,IAAI,0BAAY,CAAC,OAAO,CAAC,CAAC,CAAA;gBAC7E,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;gBACzC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;aACxC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE;gBACpF,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAA;gBACvC,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAU,CAAC,KAAK,EAAE,CAAE,CAAC,OAAO,CAAA;gBACzE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAU,CAAC,KAAK,EAAE,CAAC,CAAA;gBAC5C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,IAAI,0BAAY,CAAC,OAAO,CAAC,CAAC,CAAA;gBAC7E,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;gBACzC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;gBACrC,IAAI,CAAC,IAAI,CACL,gBAAgB,EAChB,cAAc,EACd,IAAI,CAAC,kBAAkB,EAAE,CAC5B,CAAA;aACJ;YACD,IAAI,CAAC,IAAI,CACL,YAAY,EACZ,OAAO,EACP,IAAI,CAAC,kBAAkB,EAAE,CAC5B,CAAA;SACJ;IACL,CAAC;IAEM,WAAW,CAAC,QAAa;QAC5B,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAA;IAC3D,CAAC;IAEM,YAAY,CAAC,SAAiB;QACjC,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE;YAC1C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAE,CAAC,SAAS,GAAG,IAAI,CAAA;SAC7D;IACL,CAAC;IAEM,SAAS,CAAC,SAAiB;QAC9B,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE;YAC1C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAE,CAAC,MAAM,GAAG,IAAI,CAAA;SAC1D;IACL,CAAC;IAEM,kBAAkB,CAAC,KAAK,GAAG,IAAI,CAAC,wBAAwB;QAC3D,MAAM,GAAG,GAAQ,EAAE,CAAA;QACnB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YAClC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAA;YACxD,IAAI,OAAO,EAAE;gBACT,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;aAC5B;QACL,CAAC,CAAC,CAAA;QACF,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IAC9B,CAAC;IAEM,sBAAsB,CAAC,GAAW;QACrC,MAAM,GAAG,GAAQ,EAAE,CAAA;QACnB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAA;YACxD,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;gBAC/B,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;gBACzB,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE;oBACnB,OAAO,GAAG,CAAA;iBACb;aACJ;SACJ;QACD,OAAO,GAAG,CAAA;IACd,CAAC;IAEM,iBAAiB,CAAC,KAAc;QACnC,MAAM,GAAG,GAAQ,EAAE,CAAA;QACnB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YAClC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAA;YACxD,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE;gBAC3B,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;aAC5B;QACL,CAAC,CAAC,CAAA;QACF,IAAI,KAAK,KAAK,SAAS,EAAE;YACrB,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;SAC7B;aAAM;YACH,OAAO,GAAG,CAAA;SACb;IACL,CAAC;IAEM,UAAU,CAAC,GAAW,EAAE,GAAW;QACtC,MAAM,SAAS,GAAG,kBAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;QAC/D,MAAM,SAAS,GAAG,kBAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;QAC/D,OAAO,SAAS,GAAG,SAAS,CAAA;IAChC,CAAC;IAEM,YAAY;QACf,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;IAC1D,CAAC;IAEM,aAAa,CAAC,EAAU;QAC3B,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE;YACnC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,CAAE,CAAC,OAAO,CAAA;YAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;YACxE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;YAChC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAA;YACpC,IAAI,CAAC,IAAI,CACL,gBAAgB,EAChB,OAAO,EACP,IAAI,CAAC,kBAAkB,EAAE,CAC5B,CAAA;YACD,OAAO,IAAI,CAAA;SACd;QACD,OAAO,KAAK,CAAA;IAChB,CAAC;IAEM,QAAQ,CAAC,EAAU;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,CAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAA;IAChG,CAAC;IAEM,cAAc;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAE,CAAC,OAAO,CAAC,CAAA;IAC1F,CAAC;IAEM,UAAU;QACb,OAAO,IAAI,CAAC,OAAO,CAAA;IACvB,CAAC;IAEM,mBAAmB;QACtB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,CAAA;IACrE,CAAC;CACJ;AAlKD,8CAkKC"}
@@ -34,7 +34,7 @@ class RemoteRouter extends Remote_1.Remote {
34
34
  catch (err) {
35
35
  const fromNode = params.previousPeer ?
36
36
  (0, peerIdFromPeerDescriptor_1.peerIdFromPeerDescriptor)(params.previousPeer) : (0, peerIdFromPeerDescriptor_1.keyFromPeerDescriptor)(params.sourcePeer);
37
- logger.trace(`Failed to send routeMessage from ${fromNode} to ${this.getPeerId().toKey()} with: ${err}`);
37
+ logger.trace(`Failed to send routeMessage from ${fromNode} to ${(0, peerIdFromPeerDescriptor_1.keyFromPeerDescriptor)(this.getPeerDescriptor())} with: ${err}`);
38
38
  return false;
39
39
  }
40
40
  return true;
@@ -61,7 +61,7 @@ class RemoteRouter extends Remote_1.Remote {
61
61
  catch (err) {
62
62
  const fromNode = params.previousPeer ?
63
63
  (0, peerIdFromPeerDescriptor_1.keyFromPeerDescriptor)(params.previousPeer) : (0, peerIdFromPeerDescriptor_1.keyFromPeerDescriptor)(params.sourcePeer);
64
- logger.trace(`Failed to send forwardMessage from ${fromNode} to ${this.getPeerId().toKey()} with: ${err}`);
64
+ logger.trace(`Failed to send forwardMessage from ${fromNode} to ${(0, peerIdFromPeerDescriptor_1.keyFromPeerDescriptor)(this.getPeerDescriptor())} with: ${err}`);
65
65
  return false;
66
66
  }
67
67
  return true;
@@ -88,7 +88,7 @@ class RemoteRouter extends Remote_1.Remote {
88
88
  }
89
89
  catch (err) {
90
90
  const fromNode = params.previousPeer ? (0, peerIdFromPeerDescriptor_1.keyFromPeerDescriptor)(params.previousPeer) : (0, peerIdFromPeerDescriptor_1.keyFromPeerDescriptor)(params.sourcePeer);
91
- logger.debug(`Failed to send recursiveFind message from ${fromNode} to ${this.getPeerId().toKey()} with: ${err}`);
91
+ logger.debug(`Failed to send recursiveFind message from ${fromNode} to ${(0, peerIdFromPeerDescriptor_1.keyFromPeerDescriptor)(this.getPeerDescriptor())} with: ${err}`);
92
92
  return false;
93
93
  }
94
94
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteRouter.js","sourceRoot":"","sources":["../../../../src/dht/routing/RemoteRouter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RemoteRouter.js","sourceRoot":"","sources":["../../../../src/dht/routing/RemoteRouter.ts"],"names":[],"mappings":"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"}
@@ -35,7 +35,6 @@ export declare class RoutingSession extends EventEmitter<RoutingSessionEvents> {
35
35
  private onRequestSucceeded;
36
36
  private sendRouteMessageRequest;
37
37
  private findMoreContacts;
38
- getClosestContacts: (limit: number) => PeerDescriptor[];
39
38
  private sendMoreRequests;
40
39
  start(): void;
41
40
  stop(): void;
@@ -12,8 +12,18 @@ const uuid_1 = require("uuid");
12
12
  const RemoteRouter_1 = require("./RemoteRouter");
13
13
  const DhtRpc_client_1 = require("../../proto/packages/dht/protos/DhtRpc.client");
14
14
  const proto_rpc_1 = require("@streamr/proto-rpc");
15
+ const Contact_1 = require("../contact/Contact");
15
16
  const logger = new utils_1.Logger(module);
16
17
  const MAX_FAILED_HOPS = 2;
18
+ class RemoteContact extends Contact_1.Contact {
19
+ constructor(peer, ownPeerDescriptor, rpcCommunicator) {
20
+ super(peer.getPeerDescriptor());
21
+ this.router = new RemoteRouter_1.RemoteRouter(ownPeerDescriptor, peer.getPeerDescriptor(), peer.getServiceId(), (0, proto_rpc_1.toProtoRpcClient)(new DhtRpc_client_1.RoutingServiceClient(rpcCommunicator.getRpcClientTransport())));
22
+ }
23
+ getRouter() {
24
+ return this.router;
25
+ }
26
+ }
17
27
  var RoutingMode;
18
28
  (function (RoutingMode) {
19
29
  RoutingMode[RoutingMode["ROUTE"] = 0] = "ROUTE";
@@ -76,20 +86,21 @@ class RoutingSession extends eventemitter3_1.default {
76
86
  if (this.stopped) {
77
87
  return false;
78
88
  }
89
+ const router = contact.getRouter();
79
90
  if (this.mode === RoutingMode.FORWARD) {
80
- return contact.forwardMessage({
91
+ return router.forwardMessage({
81
92
  ...this.messageToRoute,
82
93
  previousPeer: this.ownPeerDescriptor
83
94
  });
84
95
  }
85
96
  else if (this.mode === RoutingMode.RECURSIVE_FIND) {
86
- return contact.findRecursively({
97
+ return router.findRecursively({
87
98
  ...this.messageToRoute,
88
99
  previousPeer: this.ownPeerDescriptor
89
100
  });
90
101
  }
91
102
  else {
92
- return contact.routeMessage({
103
+ return router.routeMessage({
93
104
  ...this.messageToRoute,
94
105
  previousPeer: this.ownPeerDescriptor
95
106
  });
@@ -100,16 +111,10 @@ class RoutingSession extends eventemitter3_1.default {
100
111
  // the contents of the connections might have changed between the rounds
101
112
  // addContacts() will only add new contacts that were not there yet
102
113
  const contacts = Array.from(this.connections.values())
103
- .map((contact) => {
104
- return new RemoteRouter_1.RemoteRouter(this.ownPeerDescriptor, contact.getPeerDescriptor(), contact.getServiceId(), (0, proto_rpc_1.toProtoRpcClient)(new DhtRpc_client_1.RoutingServiceClient(this.rpcCommunicator.getRpcClientTransport())));
105
- });
114
+ .map((peer) => new RemoteContact(peer, this.ownPeerDescriptor, this.rpcCommunicator));
106
115
  this.contactList.addContacts(contacts);
107
116
  return this.contactList.getUncontactedContacts(this.parallelism);
108
117
  };
109
- this.getClosestContacts = (limit) => {
110
- const contacts = this.contactList.getClosestContacts(limit);
111
- return contacts.map((contact) => contact.getPeerDescriptor());
112
- };
113
118
  this.sendMoreRequests = (uncontacted) => {
114
119
  logger.trace('sendMoreRequests() sessionId: ' + this.sessionId);
115
120
  if (this.stopped) {
@@ -1 +1 @@
1
- {"version":3,"file":"RoutingSession.js","sourceRoot":"","sources":["../../../../src/dht/routing/RoutingSession.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RoutingSession.js","sourceRoot":"","sources":["../../../../src/dht/routing/RoutingSession.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,6 @@ export { PeerDescriptor, Message, NodeType, DataEntry } from './proto/packages/d
7
7
  export { ITransport } from './transport/ITransport';
8
8
  export { ConnectionManager, ConnectionLocker, PortRange, TlsCertificate } from './connection/ConnectionManager';
9
9
  export { PeerID, PeerIDKey } from './helpers/PeerID';
10
- export { DhtPeer } from './dht/DhtPeer';
11
10
  export { UUID } from './helpers/UUID';
12
11
  export { DhtRpcOptions } from './rpc-protocol/DhtRpcOptions';
13
12
  export { protoClasses } from './helpers/protoClasses';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DhtCallContext = exports.isSamePeerDescriptor = exports.keyFromPeerDescriptor = exports.peerIdFromPeerDescriptor = exports.Remote = exports.Contact = exports.SortedContactList = exports.protoClasses = exports.UUID = exports.DhtPeer = exports.PeerID = exports.ConnectionManager = exports.DataEntry = exports.NodeType = exports.Message = exports.PeerDescriptor = exports.getRegionDelayMatrix = exports.getRandomRegion = exports.SimulatorTransport = exports.LatencyType = exports.Simulator = exports.ListeningRpcCommunicator = exports.DhtNode = void 0;
3
+ exports.DhtCallContext = exports.isSamePeerDescriptor = exports.keyFromPeerDescriptor = exports.peerIdFromPeerDescriptor = exports.Remote = exports.Contact = exports.SortedContactList = exports.protoClasses = exports.UUID = exports.PeerID = exports.ConnectionManager = exports.DataEntry = exports.NodeType = exports.Message = exports.PeerDescriptor = exports.getRegionDelayMatrix = exports.getRandomRegion = exports.SimulatorTransport = exports.LatencyType = exports.Simulator = exports.ListeningRpcCommunicator = exports.DhtNode = void 0;
4
4
  var DhtNode_1 = require("./dht/DhtNode");
5
5
  Object.defineProperty(exports, "DhtNode", { enumerable: true, get: function () { return DhtNode_1.DhtNode; } });
6
6
  var ListeningRpcCommunicator_1 = require("./transport/ListeningRpcCommunicator");
@@ -22,8 +22,6 @@ var ConnectionManager_1 = require("./connection/ConnectionManager");
22
22
  Object.defineProperty(exports, "ConnectionManager", { enumerable: true, get: function () { return ConnectionManager_1.ConnectionManager; } });
23
23
  var PeerID_1 = require("./helpers/PeerID");
24
24
  Object.defineProperty(exports, "PeerID", { enumerable: true, get: function () { return PeerID_1.PeerID; } });
25
- var DhtPeer_1 = require("./dht/DhtPeer");
26
- Object.defineProperty(exports, "DhtPeer", { enumerable: true, get: function () { return DhtPeer_1.DhtPeer; } });
27
25
  var UUID_1 = require("./helpers/UUID");
28
26
  Object.defineProperty(exports, "UUID", { enumerable: true, get: function () { return UUID_1.UUID; } });
29
27
  var protoClasses_1 = require("./helpers/protoClasses");
@@ -1 +1 @@
1
- {"version":3,"file":"exports.js","sourceRoot":"","sources":["../../src/exports.ts"],"names":[],"mappings":";;;AAAA,yCAAsE;AAA7D,kGAAA,OAAO,OAAA;AAChB,iFAA+E;AAAtE,oIAAA,wBAAwB,OAAA;AACjC,8DAAyE;AAAhE,sGAAA,SAAS,OAAA;AAAE,wGAAA,WAAW,OAAA;AAC/B,gFAA8E;AAArE,wHAAA,kBAAkB,OAAA;AAC3B,sDAAoF;AAA3E,wGAAA,eAAe,OAAA;AAAE,6GAAA,oBAAoB,OAAA;AAC9C,6DAAiG;AAAxF,wGAAA,cAAc,OAAA;AAAE,iGAAA,OAAO,OAAA;AAAE,kGAAA,QAAQ,OAAA;AAAE,mGAAA,SAAS,OAAA;AAErD,oEAA+G;AAAtG,sHAAA,iBAAiB,OAAA;AAC1B,2CAAoD;AAA3C,gGAAA,MAAM,OAAA;AACf,yCAAuC;AAA9B,kGAAA,OAAO,OAAA;AAChB,uCAAqC;AAA5B,4FAAA,IAAI,OAAA;AAEb,uDAAqD;AAA5C,4GAAA,YAAY,OAAA;AACrB,qEAAmE;AAA1D,sHAAA,iBAAiB,OAAA;AAC1B,iDAA+C;AAAtC,kGAAA,OAAO,OAAA;AAChB,+CAA6C;AAApC,gGAAA,MAAM,OAAA;AAEf,+EAA0H;AAAjH,oIAAA,wBAAwB,OAAA;AAAE,iIAAA,qBAAqB,OAAA;AAAE,gIAAA,oBAAoB,OAAA;AAE9E,gEAA8D;AAArD,gHAAA,cAAc,OAAA"}
1
+ {"version":3,"file":"exports.js","sourceRoot":"","sources":["../../src/exports.ts"],"names":[],"mappings":";;;AAAA,yCAAsE;AAA7D,kGAAA,OAAO,OAAA;AAChB,iFAA+E;AAAtE,oIAAA,wBAAwB,OAAA;AACjC,8DAAyE;AAAhE,sGAAA,SAAS,OAAA;AAAE,wGAAA,WAAW,OAAA;AAC/B,gFAA8E;AAArE,wHAAA,kBAAkB,OAAA;AAC3B,sDAAoF;AAA3E,wGAAA,eAAe,OAAA;AAAE,6GAAA,oBAAoB,OAAA;AAC9C,6DAAiG;AAAxF,wGAAA,cAAc,OAAA;AAAE,iGAAA,OAAO,OAAA;AAAE,kGAAA,QAAQ,OAAA;AAAE,mGAAA,SAAS,OAAA;AAErD,oEAA+G;AAAtG,sHAAA,iBAAiB,OAAA;AAC1B,2CAAoD;AAA3C,gGAAA,MAAM,OAAA;AACf,uCAAqC;AAA5B,4FAAA,IAAI,OAAA;AAEb,uDAAqD;AAA5C,4GAAA,YAAY,OAAA;AACrB,qEAAmE;AAA1D,sHAAA,iBAAiB,OAAA;AAC1B,iDAA+C;AAAtC,kGAAA,OAAO,OAAA;AAChB,+CAA6C;AAApC,gGAAA,MAAM,OAAA;AAEf,+EAA0H;AAAjH,oIAAA,wBAAwB,OAAA;AAAE,iIAAA,qBAAqB,OAAA;AAAE,gIAAA,oBAAoB,OAAA;AAE9E,gEAA8D;AAArD,gHAAA,cAAc,OAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@streamr/dht",
3
- "version": "0.0.1-tatum.5",
3
+ "version": "0.0.1-tatum.6",
4
4
  "description": "Streamr Network DHT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -31,8 +31,8 @@
31
31
  "dependencies": {
32
32
  "@protobuf-ts/runtime": "^2.8.2",
33
33
  "@protobuf-ts/runtime-rpc": "^2.8.2",
34
- "@streamr/proto-rpc": "0.0.1-tatum.5",
35
- "@streamr/utils": "0.0.1-tatum.5",
34
+ "@streamr/proto-rpc": "0.0.1-tatum.6",
35
+ "@streamr/utils": "0.0.1-tatum.6",
36
36
  "eventemitter3": "^5.0.0",
37
37
  "heap": "^0.2.6",
38
38
  "ipaddr.js": "^2.0.1",
@@ -45,7 +45,7 @@
45
45
  },
46
46
  "devDependencies": {
47
47
  "@streamr/browser-test-runner": "^0.0.1",
48
- "@streamr/test-utils": "0.0.1-tatum.5",
48
+ "@streamr/test-utils": "0.0.1-tatum.6",
49
49
  "@types/express": "^4.17.19",
50
50
  "@types/heap": "^0.2.32",
51
51
  "@types/k-bucket": "^5.0.1",
@@ -38,6 +38,7 @@ import {
38
38
  keyFromPeerDescriptor,
39
39
  peerIdFromPeerDescriptor
40
40
  } from '../helpers/peerIdFromPeerDescriptor'
41
+ import { isPrivateIPv4 } from '../helpers/AddressTools'
41
42
 
42
43
  export class ConnectionManagerConfig {
43
44
  transportLayer?: ITransport
@@ -207,7 +208,7 @@ export class ConnectionManager extends EventEmitter<Events> implements ITranspor
207
208
  if (this.connections.size <= maxConnections) {
208
209
  return
209
210
  }
210
- const disconnectionCandidates = new SortedContactList(peerIdFromPeerDescriptor(this.ownPeerDescriptor!), 100000)
211
+ const disconnectionCandidates = new SortedContactList<Contact>(peerIdFromPeerDescriptor(this.ownPeerDescriptor!), 100000)
211
212
  this.connections.forEach((connection) => {
212
213
  if (!this.locks.isLocked(connection.peerIdKey) && Date.now() - connection.getLastUsed() > lastUsedLimit) {
213
214
  logger.trace('disconnecting in timeout interval: ' + this.ownPeerDescriptor?.nodeName + ', '
@@ -359,14 +360,26 @@ export class ConnectionManager extends EventEmitter<Events> implements ITranspor
359
360
  private createConnection(peerDescriptor: PeerDescriptor): ManagedConnection {
360
361
  if (this.simulatorConnector) {
361
362
  return this.simulatorConnector.connect(peerDescriptor)
362
- } else if (peerDescriptor.websocket || this.ownPeerDescriptor!.websocket) {
363
- if (!(peerDescriptor.type === NodeType.BROWSER && this.ownPeerDescriptor!.websocket?.tls)) {
363
+ } else if ((peerDescriptor.websocket || this.ownPeerDescriptor!.websocket)) {
364
+ if (this.canOpenWsConnection(peerDescriptor)) {
364
365
  return this.webSocketConnector!.connect(peerDescriptor)
365
366
  }
366
367
  }
367
368
  return this.webrtcConnector!.connect(peerDescriptor)
368
369
  }
369
370
 
371
+ private canOpenWsConnection(peerDescriptor: PeerDescriptor): boolean {
372
+ if (!(this.ownPeerDescriptor!.type === NodeType.BROWSER || peerDescriptor.type === NodeType.BROWSER)) {
373
+ return true
374
+ }
375
+ if (this.ownPeerDescriptor!.websocket) {
376
+ return (peerDescriptor.type === NodeType.BROWSER && this.ownPeerDescriptor!.websocket!.tls)
377
+ || (this.ownPeerDescriptor!.websocket!.host === 'localhost' || (isPrivateIPv4(this.ownPeerDescriptor!.websocket!.host)))
378
+ }
379
+ return (this.ownPeerDescriptor!.type === NodeType.BROWSER && peerDescriptor.websocket!.tls)
380
+ || (peerDescriptor.websocket!.host === 'localhost' || (isPrivateIPv4(peerDescriptor.websocket!.host)))
381
+ }
382
+
370
383
  public getConnection(peerDescriptor: PeerDescriptor): ManagedConnection | undefined {
371
384
  const hexId = keyFromPeerDescriptor(peerDescriptor)
372
385
  return this.connections.get(hexId)
@@ -142,7 +142,8 @@ export const createPeerDescriptor = (msg?: ConnectivityResponse, peerId?: string
142
142
  } else {
143
143
  kademliaId = hexToBinary(peerId!)
144
144
  }
145
- const ret: PeerDescriptor = { kademliaId, nodeName: nodeName ? nodeName : binaryToHex(kademliaId), type: NodeType.NODEJS }
145
+ const nodeType = isNodeJS() ? NodeType.NODEJS : NodeType.BROWSER
146
+ const ret: PeerDescriptor = { kademliaId, nodeName: nodeName ? nodeName : binaryToHex(kademliaId), type: nodeType }
146
147
  if (msg && msg.websocket) {
147
148
  ret.websocket = { host: msg.websocket.host, port: msg.websocket.port, tls: msg.websocket.tls }
148
149
  ret.openInternet = true
@@ -319,29 +320,29 @@ export class DhtNode extends EventEmitter<Events> implements ITransport {
319
320
  // TODO: Update contact info to the connection manager and reconnect
320
321
  })
321
322
  this.neighborList = new SortedContactList(selfId, this.config.maxNeighborListSize)
322
- this.neighborList.on('contactRemoved', (peerDescriptor: PeerDescriptor, activeContacts: PeerDescriptor[]) => {
323
+ this.neighborList.on('contactRemoved', (removedContact: DhtPeer, activeContacts: DhtPeer[]) => {
323
324
  if (this.stopped) {
324
325
  return
325
326
  }
326
- this.emit('contactRemoved', peerDescriptor, activeContacts)
327
+ this.emit('contactRemoved', removedContact.getPeerDescriptor(), activeContacts.map((c) => c.getPeerDescriptor()))
327
328
  this.randomPeers!.addContact(
328
329
  new DhtPeer(
329
330
  this.ownPeerDescriptor!,
330
- peerDescriptor,
331
+ removedContact.getPeerDescriptor(),
331
332
  toProtoRpcClient(new DhtRpcServiceClient(this.rpcCommunicator!.getRpcClientTransport())),
332
333
  this.config.serviceId
333
334
  )
334
335
  )
335
336
  })
336
- this.neighborList.on('newContact', (peerDescriptor: PeerDescriptor, activeContacts: PeerDescriptor[]) =>
337
- this.emit('newContact', peerDescriptor, activeContacts)
337
+ this.neighborList.on('newContact', (newContact: DhtPeer, activeContacts: DhtPeer[]) =>
338
+ this.emit('newContact', newContact.getPeerDescriptor(), activeContacts.map((c) => c.getPeerDescriptor()))
338
339
  )
339
340
  this.openInternetPeers = new SortedContactList(selfId, this.config.maxNeighborListSize / 2)
340
- this.openInternetPeers.on('contactRemoved', (peerDescriptor: PeerDescriptor, activeContacts: PeerDescriptor[]) =>
341
- this.emit('openInternetContactRemoved', peerDescriptor, activeContacts)
341
+ this.openInternetPeers.on('contactRemoved', (removedContact: DhtPeer, activeContacts: DhtPeer[]) =>
342
+ this.emit('openInternetContactRemoved', removedContact.getPeerDescriptor(), activeContacts.map((c) => c.getPeerDescriptor()))
342
343
  )
343
- this.openInternetPeers.on('newContact', (peerDescriptor: PeerDescriptor, activeContacts: PeerDescriptor[]) =>
344
- this.emit('newOpenInternetContact', peerDescriptor, activeContacts)
344
+ this.openInternetPeers.on('newContact', (newContact: DhtPeer, activeContacts: DhtPeer[]) =>
345
+ this.emit('newOpenInternetContact', newContact.getPeerDescriptor(), activeContacts.map((c) => c.getPeerDescriptor()))
345
346
  )
346
347
  this.transportLayer!.on('connected', (peerDescriptor: PeerDescriptor) => this.onTransportConnected(peerDescriptor))
347
348
 
@@ -363,11 +364,11 @@ export class DhtNode extends EventEmitter<Events> implements ITransport {
363
364
  this.connections.set(peerId.toKey(), dhtPeer)
364
365
  })
365
366
  this.randomPeers = new RandomContactList(selfId, this.config.maxNeighborListSize)
366
- this.randomPeers.on('contactRemoved', (peerDescriptor: PeerDescriptor, activeContacts: PeerDescriptor[]) =>
367
- this.emit('randomContactRemoved', peerDescriptor, activeContacts)
367
+ this.randomPeers.on('contactRemoved', (removedContact: DhtPeer, activeContacts: DhtPeer[]) =>
368
+ this.emit('randomContactRemoved', removedContact.getPeerDescriptor(), activeContacts.map((c) => c.getPeerDescriptor()))
368
369
  )
369
- this.randomPeers.on('newContact', (peerDescriptor: PeerDescriptor, activeContacts: PeerDescriptor[]) =>
370
- this.emit('newRandomContact', peerDescriptor, activeContacts)
370
+ this.randomPeers.on('newContact', (newContact: DhtPeer, activeContacts: DhtPeer[]) =>
371
+ this.emit('newRandomContact', newContact.getPeerDescriptor(), activeContacts.map((c) => c.getPeerDescriptor()))
371
372
  )
372
373
  }
373
374
 
@@ -555,8 +556,8 @@ export class DhtNode extends EventEmitter<Events> implements ITransport {
555
556
  return undefined
556
557
  }
557
558
 
558
- public getNeighborList(): SortedContactList<DhtPeer> {
559
- return this.neighborList!
559
+ public getClosestContacts(maxCount?: number): PeerDescriptor[] {
560
+ return this.neighborList!.getClosestContacts(maxCount).map((c) => c.getPeerDescriptor())
560
561
  }
561
562
 
562
563
  public getNodeId(): PeerID {
@@ -9,6 +9,7 @@ import { v4 } from 'uuid'
9
9
  import { Logger } from '@streamr/utils'
10
10
  import { ProtoRpcClient } from '@streamr/proto-rpc'
11
11
  import { Remote } from './contact/Remote'
12
+ import { PeerID, peerIdFromPeerDescriptor } from '../exports'
12
13
 
13
14
  const logger = new Logger(module)
14
15
 
@@ -81,4 +82,8 @@ export class DhtPeer extends Remote<IDhtRpcServiceClient> implements KBucketCont
81
82
  logger.trace('Failed to send leaveNotice' + e)
82
83
  })
83
84
  }
85
+
86
+ getPeerId(): PeerID {
87
+ return peerIdFromPeerDescriptor(this.getPeerDescriptor())
88
+ }
84
89
  }
@@ -2,24 +2,7 @@ import { PeerID } from '../../helpers/PeerID'
2
2
  import { PeerDescriptor } from '../../proto/packages/dht/protos/DhtRpc'
3
3
  import { peerIdFromPeerDescriptor } from '../../helpers/peerIdFromPeerDescriptor'
4
4
 
5
- export class ContactState<TContact> {
6
- public contacted = false
7
- public active = false
8
- public contact: TContact
9
-
10
- constructor(contact: TContact) {
11
- this.contact = contact
12
- }
13
- }
14
-
15
- export interface IContact { getPeerId: () => PeerID, getPeerDescriptor: () => PeerDescriptor }
16
-
17
- export interface Events {
18
- contactRemoved: (removedDescriptor: PeerDescriptor, closestDescriptors: PeerDescriptor[]) => void
19
- newContact: (newDescriptor: PeerDescriptor, closestDescriptors: PeerDescriptor[]) => void
20
- }
21
-
22
- export class Contact implements IContact {
5
+ export class Contact {
23
6
  private peerDescriptor: PeerDescriptor
24
7
 
25
8
  constructor(peerDescriptor: PeerDescriptor) {
@@ -1,8 +1,22 @@
1
1
  import { PeerID, PeerIDKey } from '../../helpers/PeerID'
2
2
  import EventEmitter from 'eventemitter3'
3
- import { Events, IContact, ContactState } from './Contact'
4
3
 
5
- export class ContactList<C extends IContact> extends EventEmitter<Events> {
4
+ export class ContactState<C> {
5
+ public contacted = false
6
+ public active = false
7
+ public contact: C
8
+
9
+ constructor(contact: C) {
10
+ this.contact = contact
11
+ }
12
+ }
13
+
14
+ export interface Events<C> {
15
+ contactRemoved: (removedContact: C, closestContacts: C[]) => void
16
+ newContact: (newContact: C, closestContacts: C[]) => void
17
+ }
18
+
19
+ export class ContactList<C extends { getPeerId: () => PeerID }> extends EventEmitter<Events<C>> {
6
20
 
7
21
  protected contactsById: Map<PeerIDKey, ContactState<C>> = new Map()
8
22
  protected contactIds: PeerID[] = []
@@ -1,8 +1,7 @@
1
1
  import { PeerID } from '../../helpers/PeerID'
2
- import { ContactState, IContact } from './Contact'
3
- import { ContactList } from './ContactList'
2
+ import { ContactList, ContactState } from './ContactList'
4
3
 
5
- export class RandomContactList<C extends IContact> extends ContactList<C> {
4
+ export class RandomContactList<C extends { getPeerId: () => PeerID }> extends ContactList<C> {
6
5
 
7
6
  private randomness: number
8
7
 
@@ -31,8 +30,8 @@ export class RandomContactList<C extends IContact> extends ContactList<C> {
31
30
  this.contactsById.set(contact.getPeerId().toKey(), new ContactState(contact))
32
31
  this.emit(
33
32
  'newContact',
34
- contact.getPeerDescriptor(),
35
- this.getContacts().map((contact: C) => contact.getPeerDescriptor())
33
+ contact,
34
+ this.getContacts()
36
35
  )
37
36
  }
38
37
  }
@@ -44,11 +43,11 @@ export class RandomContactList<C extends IContact> extends ContactList<C> {
44
43
 
45
44
  removeContact(id: PeerID): boolean {
46
45
  if (this.contactsById.has(id.toKey())) {
47
- const removedDescriptor = this.contactsById.get(id.toKey())!.contact.getPeerDescriptor()
46
+ const removed = this.contactsById.get(id.toKey())!.contact
48
47
  const index = this.contactIds.findIndex((element) => element.equals(id))
49
48
  this.contactIds.splice(index, 1)
50
49
  this.contactsById.delete(id.toKey())
51
- this.emit('contactRemoved', removedDescriptor, this.getContacts().map((contact: C) => contact.getPeerDescriptor()))
50
+ this.emit('contactRemoved', removed, this.getContacts())
52
51
  return true
53
52
  }
54
53
  return false
@@ -1,14 +1,10 @@
1
1
  import { PeerDescriptor } from '../../proto/packages/dht/protos/DhtRpc'
2
2
  import { ProtoRpcClient } from '@streamr/proto-rpc'
3
- import { peerIdFromPeerDescriptor } from '../../helpers/peerIdFromPeerDescriptor'
4
- import { PeerID } from '../../helpers/PeerID'
5
- import { IContact } from './Contact'
6
3
  import { DhtRpcOptions } from '../../rpc-protocol/DhtRpcOptions'
7
4
 
8
- export abstract class Remote<T> implements IContact {
5
+ export abstract class Remote<T> {
9
6
 
10
7
  private readonly localPeerDescriptor: PeerDescriptor
11
- private readonly remotePeerId: PeerID
12
8
  private readonly remotePeerDescriptor: PeerDescriptor
13
9
  private readonly serviceId: string
14
10
  private readonly client: ProtoRpcClient<T>
@@ -20,16 +16,11 @@ export abstract class Remote<T> implements IContact {
20
16
  client: ProtoRpcClient<T>
21
17
  ) {
22
18
  this.localPeerDescriptor = localPeerDescriptor
23
- this.remotePeerId = peerIdFromPeerDescriptor(remotePeerDescriptor)
24
19
  this.remotePeerDescriptor = remotePeerDescriptor
25
20
  this.client = client
26
21
  this.serviceId = serviceId
27
22
  }
28
23
 
29
- getPeerId(): PeerID {
30
- return this.remotePeerId
31
- }
32
-
33
24
  getPeerDescriptor(): PeerDescriptor {
34
25
  return this.remotePeerDescriptor
35
26
  }
@@ -1,9 +1,8 @@
1
1
  import KBucket from 'k-bucket'
2
2
  import { PeerID } from '../../helpers/PeerID'
3
- import { ContactState, IContact } from './Contact'
4
- import { ContactList } from './ContactList'
3
+ import { ContactList, ContactState } from './ContactList'
5
4
 
6
- export class SortedContactList<C extends IContact> extends ContactList<C> {
5
+ export class SortedContactList<C extends { getPeerId: () => PeerID }> extends ContactList<C> {
7
6
 
8
7
  private allowOwnPeerId: boolean
9
8
  private peerIdDistanceLimit?: PeerID
@@ -48,22 +47,22 @@ export class SortedContactList<C extends IContact> extends ContactList<C> {
48
47
  this.contactIds.push(contact.getPeerId())
49
48
  this.contactIds.sort(this.compareIds)
50
49
  } else if (this.compareIds(this.contactIds[this.maxSize - 1], contact.getPeerId()) > 0) {
51
- const removed = this.contactIds.pop()
52
- const removedDescriptor = this.contactsById.get(removed!.toKey())!.contact.getPeerDescriptor()
53
- this.contactsById.delete(removed!.toKey())
50
+ const removedId = this.contactIds.pop()
51
+ const removedContact = this.contactsById.get(removedId!.toKey())!.contact
52
+ this.contactsById.delete(removedId!.toKey())
54
53
  this.contactsById.set(contact.getPeerId().toKey(), new ContactState(contact))
55
54
  this.contactIds.push(contact.getPeerId())
56
55
  this.contactIds.sort(this.compareIds)
57
56
  this.emit(
58
57
  'contactRemoved',
59
- removedDescriptor,
60
- this.getClosestContacts().map((contact: C) => contact.getPeerDescriptor())
58
+ removedContact,
59
+ this.getClosestContacts()
61
60
  )
62
61
  }
63
62
  this.emit(
64
63
  'newContact',
65
- contact.getPeerDescriptor(),
66
- this.getClosestContacts().map((contact: C) => contact.getPeerDescriptor())
64
+ contact,
65
+ this.getClosestContacts()
67
66
  )
68
67
  }
69
68
  }
@@ -136,14 +135,14 @@ export class SortedContactList<C extends IContact> extends ContactList<C> {
136
135
 
137
136
  public removeContact(id: PeerID): boolean {
138
137
  if (this.contactsById.has(id.toKey())) {
139
- const removedDescriptor = this.contactsById.get(id.toKey())!.contact.getPeerDescriptor()
138
+ const removed = this.contactsById.get(id.toKey())!.contact
140
139
  const index = this.contactIds.findIndex((element) => element.equals(id))
141
140
  this.contactIds.splice(index, 1)
142
141
  this.contactsById.delete(id.toKey())
143
142
  this.emit(
144
143
  'contactRemoved',
145
- removedDescriptor,
146
- this.getClosestContacts().map((contact: C) => contact.getPeerDescriptor())
144
+ removed,
145
+ this.getClosestContacts()
147
146
  )
148
147
  return true
149
148
  }