libp2p 0.42.2-593deefe → 0.42.2-5e63ee2d

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.
Files changed (228) hide show
  1. package/dist/index.min.js +30 -30
  2. package/dist/src/address-manager/index.d.ts +1 -10
  3. package/dist/src/address-manager/index.d.ts.map +1 -1
  4. package/dist/src/address-manager/index.js +46 -29
  5. package/dist/src/address-manager/index.js.map +1 -1
  6. package/dist/src/autonat/constants.d.ts +4 -0
  7. package/dist/src/autonat/constants.d.ts.map +1 -0
  8. package/dist/src/autonat/constants.js +4 -0
  9. package/dist/src/autonat/constants.js.map +1 -0
  10. package/dist/src/autonat/index.d.ts +64 -0
  11. package/dist/src/autonat/index.d.ts.map +1 -0
  12. package/dist/src/autonat/index.js +417 -0
  13. package/dist/src/autonat/index.js.map +1 -0
  14. package/dist/src/autonat/pb/index.d.ts +57 -0
  15. package/dist/src/autonat/pb/index.d.ts.map +1 -0
  16. package/dist/src/autonat/pb/index.js +250 -0
  17. package/dist/src/autonat/pb/index.js.map +1 -0
  18. package/dist/src/circuit/constants.d.ts +29 -3
  19. package/dist/src/circuit/constants.d.ts.map +1 -1
  20. package/dist/src/circuit/constants.js +32 -5
  21. package/dist/src/circuit/constants.js.map +1 -1
  22. package/dist/src/circuit/index.d.ts +16 -61
  23. package/dist/src/circuit/index.d.ts.map +1 -1
  24. package/dist/src/circuit/index.js +2 -1
  25. package/dist/src/circuit/index.js.map +1 -1
  26. package/dist/src/circuit/server/advert-service.d.ts +43 -0
  27. package/dist/src/circuit/server/advert-service.d.ts.map +1 -0
  28. package/dist/src/circuit/server/advert-service.js +69 -0
  29. package/dist/src/circuit/server/advert-service.js.map +1 -0
  30. package/dist/src/circuit/server/index.d.ts +60 -0
  31. package/dist/src/circuit/server/index.d.ts.map +1 -0
  32. package/dist/src/circuit/server/index.js +287 -0
  33. package/dist/src/circuit/server/index.js.map +1 -0
  34. package/dist/src/circuit/{reservation-store.d.ts → server/reservation-store.d.ts} +17 -10
  35. package/dist/src/circuit/server/reservation-store.d.ts.map +1 -0
  36. package/dist/src/circuit/server/reservation-store.js +57 -0
  37. package/dist/src/circuit/server/reservation-store.js.map +1 -0
  38. package/dist/src/circuit/server/reservation-voucher.d.ts.map +1 -0
  39. package/dist/src/circuit/{reservation-voucher.js → server/reservation-voucher.js} +1 -1
  40. package/dist/src/circuit/server/reservation-voucher.js.map +1 -0
  41. package/dist/src/circuit/transport/discovery.d.ts +45 -0
  42. package/dist/src/circuit/transport/discovery.d.ts.map +1 -0
  43. package/dist/src/circuit/transport/discovery.js +82 -0
  44. package/dist/src/circuit/transport/discovery.js.map +1 -0
  45. package/dist/src/circuit/transport/index.d.ts +33 -0
  46. package/dist/src/circuit/transport/index.d.ts.map +1 -0
  47. package/dist/src/circuit/transport/index.js +225 -0
  48. package/dist/src/circuit/transport/index.js.map +1 -0
  49. package/dist/src/circuit/transport/listener.d.ts +9 -0
  50. package/dist/src/circuit/transport/listener.d.ts.map +1 -0
  51. package/dist/src/circuit/transport/listener.js +76 -0
  52. package/dist/src/circuit/transport/listener.js.map +1 -0
  53. package/dist/src/circuit/transport/reservation-store.d.ts +60 -0
  54. package/dist/src/circuit/transport/reservation-store.d.ts.map +1 -0
  55. package/dist/src/circuit/transport/reservation-store.js +165 -0
  56. package/dist/src/circuit/transport/reservation-store.js.map +1 -0
  57. package/dist/src/circuit/utils.d.ts +4 -2
  58. package/dist/src/circuit/utils.d.ts.map +1 -1
  59. package/dist/src/circuit/utils.js +75 -102
  60. package/dist/src/circuit/utils.js.map +1 -1
  61. package/dist/src/components.d.ts +2 -1
  62. package/dist/src/components.d.ts.map +1 -1
  63. package/dist/src/components.js.map +1 -1
  64. package/dist/src/config.d.ts.map +1 -1
  65. package/dist/src/config.js +17 -20
  66. package/dist/src/config.js.map +1 -1
  67. package/dist/src/connection/index.d.ts +2 -2
  68. package/dist/src/connection/index.d.ts.map +1 -1
  69. package/dist/src/connection/index.js +1 -1
  70. package/dist/src/connection/index.js.map +1 -1
  71. package/dist/src/connection-manager/auto-dialler.d.ts +0 -4
  72. package/dist/src/connection-manager/auto-dialler.d.ts.map +1 -1
  73. package/dist/src/connection-manager/auto-dialler.js +0 -9
  74. package/dist/src/connection-manager/auto-dialler.js.map +1 -1
  75. package/dist/src/connection-manager/dialer/dial-request.js +1 -1
  76. package/dist/src/connection-manager/dialer/dial-request.js.map +1 -1
  77. package/dist/src/connection-manager/dialer/index.d.ts +2 -1
  78. package/dist/src/connection-manager/dialer/index.d.ts.map +1 -1
  79. package/dist/src/connection-manager/dialer/index.js +3 -3
  80. package/dist/src/connection-manager/dialer/index.js.map +1 -1
  81. package/dist/src/connection-manager/index.d.ts +0 -4
  82. package/dist/src/connection-manager/index.d.ts.map +1 -1
  83. package/dist/src/connection-manager/index.js +1 -1
  84. package/dist/src/connection-manager/index.js.map +1 -1
  85. package/dist/src/connection-manager/latency-monitor.d.ts.map +1 -1
  86. package/dist/src/connection-manager/latency-monitor.js +1 -1
  87. package/dist/src/connection-manager/latency-monitor.js.map +1 -1
  88. package/dist/src/connection-manager/visibility-change-emitter.d.ts.map +1 -1
  89. package/dist/src/content-routing/index.d.ts +6 -4
  90. package/dist/src/content-routing/index.d.ts.map +1 -1
  91. package/dist/src/content-routing/index.js +1 -1
  92. package/dist/src/content-routing/index.js.map +1 -1
  93. package/dist/src/content-routing/utils.d.ts +3 -3
  94. package/dist/src/content-routing/utils.d.ts.map +1 -1
  95. package/dist/src/dht/dht-content-routing.d.ts +2 -1
  96. package/dist/src/dht/dht-content-routing.d.ts.map +1 -1
  97. package/dist/src/dht/dht-content-routing.js.map +1 -1
  98. package/dist/src/dht/dht-peer-routing.d.ts +3 -2
  99. package/dist/src/dht/dht-peer-routing.d.ts.map +1 -1
  100. package/dist/src/dht/dht-peer-routing.js.map +1 -1
  101. package/dist/src/dht/dummy-dht.d.ts +1 -1
  102. package/dist/src/dht/dummy-dht.d.ts.map +1 -1
  103. package/dist/src/fetch/index.d.ts.map +1 -1
  104. package/dist/src/identify/index.d.ts +3 -1
  105. package/dist/src/identify/index.d.ts.map +1 -1
  106. package/dist/src/identify/index.js +12 -7
  107. package/dist/src/identify/index.js.map +1 -1
  108. package/dist/src/index.d.ts +13 -7
  109. package/dist/src/index.d.ts.map +1 -1
  110. package/dist/src/index.js.map +1 -1
  111. package/dist/src/insecure/index.d.ts.map +1 -1
  112. package/dist/src/insecure/index.js.map +1 -1
  113. package/dist/src/libp2p.d.ts +6 -4
  114. package/dist/src/libp2p.d.ts.map +1 -1
  115. package/dist/src/libp2p.js +19 -28
  116. package/dist/src/libp2p.js.map +1 -1
  117. package/dist/src/nat-manager.d.ts.map +1 -1
  118. package/dist/src/nat-manager.js +3 -1
  119. package/dist/src/nat-manager.js.map +1 -1
  120. package/dist/src/peer-record-updater.d.ts.map +1 -1
  121. package/dist/src/peer-routing.d.ts.map +1 -1
  122. package/dist/src/ping/index.d.ts.map +1 -1
  123. package/dist/src/pnet/crypto.d.ts +1 -1
  124. package/dist/src/pnet/crypto.d.ts.map +1 -1
  125. package/dist/src/pnet/crypto.js +1 -1
  126. package/dist/src/pnet/crypto.js.map +1 -1
  127. package/dist/src/pnet/key-generator.d.ts.map +1 -1
  128. package/dist/src/registrar.d.ts.map +1 -1
  129. package/dist/src/transport-manager.d.ts.map +1 -1
  130. package/dist/src/transport-manager.js +1 -1
  131. package/dist/src/transport-manager.js.map +1 -1
  132. package/dist/src/upgrader.d.ts +2 -1
  133. package/dist/src/upgrader.d.ts.map +1 -1
  134. package/dist/src/upgrader.js +19 -14
  135. package/dist/src/upgrader.js.map +1 -1
  136. package/package.json +23 -18
  137. package/src/address-manager/index.ts +62 -35
  138. package/src/autonat/constants.ts +4 -0
  139. package/src/autonat/index.ts +567 -0
  140. package/src/autonat/pb/index.proto +35 -0
  141. package/src/autonat/pb/index.ts +320 -0
  142. package/src/circuit/constants.ts +40 -5
  143. package/src/circuit/index.ts +17 -67
  144. package/src/circuit/server/advert-service.ts +108 -0
  145. package/src/circuit/server/index.ts +421 -0
  146. package/src/circuit/server/reservation-store.ts +111 -0
  147. package/src/circuit/{reservation-voucher.ts → server/reservation-voucher.ts} +3 -3
  148. package/src/circuit/transport/discovery.ts +127 -0
  149. package/src/circuit/transport/index.ts +325 -0
  150. package/src/circuit/transport/listener.ts +99 -0
  151. package/src/circuit/transport/reservation-store.ts +249 -0
  152. package/src/circuit/utils.ts +78 -115
  153. package/src/components.ts +9 -8
  154. package/src/config.ts +17 -20
  155. package/src/connection/index.ts +7 -7
  156. package/src/connection-manager/auto-dialler.ts +4 -20
  157. package/src/connection-manager/dialer/dial-request.ts +1 -1
  158. package/src/connection-manager/dialer/index.ts +10 -9
  159. package/src/connection-manager/index.ts +14 -19
  160. package/src/connection-manager/latency-monitor.ts +9 -9
  161. package/src/connection-manager/visibility-change-emitter.ts +4 -4
  162. package/src/content-routing/index.ts +10 -8
  163. package/src/content-routing/utils.ts +3 -3
  164. package/src/dht/dht-content-routing.ts +3 -2
  165. package/src/dht/dht-peer-routing.ts +3 -2
  166. package/src/dht/dummy-dht.ts +1 -1
  167. package/src/fetch/index.ts +7 -7
  168. package/src/identify/index.ts +22 -17
  169. package/src/index.ts +14 -7
  170. package/src/insecure/index.ts +2 -1
  171. package/src/libp2p.ts +33 -41
  172. package/src/nat-manager.ts +9 -7
  173. package/src/peer-record-updater.ts +4 -4
  174. package/src/peer-routing.ts +4 -4
  175. package/src/ping/index.ts +4 -4
  176. package/src/pnet/crypto.ts +3 -3
  177. package/src/pnet/key-generator.ts +1 -1
  178. package/src/registrar.ts +8 -8
  179. package/src/transport-manager.ts +10 -10
  180. package/src/upgrader.ts +20 -19
  181. package/src/version.ts +1 -1
  182. package/dist/src/circuit/client.d.ts +0 -81
  183. package/dist/src/circuit/client.d.ts.map +0 -1
  184. package/dist/src/circuit/client.js +0 -285
  185. package/dist/src/circuit/client.js.map +0 -1
  186. package/dist/src/circuit/hop.d.ts +0 -23
  187. package/dist/src/circuit/hop.d.ts.map +0 -1
  188. package/dist/src/circuit/hop.js +0 -167
  189. package/dist/src/circuit/hop.js.map +0 -1
  190. package/dist/src/circuit/interfaces.d.ts +0 -27
  191. package/dist/src/circuit/interfaces.d.ts.map +0 -1
  192. package/dist/src/circuit/interfaces.js +0 -2
  193. package/dist/src/circuit/interfaces.js.map +0 -1
  194. package/dist/src/circuit/listener.d.ts +0 -9
  195. package/dist/src/circuit/listener.d.ts.map +0 -1
  196. package/dist/src/circuit/listener.js +0 -62
  197. package/dist/src/circuit/listener.js.map +0 -1
  198. package/dist/src/circuit/multicodec.d.ts +0 -3
  199. package/dist/src/circuit/multicodec.d.ts.map +0 -1
  200. package/dist/src/circuit/multicodec.js +0 -3
  201. package/dist/src/circuit/multicodec.js.map +0 -1
  202. package/dist/src/circuit/relay.d.ts +0 -34
  203. package/dist/src/circuit/relay.d.ts.map +0 -1
  204. package/dist/src/circuit/relay.js +0 -61
  205. package/dist/src/circuit/relay.js.map +0 -1
  206. package/dist/src/circuit/reservation-store.d.ts.map +0 -1
  207. package/dist/src/circuit/reservation-store.js +0 -59
  208. package/dist/src/circuit/reservation-store.js.map +0 -1
  209. package/dist/src/circuit/reservation-voucher.d.ts.map +0 -1
  210. package/dist/src/circuit/reservation-voucher.js.map +0 -1
  211. package/dist/src/circuit/stop.d.ts +0 -19
  212. package/dist/src/circuit/stop.d.ts.map +0 -1
  213. package/dist/src/circuit/stop.js +0 -67
  214. package/dist/src/circuit/stop.js.map +0 -1
  215. package/dist/src/circuit/transport.d.ts +0 -66
  216. package/dist/src/circuit/transport.d.ts.map +0 -1
  217. package/dist/src/circuit/transport.js +0 -238
  218. package/dist/src/circuit/transport.js.map +0 -1
  219. package/src/circuit/client.ts +0 -381
  220. package/src/circuit/hop.ts +0 -210
  221. package/src/circuit/interfaces.ts +0 -28
  222. package/src/circuit/listener.ts +0 -83
  223. package/src/circuit/multicodec.ts +0 -3
  224. package/src/circuit/relay.ts +0 -87
  225. package/src/circuit/reservation-store.ts +0 -106
  226. package/src/circuit/stop.ts +0 -92
  227. package/src/circuit/transport.ts +0 -313
  228. /package/dist/src/circuit/{reservation-voucher.d.ts → server/reservation-voucher.d.ts} +0 -0
