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.
- package/dist/index.min.js +30 -30
- package/dist/src/address-manager/index.d.ts +1 -10
- package/dist/src/address-manager/index.d.ts.map +1 -1
- package/dist/src/address-manager/index.js +46 -29
- package/dist/src/address-manager/index.js.map +1 -1
- package/dist/src/autonat/constants.d.ts +4 -0
- package/dist/src/autonat/constants.d.ts.map +1 -0
- package/dist/src/autonat/constants.js +4 -0
- package/dist/src/autonat/constants.js.map +1 -0
- package/dist/src/autonat/index.d.ts +64 -0
- package/dist/src/autonat/index.d.ts.map +1 -0
- package/dist/src/autonat/index.js +417 -0
- package/dist/src/autonat/index.js.map +1 -0
- package/dist/src/autonat/pb/index.d.ts +57 -0
- package/dist/src/autonat/pb/index.d.ts.map +1 -0
- package/dist/src/autonat/pb/index.js +250 -0
- package/dist/src/autonat/pb/index.js.map +1 -0
- package/dist/src/circuit/constants.d.ts +29 -3
- package/dist/src/circuit/constants.d.ts.map +1 -1
- package/dist/src/circuit/constants.js +32 -5
- package/dist/src/circuit/constants.js.map +1 -1
- package/dist/src/circuit/index.d.ts +16 -61
- package/dist/src/circuit/index.d.ts.map +1 -1
- package/dist/src/circuit/index.js +2 -1
- package/dist/src/circuit/index.js.map +1 -1
- package/dist/src/circuit/server/advert-service.d.ts +43 -0
- package/dist/src/circuit/server/advert-service.d.ts.map +1 -0
- package/dist/src/circuit/server/advert-service.js +69 -0
- package/dist/src/circuit/server/advert-service.js.map +1 -0
- package/dist/src/circuit/server/index.d.ts +60 -0
- package/dist/src/circuit/server/index.d.ts.map +1 -0
- package/dist/src/circuit/server/index.js +287 -0
- package/dist/src/circuit/server/index.js.map +1 -0
- package/dist/src/circuit/{reservation-store.d.ts → server/reservation-store.d.ts} +17 -10
- package/dist/src/circuit/server/reservation-store.d.ts.map +1 -0
- package/dist/src/circuit/server/reservation-store.js +57 -0
- package/dist/src/circuit/server/reservation-store.js.map +1 -0
- package/dist/src/circuit/server/reservation-voucher.d.ts.map +1 -0
- package/dist/src/circuit/{reservation-voucher.js → server/reservation-voucher.js} +1 -1
- package/dist/src/circuit/server/reservation-voucher.js.map +1 -0
- package/dist/src/circuit/transport/discovery.d.ts +45 -0
- package/dist/src/circuit/transport/discovery.d.ts.map +1 -0
- package/dist/src/circuit/transport/discovery.js +82 -0
- package/dist/src/circuit/transport/discovery.js.map +1 -0
- package/dist/src/circuit/transport/index.d.ts +33 -0
- package/dist/src/circuit/transport/index.d.ts.map +1 -0
- package/dist/src/circuit/transport/index.js +225 -0
- package/dist/src/circuit/transport/index.js.map +1 -0
- package/dist/src/circuit/transport/listener.d.ts +9 -0
- package/dist/src/circuit/transport/listener.d.ts.map +1 -0
- package/dist/src/circuit/transport/listener.js +76 -0
- package/dist/src/circuit/transport/listener.js.map +1 -0
- package/dist/src/circuit/transport/reservation-store.d.ts +60 -0
- package/dist/src/circuit/transport/reservation-store.d.ts.map +1 -0
- package/dist/src/circuit/transport/reservation-store.js +165 -0
- package/dist/src/circuit/transport/reservation-store.js.map +1 -0
- package/dist/src/circuit/utils.d.ts +4 -2
- package/dist/src/circuit/utils.d.ts.map +1 -1
- package/dist/src/circuit/utils.js +75 -102
- package/dist/src/circuit/utils.js.map +1 -1
- package/dist/src/components.d.ts +2 -1
- package/dist/src/components.d.ts.map +1 -1
- package/dist/src/components.js.map +1 -1
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +17 -20
- package/dist/src/config.js.map +1 -1
- package/dist/src/connection/index.d.ts +2 -2
- package/dist/src/connection/index.d.ts.map +1 -1
- package/dist/src/connection/index.js +1 -1
- package/dist/src/connection/index.js.map +1 -1
- package/dist/src/connection-manager/auto-dialler.d.ts +0 -4
- package/dist/src/connection-manager/auto-dialler.d.ts.map +1 -1
- package/dist/src/connection-manager/auto-dialler.js +0 -9
- package/dist/src/connection-manager/auto-dialler.js.map +1 -1
- package/dist/src/connection-manager/dialer/dial-request.js +1 -1
- package/dist/src/connection-manager/dialer/dial-request.js.map +1 -1
- package/dist/src/connection-manager/dialer/index.d.ts +2 -1
- package/dist/src/connection-manager/dialer/index.d.ts.map +1 -1
- package/dist/src/connection-manager/dialer/index.js +3 -3
- package/dist/src/connection-manager/dialer/index.js.map +1 -1
- package/dist/src/connection-manager/index.d.ts +0 -4
- package/dist/src/connection-manager/index.d.ts.map +1 -1
- package/dist/src/connection-manager/index.js +1 -1
- package/dist/src/connection-manager/index.js.map +1 -1
- package/dist/src/connection-manager/latency-monitor.d.ts.map +1 -1
- package/dist/src/connection-manager/latency-monitor.js +1 -1
- package/dist/src/connection-manager/latency-monitor.js.map +1 -1
- package/dist/src/connection-manager/visibility-change-emitter.d.ts.map +1 -1
- package/dist/src/content-routing/index.d.ts +6 -4
- package/dist/src/content-routing/index.d.ts.map +1 -1
- package/dist/src/content-routing/index.js +1 -1
- package/dist/src/content-routing/index.js.map +1 -1
- package/dist/src/content-routing/utils.d.ts +3 -3
- package/dist/src/content-routing/utils.d.ts.map +1 -1
- package/dist/src/dht/dht-content-routing.d.ts +2 -1
- package/dist/src/dht/dht-content-routing.d.ts.map +1 -1
- package/dist/src/dht/dht-content-routing.js.map +1 -1
- package/dist/src/dht/dht-peer-routing.d.ts +3 -2
- package/dist/src/dht/dht-peer-routing.d.ts.map +1 -1
- package/dist/src/dht/dht-peer-routing.js.map +1 -1
- package/dist/src/dht/dummy-dht.d.ts +1 -1
- package/dist/src/dht/dummy-dht.d.ts.map +1 -1
- package/dist/src/fetch/index.d.ts.map +1 -1
- package/dist/src/identify/index.d.ts +3 -1
- package/dist/src/identify/index.d.ts.map +1 -1
- package/dist/src/identify/index.js +12 -7
- package/dist/src/identify/index.js.map +1 -1
- package/dist/src/index.d.ts +13 -7
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/insecure/index.d.ts.map +1 -1
- package/dist/src/insecure/index.js.map +1 -1
- package/dist/src/libp2p.d.ts +6 -4
- package/dist/src/libp2p.d.ts.map +1 -1
- package/dist/src/libp2p.js +19 -28
- package/dist/src/libp2p.js.map +1 -1
- package/dist/src/nat-manager.d.ts.map +1 -1
- package/dist/src/nat-manager.js +3 -1
- package/dist/src/nat-manager.js.map +1 -1
- package/dist/src/peer-record-updater.d.ts.map +1 -1
- package/dist/src/peer-routing.d.ts.map +1 -1
- package/dist/src/ping/index.d.ts.map +1 -1
- package/dist/src/pnet/crypto.d.ts +1 -1
- package/dist/src/pnet/crypto.d.ts.map +1 -1
- package/dist/src/pnet/crypto.js +1 -1
- package/dist/src/pnet/crypto.js.map +1 -1
- package/dist/src/pnet/key-generator.d.ts.map +1 -1
- package/dist/src/registrar.d.ts.map +1 -1
- package/dist/src/transport-manager.d.ts.map +1 -1
- package/dist/src/transport-manager.js +1 -1
- package/dist/src/transport-manager.js.map +1 -1
- package/dist/src/upgrader.d.ts +2 -1
- package/dist/src/upgrader.d.ts.map +1 -1
- package/dist/src/upgrader.js +19 -14
- package/dist/src/upgrader.js.map +1 -1
- package/package.json +23 -18
- package/src/address-manager/index.ts +62 -35
- package/src/autonat/constants.ts +4 -0
- package/src/autonat/index.ts +567 -0
- package/src/autonat/pb/index.proto +35 -0
- package/src/autonat/pb/index.ts +320 -0
- package/src/circuit/constants.ts +40 -5
- package/src/circuit/index.ts +17 -67
- package/src/circuit/server/advert-service.ts +108 -0
- package/src/circuit/server/index.ts +421 -0
- package/src/circuit/server/reservation-store.ts +111 -0
- package/src/circuit/{reservation-voucher.ts → server/reservation-voucher.ts} +3 -3
- package/src/circuit/transport/discovery.ts +127 -0
- package/src/circuit/transport/index.ts +325 -0
- package/src/circuit/transport/listener.ts +99 -0
- package/src/circuit/transport/reservation-store.ts +249 -0
- package/src/circuit/utils.ts +78 -115
- package/src/components.ts +9 -8
- package/src/config.ts +17 -20
- package/src/connection/index.ts +7 -7
- package/src/connection-manager/auto-dialler.ts +4 -20
- package/src/connection-manager/dialer/dial-request.ts +1 -1
- package/src/connection-manager/dialer/index.ts +10 -9
- package/src/connection-manager/index.ts +14 -19
- package/src/connection-manager/latency-monitor.ts +9 -9
- package/src/connection-manager/visibility-change-emitter.ts +4 -4
- package/src/content-routing/index.ts +10 -8
- package/src/content-routing/utils.ts +3 -3
- package/src/dht/dht-content-routing.ts +3 -2
- package/src/dht/dht-peer-routing.ts +3 -2
- package/src/dht/dummy-dht.ts +1 -1
- package/src/fetch/index.ts +7 -7
- package/src/identify/index.ts +22 -17
- package/src/index.ts +14 -7
- package/src/insecure/index.ts +2 -1
- package/src/libp2p.ts +33 -41
- package/src/nat-manager.ts +9 -7
- package/src/peer-record-updater.ts +4 -4
- package/src/peer-routing.ts +4 -4
- package/src/ping/index.ts +4 -4
- package/src/pnet/crypto.ts +3 -3
- package/src/pnet/key-generator.ts +1 -1
- package/src/registrar.ts +8 -8
- package/src/transport-manager.ts +10 -10
- package/src/upgrader.ts +20 -19
- package/src/version.ts +1 -1
- package/dist/src/circuit/client.d.ts +0 -81
- package/dist/src/circuit/client.d.ts.map +0 -1
- package/dist/src/circuit/client.js +0 -285
- package/dist/src/circuit/client.js.map +0 -1
- package/dist/src/circuit/hop.d.ts +0 -23
- package/dist/src/circuit/hop.d.ts.map +0 -1
- package/dist/src/circuit/hop.js +0 -167
- package/dist/src/circuit/hop.js.map +0 -1
- package/dist/src/circuit/interfaces.d.ts +0 -27
- package/dist/src/circuit/interfaces.d.ts.map +0 -1
- package/dist/src/circuit/interfaces.js +0 -2
- package/dist/src/circuit/interfaces.js.map +0 -1
- package/dist/src/circuit/listener.d.ts +0 -9
- package/dist/src/circuit/listener.d.ts.map +0 -1
- package/dist/src/circuit/listener.js +0 -62
- package/dist/src/circuit/listener.js.map +0 -1
- package/dist/src/circuit/multicodec.d.ts +0 -3
- package/dist/src/circuit/multicodec.d.ts.map +0 -1
- package/dist/src/circuit/multicodec.js +0 -3
- package/dist/src/circuit/multicodec.js.map +0 -1
- package/dist/src/circuit/relay.d.ts +0 -34
- package/dist/src/circuit/relay.d.ts.map +0 -1
- package/dist/src/circuit/relay.js +0 -61
- package/dist/src/circuit/relay.js.map +0 -1
- package/dist/src/circuit/reservation-store.d.ts.map +0 -1
- package/dist/src/circuit/reservation-store.js +0 -59
- package/dist/src/circuit/reservation-store.js.map +0 -1
- package/dist/src/circuit/reservation-voucher.d.ts.map +0 -1
- package/dist/src/circuit/reservation-voucher.js.map +0 -1
- package/dist/src/circuit/stop.d.ts +0 -19
- package/dist/src/circuit/stop.d.ts.map +0 -1
- package/dist/src/circuit/stop.js +0 -67
- package/dist/src/circuit/stop.js.map +0 -1
- package/dist/src/circuit/transport.d.ts +0 -66
- package/dist/src/circuit/transport.d.ts.map +0 -1
- package/dist/src/circuit/transport.js +0 -238
- package/dist/src/circuit/transport.js.map +0 -1
- package/src/circuit/client.ts +0 -381
- package/src/circuit/hop.ts +0 -210
- package/src/circuit/interfaces.ts +0 -28
- package/src/circuit/listener.ts +0 -83
- package/src/circuit/multicodec.ts +0 -3
- package/src/circuit/relay.ts +0 -87
- package/src/circuit/reservation-store.ts +0 -106
- package/src/circuit/stop.ts +0 -92
- package/src/circuit/transport.ts +0 -313
- /package/dist/src/circuit/{reservation-voucher.d.ts → server/reservation-voucher.d.ts} +0 -0
package/dist/src/circuit/hop.js
DELETED
|
@@ -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 +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 +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 +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"}
|
package/dist/src/circuit/stop.js
DELETED
|
@@ -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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"}
|