@libp2p/kad-dht 13.1.2 → 14.0.0-934a891f9
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.min.js +2 -2
- package/dist/src/index.d.ts +28 -6
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/kad-dht.d.ts.map +1 -1
- package/dist/src/kad-dht.js +25 -11
- package/dist/src/kad-dht.js.map +1 -1
- package/dist/src/network.d.ts +1 -1
- package/dist/src/network.d.ts.map +1 -1
- package/dist/src/network.js +1 -3
- package/dist/src/network.js.map +1 -1
- package/dist/src/peer-distance-list.d.ts.map +1 -0
- package/dist/src/{peer-list/peer-distance-list.js → peer-distance-list.js} +1 -1
- package/dist/src/peer-distance-list.js.map +1 -0
- package/dist/src/peer-routing/index.js +1 -1
- package/dist/src/peer-routing/index.js.map +1 -1
- package/dist/src/query-self.d.ts.map +1 -1
- package/dist/src/query-self.js +13 -6
- package/dist/src/query-self.js.map +1 -1
- package/dist/src/routing-table/closest-peers.d.ts +43 -0
- package/dist/src/routing-table/closest-peers.d.ts.map +1 -0
- package/dist/src/routing-table/closest-peers.js +86 -0
- package/dist/src/routing-table/closest-peers.js.map +1 -0
- package/dist/src/routing-table/index.d.ts +55 -32
- package/dist/src/routing-table/index.d.ts.map +1 -1
- package/dist/src/routing-table/index.js +259 -161
- package/dist/src/routing-table/index.js.map +1 -1
- package/dist/src/routing-table/k-bucket.d.ts +65 -21
- package/dist/src/routing-table/k-bucket.d.ts.map +1 -1
- package/dist/src/routing-table/k-bucket.js +122 -66
- package/dist/src/routing-table/k-bucket.js.map +1 -1
- package/dist/src/routing-table/refresh.d.ts.map +1 -1
- package/dist/src/routing-table/refresh.js +4 -1
- package/dist/src/routing-table/refresh.js.map +1 -1
- package/dist/src/rpc/index.d.ts.map +1 -1
- package/dist/src/rpc/index.js +3 -7
- package/dist/src/rpc/index.js.map +1 -1
- package/package.json +11 -12
- package/src/index.ts +32 -6
- package/src/kad-dht.ts +29 -13
- package/src/network.ts +1 -4
- package/src/{peer-list/peer-distance-list.ts → peer-distance-list.ts} +1 -1
- package/src/peer-routing/index.ts +1 -1
- package/src/query-self.ts +14 -6
- package/src/routing-table/closest-peers.ts +113 -0
- package/src/routing-table/index.ts +300 -194
- package/src/routing-table/k-bucket.ts +194 -81
- package/src/routing-table/refresh.ts +5 -1
- package/src/rpc/index.ts +4 -7
- package/dist/src/peer-list/index.d.ts +0 -29
- package/dist/src/peer-list/index.d.ts.map +0 -1
- package/dist/src/peer-list/index.js +0 -45
- package/dist/src/peer-list/index.js.map +0 -1
- package/dist/src/peer-list/peer-distance-list.d.ts.map +0 -1
- package/dist/src/peer-list/peer-distance-list.js.map +0 -1
- package/dist/typedoc-urls.json +0 -56
- package/src/peer-list/index.ts +0 -54
- /package/dist/src/{peer-list/peer-distance-list.d.ts → peer-distance-list.d.ts} +0 -0
@@ -1,65 +1,86 @@
|
|
1
1
|
import { TypedEventEmitter } from '@libp2p/interface';
|
2
|
-
import {
|
3
|
-
import {
|
4
|
-
import type {
|
5
|
-
import type {
|
6
|
-
|
7
|
-
export declare const KAD_CLOSE_TAG_VALUE = 50;
|
2
|
+
import { KBucket } from './k-bucket.js';
|
3
|
+
import type { Peer } from './k-bucket.js';
|
4
|
+
import type { Network } from '../network.js';
|
5
|
+
import type { AbortOptions, ComponentLogger, Metrics, PeerId, PeerStore, Startable } from '@libp2p/interface';
|
6
|
+
import type { AdaptiveTimeoutInit } from '@libp2p/utils/adaptive-timeout';
|
8
7
|
export declare const KBUCKET_SIZE = 20;
|
9
|
-
export declare const PREFIX_LENGTH =
|
10
|
-
export declare const
|
11
|
-
export declare const
|
8
|
+
export declare const PREFIX_LENGTH = 8;
|
9
|
+
export declare const PING_NEW_CONTACT_TIMEOUT = 2000;
|
10
|
+
export declare const PING_NEW_CONTACT_CONCURRENCY = 20;
|
11
|
+
export declare const PING_NEW_CONTACT_MAX_QUEUE_SIZE = 100;
|
12
|
+
export declare const PING_OLD_CONTACT_COUNT = 3;
|
13
|
+
export declare const PING_OLD_CONTACT_TIMEOUT = 2000;
|
14
|
+
export declare const PING_OLD_CONTACT_CONCURRENCY = 20;
|
15
|
+
export declare const PING_OLD_CONTACT_MAX_QUEUE_SIZE = 100;
|
16
|
+
export declare const KAD_PEER_TAG_NAME = "kad-peer";
|
17
|
+
export declare const KAD_PEER_TAG_VALUE = 1;
|
18
|
+
export declare const LAST_PING_THRESHOLD = 600000;
|
19
|
+
export declare const POPULATE_FROM_DATASTORE_ON_START = true;
|
20
|
+
export declare const POPULATE_FROM_DATASTORE_LIMIT = 1000;
|
12
21
|
export interface RoutingTableInit {
|
13
22
|
logPrefix: string;
|
14
23
|
protocol: string;
|
15
24
|
prefixLength?: number;
|
16
25
|
splitThreshold?: number;
|
17
26
|
kBucketSize?: number;
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
27
|
+
pingNewContactTimeout?: AdaptiveTimeoutInit;
|
28
|
+
pingNewContactConcurrency?: number;
|
29
|
+
pingNewContactMaxQueueSize?: number;
|
30
|
+
pingOldContactTimeout?: AdaptiveTimeoutInit;
|
31
|
+
pingOldContactConcurrency?: number;
|
32
|
+
pingOldContactMaxQueueSize?: number;
|
33
|
+
numberOfOldContactsToPing?: number;
|
34
|
+
peerTagName?: string;
|
35
|
+
peerTagValue?: number;
|
36
|
+
closeTagName?: string;
|
37
|
+
closeTagValue?: number;
|
38
|
+
network: Network;
|
39
|
+
populateFromDatastoreOnStart?: boolean;
|
40
|
+
populateFromDatastoreLimit?: number;
|
41
|
+
lastPingThreshold?: number;
|
42
|
+
closestPeerSetSize?: number;
|
43
|
+
closestPeerSetRefreshInterval?: number;
|
22
44
|
}
|
23
45
|
export interface RoutingTableComponents {
|
24
46
|
peerId: PeerId;
|
25
47
|
peerStore: PeerStore;
|
26
|
-
connectionManager: ConnectionManager;
|
27
48
|
metrics?: Metrics;
|
28
49
|
logger: ComponentLogger;
|
29
50
|
}
|
30
51
|
export interface RoutingTableEvents {
|
31
52
|
'peer:add': CustomEvent<PeerId>;
|
32
53
|
'peer:remove': CustomEvent<PeerId>;
|
54
|
+
'peer:ping': CustomEvent<PeerId>;
|
33
55
|
}
|
34
56
|
/**
|
35
|
-
* A wrapper around `k-bucket`, to provide easy store and
|
36
|
-
* retrieval for peers.
|
57
|
+
* A wrapper around `k-bucket`, to provide easy store and retrieval for peers.
|
37
58
|
*/
|
38
59
|
export declare class RoutingTable extends TypedEventEmitter<RoutingTableEvents> implements Startable {
|
39
60
|
kBucketSize: number;
|
40
|
-
kb
|
41
|
-
|
61
|
+
kb: KBucket;
|
62
|
+
network: Network;
|
63
|
+
private readonly closestPeerTagger;
|
42
64
|
private readonly log;
|
43
65
|
private readonly components;
|
44
|
-
private readonly prefixLength;
|
45
|
-
private readonly splitThreshold;
|
46
|
-
private readonly pingTimeout;
|
47
|
-
private readonly pingConcurrency;
|
48
66
|
private running;
|
67
|
+
private readonly pingNewContactTimeout;
|
68
|
+
private readonly pingNewContactQueue;
|
69
|
+
private readonly pingOldContactTimeout;
|
70
|
+
private readonly pingOldContactQueue;
|
71
|
+
private readonly populateFromDatastoreOnStart;
|
72
|
+
private readonly populateFromDatastoreLimit;
|
49
73
|
private readonly protocol;
|
50
|
-
private readonly
|
51
|
-
private readonly
|
74
|
+
private readonly peerTagName;
|
75
|
+
private readonly peerTagValue;
|
52
76
|
private readonly metrics?;
|
53
77
|
constructor(components: RoutingTableComponents, init: RoutingTableInit);
|
54
78
|
isStarted(): boolean;
|
55
79
|
start(): Promise<void>;
|
80
|
+
afterStart(): Promise<void>;
|
56
81
|
stop(): Promise<void>;
|
57
|
-
|
58
|
-
|
59
|
-
* - this will lower the chances that connections to them get closed when
|
60
|
-
* we reach connection limits
|
61
|
-
*/
|
62
|
-
_tagPeers(kBuck: KBucket): void;
|
82
|
+
private peerAdded;
|
83
|
+
private peerRemoved;
|
63
84
|
/**
|
64
85
|
* Called on the `ping` event from `k-bucket` when a bucket is full
|
65
86
|
* and cannot split.
|
@@ -70,7 +91,9 @@ export declare class RoutingTable extends TypedEventEmitter<RoutingTableEvents>
|
|
70
91
|
* `oldContacts` will not be empty and is the list of contacts that
|
71
92
|
* have not been contacted for the longest.
|
72
93
|
*/
|
73
|
-
|
94
|
+
pingOldContacts(oldContacts: Peer[], options?: AbortOptions): AsyncGenerator<Peer>;
|
95
|
+
verifyNewContact(contact: Peer, options?: AbortOptions): Promise<boolean>;
|
96
|
+
pingContact(contact: Peer, options?: AbortOptions): Promise<boolean>;
|
74
97
|
/**
|
75
98
|
* Amount of currently stored peers
|
76
99
|
*/
|
@@ -90,7 +113,7 @@ export declare class RoutingTable extends TypedEventEmitter<RoutingTableEvents>
|
|
90
113
|
/**
|
91
114
|
* Add or update the routing table with the given peer
|
92
115
|
*/
|
93
|
-
add(peerId: PeerId): Promise<void>;
|
116
|
+
add(peerId: PeerId, options?: AbortOptions): Promise<void>;
|
94
117
|
/**
|
95
118
|
* Remove a given peer from the table
|
96
119
|
*/
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routing-table/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routing-table/index.ts"],"names":[],"mappings":"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"}
|