@libp2p/kad-dht 13.1.2-b4f02a637 → 14.0.0-0d326d102

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. package/dist/index.min.js +2 -2
  2. package/dist/src/constants.d.ts +1 -0
  3. package/dist/src/constants.d.ts.map +1 -1
  4. package/dist/src/constants.js +3 -0
  5. package/dist/src/constants.js.map +1 -1
  6. package/dist/src/index.d.ts +26 -2
  7. package/dist/src/index.d.ts.map +1 -1
  8. package/dist/src/index.js.map +1 -1
  9. package/dist/src/kad-dht.d.ts.map +1 -1
  10. package/dist/src/kad-dht.js +25 -13
  11. package/dist/src/kad-dht.js.map +1 -1
  12. package/dist/src/network.d.ts +1 -1
  13. package/dist/src/network.d.ts.map +1 -1
  14. package/dist/src/network.js +1 -3
  15. package/dist/src/network.js.map +1 -1
  16. package/dist/src/peer-distance-list.d.ts.map +1 -0
  17. package/dist/src/{peer-list/peer-distance-list.js → peer-distance-list.js} +1 -1
  18. package/dist/src/peer-distance-list.js.map +1 -0
  19. package/dist/src/peer-routing/index.js +1 -1
  20. package/dist/src/peer-routing/index.js.map +1 -1
  21. package/dist/src/query-self.d.ts.map +1 -1
  22. package/dist/src/query-self.js +13 -6
  23. package/dist/src/query-self.js.map +1 -1
  24. package/dist/src/routing-table/closest-peers.d.ts +43 -0
  25. package/dist/src/routing-table/closest-peers.d.ts.map +1 -0
  26. package/dist/src/routing-table/closest-peers.js +86 -0
  27. package/dist/src/routing-table/closest-peers.js.map +1 -0
  28. package/dist/src/routing-table/index.d.ts +54 -32
  29. package/dist/src/routing-table/index.d.ts.map +1 -1
  30. package/dist/src/routing-table/index.js +256 -172
  31. package/dist/src/routing-table/index.js.map +1 -1
  32. package/dist/src/routing-table/k-bucket.d.ts +65 -21
  33. package/dist/src/routing-table/k-bucket.d.ts.map +1 -1
  34. package/dist/src/routing-table/k-bucket.js +122 -66
  35. package/dist/src/routing-table/k-bucket.js.map +1 -1
  36. package/dist/src/routing-table/refresh.d.ts.map +1 -1
  37. package/dist/src/routing-table/refresh.js +4 -1
  38. package/dist/src/routing-table/refresh.js.map +1 -1
  39. package/dist/src/rpc/index.d.ts.map +1 -1
  40. package/dist/src/rpc/index.js +3 -7
  41. package/dist/src/rpc/index.js.map +1 -1
  42. package/package.json +11 -12
  43. package/src/constants.ts +5 -0
  44. package/src/index.ts +30 -2
  45. package/src/kad-dht.ts +29 -15
  46. package/src/network.ts +1 -4
  47. package/src/{peer-list/peer-distance-list.ts → peer-distance-list.ts} +1 -1
  48. package/src/peer-routing/index.ts +1 -1
  49. package/src/query-self.ts +14 -6
  50. package/src/routing-table/closest-peers.ts +113 -0
  51. package/src/routing-table/index.ts +296 -205
  52. package/src/routing-table/k-bucket.ts +194 -81
  53. package/src/routing-table/refresh.ts +5 -1
  54. package/src/rpc/index.ts +4 -7
  55. package/dist/src/peer-list/index.d.ts +0 -29
  56. package/dist/src/peer-list/index.d.ts.map +0 -1
  57. package/dist/src/peer-list/index.js +0 -45
  58. package/dist/src/peer-list/index.js.map +0 -1
  59. package/dist/src/peer-list/peer-distance-list.d.ts.map +0 -1
  60. package/dist/src/peer-list/peer-distance-list.js.map +0 -1
  61. package/src/peer-list/index.ts +0 -54
  62. /package/dist/src/{peer-list/peer-distance-list.d.ts → peer-distance-list.d.ts} +0 -0
