libp2p 0.37.3-a5077cb → 0.37.3-b1b2b21
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/README.md +1 -0
- package/dist/src/connection-manager/index.d.ts +0 -10
- package/dist/src/connection-manager/index.d.ts.map +1 -1
- package/dist/src/connection-manager/index.js +34 -39
- package/dist/src/connection-manager/index.js.map +1 -1
- package/package.json +3 -2
- package/src/connection-manager/index.ts +42 -50
package/README.md
CHANGED
|
@@ -42,10 +42,6 @@ export interface ConnectionManagerInit {
|
|
|
42
42
|
* How often, in milliseconds, to compute averages
|
|
43
43
|
*/
|
|
44
44
|
movingAverageInterval?: number;
|
|
45
|
-
/**
|
|
46
|
-
* The value of the peer
|
|
47
|
-
*/
|
|
48
|
-
defaultPeerValue?: number;
|
|
49
45
|
/**
|
|
50
46
|
* If true, try to connect to all discovered peers up to the connection manager limit
|
|
51
47
|
*/
|
|
@@ -91,7 +87,6 @@ export declare class DefaultConnectionManager extends EventEmitter<ConnectionMan
|
|
|
91
87
|
readonly dialer: Dialer;
|
|
92
88
|
private components;
|
|
93
89
|
private readonly opts;
|
|
94
|
-
private readonly peerValues;
|
|
95
90
|
private readonly connections;
|
|
96
91
|
private started;
|
|
97
92
|
private timer?;
|
|
@@ -114,11 +109,6 @@ export declare class DefaultConnectionManager extends EventEmitter<ConnectionMan
|
|
|
114
109
|
* Cleans up the connections
|
|
115
110
|
*/
|
|
116
111
|
_close(): Promise<void>;
|
|
117
|
-
/**
|
|
118
|
-
* Sets the value of the given peer. Peers with lower values
|
|
119
|
-
* will be disconnected first.
|
|
120
|
-
*/
|
|
121
|
-
setPeerValue(peerId: PeerId, value: number): void;
|
|
122
112
|
/**
|
|
123
113
|
* Checks the libp2p metrics to determine if any values have exceeded
|
|
124
114
|
* the configured maximums.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/connection-manager/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkB,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAGpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAe,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAG7D,OAAO,EAAY,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAE5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAC7E,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAE9D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/connection-manager/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@ import { setMaxListeners } from 'events';
|
|
|
12
12
|
import { Components } from '@libp2p/components';
|
|
13
13
|
import * as STATUS from '@libp2p/interface-connection/status';
|
|
14
14
|
import { Dialer } from './dialer/index.js';
|
|
15
|
+
import { PeerMap } from '@libp2p/peer-collections';
|
|
15
16
|
const log = logger('libp2p:connection-manager');
|
|
16
17
|
const defaultOptions = {
|
|
17
18
|
maxConnections: Infinity,
|
|
@@ -22,12 +23,10 @@ const defaultOptions = {
|
|
|
22
23
|
maxEventLoopDelay: Infinity,
|
|
23
24
|
pollInterval: 2000,
|
|
24
25
|
autoDialInterval: 10000,
|
|
25
|
-
movingAverageInterval: 60000
|
|
26
|
-
defaultPeerValue: 0.5
|
|
26
|
+
movingAverageInterval: 60000
|
|
27
27
|
};
|
|
28
28
|
const METRICS_COMPONENT = 'connection-manager';
|
|
29
29
|
const METRICS_PEER_CONNECTIONS = 'peer-connections';
|
|
30
|
-
const METRICS_PEER_VALUES = 'peer-values';
|
|
31
30
|
/**
|
|
32
31
|
* Responsible for managing known connections.
|
|
33
32
|
*/
|
|
@@ -40,16 +39,6 @@ export class DefaultConnectionManager extends EventEmitter {
|
|
|
40
39
|
throw errCode(new Error('Connection Manager maxConnections must be greater than minConnections'), codes.ERR_INVALID_PARAMETERS);
|
|
41
40
|
}
|
|
42
41
|
log('options: %o', this.opts);
|
|
43
|
-
/**
|
|
44
|
-
* Map of peer identifiers to their peer value for pruning connections.
|
|
45
|
-
*
|
|
46
|
-
* @type {Map<string, number>}
|
|
47
|
-
*/
|
|
48
|
-
this.peerValues = trackedMap({
|
|
49
|
-
component: METRICS_COMPONENT,
|
|
50
|
-
metric: METRICS_PEER_VALUES,
|
|
51
|
-
metrics: this.components.getMetrics()
|
|
52
|
-
});
|
|
53
42
|
/**
|
|
54
43
|
* Map of connections per peer
|
|
55
44
|
*/
|
|
@@ -138,16 +127,6 @@ export class DefaultConnectionManager extends EventEmitter {
|
|
|
138
127
|
await Promise.all(tasks);
|
|
139
128
|
this.connections.clear();
|
|
140
129
|
}
|
|
141
|
-
/**
|
|
142
|
-
* Sets the value of the given peer. Peers with lower values
|
|
143
|
-
* will be disconnected first.
|
|
144
|
-
*/
|
|
145
|
-
setPeerValue(peerId, value) {
|
|
146
|
-
if (value < 0 || value > 1) {
|
|
147
|
-
throw new Error('value should be a number between 0 and 1');
|
|
148
|
-
}
|
|
149
|
-
this.peerValues.set(peerId.toString(), value);
|
|
150
|
-
}
|
|
151
130
|
/**
|
|
152
131
|
* Checks the libp2p metrics to determine if any values have exceeded
|
|
153
132
|
* the configured maximums.
|
|
@@ -199,9 +178,6 @@ export class DefaultConnectionManager extends EventEmitter {
|
|
|
199
178
|
if (peerId.publicKey != null) {
|
|
200
179
|
await this.components.getPeerStore().keyBook.set(peerId, peerId.publicKey);
|
|
201
180
|
}
|
|
202
|
-
if (!this.peerValues.has(peerIdStr)) {
|
|
203
|
-
this.peerValues.set(peerIdStr, this.opts.defaultPeerValue);
|
|
204
|
-
}
|
|
205
181
|
const numConnections = this.getConnections().length;
|
|
206
182
|
const toPrune = numConnections - this.opts.maxConnections;
|
|
207
183
|
await this._checkMaxLimit('maxConnections', numConnections, toPrune);
|
|
@@ -224,7 +200,6 @@ export class DefaultConnectionManager extends EventEmitter {
|
|
|
224
200
|
}
|
|
225
201
|
else if (storedConn != null) {
|
|
226
202
|
this.connections.delete(peerId);
|
|
227
|
-
this.peerValues.delete(connection.remotePeer.toString());
|
|
228
203
|
this.dispatchEvent(new CustomEvent('peer:disconnect', { detail: connection }));
|
|
229
204
|
this.components.getMetrics()?.onPeerDisconnected(connection.remotePeer);
|
|
230
205
|
}
|
|
@@ -304,7 +279,7 @@ export class DefaultConnectionManager extends EventEmitter {
|
|
|
304
279
|
const limit = this.opts[name];
|
|
305
280
|
log.trace('checking limit of %s. current value: %d of %d', name, value, limit);
|
|
306
281
|
if (value > limit) {
|
|
307
|
-
log('%s: limit exceeded: %p, %d, pruning %d connection(s)', this.components.getPeerId(), name, value, toPrune);
|
|
282
|
+
log('%s: limit exceeded: %p, %d/%d, pruning %d connection(s)', this.components.getPeerId(), name, value, limit, toPrune);
|
|
308
283
|
await this._maybePruneConnections(toPrune);
|
|
309
284
|
}
|
|
310
285
|
}
|
|
@@ -317,18 +292,38 @@ export class DefaultConnectionManager extends EventEmitter {
|
|
|
317
292
|
if (connections.length <= this.opts.minConnections || toPrune < 1) {
|
|
318
293
|
return;
|
|
319
294
|
}
|
|
320
|
-
const peerValues =
|
|
321
|
-
|
|
295
|
+
const peerValues = new PeerMap();
|
|
296
|
+
// work out peer values
|
|
297
|
+
for (const connection of connections) {
|
|
298
|
+
const remotePeer = connection.remotePeer;
|
|
299
|
+
if (peerValues.has(remotePeer)) {
|
|
300
|
+
continue;
|
|
301
|
+
}
|
|
302
|
+
const tags = await this.components.getPeerStore().getTags(remotePeer);
|
|
303
|
+
// sum all tag values
|
|
304
|
+
peerValues.set(remotePeer, tags.reduce((acc, curr) => {
|
|
305
|
+
return acc + curr.value;
|
|
306
|
+
}, 0));
|
|
307
|
+
}
|
|
308
|
+
// sort by value, lowest to highest
|
|
309
|
+
const sortedConnections = connections.sort((a, b) => {
|
|
310
|
+
const peerAValue = peerValues.get(a.remotePeer) ?? 0;
|
|
311
|
+
const peerBValue = peerValues.get(b.remotePeer) ?? 0;
|
|
312
|
+
if (peerAValue > peerBValue) {
|
|
313
|
+
return 1;
|
|
314
|
+
}
|
|
315
|
+
if (peerAValue < peerBValue) {
|
|
316
|
+
return -1;
|
|
317
|
+
}
|
|
318
|
+
return 0;
|
|
319
|
+
});
|
|
320
|
+
// close some connections
|
|
322
321
|
const toClose = [];
|
|
323
|
-
for (const
|
|
324
|
-
log('too many connections open - closing a connection to %p',
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
}
|
|
329
|
-
if (toClose.length === toPrune) {
|
|
330
|
-
break;
|
|
331
|
-
}
|
|
322
|
+
for (const connection of sortedConnections) {
|
|
323
|
+
log('too many connections open - closing a connection to %p', connection.remotePeer);
|
|
324
|
+
toClose.push(connection);
|
|
325
|
+
if (toClose.length === toPrune) {
|
|
326
|
+
break;
|
|
332
327
|
}
|
|
333
328
|
}
|
|
334
329
|
// close connections
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/connection-manager/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/connection-manager/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "libp2p",
|
|
3
|
-
"version": "0.37.3-
|
|
3
|
+
"version": "0.37.3-b1b2b21",
|
|
4
4
|
"description": "JavaScript implementation of libp2p, a modular peer to peer network stack",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/libp2p/js-libp2p#readme",
|
|
@@ -86,6 +86,7 @@
|
|
|
86
86
|
"generate:proto:fetch": "protons ./src/fetch/pb/proto.proto",
|
|
87
87
|
"generate:proto:identify": "protons ./src/identify/pb/message.proto",
|
|
88
88
|
"generate:proto:plaintext": "protons ./src/insecure/pb/proto.proto",
|
|
89
|
+
"generate:proto:tags": "protons ./src/connection-manager/tags/tags.proto",
|
|
89
90
|
"test": "aegir test",
|
|
90
91
|
"test:node": "aegir test -t node -f \"./dist/test/**/*.{node,spec}.js\" --cov",
|
|
91
92
|
"test:chrome": "aegir test -t browser -f \"./dist/test/**/*.spec.js\" --cov",
|
|
@@ -182,7 +183,7 @@
|
|
|
182
183
|
"@libp2p/pubsub": "^3.0.1",
|
|
183
184
|
"@libp2p/tcp": "^3.0.0",
|
|
184
185
|
"@libp2p/topology": "^3.0.0",
|
|
185
|
-
"@libp2p/webrtc-star": "^
|
|
186
|
+
"@libp2p/webrtc-star": "^3.0.0",
|
|
186
187
|
"@libp2p/websockets": "^3.0.0",
|
|
187
188
|
"@types/node-forge": "^1.0.0",
|
|
188
189
|
"@types/p-fifo": "^1.0.0",
|
|
@@ -18,6 +18,7 @@ import * as STATUS from '@libp2p/interface-connection/status'
|
|
|
18
18
|
import { Dialer } from './dialer/index.js'
|
|
19
19
|
import type { AddressSorter } from '@libp2p/interface-peer-store'
|
|
20
20
|
import type { Resolver } from '@multiformats/multiaddr'
|
|
21
|
+
import { PeerMap } from '@libp2p/peer-collections'
|
|
21
22
|
|
|
22
23
|
const log = logger('libp2p:connection-manager')
|
|
23
24
|
|
|
@@ -30,13 +31,11 @@ const defaultOptions: Partial<ConnectionManagerInit> = {
|
|
|
30
31
|
maxEventLoopDelay: Infinity,
|
|
31
32
|
pollInterval: 2000,
|
|
32
33
|
autoDialInterval: 10000,
|
|
33
|
-
movingAverageInterval: 60000
|
|
34
|
-
defaultPeerValue: 0.5
|
|
34
|
+
movingAverageInterval: 60000
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
const METRICS_COMPONENT = 'connection-manager'
|
|
38
38
|
const METRICS_PEER_CONNECTIONS = 'peer-connections'
|
|
39
|
-
const METRICS_PEER_VALUES = 'peer-values'
|
|
40
39
|
|
|
41
40
|
export interface ConnectionManagerInit {
|
|
42
41
|
/**
|
|
@@ -79,11 +78,6 @@ export interface ConnectionManagerInit {
|
|
|
79
78
|
*/
|
|
80
79
|
movingAverageInterval?: number
|
|
81
80
|
|
|
82
|
-
/**
|
|
83
|
-
* The value of the peer
|
|
84
|
-
*/
|
|
85
|
-
defaultPeerValue?: number
|
|
86
|
-
|
|
87
81
|
/**
|
|
88
82
|
* If true, try to connect to all discovered peers up to the connection manager limit
|
|
89
83
|
*/
|
|
@@ -138,7 +132,6 @@ export class DefaultConnectionManager extends EventEmitter<ConnectionManagerEven
|
|
|
138
132
|
public readonly dialer: Dialer
|
|
139
133
|
private components = new Components()
|
|
140
134
|
private readonly opts: Required<ConnectionManagerInit>
|
|
141
|
-
private readonly peerValues: Map<string, number>
|
|
142
135
|
private readonly connections: Map<string, Connection[]>
|
|
143
136
|
private started: boolean
|
|
144
137
|
private timer?: ReturnType<retimer>
|
|
@@ -155,17 +148,6 @@ export class DefaultConnectionManager extends EventEmitter<ConnectionManagerEven
|
|
|
155
148
|
|
|
156
149
|
log('options: %o', this.opts)
|
|
157
150
|
|
|
158
|
-
/**
|
|
159
|
-
* Map of peer identifiers to their peer value for pruning connections.
|
|
160
|
-
*
|
|
161
|
-
* @type {Map<string, number>}
|
|
162
|
-
*/
|
|
163
|
-
this.peerValues = trackedMap({
|
|
164
|
-
component: METRICS_COMPONENT,
|
|
165
|
-
metric: METRICS_PEER_VALUES,
|
|
166
|
-
metrics: this.components.getMetrics()
|
|
167
|
-
})
|
|
168
|
-
|
|
169
151
|
/**
|
|
170
152
|
* Map of connections per peer
|
|
171
153
|
*/
|
|
@@ -271,18 +253,6 @@ export class DefaultConnectionManager extends EventEmitter<ConnectionManagerEven
|
|
|
271
253
|
this.connections.clear()
|
|
272
254
|
}
|
|
273
255
|
|
|
274
|
-
/**
|
|
275
|
-
* Sets the value of the given peer. Peers with lower values
|
|
276
|
-
* will be disconnected first.
|
|
277
|
-
*/
|
|
278
|
-
setPeerValue (peerId: PeerId, value: number) {
|
|
279
|
-
if (value < 0 || value > 1) {
|
|
280
|
-
throw new Error('value should be a number between 0 and 1')
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
this.peerValues.set(peerId.toString(), value)
|
|
284
|
-
}
|
|
285
|
-
|
|
286
256
|
/**
|
|
287
257
|
* Checks the libp2p metrics to determine if any values have exceeded
|
|
288
258
|
* the configured maximums.
|
|
@@ -340,10 +310,6 @@ export class DefaultConnectionManager extends EventEmitter<ConnectionManagerEven
|
|
|
340
310
|
await this.components.getPeerStore().keyBook.set(peerId, peerId.publicKey)
|
|
341
311
|
}
|
|
342
312
|
|
|
343
|
-
if (!this.peerValues.has(peerIdStr)) {
|
|
344
|
-
this.peerValues.set(peerIdStr, this.opts.defaultPeerValue)
|
|
345
|
-
}
|
|
346
|
-
|
|
347
313
|
const numConnections = this.getConnections().length
|
|
348
314
|
const toPrune = numConnections - this.opts.maxConnections
|
|
349
315
|
|
|
@@ -370,7 +336,6 @@ export class DefaultConnectionManager extends EventEmitter<ConnectionManagerEven
|
|
|
370
336
|
this.connections.set(peerId, storedConn)
|
|
371
337
|
} else if (storedConn != null) {
|
|
372
338
|
this.connections.delete(peerId)
|
|
373
|
-
this.peerValues.delete(connection.remotePeer.toString())
|
|
374
339
|
this.dispatchEvent(new CustomEvent<Connection>('peer:disconnect', { detail: connection }))
|
|
375
340
|
|
|
376
341
|
this.components.getMetrics()?.onPeerDisconnected(connection.remotePeer)
|
|
@@ -475,7 +440,7 @@ export class DefaultConnectionManager extends EventEmitter<ConnectionManagerEven
|
|
|
475
440
|
const limit = this.opts[name]
|
|
476
441
|
log.trace('checking limit of %s. current value: %d of %d', name, value, limit)
|
|
477
442
|
if (value > limit) {
|
|
478
|
-
log('%s: limit exceeded: %p, %d, pruning %d connection(s)', this.components.getPeerId(), name, value, toPrune)
|
|
443
|
+
log('%s: limit exceeded: %p, %d/%d, pruning %d connection(s)', this.components.getPeerId(), name, value, limit, toPrune)
|
|
479
444
|
await this._maybePruneConnections(toPrune)
|
|
480
445
|
}
|
|
481
446
|
}
|
|
@@ -491,22 +456,49 @@ export class DefaultConnectionManager extends EventEmitter<ConnectionManagerEven
|
|
|
491
456
|
return
|
|
492
457
|
}
|
|
493
458
|
|
|
494
|
-
const peerValues =
|
|
495
|
-
log.trace('sorted peer values: %j', peerValues)
|
|
459
|
+
const peerValues = new PeerMap<number>()
|
|
496
460
|
|
|
497
|
-
|
|
461
|
+
// work out peer values
|
|
462
|
+
for (const connection of connections) {
|
|
463
|
+
const remotePeer = connection.remotePeer
|
|
498
464
|
|
|
499
|
-
|
|
500
|
-
|
|
465
|
+
if (peerValues.has(remotePeer)) {
|
|
466
|
+
continue
|
|
467
|
+
}
|
|
501
468
|
|
|
502
|
-
|
|
503
|
-
if (connection.remotePeer.toString() === peerId) {
|
|
504
|
-
toClose.push(connection)
|
|
505
|
-
}
|
|
469
|
+
const tags = await this.components.getPeerStore().getTags(remotePeer)
|
|
506
470
|
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
471
|
+
// sum all tag values
|
|
472
|
+
peerValues.set(remotePeer, tags.reduce((acc, curr) => {
|
|
473
|
+
return acc + curr.value
|
|
474
|
+
}, 0))
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
// sort by value, lowest to highest
|
|
478
|
+
const sortedConnections = connections.sort((a, b) => {
|
|
479
|
+
const peerAValue = peerValues.get(a.remotePeer) ?? 0
|
|
480
|
+
const peerBValue = peerValues.get(b.remotePeer) ?? 0
|
|
481
|
+
|
|
482
|
+
if (peerAValue > peerBValue) {
|
|
483
|
+
return 1
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
if (peerAValue < peerBValue) {
|
|
487
|
+
return -1
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
return 0
|
|
491
|
+
})
|
|
492
|
+
|
|
493
|
+
// close some connections
|
|
494
|
+
const toClose = []
|
|
495
|
+
|
|
496
|
+
for (const connection of sortedConnections) {
|
|
497
|
+
log('too many connections open - closing a connection to %p', connection.remotePeer)
|
|
498
|
+
toClose.push(connection)
|
|
499
|
+
|
|
500
|
+
if (toClose.length === toPrune) {
|
|
501
|
+
break
|
|
510
502
|
}
|
|
511
503
|
}
|
|
512
504
|
|