@@ -1,167 +0,0 @@
1
- import { RecordEnvelope } from '@libp2p/peer-record';
2
- import { logger } from '@libp2p/logger';
3
- import { HopMessage, Status, StopMessage } from './pb/index.js';
4
- import { multiaddr } from '@multiformats/multiaddr';
5
- import { RELAY_V2_HOP_CODEC } from './multicodec.js';
6
- import { stop } from './stop.js';
7
- import { ReservationVoucherRecord } from './reservation-voucher.js';
8
- import { peerIdFromBytes } from '@libp2p/peer-id';
9
- import { pbStream } from 'it-pb-stream';
10
- import { CIRCUIT_PROTO_CODE, RELAY_DESTINATION_TAG } from './constants.js';
11
- import { createLimitedRelay } from './utils.js';
12
- const log = logger('libp2p:circuit:v2:hop');
13
- export async function handleHopProtocol(options) {
14
- const { stream, request } = options;
15
- log('received hop message');
16
- switch (request.type) {
17
- case HopMessage.Type.RESERVE:
18
- await handleReserve(options);
19
- break;
20
- case HopMessage.Type.CONNECT:
21
- await handleConnect(options);
22
- break;
23
- default: {
24
- log.error('invalid hop request type %s via peer %s', options.request.type, options.connection.remotePeer);
25
- stream.pb(HopMessage).write({ type: HopMessage.Type.STATUS, status: Status.UNEXPECTED_MESSAGE });
26
- }
27
- }
28
- }
29
- export async function reserve(connection) {
30
- log('requesting reservation from %s', connection.remotePeer);
31
- const stream = await connection.newStream([RELAY_V2_HOP_CODEC]);
32
- const pbstr = pbStream(stream);
33
- const hopstr = pbstr.pb(HopMessage);
34
- hopstr.write({ type: HopMessage.Type.RESERVE });
35
- let response;
36
- try {
37
- response = await hopstr.read();
38
- }
39
- catch (err) {
40
- log.error('error passing reserve message response from %s because', connection.remotePeer, err.message);
41
- stream.close();
42
- throw err;
43
- }
44
- if (response.status === Status.OK && (response.reservation != null)) {
45
- return response.reservation;
46
- }
47
- const errMsg = `reservation failed with status ${response.status ?? 'undefined'}`;
48
- log.error(errMsg);
49
- throw new Error(errMsg);
50
- }
51
- const isRelayAddr = (ma) => ma.protoCodes().includes(CIRCUIT_PROTO_CODE);
52
- async function handleReserve({ connection, stream: pbstr, relayPeer, relayAddrs, acl, reservationStore, peerStore }) {
53
- const hopstr = pbstr.pb(HopMessage);
54
- log('hop reserve request from %s', connection.remotePeer);
55
- if (isRelayAddr(connection.remoteAddr)) {
56
- log.error('relay reservation over circuit connection denied for peer: %p', connection.remotePeer);
57
- hopstr.write({ type: HopMessage.Type.STATUS, status: Status.PERMISSION_DENIED });
58
- return;
59
- }
60
- if ((await acl?.allowReserve?.(connection.remotePeer, connection.remoteAddr)) === false) {
61
- log.error('acl denied reservation to %s', connection.remotePeer);
62
- hopstr.write({ type: HopMessage.Type.STATUS, status: Status.PERMISSION_DENIED });
63
- return;
64
- }
65
- const result = await reservationStore.reserve(connection.remotePeer, connection.remoteAddr);
66
- if (result.status !== Status.OK) {
67
- hopstr.write({ type: HopMessage.Type.STATUS, status: result.status });
68
- return;
69
- }
70
- try {
71
- // tag relayed peer
72
- // result.expire is non-null if `ReservationStore.reserve` returns with status == OK
73
- if (result.expire != null) {
74
- const ttl = new Date().getTime() - result.expire;
75
- await peerStore.tagPeer(relayPeer, RELAY_DESTINATION_TAG, { value: 1, ttl });
76
- }
77
- hopstr.write({
78
- type: HopMessage.Type.STATUS,
79
- status: Status.OK,
80
- reservation: await makeReservation(relayAddrs, relayPeer, connection.remotePeer, BigInt(result.expire ?? 0)),
81
- limit: (await reservationStore.get(relayPeer))?.limit
82
- });
83
- log('sent confirmation response to %s', connection.remotePeer);
84
- }
85
- catch (err) {
86
- log.error('failed to send confirmation response to %s', connection.remotePeer);
87
- await reservationStore.removeReservation(connection.remotePeer);
88
- }
89
- }
90
- async function handleConnect(options) {
91
- const { connection, stream, request, reservationStore, connectionManager, acl } = options;
92
- const hopstr = stream.pb(HopMessage);
93
- log('hop connect request from %s', connection.remotePeer);
94
- let dstPeer;
95
- try {
96
- if (request.peer == null) {
97
- log.error('no peer info in hop connect request');
98
- throw new Error('no peer info in request');
99
- }
100
- request.peer.addrs.forEach(multiaddr);
101
- dstPeer = peerIdFromBytes(request.peer.id);
102
- }
103
- catch (err) {
104
- log.error('invalid hop connect request via peer %p %s', connection.remotePeer, err);
105
- hopstr.write({ type: HopMessage.Type.STATUS, status: Status.MALFORMED_MESSAGE });
106
- return;
107
- }
108
- if (acl?.allowConnect !== undefined) {
109
- const status = await acl.allowConnect(connection.remotePeer, connection.remoteAddr, dstPeer);
110
- if (status !== Status.OK) {
111
- log.error('hop connect denied for %s with status %s', connection.remotePeer, status);
112
- hopstr.write({ type: HopMessage.Type.STATUS, status: status });
113
- return;
114
- }
115
- }
116
- if (!await reservationStore.hasReservation(dstPeer)) {
117
- log.error('hop connect denied for %s with status %s', connection.remotePeer, Status.NO_RESERVATION);
118
- hopstr.write({ type: HopMessage.Type.STATUS, status: Status.NO_RESERVATION });
119
- return;
120
- }
121
- const connections = connectionManager.getConnections(dstPeer);
122
- if (connections.length === 0) {
123
- log('hop connect denied for %s as there is no destination connection', connection.remotePeer);
124
- hopstr.write({ type: HopMessage.Type.STATUS, status: Status.NO_RESERVATION });
125
- return;
126
- }
127
- const destinationConnection = connections[0];
128
- log('hop connect request from %s to %s is valid', connection.remotePeer, dstPeer);
129
- const destinationStream = await stop({
130
- connection: destinationConnection,
131
- request: {
132
- type: StopMessage.Type.CONNECT,
133
- peer: {
134
- id: connection.remotePeer.toBytes(),
135
- addrs: [multiaddr('/p2p/' + connection.remotePeer.toString()).bytes]
136
- }
137
- }
138
- });
139
- if (destinationStream == null) {
140
- log.error('failed to open stream to destination peer %s', destinationConnection?.remotePeer);
141
- hopstr.write({ type: HopMessage.Type.STATUS, status: Status.CONNECTION_FAILED });
142
- return;
143
- }
144
- hopstr.write({ type: HopMessage.Type.STATUS, status: Status.OK });
145
- const sourceStream = stream.unwrap();
146
- log('connection to destination established, short circuiting streams...');
147
- const limit = (await reservationStore.get(dstPeer))?.limit;
148
- // Short circuit the two streams to create the relayed connection
149
- return createLimitedRelay(sourceStream, destinationStream, limit);
150
- }
151
- async function makeReservation(relayAddrs, relayPeerId, remotePeer, expire) {
152
- const addrs = [];
153
- for (const relayAddr of relayAddrs) {
154
- addrs.push(relayAddr.bytes);
155
- }
156
- const voucher = await RecordEnvelope.seal(new ReservationVoucherRecord({
157
- peer: remotePeer,
158
- relay: relayPeerId,
159
- expiration: Number(expire)
160
- }), relayPeerId);
161
- return {
162
- addrs,
163
- expire,
164
- voucher: voucher.marshal()
165
- };
166
- }
167
- //# sourceMappingURL=hop.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hop.js","sourceRoot":"","sources":["../../../src/circuit/hop.ts"],"names":[],"mappings":"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"}
@@ -1,27 +0,0 @@
1
- import type { PeerId } from '@libp2p/interface-peer-id';
2
- import type { Multiaddr } from '@multiformats/multiaddr';
3
- import type { Limit, Status } from './pb/index.js';
4
- export type ReservationStatus = Status.OK | Status.PERMISSION_DENIED | Status.RESERVATION_REFUSED;
5
- export interface Reservation {
6
- addr: Multiaddr;
7
- expire: Date;
8
- limit?: Limit;
9
- }
10
- export interface ReservationStore {
11
- reserve: (peer: PeerId, addr: Multiaddr, limit?: Limit) => {
12
- status: ReservationStatus;
13
- expire?: number;
14
- };
15
- removeReservation: (peer: PeerId) => void;
16
- hasReservation: (dst: PeerId) => boolean;
17
- get: (peer: PeerId) => Reservation | undefined;
18
- }
19
- export type AclStatus = Status.OK | Status.RESOURCE_LIMIT_EXCEEDED | Status.PERMISSION_DENIED;
20
- export interface Acl {
21
- allowReserve: (peer: PeerId, addr: Multiaddr) => Promise<boolean>;
22
- /**
23
- * Checks if connection should be allowed
24
- */
25
- allowConnect: (src: PeerId, addr: Multiaddr, dst: PeerId) => Promise<AclStatus>;
26
- }
27
- //# sourceMappingURL=interfaces.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/circuit/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAElD,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,mBAAmB,CAAA;AAEjG,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,CAAA;IACf,MAAM,EAAE,IAAI,CAAA;IACZ,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,KAAK,KAAK;QAAC,MAAM,EAAE,iBAAiB,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAC,CAAA;IACvG,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAA;IACxC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,WAAW,GAAG,SAAS,CAAA;CAC/C;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,uBAAuB,GAAG,MAAM,CAAC,iBAAiB,CAAA;AAE7F,MAAM,WAAW,GAAG;IAClB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACjE;;OAEG;IACH,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;CAChF"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=interfaces.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/circuit/interfaces.ts"],"names":[],"mappings":""}
@@ -1,9 +0,0 @@
1
- import type { ConnectionManager } from '@libp2p/interface-connection-manager';
2
- import type { PeerStore } from '@libp2p/interface-peer-store';
3
- import type { Listener } from '@libp2p/interface-transport';
4
- export interface ListenerOptions {
5
- peerStore: PeerStore;
6
- connectionManager: ConnectionManager;
7
- }
8
- export declare function createListener(options: ListenerOptions): Listener;
9
- //# sourceMappingURL=listener.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../../src/circuit/listener.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAK3D,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,SAAS,CAAA;IACpB,iBAAiB,EAAE,iBAAiB,CAAA;CACrC;AAED,wBAAgB,cAAc,CAAE,OAAO,EAAE,eAAe,GAAG,QAAQ,CAqElE"}
@@ -1,62 +0,0 @@
1
- import { CustomEvent, EventEmitter } from '@libp2p/interfaces/events';
2
- import { peerIdFromString } from '@libp2p/peer-id';
3
- import { multiaddr } from '@multiformats/multiaddr';
4
- export function createListener(options) {
5
- const listeningAddrs = new Map();
6
- /**
7
- * Add swarm handler and listen for incoming connections
8
- */
9
- async function listen(addr) {
10
- const addrString = addr.toString().split('/p2p-circuit').find(a => a !== '');
11
- const ma = multiaddr(addrString);
12
- const relayPeerStr = ma.getPeerId();
13
- if (relayPeerStr == null) {
14
- throw new Error('Could not determine relay peer from multiaddr');
15
- }
16
- const relayPeerId = peerIdFromString(relayPeerStr);
17
- await options.peerStore.addressBook.add(relayPeerId, [ma]);
18
- const relayConn = await options.connectionManager.openConnection(relayPeerId);
19
- const relayedAddr = relayConn.remoteAddr.encapsulate('/p2p-circuit');
20
- listeningAddrs.set(relayConn.remotePeer.toString(), relayedAddr);
21
- listener.dispatchEvent(new CustomEvent('listening'));
22
- }
23
- /**
24
- * Get fixed up multiaddrs
25
- *
26
- * NOTE: This method will grab the peers multiaddrs and expand them such that:
27
- *
28
- * a) If it's an existing /p2p-circuit address for a specific relay i.e.
29
- * `/ip4/0.0.0.0/tcp/0/ipfs/QmRelay/p2p-circuit` this method will expand the
30
- * address to `/ip4/0.0.0.0/tcp/0/ipfs/QmRelay/p2p-circuit/ipfs/QmPeer` where
31
- * `QmPeer` is this peers id
32
- * b) If it's not a /p2p-circuit address, it will encapsulate the address as a /p2p-circuit
33
- * addr, such when dialing over a relay with this address, it will create the circuit using
34
- * the encapsulated transport address. This is useful when for example, a peer should only
35
- * be dialed over TCP rather than any other transport
36
- *
37
- * @returns {Multiaddr[]}
38
- */
39
- function getAddrs() {
40
- const addrs = [];
41
- for (const addr of listeningAddrs.values()) {
42
- addrs.push(addr);
43
- }
44
- return addrs;
45
- }
46
- const listener = Object.assign(new EventEmitter(), {
47
- close: async () => await Promise.resolve(),
48
- listen,
49
- getAddrs
50
- });
51
- // Remove listeningAddrs when a peer disconnects
52
- options.connectionManager.addEventListener('peer:disconnect', (evt) => {
53
- const { detail: connection } = evt;
54
- const deleted = listeningAddrs.delete(connection.remotePeer.toString());
55
- if (deleted) {
56
- // Announce listen addresses change
57
- listener.dispatchEvent(new CustomEvent('close'));
58
- }
59
- });
60
- return listener;
61
- }
62
- //# sourceMappingURL=listener.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"listener.js","sourceRoot":"","sources":["../../../src/circuit/listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAIrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAOnD,MAAM,UAAU,cAAc,CAAE,OAAwB;IACtD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAE,CAAA;IAEhC;;OAEG;IACH,KAAK,UAAU,MAAM,CAAE,IAAe;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;QAC5E,MAAM,EAAE,GAAG,SAAS,CAAC,UAAU,CAAC,CAAA;QAEhC,MAAM,YAAY,GAAG,EAAE,CAAC,SAAS,EAAE,CAAA;QAEnC,IAAI,YAAY,IAAI,IAAI,EAAE;YACxB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;SACjE;QAED,MAAM,WAAW,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAA;QAElD,MAAM,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAE1D,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;QAC7E,MAAM,WAAW,GAAG,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,cAAc,CAAC,CAAA;QAEpE,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,WAAW,CAAC,CAAA;QAChE,QAAQ,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC,CAAA;IACtD,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,SAAS,QAAQ;QACf,MAAM,KAAK,GAAG,EAAE,CAAA;QAChB,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,MAAM,EAAE,EAAE;YAC1C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;SACjB;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,QAAQ,GAAa,MAAM,CAAC,MAAM,CAAC,IAAI,YAAY,EAAE,EAAE;QAC3D,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE;QAC1C,MAAM;QACN,QAAQ;KACT,CAAC,CAAA;IAEF,gDAAgD;IAChD,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE;QACpE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,CAAA;QAClC,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAA;QAEvE,IAAI,OAAO,EAAE;YACX,mCAAmC;YACnC,QAAQ,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,CAAA;SACjD;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAA;AACjB,CAAC"}
@@ -1,3 +0,0 @@
1
- export declare const RELAY_V2_HOP_CODEC = "/libp2p/circuit/relay/0.2.0/hop";
2
- export declare const RELAY_V2_STOP_CODEC = "/libp2p/circuit/relay/0.2.0/stop";
3
- //# sourceMappingURL=multicodec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"multicodec.d.ts","sourceRoot":"","sources":["../../../src/circuit/multicodec.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,kBAAkB,oCAAoC,CAAA;AACnE,eAAO,MAAM,mBAAmB,qCAAqC,CAAA"}
@@ -1,3 +0,0 @@
1
- export const RELAY_V2_HOP_CODEC = '/libp2p/circuit/relay/0.2.0/hop';
2
- export const RELAY_V2_STOP_CODEC = '/libp2p/circuit/relay/0.2.0/stop';
3
- //# sourceMappingURL=multicodec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"multicodec.js","sourceRoot":"","sources":["../../../src/circuit/multicodec.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,kBAAkB,GAAG,iCAAiC,CAAA;AACnE,MAAM,CAAC,MAAM,mBAAmB,GAAG,kCAAkC,CAAA"}
@@ -1,34 +0,0 @@
1
- import type { AddressSorter } from '@libp2p/interface-peer-store';
2
- import type { Startable } from '@libp2p/interfaces/startable';
3
- import type { Components } from '../components.js';
4
- import type { HopConfig, RelayAdvertiseConfig } from './index.js';
5
- export interface RelayInit {
6
- addressSorter?: AddressSorter;
7
- maxListeners?: number;
8
- hop: HopConfig;
9
- advertise: RelayAdvertiseConfig;
10
- }
11
- export declare class Relay implements Startable {
12
- private readonly components;
13
- private readonly init;
14
- private timeout?;
15
- private started;
16
- /**
17
- * Creates an instance of Relay
18
- */
19
- constructor(components: Components, init: RelayInit);
20
- isStarted(): boolean;
21
- /**
22
- * Start Relay service
23
- */
24
- start(): Promise<void>;
25
- /**
26
- * Stop Relay service
27
- */
28
- stop(): Promise<void>;
29
- /**
30
- * Advertise hop relay service in the network.
31
- */
32
- _advertiseService(): Promise<void>;
33
- }
34
- //# sourceMappingURL=relay.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../../../src/circuit/relay.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAIjE,MAAM,WAAW,SAAS;IACxB,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,GAAG,EAAE,SAAS,CAAA;IACd,SAAS,EAAE,oBAAoB,CAAA;CAChC;AAED,qBAAa,KAAM,YAAW,SAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;IAChC,OAAO,CAAC,OAAO,CAAC,CAAK;IACrB,OAAO,CAAC,OAAO,CAAS;IAExB;;OAEG;gBACU,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS;IAOpD,SAAS;IAIT;;OAEG;IACG,KAAK;IAWX;;OAEG;IACG,IAAI;IAQV;;OAEG;IACG,iBAAiB;CAaxB"}
@@ -1,61 +0,0 @@
1
- import { logger } from '@libp2p/logger';
2
- import { codes } from '../errors.js';
3
- import { setDelayedInterval, clearDelayedInterval
4
- // @ts-expect-error set-delayed-interval does not export types
5
- } from 'set-delayed-interval';
6
- import { namespaceToCid } from './utils.js';
7
- import { RELAY_RENDEZVOUS_NS } from './constants.js';
8
- const log = logger('libp2p:circuit:relay');
9
- export class Relay {
10
- /**
11
- * Creates an instance of Relay
12
- */
13
- constructor(components, init) {
14
- this.components = components;
15
- this.started = false;
16
- this.init = init;
17
- this._advertiseService = this._advertiseService.bind(this);
18
- }
19
- isStarted() {
20
- return this.started;
21
- }
22
- /**
23
- * Start Relay service
24
- */
25
- async start() {
26
- // Advertise service if HOP enabled and advertising enabled
27
- if (this.init.hop.enabled === true && this.init.advertise.enabled === true) {
28
- this.timeout = setDelayedInterval(this._advertiseService, this.init.advertise.ttl, this.init.advertise.bootDelay);
29
- }
30
- this.started = true;
31
- }
32
- /**
33
- * Stop Relay service
34
- */
35
- async stop() {
36
- try {
37
- clearDelayedInterval(this.timeout);
38
- }
39
- catch (err) { }
40
- this.started = false;
41
- }
42
- /**
43
- * Advertise hop relay service in the network.
44
- */
45
- async _advertiseService() {
46
- try {
47
- const cid = await namespaceToCid(RELAY_RENDEZVOUS_NS);
48
- await this.components.contentRouting.provide(cid);
49
- }
50
- catch (err) {
51
- if (err.code === codes.ERR_NO_ROUTERS_AVAILABLE) {
52
- log.error('a content router, such as a DHT, must be provided in order to advertise the relay service', err);
53
- await this.stop();
54
- }
55
- else {
56
- log.error('could not advertise service: ', err);
57
- }
58
- }
59
- }
60
- }
61
- //# sourceMappingURL=relay.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"relay.js","sourceRoot":"","sources":["../../../src/circuit/relay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,EACL,kBAAkB,EAClB,oBAAoB;AACpB,8DAA8D;EAC/D,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EACL,mBAAmB,EACpB,MAAM,gBAAgB,CAAA;AAMvB,MAAM,GAAG,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAA;AAS1C,MAAM,OAAO,KAAK;IAMhB;;OAEG;IACH,YAAa,UAAsB,EAAE,IAAe;QAClD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC5D,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,2DAA2D;QAC3D,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,KAAK,IAAI,EAAE;YAC1E,IAAI,CAAC,OAAO,GAAG,kBAAkB,CAC/B,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAC/E,CAAA;SACF;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI;YACF,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;SACnC;QAAC,OAAO,GAAG,EAAE,GAAG;QAEjB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;IACtB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB;QACrB,IAAI;YACF,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,mBAAmB,CAAC,CAAA;YACrD,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;SAClD;QAAC,OAAO,GAAQ,EAAE;YACjB,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,wBAAwB,EAAE;gBAC/C,GAAG,CAAC,KAAK,CAAC,2FAA2F,EAAE,GAAG,CAAC,CAAA;gBAC3G,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;aAClB;iBAAM;gBACL,GAAG,CAAC,KAAK,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAA;aAChD;SACF;IACH,CAAC;CACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"reservation-store.d.ts","sourceRoot":"","sources":["../../../src/circuit/reservation-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAU,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,EAAE,gBAAgB,IAAI,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC5G,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAE7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAG1D,MAAM,WAAW,oBAAoB;IAInC,eAAe,EAAE,MAAM,CAAA;IAIvB,wBAAwB,EAAE,MAAM,CAAA;IAIhC,iBAAiB,EAAE,OAAO,CAAA;IAC1B;;OAEG;IACH,cAAc,EAAE,MAAM,CAAA;IACtB;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,oBAAoB,CAAC,CAAA;AAE5E,qBAAa,gBAAiB,YAAW,iBAAiB,EAAE,SAAS;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsB;gBAE9B,OAAO,CAAC,EAAE,uBAAuB;IAW9C,SAAS;IAIT,KAAK;IAkBL,IAAI;IAIJ,OAAO,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG;QAAE,MAAM,EAAE,iBAAiB,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAatG,iBAAiB,CAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAItC,cAAc,CAAE,GAAG,EAAE,MAAM,GAAG,OAAO;IAIrC,GAAG,CAAE,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;CAG5C"}
@@ -1,59 +0,0 @@
1
- import { Status } from './pb/index.js';
2
- import { PeerMap } from '@libp2p/peer-collections';
3
- import { DEFAULT_DATA_LIMIT, DEFAULT_DURATION_LIMIT } from './constants.js';
4
- export class ReservationStore {
5
- constructor(options) {
6
- this.reservations = new PeerMap();
7
- this._started = false;
8
- this.init = {
9
- maxReservations: options?.maxReservations ?? 15,
10
- reservationClearInterval: options?.reservationClearInterval ?? 300 * 1000,
11
- applyDefaultLimit: options?.applyDefaultLimit !== false,
12
- reservationTtl: options?.reservationTtl ?? 2 * 60 * 60 * 1000,
13
- defaultDurationLimit: options?.defaultDurationLimit ?? DEFAULT_DURATION_LIMIT,
14
- defaultDataLimit: options?.defaultDataLimit ?? DEFAULT_DATA_LIMIT
15
- };
16
- }
17
- isStarted() {
18
- return this._started;
19
- }
20
- start() {
21
- if (this._started) {
22
- return;
23
- }
24
- this._started = true;
25
- this.interval = setInterval(() => {
26
- const now = (new Date()).getTime();
27
- this.reservations.forEach((r, k) => {
28
- if (r.expire.getTime() < now) {
29
- this.reservations.delete(k);
30
- }
31
- });
32
- }, this.init.reservationClearInterval);
33
- }
34
- stop() {
35
- clearInterval(this.interval);
36
- }
37
- reserve(peer, addr, limit) {
38
- if (this.reservations.size >= this.init.maxReservations && !this.reservations.has(peer)) {
39
- return { status: Status.RESERVATION_REFUSED };
40
- }
41
- const expire = new Date(Date.now() + this.init.reservationTtl);
42
- let checkedLimit;
43
- if (this.init.applyDefaultLimit) {
44
- checkedLimit = limit ?? { data: this.init.defaultDataLimit, duration: this.init.defaultDurationLimit };
45
- }
46
- this.reservations.set(peer, { addr, expire, limit: checkedLimit });
47
- return { status: Status.OK, expire: expire.getTime() };
48
- }
49
- removeReservation(peer) {
50
- this.reservations.delete(peer);
51
- }
52
- hasReservation(dst) {
53
- return this.reservations.has(dst);
54
- }
55
- get(peer) {
56
- return this.reservations.get(peer);
57
- }
58
- }
59
- //# sourceMappingURL=reservation-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reservation-store.js","sourceRoot":"","sources":["../../../src/circuit/reservation-store.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"reservation-voucher.d.ts","sourceRoot":"","sources":["../../../src/circuit/reservation-voucher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AAGtD,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,qBAAa,wBAAyB,YAAW,MAAM;IACrD,SAAgB,MAAM,uBAAsB;IAC5C,SAAgB,KAAK,aAA+B;IAEpD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;gBAEtB,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,yBAAyB;IAMnE,OAAO;IAQP,MAAM,CAAE,KAAK,EAAE,MAAM;CAkBtB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"reservation-voucher.js","sourceRoot":"","sources":["../../../src/circuit/reservation-voucher.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAQlD,MAAM,OAAO,wBAAwB;IAQnC,YAAa,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAA6B;QAPnD,WAAM,GAAG,mBAAmB,CAAA;QAC5B,UAAK,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;QAOlD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAED,OAAO;QACL,OAAO,kBAAkB,CAAC,MAAM,CAAC;YAC/B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;YAC3B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACzB,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;SACpC,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,CAAE,KAAa;QACnB,IAAI,CAAC,CAAC,KAAK,YAAY,wBAAwB,CAAC,EAAE;YAChD,OAAO,KAAK,CAAA;SACb;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YACjC,OAAO,KAAK,CAAA;SACb;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACnC,OAAO,KAAK,CAAA;SACb;QAED,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,EAAE;YACxC,OAAO,KAAK,CAAA;SACb;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
@@ -1,19 +0,0 @@
1
- import { StopMessage } from './pb/index.js';
2
- import type { Connection, Stream } from '@libp2p/interface-connection';
3
- import { ProtobufStream } from 'it-pb-stream';
4
- export interface HandleStopOptions {
5
- connection: Connection;
6
- request: StopMessage;
7
- pbstr: ProtobufStream<Stream>;
8
- }
9
- export declare function handleStop({ connection, request, pbstr }: HandleStopOptions): Promise<Stream | undefined>;
10
- export interface StopOptions {
11
- connection: Connection;
12
- request: StopMessage;
13
- }
14
- /**
15
- * Creates a STOP request
16
- *
17
- */
18
- export declare function stop({ connection, request }: StopOptions): Promise<Stream | undefined>;
19
- //# sourceMappingURL=stop.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../../src/circuit/stop.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,WAAW,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAKtE,OAAO,EAAY,cAAc,EAAE,MAAM,cAAc,CAAA;AAIvD,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,WAAW,CAAA;IACpB,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,CAAA;CAC9B;AAaD,wBAAsB,UAAU,CAAE,EAChC,UAAU,EACV,OAAO,EACP,KAAK,EACN,EAAE,iBAAiB,+BAoBnB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,WAAW,CAAA;CACrB;AAED;;;GAGG;AACH,wBAAsB,IAAI,CAAE,EAC1B,UAAU,EACV,OAAO,EACR,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAyB3C"}
@@ -1,67 +0,0 @@
1
- import { Status, StopMessage } from './pb/index.js';
2
- import { logger } from '@libp2p/logger';
3
- import { RELAY_V2_STOP_CODEC } from './multicodec.js';
4
- import { multiaddr } from '@multiformats/multiaddr';
5
- import { pbStream } from 'it-pb-stream';
6
- const log = logger('libp2p:circuit:v2:stop');
7
- const isValidStop = (request) => {
8
- if (request.peer == null) {
9
- return false;
10
- }
11
- try {
12
- request.peer.addrs.forEach(multiaddr);
13
- }
14
- catch (_err) {
15
- return false;
16
- }
17
- return true;
18
- };
19
- export async function handleStop({ connection, request, pbstr }) {
20
- const stopstr = pbstr.pb(StopMessage);
21
- log('new circuit relay v2 stop stream from %s', connection.remotePeer);
22
- // Validate the STOP request has the required input
23
- if (request.type !== StopMessage.Type.CONNECT) {
24
- log.error('invalid stop connect request via peer %s', connection.remotePeer);
25
- stopstr.write({ type: StopMessage.Type.STATUS, status: Status.UNEXPECTED_MESSAGE });
26
- return;
27
- }
28
- if (!isValidStop(request)) {
29
- log.error('invalid stop connect request via peer %s', connection.remotePeer);
30
- stopstr.write({ type: StopMessage.Type.STATUS, status: Status.MALFORMED_MESSAGE });
31
- return;
32
- }
33
- // TODO: go-libp2p marks connection transient if there is limit field present in request.
34
- // Cannot find any reference to transient connections in js-libp2p
35
- stopstr.write({ type: StopMessage.Type.STATUS, status: Status.OK });
36
- return pbstr.unwrap();
37
- }
38
- /**
39
- * Creates a STOP request
40
- *
41
- */
42
- export async function stop({ connection, request }) {
43
- const stream = await connection.newStream([RELAY_V2_STOP_CODEC]);
44
- log('starting circuit relay v2 stop request to %s', connection.remotePeer);
45
- const pbstr = pbStream(stream);
46
- const stopstr = pbstr.pb(StopMessage);
47
- stopstr.write(request);
48
- let response;
49
- try {
50
- response = await stopstr.read();
51
- }
52
- catch (err) {
53
- log.error('error parsing stop message response from %s', connection.remotePeer);
54
- }
55
- if (response == null) {
56
- log.error('could not read response from %s', connection.remotePeer);
57
- stream.close();
58
- return;
59
- }
60
- if (response.status === Status.OK) {
61
- log('stop request to %s was successful', connection.remotePeer);
62
- return pbstr.unwrap();
63
- }
64
- log('stop request failed with code %d', response.status);
65
- stream.close();
66
- }
67
- //# sourceMappingURL=stop.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../src/circuit/stop.ts"],"names":[],"mappings":"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"}