@@ -1,26 +1,50 @@
1
- import { TypedEventEmitter } from '@libp2p/interface';
2
1
  import type { PeerId } from '@libp2p/interface';
3
- export interface PingEventDetails {
4
- oldContacts: Peer[];
5
- newContact: Peer;
2
+ import type { AbortOptions } from 'it-protobuf-stream';
3
+ export interface PingFunction {
4
+ /**
5
+ * Return either none or at least one contact that does not respond to a ping
6
+ * message
7
+ */
8
+ (oldContacts: Peer[], options?: AbortOptions): AsyncGenerator<Peer>;
9
+ }
10
+ /**
11
+ * Before a peer can be added to the table, verify that it is online and working
12
+ * correctly
13
+ */
14
+ export interface VerifyFunction {
15
+ (contact: Peer, options?: AbortOptions): Promise<boolean>;
6
16
  }
7
- export interface KBucketEvents {
8
- 'ping': CustomEvent<PingEventDetails>;
9
- 'added': CustomEvent<Peer>;
10
- 'removed': CustomEvent<Peer>;
17
+ export interface OnAddCallback {
18
+ /**
19
+ * Invoked when a new peer is added to the routing tables
20
+ */
21
+ (peer: Peer, bucket: LeafBucket): Promise<void>;
22
+ }
23
+ export interface OnRemoveCallback {
24
+ /**
25
+ * Invoked when a peer is evicted from the routing tables
26
+ */
27
+ (peer: Peer, bucket: LeafBucket): Promise<void>;
28
+ }
29
+ export interface OnMoveCallback {
30
+ /**
31
+ * Invoked when a peer is moved between buckets in the routing tables
32
+ */
33
+ (peer: Peer, oldBucket: LeafBucket, newBucket: LeafBucket): Promise<void>;
11
34
  }
12
35
  export interface KBucketOptions {
13
36
  /**
14
37
  * The current peer. All subsequently added peers must have a KadID that is
15
38
  * the same length as this peer.
16
39
  */
17
- localPeer: Peer;
18
40
  /**
19
41
  * How many bits of the key to use when forming the bucket trie. The larger
20
42
  * this value, the deeper the tree will grow and the slower the lookups will
21
43
  * be but the peers returned will be more specific to the key.
44
+ *
45
+ * @default 8
22
46
  */
23
- prefixLength: number;
47
+ prefixLength?: number;
24
48
  /**
25
49
  * The number of nodes that a max-depth k-bucket can contain before being
26
50
  * full.
@@ -37,14 +61,27 @@ export interface KBucketOptions {
37
61
  splitThreshold?: number;
38
62
  /**
39
63
  * The number of nodes to ping when a bucket that should not be split becomes
40
- * full. KBucket will emit a `ping` event that contains `numberOfNodesToPing`
41
- * nodes that have not been contacted the longest.
64
+ * full. KBucket will emit a `ping` event that contains
65
+ * `numberOfOldContactsToPing` nodes that have not been contacted the longest.
66
+ *
67
+ * @default 3
42
68
  */
43
- numberOfNodesToPing?: number;
69
+ numberOfOldContactsToPing?: number;
70
+ /**
71
+ * Do not re-ping a peer during this time window in ms
72
+ *
73
+ * @default 600000
74
+ */
75
+ lastPingThreshold?: number;
76
+ ping: PingFunction;
77
+ verify: VerifyFunction;
78
+ onAdd?: OnAddCallback;
79
+ onRemove?: OnRemoveCallback;
44
80
  }
45
81
  export interface Peer {
46
82
  kadId: Uint8Array;
47
83
  peerId: PeerId;
84
+ lastPing: number;
48
85
  }
49
86
  export interface LeafBucket {
50
87
  prefix: string;
@@ -63,20 +100,27 @@ export declare function isLeafBucket(obj: any): obj is LeafBucket;
63
100
  * Implementation of a Kademlia DHT routing table as a prefix binary trie with
64
101
  * configurable prefix length, bucket split threshold and size.
65
102
  */
66
- export declare class KBucket extends TypedEventEmitter<KBucketEvents> {
103
+ export declare class KBucket {
67
104
  root: Bucket;
68
- localPeer: Peer;
105
+ localPeer?: Peer;
69
106
  private readonly prefixLength;
70
107
  private readonly splitThreshold;
71
108
  private readonly kBucketSize;
72
109
  private readonly numberOfNodesToPing;
110
+ private readonly lastPingThreshold;
111
+ ping: PingFunction;
112
+ verify: VerifyFunction;
113
+ private readonly onAdd?;
114
+ private readonly onRemove?;
115
+ private readonly onMove?;
116
+ private readonly addingPeerMap;
73
117
  constructor(options: KBucketOptions);
118
+ addSelfPeer(peerId: PeerId): Promise<void>;
74
119
  /**
75
- * Adds a contact to the k-bucket.
76
- *
77
- * @param {Peer} peer - the contact object to add
120
+ * Adds a contact to the trie
78
121
  */
79
- add(peer: Peer): void;
122
+ add(peerId: PeerId, options?: AbortOptions): Promise<void>;
123
+ private _add;
80
124
  /**
81
125
  * Get 0-n closest contacts to the provided node id. "Closest" here means:
82
126
  * closest according to the XOR metric of the contact node id.
@@ -98,7 +142,7 @@ export declare class KBucket extends TypedEventEmitter<KBucketEvents> {
98
142
  * which branch of the tree to traverse and repeat.
99
143
  *
100
144
  * @param {Uint8Array} kadId - The ID of the contact to fetch.
101
- * @returns {object | undefined} The contact if available, otherwise null
145
+ * @returns {Peer | undefined} The contact if available, otherwise null
102
146
  */
103
147
  get(kadId: Uint8Array): Peer | undefined;
104
148
  /**
@@ -106,7 +150,7 @@ export declare class KBucket extends TypedEventEmitter<KBucketEvents> {
106
150
  *
107
151
  * @param {Uint8Array} kadId - The ID of the contact to remove
108
152
  */
109
- remove(kadId: Uint8Array): void;
153
+ remove(kadId: Uint8Array): Promise<void>;
110
154
  /**
111
155
  * Similar to `toArray()` but instead of buffering everything up into an
112
156
  * array before returning it, yields contacts as they are encountered while
@@ -1 +1 @@
1
- {"version":3,"file":"k-bucket.d.ts","sourceRoot":"","sources":["../../../src/routing-table/k-bucket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAMrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AA2B/C,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,IAAI,EAAE,CAAA;IACnB,UAAU,EAAE,IAAI,CAAA;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAA;IACrC,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,CAAA;IAC1B,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAA;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,SAAS,EAAE,IAAI,CAAA;IAEf;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAA;IAEpB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,IAAI;IACnB,KAAK,EAAE,UAAU,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,IAAI,EAAE,CAAA;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,MAAM,MAAM,GAAG,UAAU,GAAG,cAAc,CAAA;AAEhD,wBAAgB,YAAY,CAAE,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,UAAU,CAEzD;AAED;;;GAGG;AACH,qBAAa,OAAQ,SAAQ,iBAAiB,CAAC,aAAa,CAAC;IACpD,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,IAAI,CAAA;IACtB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAQ;gBAE/B,OAAO,EAAE,cAAc;IAkBpC;;;;OAIG;IACH,GAAG,CAAE,IAAI,EAAE,IAAI,GAAG,IAAI;IA6CtB;;;;;;OAMG;IACD,OAAO,CAAE,EAAE,EAAE,UAAU,EAAE,CAAC,GAAE,MAAyB,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC;IAU5F;;;;OAIG;IACH,KAAK,IAAK,MAAM;IAsBhB;;;;;;;;OAQG;IACH,GAAG,CAAE,KAAK,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS;IAOzC;;;;OAIG;IACH,MAAM,CAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAYhC;;;;;;OAMG;IACD,UAAU,IAAK,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC;IAcjD;;;;;;;OAOG;IACH,QAAQ,CAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,GAAG,MAAM;IAI5D;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IAqBxB;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ;IAIhB;;;;OAIG;IACH,OAAO,CAAC,MAAM;CAkCf"}
1
+ {"version":3,"file":"k-bucket.d.ts","sourceRoot":"","sources":["../../../src/routing-table/k-bucket.ts"],"names":[],"mappings":"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"}
@@ -1,31 +1,11 @@
1
- import { TypedEventEmitter } from '@libp2p/interface';
1
+ import { PeerMap } from '@libp2p/peer-collections';
2
2
  import map from 'it-map';
3
+ import { equals as uint8ArrayEquals } from 'uint8arrays/equals';
3
4
  import { toString as uint8ArrayToString } from 'uint8arrays/to-string';
4
5
  import { xor as uint8ArrayXor } from 'uint8arrays/xor';
5
- import { PeerDistanceList } from '../peer-list/peer-distance-list.js';
6
- import { KBUCKET_SIZE } from './index.js';
7
- function arrayEquals(array1, array2) {
8
- if (array1 === array2) {
9
- return true;
10
- }
11
- if (array1.length !== array2.length) {
12
- return false;
13
- }
14
- for (let i = 0, length = array1.length; i < length; ++i) {
15
- if (array1[i] !== array2[i]) {
16
- return false;
17
- }
18
- }
19
- return true;
20
- }
21
- function ensureInt8(name, val) {
22
- if (!(val instanceof Uint8Array)) {
23
- throw new TypeError(name + ' is not a Uint8Array');
24
- }
25
- if (val.byteLength !== 32) {
26
- throw new TypeError(name + ' had incorrect length');
27
- }
28
- }
6
+ import { PeerDistanceList } from '../peer-distance-list.js';
7
+ import { convertPeerId } from '../utils.js';
8
+ import { KBUCKET_SIZE, LAST_PING_THRESHOLD, PING_OLD_CONTACT_COUNT, PREFIX_LENGTH } from './index.js';
29
9
  export function isLeafBucket(obj) {
30
10
  return Array.isArray(obj?.peers);
31
11
  }
@@ -33,34 +13,67 @@ export function isLeafBucket(obj) {
33
13
  * Implementation of a Kademlia DHT routing table as a prefix binary trie with
34
14
  * configurable prefix length, bucket split threshold and size.
35
15
  */
36
- export class KBucket extends TypedEventEmitter {
16
+ export class KBucket {
37
17
  root;
38
18
  localPeer;
39
19
  prefixLength;
40
20
  splitThreshold;
41
21
  kBucketSize;
42
22
  numberOfNodesToPing;
23
+ lastPingThreshold;
24
+ ping;
25
+ verify;
26
+ onAdd;
27
+ onRemove;
28
+ onMove;
29
+ addingPeerMap;
43
30
  constructor(options) {
44
- super();
45
- this.localPeer = options.localPeer;
46
- this.prefixLength = options.prefixLength;
31
+ this.prefixLength = options.prefixLength ?? PREFIX_LENGTH;
47
32
  this.kBucketSize = options.kBucketSize ?? KBUCKET_SIZE;
48
33
  this.splitThreshold = options.splitThreshold ?? this.kBucketSize;
49
- this.numberOfNodesToPing = options.numberOfNodesToPing ?? 3;
50
- ensureInt8('options.localPeer.kadId', options.localPeer.kadId);
34
+ this.numberOfNodesToPing = options.numberOfOldContactsToPing ?? PING_OLD_CONTACT_COUNT;
35
+ this.lastPingThreshold = options.lastPingThreshold ?? LAST_PING_THRESHOLD;
36
+ this.ping = options.ping;
37
+ this.verify = options.verify;
38
+ this.onAdd = options.onAdd;
39
+ this.onRemove = options.onRemove;
40
+ this.addingPeerMap = new PeerMap();
51
41
  this.root = {
52
42
  prefix: '',
53
43
  depth: 0,
54
44
  peers: []
55
45
  };
56
46
  }
47
+ async addSelfPeer(peerId) {
48
+ this.localPeer = {
49
+ peerId,
50
+ kadId: await convertPeerId(peerId),
51
+ lastPing: Date.now()
52
+ };
53
+ }
57
54
  /**
58
- * Adds a contact to the k-bucket.
59
- *
60
- * @param {Peer} peer - the contact object to add
55
+ * Adds a contact to the trie
61
56
  */
62
- add(peer) {
63
- ensureInt8('peer.kadId', peer?.kadId);
57
+ async add(peerId, options) {
58
+ const peer = {
59
+ peerId,
60
+ kadId: await convertPeerId(peerId),
61
+ lastPing: 0
62
+ };
63
+ const existingPromise = this.addingPeerMap.get(peerId);
64
+ if (existingPromise != null) {
65
+ return existingPromise;
66
+ }
67
+ try {
68
+ const p = this._add(peer, options);
69
+ this.addingPeerMap.set(peerId, p);
70
+ await p;
71
+ }
72
+ finally {
73
+ this.addingPeerMap.delete(peerId);
74
+ }
75
+ }
76
+ async _add(peer, options) {
64
77
  const bucket = this._determineBucket(peer.kadId);
65
78
  // check if the contact already exists
66
79
  if (this._indexOf(bucket, peer.kadId) > -1) {
@@ -69,31 +82,68 @@ export class KBucket extends TypedEventEmitter {
69
82
  // are there too many peers in the bucket and can we make the trie deeper?
70
83
  if (bucket.peers.length === this.splitThreshold && bucket.depth < this.prefixLength) {
71
84
  // split the bucket
72
- this._split(bucket);
85
+ await this._split(bucket);
73
86
  // try again
74
- this.add(peer);
87
+ await this._add(peer, options);
75
88
  return;
76
89
  }
77
90
  // is there space in the bucket?
78
91
  if (bucket.peers.length < this.kBucketSize) {
79
- bucket.peers.push(peer);
80
- this.safeDispatchEvent('added', { detail: peer });
92
+ // we've ping this peer previously, just add them to the bucket
93
+ if (!needsPing(peer, this.lastPingThreshold)) {
94
+ bucket.peers.push(peer);
95
+ await this.onAdd?.(peer, bucket);
96
+ return;
97
+ }
98
+ const result = await this.verify(peer, options);
99
+ // only add if peer is online and functioning correctly
100
+ if (result) {
101
+ peer.lastPing = Date.now();
102
+ // try again - buckets may have changed during ping
103
+ await this._add(peer, options);
104
+ }
81
105
  return;
82
106
  }
83
107
  // we are at the bottom of the trie and the bucket is full so we can't add
84
108
  // any more peers.
85
109
  //
86
- // instead ping the first this.numberOfNodesToPing in order to determine
110
+ // instead ping the first `this.numberOfNodesToPing` in order to determine
87
111
  // if they are still online.
88
112
  //
89
113
  // only add the new peer if one of the pinged nodes does not respond, this
90
114
  // prevents DoS flooding with new invalid contacts.
91
- this.safeDispatchEvent('ping', {
92
- detail: {
93
- oldContacts: bucket.peers.slice(0, this.numberOfNodesToPing),
94
- newContact: peer
115
+ const toPing = bucket.peers
116
+ .filter(peer => {
117
+ if (peer.peerId.equals(this.localPeer?.peerId)) {
118
+ return false;
119
+ }
120
+ if (peer.lastPing > (Date.now() - this.lastPingThreshold)) {
121
+ return false;
122
+ }
123
+ return true;
124
+ })
125
+ .sort((a, b) => {
126
+ // sort oldest ping -> newest
127
+ if (a.lastPing < b.lastPing) {
128
+ return -1;
129
+ }
130
+ if (a.lastPing > b.lastPing) {
131
+ return 1;
95
132
  }
96
- });
133
+ return 0;
134
+ })
135
+ .slice(0, this.numberOfNodesToPing);
136
+ let evicted = false;
137
+ for await (const toEvict of this.ping(toPing, options)) {
138
+ evicted = true;
139
+ await this.remove(toEvict.kadId);
140
+ }
141
+ // did not evict any peers, cannot add new contact
142
+ if (!evicted) {
143
+ return;
144
+ }
145
+ // try again - buckets may have changed during ping
146
+ await this._add(peer, options);
97
147
  }
98
148
  /**
99
149
  * Get 0-n closest contacts to the provided node id. "Closest" here means:
@@ -137,7 +187,7 @@ export class KBucket extends TypedEventEmitter {
137
187
  * which branch of the tree to traverse and repeat.
138
188
  *
139
189
  * @param {Uint8Array} kadId - The ID of the contact to fetch.
140
- * @returns {object | undefined} The contact if available, otherwise null
190
+ * @returns {Peer | undefined} The contact if available, otherwise null
141
191
  */
142
192
  get(kadId) {
143
193
  const bucket = this._determineBucket(kadId);
@@ -149,14 +199,12 @@ export class KBucket extends TypedEventEmitter {
149
199
  *
150
200
  * @param {Uint8Array} kadId - The ID of the contact to remove
151
201
  */
152
- remove(kadId) {
202
+ async remove(kadId) {
153
203
  const bucket = this._determineBucket(kadId);
154
204
  const index = this._indexOf(bucket, kadId);
155
205
  if (index > -1) {
156
206
  const peer = bucket.peers.splice(index, 1)[0];
157
- this.safeDispatchEvent('removed', {
158
- detail: peer
159
- });
207
+ await this.onRemove?.(peer, bucket);
160
208
  }
161
209
  }
162
210
  /**
@@ -197,12 +245,11 @@ export class KBucket extends TypedEventEmitter {
197
245
  */
198
246
  _determineBucket(kadId) {
199
247
  const bitString = uint8ArrayToString(kadId, 'base2');
200
- const prefix = bitString.substring(0, this.prefixLength);
201
248
  function findBucket(bucket, bitIndex = 0) {
202
249
  if (isLeafBucket(bucket)) {
203
250
  return bucket;
204
251
  }
205
- const bit = prefix[bitIndex];
252
+ const bit = bitString[bitIndex];
206
253
  if (bit === '0') {
207
254
  return findBucket(bucket.left, bitIndex + 1);
208
255
  }
@@ -219,43 +266,52 @@ export class KBucket extends TypedEventEmitter {
219
266
  * @returns {number} Integer Index of contact with provided id if it exists, -1 otherwise.
220
267
  */
221
268
  _indexOf(bucket, kadId) {
222
- return bucket.peers.findIndex(peer => arrayEquals(peer.kadId, kadId));
269
+ return bucket.peers.findIndex(peer => uint8ArrayEquals(peer.kadId, kadId));
223
270
  }
224
271
  /**
225
272
  * Modify the bucket, turn it from a leaf bucket to an internal bucket
226
273
  *
227
274
  * @param {any} bucket - bucket for splitting
228
275
  */
229
- _split(bucket) {
230
- const depth = bucket.depth + 1;
276
+ async _split(bucket) {
231
277
  // create child buckets
232
278
  const left = {
233
279
  prefix: '0',
234
- depth,
280
+ depth: bucket.depth + 1,
235
281
  peers: []
236
282
  };
237
283
  const right = {
238
284
  prefix: '1',
239
- depth,
285
+ depth: bucket.depth + 1,
240
286
  peers: []
241
287
  };
242
288
  // redistribute peers
243
289
  for (const peer of bucket.peers) {
244
290
  const bitString = uint8ArrayToString(peer.kadId, 'base2');
245
- if (bitString[depth] === '0') {
291
+ if (bitString[bucket.depth] === '0') {
246
292
  left.peers.push(peer);
293
+ await this.onMove?.(peer, bucket, left);
247
294
  }
248
295
  else {
249
296
  right.peers.push(peer);
297
+ await this.onMove?.(peer, bucket, right);
250
298
  }
251
299
  }
252
- // convert leaf bucket to internal bucket
253
- // @ts-expect-error peers is not a property of LeafBucket
254
- delete bucket.peers;
255
- // @ts-expect-error left is not a property of LeafBucket
256
- bucket.left = left;
257
- // @ts-expect-error right is not a property of LeafBucket
258
- bucket.right = right;
300
+ // convert old leaf bucket to internal bucket
301
+ convertToInternalBucket(bucket, left, right);
259
302
  }
260
303
  }
304
+ function convertToInternalBucket(bucket, left, right) {
305
+ delete bucket.peers;
306
+ bucket.left = left;
307
+ bucket.right = right;
308
+ if (bucket.prefix === '') {
309
+ delete bucket.depth;
310
+ delete bucket.prefix;
311
+ }
312
+ return true;
313
+ }
314
+ function needsPing(peer, threshold) {
315
+ return peer.lastPing < (Date.now() - threshold);
316
+ }
261
317
  //# sourceMappingURL=k-bucket.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"k-bucket.js","sourceRoot":"","sources":["../../../src/routing-table/k-bucket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"k-bucket.js","sourceRoot":"","sources":["../../../src/routing-table/k-bucket.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"refresh.d.ts","sourceRoot":"","sources":["../../../src/routing-table/refresh.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAOxE,MAAM,WAAW,6BAA6B;IAC5C,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,WAAW,CAAA;IACxB,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACxC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAQ;IAC5C,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAQ;IACtD,OAAO,CAAC,gBAAgB,CAAC,CAA+B;gBAE3C,UAAU,EAAE,6BAA6B,EAAE,IAAI,EAAE,uBAAuB;IAY/E,UAAU,IAAK,OAAO,CAAC,IAAI,CAAC;IAK5B,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAM5B;;;;;OAKG;IACH,YAAY,CAAE,KAAK,GAAE,OAAe,GAAG,IAAI;IAyDrC,0BAA0B,CAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBhG,wCAAwC,CAAE,eAAe,EAAE,MAAM,GAAG,IAAI,EAAE;IAepE,qBAAqB,CAAE,wBAAwB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAczE,WAAW,CAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,wBAAwB,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA8BvH;;;OAGG;IACH,gBAAgB,IAAK,MAAM;IAc3B;;OAEG;IACH,eAAe,CAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAY9C;;OAEG;IACD,cAAc,IAAK,SAAS,CAAC,MAAM,CAAC;CAoBvC"}
1
+ {"version":3,"file":"refresh.d.ts","sourceRoot":"","sources":["../../../src/routing-table/refresh.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAOxE,MAAM,WAAW,6BAA6B;IAC5C,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,WAAW,CAAA;IACxB,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACxC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAQ;IAC5C,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAQ;IACtD,OAAO,CAAC,gBAAgB,CAAC,CAA+B;gBAE3C,UAAU,EAAE,6BAA6B,EAAE,IAAI,EAAE,uBAAuB;IAY/E,UAAU,IAAK,OAAO,CAAC,IAAI,CAAC;IAK5B,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAM5B;;;;;OAKG;IACH,YAAY,CAAE,KAAK,GAAE,OAAe,GAAG,IAAI;IAyDrC,0BAA0B,CAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBhG,wCAAwC,CAAE,eAAe,EAAE,MAAM,GAAG,IAAI,EAAE;IAepE,qBAAqB,CAAE,wBAAwB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBzE,WAAW,CAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,wBAAwB,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA8BvH;;;OAGG;IACH,gBAAgB,IAAK,MAAM;IAc3B;;OAEG;IACH,eAAe,CAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAY9C;;OAEG;IACD,cAAc,IAAK,SAAS,CAAC,MAAM,CAAC;CAoBvC"}
@@ -129,6 +129,9 @@ export class RoutingTableRefresh {
129
129
  if (this.routingTable.kb == null) {
130
130
  throw new Error('Routing table not started');
131
131
  }
132
+ if (this.routingTable.kb.localPeer == null) {
133
+ throw new Error('Local peer not set');
134
+ }
132
135
  const randomData = randomBytes(2);
133
136
  const randomUint16 = (randomData[1] << 8) + randomData[0];
134
137
  const key = await this._makePeerId(this.routingTable.kb.localPeer.kadId, randomUint16, targetCommonPrefixLength);
@@ -189,7 +192,7 @@ export class RoutingTableRefresh {
189
192
  * Yields the common prefix length of every peer in the table
190
193
  */
191
194
  *_prefixLengths() {
192
- if (this.routingTable.kb == null) {
195
+ if (this.routingTable.kb?.localPeer == null) {
193
196
  return;
194
197
  }
195
198
  for (const { kadId } of this.routingTable.kb.toIterable()) {
@@ -1 +1 @@
1
- {"version":3,"file":"refresh.js","sourceRoot":"","sources":["../../../src/routing-table/refresh.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"refresh.js","sourceRoot":"","sources":["../../../src/routing-table/refresh.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rpc/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAe,MAAM,mBAAmB,CAAA;AAExD,OAAO,EAAmB,KAAK,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AACzF,OAAO,EAAuB,KAAK,6BAA6B,EAAE,MAAM,6BAA6B,CAAA;AACrG,OAAO,EAAmB,KAAK,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAEzF,OAAO,EAAmB,KAAK,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AACzF,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,KAAK,EAAwB,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAEpE,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAA;CACnE;AAED,MAAM,WAAW,OAAO;IACtB,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,SAAS,CAAA;IACpB,WAAW,EAAE,WAAW,CAAA;IACxB,UAAU,EAAE,UAAU,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,cAAc,CAAA;CAC/B;AAED,MAAM,WAAW,aAAc,SAAQ,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,6BAA6B;IACnJ,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,qBAAa,GAAG;IACd,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAC5D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAGvB;gBAEY,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO;IAmBrD;;OAEG;IACG,aAAa,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IA4BhF;;OAEG;IACH,gBAAgB,CAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI;CAqClD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rpc/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAe,MAAM,mBAAmB,CAAA;AAExD,OAAO,EAAmB,KAAK,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AACzF,OAAO,EAAuB,KAAK,6BAA6B,EAAE,MAAM,6BAA6B,CAAA;AACrG,OAAO,EAAmB,KAAK,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAEzF,OAAO,EAAmB,KAAK,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AACzF,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,KAAK,EAAwB,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAEpE,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAA;CACnE;AAED,MAAM,WAAW,OAAO;IACtB,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,SAAS,CAAA;IACpB,WAAW,EAAE,WAAW,CAAA;IACxB,UAAU,EAAE,UAAU,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,cAAc,CAAA;CAC/B;AAED,MAAM,WAAW,aAAc,SAAQ,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,6BAA6B;IACnJ,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,qBAAa,GAAG;IACd,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAC5D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAGvB;gBAEY,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO;IAmBrD;;OAEG;IACG,aAAa,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAsBhF;;OAEG;IACH,gBAAgB,CAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI;CAwClD"}
@@ -33,12 +33,6 @@ export class RPC {
33
33
  * Process incoming DHT messages
34
34
  */
35
35
  async handleMessage(peerId, msg) {
36
- try {
37
- await this.routingTable.add(peerId);
38
- }
39
- catch (err) {
40
- this.log.error('Failed to update the kbucket store', err);
41
- }
42
36
  // get handler & execute it
43
37
  const handler = this.handlers[msg.type];
44
38
  if (handler == null) {
@@ -61,6 +55,7 @@ export class RPC {
61
55
  * Handle incoming streams on the dht protocol
62
56
  */
63
57
  onIncomingStream(data) {
58
+ let message = 'unknown';
64
59
  Promise.resolve().then(async () => {
65
60
  const { stream, connection } = data;
66
61
  const peerId = connection.remotePeer;
@@ -75,6 +70,7 @@ export class RPC {
75
70
  for await (const msg of source) {
76
71
  // handle the message
77
72
  const desMessage = Message.decode(msg);
73
+ message = desMessage.type;
78
74
  self.log('incoming %s from %p', desMessage.type, peerId);
79
75
  const res = await self.handleMessage(peerId, desMessage);
80
76
  // Not all handlers will return a response
@@ -85,7 +81,7 @@ export class RPC {
85
81
  }, (source) => lp.encode(source), stream);
86
82
  })
87
83
  .catch(err => {
88
- this.log.error(err);
84
+ this.log.error('error handling %s RPC message from %p - %e', message, data.connection.remotePeer, err);
89
85
  });
90
86
  }
91
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rpc/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rpc/index.ts"],"names":[],"mappings":"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"}