libp2p 0.43.0 → 0.43.1
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/src/circuit/transport/reservation-store.d.ts.map +1 -1
- package/dist/src/circuit/transport/reservation-store.js +8 -4
- package/dist/src/circuit/transport/reservation-store.js.map +1 -1
- package/dist/src/circuit/utils.d.ts +1 -1
- package/dist/src/circuit/utils.d.ts.map +1 -1
- package/dist/src/circuit/utils.js +5 -2
- package/dist/src/circuit/utils.js.map +1 -1
- package/package.json +1 -1
- package/src/circuit/transport/reservation-store.ts +10 -4
- package/src/circuit/utils.ts +6 -2
- package/src/version.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reservation-store.d.ts","sourceRoot":"","sources":["../../../../src/circuit/transport/reservation-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAMvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAK7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAA;AACzE,OAAO,EAAe,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"reservation-store.d.ts","sourceRoot":"","sources":["../../../../src/circuit/transport/reservation-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAMvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAK7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAA;AACzE,OAAO,EAAe,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAc7D,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,SAAS,EAAE,SAAS,CAAA;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B;;;;;;;OAOG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAE/B;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;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,YAAY,CAAC,sBAAsB,CAAE,YAAW,SAAS;;IAC7F,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,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAQ;IAC5C,OAAO,CAAC,OAAO,CAAS;gBAEX,UAAU,EAAE,oBAAoB,EAAE,IAAI,CAAC,EAAE,cAAc;IAwBpE,SAAS,IAAK,OAAO;IAIf,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAIvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAS5B;;;;;OAKG;IACG,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA+E/D,cAAc,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAgCxC;;OAEG;IACH,WAAW,CAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAkBnC"}
|
|
@@ -10,7 +10,7 @@ import { DEFAULT_RESERVATION_CONCURRENCY, RELAY_TAG, RELAY_V2_HOP_CODEC } from '
|
|
|
10
10
|
import { logger } from '@libp2p/logger';
|
|
11
11
|
import { pbStream } from 'it-pb-stream';
|
|
12
12
|
import { HopMessage, Status } from '../pb/index.js';
|
|
13
|
-
import {
|
|
13
|
+
import { getExpirationMilliseconds } from '../utils.js';
|
|
14
14
|
import { CustomEvent, EventEmitter } from '@libp2p/interfaces/events';
|
|
15
15
|
import { multiaddr } from '@multiformats/multiaddr';
|
|
16
16
|
const log = logger('libp2p:circuit-relay:transport:reservation-store');
|
|
@@ -18,6 +18,8 @@ const log = logger('libp2p:circuit-relay:transport:reservation-store');
|
|
|
18
18
|
const REFRESH_WINDOW = (60 * 1000) * 10;
|
|
19
19
|
// try to refresh relay reservations 5 minutes before expiry
|
|
20
20
|
const REFRESH_TIMEOUT = (60 * 1000) * 5;
|
|
21
|
+
// minimum duration before which a reservation must not be refreshed
|
|
22
|
+
const REFRESH_TIMEOUT_MIN = 30 * 1000;
|
|
21
23
|
export class ReservationStore extends EventEmitter {
|
|
22
24
|
constructor(components, init) {
|
|
23
25
|
super();
|
|
@@ -70,7 +72,7 @@ export class ReservationStore extends EventEmitter {
|
|
|
70
72
|
// allow refresh of an existing reservation if it is about to expire
|
|
71
73
|
const existingReservation = this.reservations.get(peerId);
|
|
72
74
|
if (existingReservation != null) {
|
|
73
|
-
if (
|
|
75
|
+
if (getExpirationMilliseconds(existingReservation.reservation.expire) > REFRESH_WINDOW) {
|
|
74
76
|
log('already have reservation on relay peer %p and it expires in more than 10 minutes', peerId);
|
|
75
77
|
return;
|
|
76
78
|
}
|
|
@@ -93,12 +95,14 @@ export class ReservationStore extends EventEmitter {
|
|
|
93
95
|
}
|
|
94
96
|
const reservation = await __classPrivateFieldGet(this, _ReservationStore_instances, "m", _ReservationStore_createReservation).call(this, connection);
|
|
95
97
|
log('created reservation on relay peer %p', peerId);
|
|
96
|
-
const expiration =
|
|
98
|
+
const expiration = getExpirationMilliseconds(reservation.expire);
|
|
99
|
+
// sets a lower bound on the timeout
|
|
100
|
+
const timeoutDuration = Math.max(expiration - REFRESH_TIMEOUT, REFRESH_TIMEOUT_MIN);
|
|
97
101
|
const timeout = setTimeout(() => {
|
|
98
102
|
this.addRelay(peerId, type).catch(err => {
|
|
99
103
|
log.error('could not refresh reservation to relay %p', peerId, err);
|
|
100
104
|
});
|
|
101
|
-
},
|
|
105
|
+
}, timeoutDuration);
|
|
102
106
|
this.reservations.set(peerId, {
|
|
103
107
|
timeout,
|
|
104
108
|
reservation,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reservation-store.js","sourceRoot":"","sources":["../../../../src/circuit/transport/reservation-store.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAClD,OAAO,MAAM,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,+BAA+B,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAChG,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAIvC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"reservation-store.js","sourceRoot":"","sources":["../../../../src/circuit/transport/reservation-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,5 +9,5 @@ export declare function namespaceToCid(namespace: string): Promise<CID>;
|
|
|
9
9
|
/**
|
|
10
10
|
* returns number of ms between now and expiration time
|
|
11
11
|
*/
|
|
12
|
-
export declare function
|
|
12
|
+
export declare function getExpirationMilliseconds(expireTimeSeconds: bigint): number;
|
|
13
13
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/circuit/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAItC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAE1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAwF1D,wBAAgB,kBAAkB,CAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAQtH;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAKrE;AAED;;GAEG;AACH,wBAAgB,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/circuit/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAItC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAE1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAwF1D,wBAAgB,kBAAkB,CAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAQtH;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAKrE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAE,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAM5E"}
|
|
@@ -92,7 +92,10 @@ export async function namespaceToCid(namespace) {
|
|
|
92
92
|
/**
|
|
93
93
|
* returns number of ms between now and expiration time
|
|
94
94
|
*/
|
|
95
|
-
export function
|
|
96
|
-
|
|
95
|
+
export function getExpirationMilliseconds(expireTimeSeconds) {
|
|
96
|
+
const expireTimeMillis = expireTimeSeconds * BigInt(1000);
|
|
97
|
+
const currentTime = new Date().getTime();
|
|
98
|
+
// downcast to number to use with setTimeout
|
|
99
|
+
return Number(expireTimeMillis - BigInt(currentTime));
|
|
97
100
|
}
|
|
98
101
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/circuit/utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/circuit/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -8,7 +8,7 @@ import type { ConnectionManager } from '@libp2p/interface-connection-manager'
|
|
|
8
8
|
import type { Connection } from '@libp2p/interface-connection'
|
|
9
9
|
import type { Reservation } from '../pb/index.js'
|
|
10
10
|
import { HopMessage, Status } from '../pb/index.js'
|
|
11
|
-
import {
|
|
11
|
+
import { getExpirationMilliseconds } from '../utils.js'
|
|
12
12
|
import type { TransportManager } from '@libp2p/interface-transport'
|
|
13
13
|
import type { Startable } from '@libp2p/interfaces/dist/src/startable.js'
|
|
14
14
|
import { CustomEvent, EventEmitter } from '@libp2p/interfaces/events'
|
|
@@ -23,6 +23,9 @@ const REFRESH_WINDOW = (60 * 1000) * 10
|
|
|
23
23
|
// try to refresh relay reservations 5 minutes before expiry
|
|
24
24
|
const REFRESH_TIMEOUT = (60 * 1000) * 5
|
|
25
25
|
|
|
26
|
+
// minimum duration before which a reservation must not be refreshed
|
|
27
|
+
const REFRESH_TIMEOUT_MIN = 30 * 1000
|
|
28
|
+
|
|
26
29
|
export interface RelayStoreComponents {
|
|
27
30
|
peerId: PeerId
|
|
28
31
|
connectionManager: ConnectionManager
|
|
@@ -131,7 +134,7 @@ export class ReservationStore extends EventEmitter<ReservationStoreEvents> imple
|
|
|
131
134
|
const existingReservation = this.reservations.get(peerId)
|
|
132
135
|
|
|
133
136
|
if (existingReservation != null) {
|
|
134
|
-
if (
|
|
137
|
+
if (getExpirationMilliseconds(existingReservation.reservation.expire) > REFRESH_WINDOW) {
|
|
135
138
|
log('already have reservation on relay peer %p and it expires in more than 10 minutes', peerId)
|
|
136
139
|
return
|
|
137
140
|
}
|
|
@@ -162,13 +165,16 @@ export class ReservationStore extends EventEmitter<ReservationStoreEvents> imple
|
|
|
162
165
|
|
|
163
166
|
log('created reservation on relay peer %p', peerId)
|
|
164
167
|
|
|
165
|
-
const expiration =
|
|
168
|
+
const expiration = getExpirationMilliseconds(reservation.expire)
|
|
169
|
+
|
|
170
|
+
// sets a lower bound on the timeout
|
|
171
|
+
const timeoutDuration = Math.max(expiration - REFRESH_TIMEOUT, REFRESH_TIMEOUT_MIN)
|
|
166
172
|
|
|
167
173
|
const timeout = setTimeout(() => {
|
|
168
174
|
this.addRelay(peerId, type).catch(err => {
|
|
169
175
|
log.error('could not refresh reservation to relay %p', peerId, err)
|
|
170
176
|
})
|
|
171
|
-
},
|
|
177
|
+
}, timeoutDuration)
|
|
172
178
|
|
|
173
179
|
this.reservations.set(peerId, {
|
|
174
180
|
timeout,
|
package/src/circuit/utils.ts
CHANGED
|
@@ -115,6 +115,10 @@ export async function namespaceToCid (namespace: string): Promise<CID> {
|
|
|
115
115
|
/**
|
|
116
116
|
* returns number of ms between now and expiration time
|
|
117
117
|
*/
|
|
118
|
-
export function
|
|
119
|
-
|
|
118
|
+
export function getExpirationMilliseconds (expireTimeSeconds: bigint): number {
|
|
119
|
+
const expireTimeMillis = expireTimeSeconds * BigInt(1000)
|
|
120
|
+
const currentTime = new Date().getTime()
|
|
121
|
+
|
|
122
|
+
// downcast to number to use with setTimeout
|
|
123
|
+
return Number(expireTimeMillis - BigInt(currentTime))
|
|
120
124
|
}
|
package/src/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = '0.43.
|
|
1
|
+
export const version = '0.43.1'
|
|
2
2
|
export const name = 'libp2p'
|