@libp2p/circuit-relay-v2 1.0.9-581574d6d → 1.0.9-d011f6130
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.min.js +12 -12
- package/dist/src/transport/reservation-store.d.ts +3 -1
- package/dist/src/transport/reservation-store.d.ts.map +1 -1
- package/dist/src/transport/reservation-store.js +6 -4
- package/dist/src/transport/reservation-store.js.map +1 -1
- package/package.json +10 -10
- package/src/transport/reservation-store.ts +10 -6
@@ -1,5 +1,6 @@
|
|
1
|
-
import { TypedEventEmitter
|
1
|
+
import { TypedEventEmitter } from '@libp2p/interface';
|
2
2
|
import type { Reservation } from '../pb/index.js';
|
3
|
+
import type { TypedEventTarget, Libp2pEvents, ComponentLogger, PeerId, PeerStore, Startable, Metrics } from '@libp2p/interface';
|
3
4
|
import type { ConnectionManager, TransportManager } from '@libp2p/interface-internal';
|
4
5
|
export interface RelayStoreComponents {
|
5
6
|
peerId: PeerId;
|
@@ -8,6 +9,7 @@ export interface RelayStoreComponents {
|
|
8
9
|
peerStore: PeerStore;
|
9
10
|
events: TypedEventTarget<Libp2pEvents>;
|
10
11
|
logger: ComponentLogger;
|
12
|
+
metrics?: Metrics;
|
11
13
|
}
|
12
14
|
export interface RelayStoreInit {
|
13
15
|
/**
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"reservation-store.d.ts","sourceRoot":"","sources":["../../../src/transport/reservation-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,
|
1
|
+
{"version":3,"file":"reservation-store.d.ts","sourceRoot":"","sources":["../../../src/transport/reservation-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AASrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAgB,eAAe,EAAsB,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AACjK,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAWrF,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAA;IACtC,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B;;;;;;;OAOG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAE/B;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB;;OAEG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAA;IAElC;;;OAGG;IACH,4BAA4B,CAAC,EAAE,MAAM,CAAA;CACtC;AAED,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,YAAY,CAAA;AAQnD,MAAM,WAAW,sBAAsB;IACrC,yBAAyB,EAAE,WAAW,CAAA;IACtC,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CACrC;AAED,qBAAa,gBAAiB,SAAQ,iBAAiB,CAAC,sBAAsB,CAAE,YAAW,SAAS;;IAClG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;IACrD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkB;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IACvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAW;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAQ;IAC5C,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAQ;IAClD,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAQ;IACrD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;gBAEf,UAAU,EAAE,oBAAoB,EAAE,IAAI,CAAC,EAAE,cAAc;IA8BpE,SAAS,IAAK,OAAO;IAIrB,KAAK,IAAK,IAAI;IAId,IAAI,IAAK,IAAI;IASb;;;;;OAKG;IACG,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA8G/D,cAAc,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAIxC,cAAc,CAAE,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;CA0EzD"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { TypedEventEmitter } from '@libp2p/interface';
|
2
2
|
import { PeerMap } from '@libp2p/peer-collections';
|
3
|
-
import {
|
3
|
+
import { PeerQueue } from '@libp2p/utils/peer-queue';
|
4
4
|
import { multiaddr } from '@multiformats/multiaddr';
|
5
5
|
import { pbStream } from 'it-protobuf-stream';
|
6
6
|
import { equals as uint8ArrayEquals } from 'uint8arrays/equals';
|
@@ -40,8 +40,10 @@ export class ReservationStore extends TypedEventEmitter {
|
|
40
40
|
this.reservationCompletionTimeout = init?.reservationCompletionTimeout ?? 10000;
|
41
41
|
this.started = false;
|
42
42
|
// ensure we don't listen on multiple relays simultaneously
|
43
|
-
this.reserveQueue = new
|
44
|
-
concurrency: init?.reservationConcurrency ?? DEFAULT_RESERVATION_CONCURRENCY
|
43
|
+
this.reserveQueue = new PeerQueue({
|
44
|
+
concurrency: init?.reservationConcurrency ?? DEFAULT_RESERVATION_CONCURRENCY,
|
45
|
+
metricName: 'libp2p_relay_reservation_queue',
|
46
|
+
metrics: components.metrics
|
45
47
|
});
|
46
48
|
// When a peer disconnects, if we had a reservation on that peer
|
47
49
|
// remove the reservation and multiaddr and maybe trigger search
|
@@ -79,7 +81,7 @@ export class ReservationStore extends TypedEventEmitter {
|
|
79
81
|
this.log('not adding relay as the queue is full');
|
80
82
|
return;
|
81
83
|
}
|
82
|
-
if (this.reserveQueue.
|
84
|
+
if (this.reserveQueue.has(peerId)) {
|
83
85
|
this.log('relay peer is already in the reservation queue');
|
84
86
|
return;
|
85
87
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"reservation-store.js","sourceRoot":"","sources":["../../../src/transport/reservation-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,
|
1
|
+
{"version":3,"file":"reservation-store.js","sourceRoot":"","sources":["../../../src/transport/reservation-store.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@libp2p/circuit-relay-v2",
|
3
|
-
"version": "1.0.9-
|
3
|
+
"version": "1.0.9-d011f6130",
|
4
4
|
"description": "Implementation of Circuit Relay v2",
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
6
6
|
"homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/transport-circuit-relay-v2#readme",
|
@@ -51,12 +51,12 @@
|
|
51
51
|
"dep-check": "aegir dep-check"
|
52
52
|
},
|
53
53
|
"dependencies": {
|
54
|
-
"@libp2p/interface": "1.1.0-
|
55
|
-
"@libp2p/interface-internal": "1.0.4-
|
56
|
-
"@libp2p/peer-collections": "5.1.2-
|
57
|
-
"@libp2p/peer-id": "4.0.3-
|
58
|
-
"@libp2p/peer-record": "7.0.3-
|
59
|
-
"@libp2p/utils": "5.1.1-
|
54
|
+
"@libp2p/interface": "1.1.0-d011f6130",
|
55
|
+
"@libp2p/interface-internal": "1.0.4-d011f6130",
|
56
|
+
"@libp2p/peer-collections": "5.1.2-d011f6130",
|
57
|
+
"@libp2p/peer-id": "4.0.3-d011f6130",
|
58
|
+
"@libp2p/peer-record": "7.0.3-d011f6130",
|
59
|
+
"@libp2p/utils": "5.1.1-d011f6130",
|
60
60
|
"@multiformats/mafmt": "^12.1.6",
|
61
61
|
"@multiformats/multiaddr": "^12.1.10",
|
62
62
|
"any-signal": "^4.1.1",
|
@@ -72,9 +72,9 @@
|
|
72
72
|
"uint8arrays": "^5.0.0"
|
73
73
|
},
|
74
74
|
"devDependencies": {
|
75
|
-
"@libp2p/interface-compliance-tests": "5.1.0-
|
76
|
-
"@libp2p/logger": "4.0.3-
|
77
|
-
"@libp2p/peer-id-factory": "4.0.2-
|
75
|
+
"@libp2p/interface-compliance-tests": "5.1.0-d011f6130",
|
76
|
+
"@libp2p/logger": "4.0.3-d011f6130",
|
77
|
+
"@libp2p/peer-id-factory": "4.0.2-d011f6130",
|
78
78
|
"aegir": "^41.0.2",
|
79
79
|
"it-drain": "^3.0.3",
|
80
80
|
"it-pair": "^2.0.6",
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import { TypedEventEmitter
|
1
|
+
import { TypedEventEmitter } from '@libp2p/interface'
|
2
2
|
import { PeerMap } from '@libp2p/peer-collections'
|
3
|
-
import {
|
3
|
+
import { PeerQueue } from '@libp2p/utils/peer-queue'
|
4
4
|
import { multiaddr } from '@multiformats/multiaddr'
|
5
5
|
import { pbStream } from 'it-protobuf-stream'
|
6
6
|
import { equals as uint8ArrayEquals } from 'uint8arrays/equals'
|
@@ -8,6 +8,7 @@ import { DEFAULT_RESERVATION_CONCURRENCY, RELAY_TAG, RELAY_V2_HOP_CODEC } from '
|
|
8
8
|
import { HopMessage, Status } from '../pb/index.js'
|
9
9
|
import { getExpirationMilliseconds } from '../utils.js'
|
10
10
|
import type { Reservation } from '../pb/index.js'
|
11
|
+
import type { TypedEventTarget, Libp2pEvents, AbortOptions, ComponentLogger, Logger, Connection, PeerId, PeerStore, Startable, Metrics } from '@libp2p/interface'
|
11
12
|
import type { ConnectionManager, TransportManager } from '@libp2p/interface-internal'
|
12
13
|
|
13
14
|
// allow refreshing a relay reservation if it will expire in the next 10 minutes
|
@@ -26,6 +27,7 @@ export interface RelayStoreComponents {
|
|
26
27
|
peerStore: PeerStore
|
27
28
|
events: TypedEventTarget<Libp2pEvents>
|
28
29
|
logger: ComponentLogger
|
30
|
+
metrics?: Metrics
|
29
31
|
}
|
30
32
|
|
31
33
|
export interface RelayStoreInit {
|
@@ -75,7 +77,7 @@ export class ReservationStore extends TypedEventEmitter<ReservationStoreEvents>
|
|
75
77
|
private readonly transportManager: TransportManager
|
76
78
|
private readonly peerStore: PeerStore
|
77
79
|
private readonly events: TypedEventTarget<Libp2pEvents>
|
78
|
-
private readonly reserveQueue:
|
80
|
+
private readonly reserveQueue: PeerQueue
|
79
81
|
private readonly reservations: PeerMap<RelayEntry>
|
80
82
|
private readonly maxDiscoveredRelays: number
|
81
83
|
private readonly maxReservationQueueLength: number
|
@@ -99,8 +101,10 @@ export class ReservationStore extends TypedEventEmitter<ReservationStoreEvents>
|
|
99
101
|
this.started = false
|
100
102
|
|
101
103
|
// ensure we don't listen on multiple relays simultaneously
|
102
|
-
this.reserveQueue = new
|
103
|
-
concurrency: init?.reservationConcurrency ?? DEFAULT_RESERVATION_CONCURRENCY
|
104
|
+
this.reserveQueue = new PeerQueue({
|
105
|
+
concurrency: init?.reservationConcurrency ?? DEFAULT_RESERVATION_CONCURRENCY,
|
106
|
+
metricName: 'libp2p_relay_reservation_queue',
|
107
|
+
metrics: components.metrics
|
104
108
|
})
|
105
109
|
|
106
110
|
// When a peer disconnects, if we had a reservation on that peer
|
@@ -145,7 +149,7 @@ export class ReservationStore extends TypedEventEmitter<ReservationStoreEvents>
|
|
145
149
|
return
|
146
150
|
}
|
147
151
|
|
148
|
-
if (this.reserveQueue.
|
152
|
+
if (this.reserveQueue.has(peerId)) {
|
149
153
|
this.log('relay peer is already in the reservation queue')
|
150
154
|
return
|
151
155
|
}
|