libp2p 0.42.2 → 0.43.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/dist/index.min.js +29 -29
- 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 +31 -6
- package/dist/src/circuit/constants.d.ts.map +1 -1
- package/dist/src/circuit/constants.js +37 -7
- 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 -68
- package/dist/src/circuit/index.js.map +1 -1
- package/dist/src/circuit/pb/index.d.ts +83 -43
- package/dist/src/circuit/pb/index.d.ts.map +1 -1
- package/dist/src/circuit/pb/index.js +363 -127
- package/dist/src/circuit/pb/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/server/reservation-store.d.ts +49 -0
- 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 +18 -0
- package/dist/src/circuit/server/reservation-voucher.d.ts.map +1 -0
- package/dist/src/circuit/server/reservation-voucher.js +33 -0
- 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 +7 -0
- package/dist/src/circuit/utils.d.ts.map +1 -1
- package/dist/src/circuit/utils.js +87 -0
- 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 +13 -13
- package/dist/src/components.js.map +1 -1
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +21 -25
- 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 +4 -4
- 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 +18 -18
- package/dist/src/connection-manager/auto-dialler.js.map +1 -1
- package/dist/src/connection-manager/dialer/dial-request.d.ts.map +1 -1
- package/dist/src/connection-manager/dialer/dial-request.js +13 -6
- package/dist/src/connection-manager/dialer/dial-request.js.map +1 -1
- package/dist/src/connection-manager/dialer/index.d.ts +10 -1
- package/dist/src/connection-manager/dialer/index.d.ts.map +1 -1
- package/dist/src/connection-manager/dialer/index.js +24 -9
- package/dist/src/connection-manager/dialer/index.js.map +1 -1
- package/dist/src/connection-manager/index.d.ts +1 -4
- package/dist/src/connection-manager/index.d.ts.map +1 -1
- package/dist/src/connection-manager/index.js +8 -5
- 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 +9 -9
- 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/content-routing/utils.js +2 -2
- package/dist/src/content-routing/utils.js.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 +2 -2
- 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 +2 -2
- 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/dht/dummy-dht.js +12 -12
- package/dist/src/dht/dummy-dht.js.map +1 -1
- package/dist/src/errors.d.ts +2 -1
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +1 -0
- package/dist/src/errors.js.map +1 -1
- package/dist/src/fetch/index.d.ts.map +1 -1
- package/dist/src/fetch/index.js +6 -6
- package/dist/src/fetch/index.js.map +1 -1
- package/dist/src/fetch/pb/proto.d.ts +3 -3
- package/dist/src/fetch/pb/proto.d.ts.map +1 -1
- package/dist/src/fetch/pb/proto.js +4 -3
- package/dist/src/fetch/pb/proto.js.map +1 -1
- package/dist/src/get-peer.js +2 -2
- package/dist/src/get-peer.js.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 +19 -14
- package/dist/src/identify/index.js.map +1 -1
- package/dist/src/identify/pb/message.d.ts +2 -2
- package/dist/src/identify/pb/message.d.ts.map +1 -1
- package/dist/src/identify/pb/message.js +1 -0
- package/dist/src/identify/pb/message.js.map +1 -1
- package/dist/src/index.d.ts +14 -8
- 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/insecure/pb/proto.d.ts +3 -3
- package/dist/src/insecure/pb/proto.d.ts.map +1 -1
- package/dist/src/insecure/pb/proto.js +4 -5
- package/dist/src/insecure/pb/proto.js.map +1 -1
- package/dist/src/libp2p.d.ts +7 -3
- package/dist/src/libp2p.d.ts.map +1 -1
- package/dist/src/libp2p.js +35 -35
- package/dist/src/libp2p.js.map +1 -1
- package/dist/src/nat-manager.d.ts.map +1 -1
- package/dist/src/nat-manager.js +5 -3
- 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/peer-routing.js +5 -5
- package/dist/src/peer-routing.js.map +1 -1
- package/dist/src/ping/index.d.ts.map +1 -1
- package/dist/src/ping/index.js +2 -2
- package/dist/src/ping/index.js.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/index.js +3 -3
- package/dist/src/pnet/index.js.map +1 -1
- package/dist/src/pnet/key-generator.d.ts.map +1 -1
- package/dist/src/pubsub/dummy-pubsub.js +9 -9
- package/dist/src/pubsub/dummy-pubsub.js.map +1 -1
- package/dist/src/registrar.d.ts.map +1 -1
- package/dist/src/registrar.js +4 -4
- package/dist/src/registrar.js.map +1 -1
- package/dist/src/transport-manager.d.ts.map +1 -1
- package/dist/src/transport-manager.js +8 -9
- 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 +38 -33
- package/dist/src/upgrader.js.map +1 -1
- package/dist/typedoc-urls.json +19 -6
- package/package.json +36 -33
- 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 +48 -7
- package/src/circuit/index.ts +17 -129
- package/src/circuit/pb/index.proto +57 -32
- package/src/circuit/pb/index.ts +448 -138
- 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/server/reservation-voucher.ts +51 -0
- 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 +108 -0
- package/src/components.ts +22 -21
- package/src/config.ts +21 -25
- package/src/connection/index.ts +10 -10
- package/src/connection-manager/auto-dialler.ts +36 -40
- package/src/connection-manager/dialer/dial-request.ts +13 -6
- package/src/connection-manager/dialer/index.ts +34 -15
- package/src/connection-manager/index.ts +22 -23
- 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 +18 -16
- package/src/content-routing/utils.ts +5 -5
- package/src/dht/dht-content-routing.ts +5 -4
- package/src/dht/dht-peer-routing.ts +5 -4
- package/src/dht/dummy-dht.ts +13 -13
- package/src/errors.ts +2 -1
- package/src/fetch/index.ts +13 -13
- package/src/fetch/pb/proto.ts +8 -7
- package/src/get-peer.ts +3 -3
- package/src/identify/index.ts +29 -24
- package/src/identify/pb/message.ts +3 -2
- package/src/index.ts +15 -8
- package/src/insecure/index.ts +2 -1
- package/src/insecure/pb/proto.ts +8 -9
- package/src/libp2p.ts +52 -46
- package/src/nat-manager.ts +11 -9
- package/src/peer-record-updater.ts +4 -4
- package/src/peer-routing.ts +9 -9
- package/src/ping/index.ts +6 -6
- package/src/pnet/crypto.ts +3 -3
- package/src/pnet/index.ts +3 -3
- package/src/pnet/key-generator.ts +1 -1
- package/src/pubsub/dummy-pubsub.ts +9 -9
- package/src/registrar.ts +12 -12
- package/src/transport-manager.ts +17 -18
- package/src/upgrader.ts +43 -42
- package/src/version.ts +1 -1
- package/dist/src/circuit/auto-relay.d.ts +0 -46
- package/dist/src/circuit/auto-relay.d.ts.map +0 -1
- package/dist/src/circuit/auto-relay.js +0 -220
- package/dist/src/circuit/auto-relay.js.map +0 -1
- package/dist/src/circuit/circuit/hop.d.ts +0 -42
- package/dist/src/circuit/circuit/hop.d.ts.map +0 -1
- package/dist/src/circuit/circuit/hop.js +0 -142
- package/dist/src/circuit/circuit/hop.js.map +0 -1
- package/dist/src/circuit/circuit/stop.d.ts +0 -24
- package/dist/src/circuit/circuit/stop.d.ts.map +0 -1
- package/dist/src/circuit/circuit/stop.js +0 -51
- package/dist/src/circuit/circuit/stop.js.map +0 -1
- package/dist/src/circuit/circuit/stream-handler.d.ts +0 -40
- package/dist/src/circuit/circuit/stream-handler.d.ts.map +0 -1
- package/dist/src/circuit/circuit/stream-handler.js +0 -59
- package/dist/src/circuit/circuit/stream-handler.js.map +0 -1
- package/dist/src/circuit/circuit/utils.d.ts +0 -7
- package/dist/src/circuit/circuit/utils.d.ts.map +0 -1
- package/dist/src/circuit/circuit/utils.js +0 -43
- package/dist/src/circuit/circuit/utils.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 -2
- package/dist/src/circuit/multicodec.d.ts.map +0 -1
- package/dist/src/circuit/multicodec.js +0 -2
- package/dist/src/circuit/multicodec.js.map +0 -1
- package/dist/src/circuit/transport.d.ts +0 -51
- package/dist/src/circuit/transport.d.ts.map +0 -1
- package/dist/src/circuit/transport.js +0 -223
- package/dist/src/circuit/transport.js.map +0 -1
- package/dist/src/keychain/cms.d.ts +0 -33
- package/dist/src/keychain/cms.d.ts.map +0 -1
- package/dist/src/keychain/cms.js +0 -129
- package/dist/src/keychain/cms.js.map +0 -1
- package/dist/src/keychain/index.d.ts +0 -151
- package/dist/src/keychain/index.d.ts.map +0 -1
- package/dist/src/keychain/index.js +0 -519
- package/dist/src/keychain/index.js.map +0 -1
- package/dist/src/keychain/util.d.ts +0 -21
- package/dist/src/keychain/util.d.ts.map +0 -1
- package/dist/src/keychain/util.js +0 -79
- package/dist/src/keychain/util.js.map +0 -1
- package/src/circuit/IMPLEMENTATION_NOTES.md +0 -128
- package/src/circuit/README.md +0 -111
- package/src/circuit/auto-relay.ts +0 -292
- package/src/circuit/circuit/hop.ts +0 -220
- package/src/circuit/circuit/stop.ts +0 -83
- package/src/circuit/circuit/stream-handler.ts +0 -87
- package/src/circuit/circuit/utils.ts +0 -44
- package/src/circuit/listener.ts +0 -83
- package/src/circuit/multicodec.ts +0 -2
- package/src/circuit/transport.ts +0 -278
- package/src/keychain/README.md +0 -55
- package/src/keychain/cms.ts +0 -150
- package/src/keychain/doc/private-key.png +0 -0
- package/src/keychain/doc/private-key.xml +0 -1
- package/src/keychain/index.ts +0 -629
- package/src/keychain/util.ts +0 -82
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import { logger } from '@libp2p/logger';
|
|
2
|
-
import errCode from 'err-code';
|
|
3
|
-
import { validateAddrs } from './utils.js';
|
|
4
|
-
import { StreamHandler } from './stream-handler.js';
|
|
5
|
-
import { CircuitRelay as CircuitPB } from '../pb/index.js';
|
|
6
|
-
import { pipe } from 'it-pipe';
|
|
7
|
-
import { codes as Errors } from '../../errors.js';
|
|
8
|
-
import { stop } from './stop.js';
|
|
9
|
-
import { RELAY_CODEC } from '../multicodec.js';
|
|
10
|
-
import { peerIdFromBytes } from '@libp2p/peer-id';
|
|
11
|
-
const log = logger('libp2p:circuit:hop');
|
|
12
|
-
export async function handleHop(hopRequest) {
|
|
13
|
-
const { connection, request, streamHandler, circuit, connectionManager } = hopRequest;
|
|
14
|
-
// Ensure hop is enabled
|
|
15
|
-
if (!circuit.hopEnabled()) {
|
|
16
|
-
log('HOP request received but we are not acting as a relay');
|
|
17
|
-
return streamHandler.end({
|
|
18
|
-
type: CircuitPB.Type.STATUS,
|
|
19
|
-
code: CircuitPB.Status.HOP_CANT_SPEAK_RELAY
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
// Validate the HOP request has the required input
|
|
23
|
-
try {
|
|
24
|
-
validateAddrs(request, streamHandler);
|
|
25
|
-
}
|
|
26
|
-
catch (err) {
|
|
27
|
-
log.error('invalid hop request via peer %p %o', connection.remotePeer, err);
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
if (request.dstPeer == null) {
|
|
31
|
-
log('HOP request received but we do not receive a dstPeer');
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
// Get the connection to the destination (stop) peer
|
|
35
|
-
const destinationPeer = peerIdFromBytes(request.dstPeer.id);
|
|
36
|
-
const destinationConnections = connectionManager.getConnections(destinationPeer);
|
|
37
|
-
if (destinationConnections.length === 0 && !circuit.hopActive()) {
|
|
38
|
-
log('HOP request received but we are not connected to the destination peer');
|
|
39
|
-
return streamHandler.end({
|
|
40
|
-
type: CircuitPB.Type.STATUS,
|
|
41
|
-
code: CircuitPB.Status.HOP_NO_CONN_TO_DST
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
// TODO: Handle being an active relay
|
|
45
|
-
if (destinationConnections.length === 0) {
|
|
46
|
-
log('did not have connection to remote peer');
|
|
47
|
-
return streamHandler.end({
|
|
48
|
-
type: CircuitPB.Type.STATUS,
|
|
49
|
-
code: CircuitPB.Status.HOP_NO_CONN_TO_DST
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
// Handle the incoming HOP request by performing a STOP request
|
|
53
|
-
const stopRequest = {
|
|
54
|
-
type: CircuitPB.Type.STOP,
|
|
55
|
-
dstPeer: request.dstPeer,
|
|
56
|
-
srcPeer: request.srcPeer
|
|
57
|
-
};
|
|
58
|
-
let destinationStream;
|
|
59
|
-
try {
|
|
60
|
-
log('performing STOP request');
|
|
61
|
-
const result = await stop({
|
|
62
|
-
connection: destinationConnections[0],
|
|
63
|
-
request: stopRequest
|
|
64
|
-
});
|
|
65
|
-
if (result == null) {
|
|
66
|
-
throw new Error('Could not stop');
|
|
67
|
-
}
|
|
68
|
-
destinationStream = result;
|
|
69
|
-
}
|
|
70
|
-
catch (err) {
|
|
71
|
-
log.error(err);
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
log('hop request from %p is valid', connection.remotePeer);
|
|
75
|
-
streamHandler.write({
|
|
76
|
-
type: CircuitPB.Type.STATUS,
|
|
77
|
-
code: CircuitPB.Status.SUCCESS
|
|
78
|
-
});
|
|
79
|
-
const sourceStream = streamHandler.rest();
|
|
80
|
-
log('creating related connections');
|
|
81
|
-
// Short circuit the two streams to create the relayed connection
|
|
82
|
-
return await pipe(sourceStream, destinationStream, sourceStream);
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Performs a HOP request to a relay peer, to request a connection to another
|
|
86
|
-
* peer. A new, virtual, connection will be created between the two via the relay.
|
|
87
|
-
*/
|
|
88
|
-
export async function hop(options) {
|
|
89
|
-
const { connection, request, signal } = options;
|
|
90
|
-
// Create a new stream to the relay
|
|
91
|
-
const stream = await connection.newStream(RELAY_CODEC, {
|
|
92
|
-
signal
|
|
93
|
-
});
|
|
94
|
-
// Send the HOP request
|
|
95
|
-
const streamHandler = new StreamHandler({ stream });
|
|
96
|
-
streamHandler.write(request);
|
|
97
|
-
const response = await streamHandler.read();
|
|
98
|
-
if (response == null) {
|
|
99
|
-
throw errCode(new Error('HOP request had no response'), Errors.ERR_HOP_REQUEST_FAILED);
|
|
100
|
-
}
|
|
101
|
-
if (response.code === CircuitPB.Status.SUCCESS) {
|
|
102
|
-
log('hop request was successful');
|
|
103
|
-
return streamHandler.rest();
|
|
104
|
-
}
|
|
105
|
-
log('hop request failed with code %d, closing stream', response.code);
|
|
106
|
-
streamHandler.close();
|
|
107
|
-
throw errCode(new Error(`HOP request failed with code "${response.code ?? 'unknown'}"`), Errors.ERR_HOP_REQUEST_FAILED);
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Performs a CAN_HOP request to a relay peer, in order to understand its capabilities
|
|
111
|
-
*/
|
|
112
|
-
export async function canHop(options) {
|
|
113
|
-
const { connection, signal } = options;
|
|
114
|
-
// Create a new stream to the relay
|
|
115
|
-
const stream = await connection.newStream(RELAY_CODEC, {
|
|
116
|
-
signal
|
|
117
|
-
});
|
|
118
|
-
// Send the HOP request
|
|
119
|
-
const streamHandler = new StreamHandler({ stream });
|
|
120
|
-
streamHandler.write({
|
|
121
|
-
type: CircuitPB.Type.CAN_HOP
|
|
122
|
-
});
|
|
123
|
-
const response = await streamHandler.read();
|
|
124
|
-
await streamHandler.close();
|
|
125
|
-
if (response == null || response.code !== CircuitPB.Status.SUCCESS) {
|
|
126
|
-
return false;
|
|
127
|
-
}
|
|
128
|
-
return true;
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Creates an unencoded CAN_HOP response based on the Circuits configuration
|
|
132
|
-
*/
|
|
133
|
-
export function handleCanHop(options) {
|
|
134
|
-
const { connection, streamHandler, circuit } = options;
|
|
135
|
-
const canHop = circuit.hopEnabled();
|
|
136
|
-
log('can hop (%s) request from %p', canHop, connection.remotePeer);
|
|
137
|
-
streamHandler.end({
|
|
138
|
-
type: CircuitPB.Type.STATUS,
|
|
139
|
-
code: canHop ? CircuitPB.Status.SUCCESS : CircuitPB.Status.HOP_CANT_SPEAK_RELAY
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
//# sourceMappingURL=hop.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hop.js","sourceRoot":"","sources":["../../../../src/circuit/circuit/hop.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { CircuitRelay as CircuitPB } from '../pb/index.js';
|
|
2
|
-
import { StreamHandler } from './stream-handler.js';
|
|
3
|
-
import type { Connection } from '@libp2p/interface-connection';
|
|
4
|
-
import type { Duplex } from 'it-stream-types';
|
|
5
|
-
import type { AbortOptions } from '@libp2p/interfaces';
|
|
6
|
-
import type { Uint8ArrayList } from 'uint8arraylist';
|
|
7
|
-
export interface HandleStopOptions {
|
|
8
|
-
connection: Connection;
|
|
9
|
-
request: CircuitPB;
|
|
10
|
-
streamHandler: StreamHandler;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Handles incoming STOP requests
|
|
14
|
-
*/
|
|
15
|
-
export declare function handleStop(options: HandleStopOptions): Duplex<Uint8ArrayList, Uint8ArrayList | Uint8Array> | undefined;
|
|
16
|
-
export interface StopOptions extends AbortOptions {
|
|
17
|
-
connection: Connection;
|
|
18
|
-
request: CircuitPB;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Creates a STOP request
|
|
22
|
-
*/
|
|
23
|
-
export declare function stop(options: StopOptions): Promise<Duplex<Uint8ArrayList, Uint8Array | Uint8ArrayList, Promise<void>> | undefined>;
|
|
24
|
-
//# sourceMappingURL=stop.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../../../src/circuit/circuit/stop.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAIpD,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,SAAS,CAAA;IAClB,aAAa,EAAE,aAAa,CAAA;CAC7B;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAE,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAAC,cAAc,EAAE,cAAc,GAAG,UAAU,CAAC,GAAG,SAAS,CAuBvH;AAED,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,SAAS,CAAA;CACnB;AAED;;GAEG;AACH,wBAAsB,IAAI,CAAE,OAAO,EAAE,WAAW,2FA4B/C"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { logger } from '@libp2p/logger';
|
|
2
|
-
import { CircuitRelay as CircuitPB } from '../pb/index.js';
|
|
3
|
-
import { RELAY_CODEC } from '../multicodec.js';
|
|
4
|
-
import { StreamHandler } from './stream-handler.js';
|
|
5
|
-
import { validateAddrs } from './utils.js';
|
|
6
|
-
const log = logger('libp2p:circuit:stop');
|
|
7
|
-
/**
|
|
8
|
-
* Handles incoming STOP requests
|
|
9
|
-
*/
|
|
10
|
-
export function handleStop(options) {
|
|
11
|
-
const { connection, request, streamHandler } = options;
|
|
12
|
-
// Validate the STOP request has the required input
|
|
13
|
-
try {
|
|
14
|
-
validateAddrs(request, streamHandler);
|
|
15
|
-
}
|
|
16
|
-
catch (err) {
|
|
17
|
-
log.error('invalid stop request via peer %p %o', connection.remotePeer, err);
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
// The request is valid
|
|
21
|
-
log('stop request is valid');
|
|
22
|
-
streamHandler.write({
|
|
23
|
-
type: CircuitPB.Type.STATUS,
|
|
24
|
-
code: CircuitPB.Status.SUCCESS
|
|
25
|
-
});
|
|
26
|
-
return streamHandler.rest();
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Creates a STOP request
|
|
30
|
-
*/
|
|
31
|
-
export async function stop(options) {
|
|
32
|
-
const { connection, request, signal } = options;
|
|
33
|
-
const stream = await connection.newStream(RELAY_CODEC, {
|
|
34
|
-
signal
|
|
35
|
-
});
|
|
36
|
-
log('starting stop request to %p', connection.remotePeer);
|
|
37
|
-
const streamHandler = new StreamHandler({ stream });
|
|
38
|
-
streamHandler.write(request);
|
|
39
|
-
const response = await streamHandler.read();
|
|
40
|
-
if (response == null) {
|
|
41
|
-
streamHandler.close();
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
if (response.code === CircuitPB.Status.SUCCESS) {
|
|
45
|
-
log('stop request to %p was successful', connection.remotePeer);
|
|
46
|
-
return streamHandler.rest();
|
|
47
|
-
}
|
|
48
|
-
log('stop request failed with code %d', response.code);
|
|
49
|
-
streamHandler.close();
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=stop.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../../src/circuit/circuit/stop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,YAAY,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAM1C,MAAM,GAAG,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAA;AAQzC;;GAEG;AACH,MAAM,UAAU,UAAU,CAAE,OAA0B;IACpD,MAAM,EACJ,UAAU,EACV,OAAO,EACP,aAAa,EACd,GAAG,OAAO,CAAA;IAEX,mDAAmD;IACnD,IAAI;QACF,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;KACtC;IAAC,OAAO,GAAQ,EAAE;QACjB,GAAG,CAAC,KAAK,CAAC,qCAAqC,EAAE,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;QAC5E,OAAM;KACP;IAED,uBAAuB;IACvB,GAAG,CAAC,uBAAuB,CAAC,CAAA;IAC5B,aAAa,CAAC,KAAK,CAAC;QAClB,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM;QAC3B,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO;KAC/B,CAAC,CAAA;IAEF,OAAO,aAAa,CAAC,IAAI,EAAE,CAAA;AAC7B,CAAC;AAOD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAE,OAAoB;IAC9C,MAAM,EACJ,UAAU,EACV,OAAO,EACP,MAAM,EACP,GAAG,OAAO,CAAA;IAEX,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,WAAW,EAAE;QACrD,MAAM;KACP,CAAC,CAAA;IACF,GAAG,CAAC,6BAA6B,EAAE,UAAU,CAAC,UAAU,CAAC,CAAA;IACzD,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;IAEnD,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC5B,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAA;IAE3C,IAAI,QAAQ,IAAI,IAAI,EAAE;QACpB,aAAa,CAAC,KAAK,EAAE,CAAA;QACrB,OAAM;KACP;IAED,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE;QAC9C,GAAG,CAAC,mCAAmC,EAAE,UAAU,CAAC,UAAU,CAAC,CAAA;QAC/D,OAAO,aAAa,CAAC,IAAI,EAAE,CAAA;KAC5B;IAED,GAAG,CAAC,kCAAkC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;IACtD,aAAa,CAAC,KAAK,EAAE,CAAA;AACvB,CAAC"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { CircuitRelay } from '../pb/index.js';
|
|
2
|
-
import type { Stream } from '@libp2p/interface-connection';
|
|
3
|
-
import type { Uint8ArrayList } from 'uint8arraylist';
|
|
4
|
-
export interface StreamHandlerOptions {
|
|
5
|
-
/**
|
|
6
|
-
* A duplex iterable
|
|
7
|
-
*/
|
|
8
|
-
stream: Stream;
|
|
9
|
-
/**
|
|
10
|
-
* max bytes length of message
|
|
11
|
-
*/
|
|
12
|
-
maxLength?: number;
|
|
13
|
-
}
|
|
14
|
-
export declare class StreamHandler {
|
|
15
|
-
private readonly stream;
|
|
16
|
-
private readonly shake;
|
|
17
|
-
private readonly decoder;
|
|
18
|
-
constructor(options: StreamHandlerOptions);
|
|
19
|
-
/**
|
|
20
|
-
* Read and decode message
|
|
21
|
-
*/
|
|
22
|
-
read(): Promise<CircuitRelay | undefined>;
|
|
23
|
-
/**
|
|
24
|
-
* Encode and write array of buffers
|
|
25
|
-
*/
|
|
26
|
-
write(msg: CircuitRelay): void;
|
|
27
|
-
/**
|
|
28
|
-
* Return the handshake rest stream and invalidate handler
|
|
29
|
-
*/
|
|
30
|
-
rest(): import("it-stream-types").Duplex<Uint8ArrayList, Uint8Array | Uint8ArrayList, Promise<void>>;
|
|
31
|
-
/**
|
|
32
|
-
* @param {CircuitRelay} msg - An unencoded CircuitRelay protobuf message
|
|
33
|
-
*/
|
|
34
|
-
end(msg: CircuitRelay): void;
|
|
35
|
-
/**
|
|
36
|
-
* Close the stream
|
|
37
|
-
*/
|
|
38
|
-
close(): void;
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=stream-handler.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stream-handler.d.ts","sourceRoot":"","sources":["../../../../src/circuit/circuit/stream-handler.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAIpD,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwC;IAC9D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;gBAEnC,OAAO,EAAE,oBAAoB;IAQ1C;;OAEG;IACG,IAAI;IAeV;;OAEG;IACH,KAAK,CAAE,GAAG,EAAE,YAAY;IAKxB;;OAEG;IACH,IAAI;IAKJ;;OAEG;IACH,GAAG,CAAE,GAAG,EAAE,YAAY;IAKtB;;OAEG;IACH,KAAK;CAMN"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { logger } from '@libp2p/logger';
|
|
2
|
-
import * as lp from 'it-length-prefixed';
|
|
3
|
-
import { handshake } from 'it-handshake';
|
|
4
|
-
import { CircuitRelay } from '../pb/index.js';
|
|
5
|
-
const log = logger('libp2p:circuit:stream-handler');
|
|
6
|
-
export class StreamHandler {
|
|
7
|
-
constructor(options) {
|
|
8
|
-
const { stream, maxLength = 4096 } = options;
|
|
9
|
-
this.stream = stream;
|
|
10
|
-
this.shake = handshake(this.stream);
|
|
11
|
-
this.decoder = lp.decode.fromReader(this.shake.reader, { maxDataLength: maxLength });
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Read and decode message
|
|
15
|
-
*/
|
|
16
|
-
async read() {
|
|
17
|
-
// @ts-expect-error FIXME is a source, needs to be a generator
|
|
18
|
-
const msg = await this.decoder.next();
|
|
19
|
-
if (msg.value != null) {
|
|
20
|
-
const value = CircuitRelay.decode(msg.value);
|
|
21
|
-
log('read message type', value.type);
|
|
22
|
-
return value;
|
|
23
|
-
}
|
|
24
|
-
log('read received no value, closing stream');
|
|
25
|
-
// End the stream, we didn't get data
|
|
26
|
-
this.close();
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Encode and write array of buffers
|
|
30
|
-
*/
|
|
31
|
-
write(msg) {
|
|
32
|
-
log('write message type %s', msg.type);
|
|
33
|
-
this.shake.write(lp.encode.single(CircuitRelay.encode(msg)));
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Return the handshake rest stream and invalidate handler
|
|
37
|
-
*/
|
|
38
|
-
rest() {
|
|
39
|
-
this.shake.rest();
|
|
40
|
-
return this.shake.stream;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* @param {CircuitRelay} msg - An unencoded CircuitRelay protobuf message
|
|
44
|
-
*/
|
|
45
|
-
end(msg) {
|
|
46
|
-
this.write(msg);
|
|
47
|
-
this.close();
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Close the stream
|
|
51
|
-
*/
|
|
52
|
-
close() {
|
|
53
|
-
log('closing the stream');
|
|
54
|
-
void this.rest().sink([]).catch(err => {
|
|
55
|
-
log.error(err);
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=stream-handler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stream-handler.js","sourceRoot":"","sources":["../../../../src/circuit/circuit/stream-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAA;AACxC,OAAO,EAAa,SAAS,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAK7C,MAAM,GAAG,GAAG,MAAM,CAAC,+BAA+B,CAAC,CAAA;AAcnD,MAAM,OAAO,aAAa;IAKxB,YAAa,OAA6B;QACxC,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,GAAG,OAAO,CAAA;QAE5C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACnC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAA;IACtF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,8DAA8D;QAC9D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;QAErC,IAAI,GAAG,CAAC,KAAK,IAAI,IAAI,EAAE;YACrB,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAC5C,GAAG,CAAC,mBAAmB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;YACpC,OAAO,KAAK,CAAA;SACb;QAED,GAAG,CAAC,wCAAwC,CAAC,CAAA;QAC7C,qCAAqC;QACrC,IAAI,CAAC,KAAK,EAAE,CAAA;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAE,GAAiB;QACtB,GAAG,CAAC,uBAAuB,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;QACtC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAC9D,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;IAC1B,CAAC;IAED;;OAEG;IACH,GAAG,CAAE,GAAiB;QACpB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACf,IAAI,CAAC,KAAK,EAAE,CAAA;IACd,CAAC;IAED;;OAEG;IACH,KAAK;QACH,GAAG,CAAC,oBAAoB,CAAC,CAAA;QACzB,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACpC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAChB,CAAC,CAAC,CAAA;IACJ,CAAC;CACF"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { CircuitRelay } from '../pb/index.js';
|
|
2
|
-
import type { StreamHandler } from './stream-handler.js';
|
|
3
|
-
/**
|
|
4
|
-
* Validate incomming HOP/STOP message
|
|
5
|
-
*/
|
|
6
|
-
export declare function validateAddrs(msg: CircuitRelay, streamHandler: StreamHandler): void;
|
|
7
|
-
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/circuit/circuit/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAYxD;;GAEG;AACH,wBAAgB,aAAa,CAAE,GAAG,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,QA0B7E"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { multiaddr } from '@multiformats/multiaddr';
|
|
2
|
-
import { CircuitRelay } from '../pb/index.js';
|
|
3
|
-
/**
|
|
4
|
-
* Write a response
|
|
5
|
-
*/
|
|
6
|
-
function writeResponse(streamHandler, status) {
|
|
7
|
-
streamHandler.write({
|
|
8
|
-
type: CircuitRelay.Type.STATUS,
|
|
9
|
-
code: status
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Validate incomming HOP/STOP message
|
|
14
|
-
*/
|
|
15
|
-
export function validateAddrs(msg, streamHandler) {
|
|
16
|
-
try {
|
|
17
|
-
if (msg.dstPeer?.addrs != null) {
|
|
18
|
-
msg.dstPeer.addrs.forEach((addr) => {
|
|
19
|
-
return multiaddr(addr);
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
catch (err) {
|
|
24
|
-
writeResponse(streamHandler, msg.type === CircuitRelay.Type.HOP
|
|
25
|
-
? CircuitRelay.Status.HOP_DST_MULTIADDR_INVALID
|
|
26
|
-
: CircuitRelay.Status.STOP_DST_MULTIADDR_INVALID);
|
|
27
|
-
throw err;
|
|
28
|
-
}
|
|
29
|
-
try {
|
|
30
|
-
if (msg.srcPeer?.addrs != null) {
|
|
31
|
-
msg.srcPeer.addrs.forEach((addr) => {
|
|
32
|
-
return multiaddr(addr);
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
catch (err) {
|
|
37
|
-
writeResponse(streamHandler, msg.type === CircuitRelay.Type.HOP
|
|
38
|
-
? CircuitRelay.Status.HOP_SRC_MULTIADDR_INVALID
|
|
39
|
-
: CircuitRelay.Status.STOP_SRC_MULTIADDR_INVALID);
|
|
40
|
-
throw err;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/circuit/circuit/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAG7C;;GAEG;AACH,SAAS,aAAa,CAAE,aAA4B,EAAE,MAA2B;IAC/E,aAAa,CAAC,KAAK,CAAC;QAClB,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM;QAC9B,IAAI,EAAE,MAAM;KACb,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAE,GAAiB,EAAE,aAA4B;IAC5E,IAAI;QACF,IAAI,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE;YAC9B,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACjC,OAAO,SAAS,CAAC,IAAI,CAAC,CAAA;YACxB,CAAC,CAAC,CAAA;SACH;KACF;IAAC,OAAO,GAAQ,EAAE;QACjB,aAAa,CAAC,aAAa,EAAE,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,CAAC,GAAG;YAC7D,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,yBAAyB;YAC/C,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAA;QACnD,MAAM,GAAG,CAAA;KACV;IAED,IAAI;QACF,IAAI,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE;YAC9B,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACjC,OAAO,SAAS,CAAC,IAAI,CAAC,CAAA;YACxB,CAAC,CAAC,CAAA;SACH;KACF;IAAC,OAAO,GAAQ,EAAE;QACjB,aAAa,CAAC,aAAa,EAAE,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,CAAC,GAAG;YAC7D,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,yBAAyB;YAC/C,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAA;QACnD,MAAM,GAAG,CAAA;KACV;AACH,CAAC"}
|
|
@@ -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,WAAW,gCAAgC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"multicodec.js","sourceRoot":"","sources":["../../../src/circuit/multicodec.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,WAAW,GAAG,6BAA6B,CAAA"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import type { Multiaddr } from '@multiformats/multiaddr';
|
|
2
|
-
import { symbol, Upgrader } from '@libp2p/interface-transport';
|
|
3
|
-
import type { AbortOptions } from '@libp2p/interfaces';
|
|
4
|
-
import type { IncomingStreamData, Registrar } from '@libp2p/interface-registrar';
|
|
5
|
-
import type { Listener, Transport, CreateListenerOptions } from '@libp2p/interface-transport';
|
|
6
|
-
import type { Connection } from '@libp2p/interface-connection';
|
|
7
|
-
import type { RelayConfig } from './index.js';
|
|
8
|
-
import type { Startable } from '@libp2p/interfaces/startable';
|
|
9
|
-
import type { ConnectionManager } from '@libp2p/interface-connection-manager';
|
|
10
|
-
import type { PeerId } from '@libp2p/interface-peer-id';
|
|
11
|
-
import type { PeerStore } from '@libp2p/interface-peer-store';
|
|
12
|
-
import type { AddressManager } from '@libp2p/interface-address-manager';
|
|
13
|
-
export interface CircuitComponents {
|
|
14
|
-
peerId: PeerId;
|
|
15
|
-
peerStore: PeerStore;
|
|
16
|
-
registrar: Registrar;
|
|
17
|
-
connectionManager: ConnectionManager;
|
|
18
|
-
upgrader: Upgrader;
|
|
19
|
-
addressManager: AddressManager;
|
|
20
|
-
}
|
|
21
|
-
export declare class Circuit implements Transport, Startable {
|
|
22
|
-
private handler?;
|
|
23
|
-
private readonly components;
|
|
24
|
-
private readonly _init;
|
|
25
|
-
private _started;
|
|
26
|
-
constructor(components: CircuitComponents, init: RelayConfig);
|
|
27
|
-
isStarted(): boolean;
|
|
28
|
-
start(): Promise<void>;
|
|
29
|
-
stop(): Promise<void>;
|
|
30
|
-
hopEnabled(): boolean;
|
|
31
|
-
hopActive(): boolean;
|
|
32
|
-
get [symbol](): true;
|
|
33
|
-
get [Symbol.toStringTag](): string;
|
|
34
|
-
_onProtocol(data: IncomingStreamData): Promise<void>;
|
|
35
|
-
/**
|
|
36
|
-
* Dial a peer over a relay
|
|
37
|
-
*/
|
|
38
|
-
dial(ma: Multiaddr, options?: AbortOptions): Promise<Connection>;
|
|
39
|
-
/**
|
|
40
|
-
* Create a listener
|
|
41
|
-
*/
|
|
42
|
-
createListener(options: CreateListenerOptions): Listener;
|
|
43
|
-
/**
|
|
44
|
-
* Filter check for all Multiaddrs that this transport can dial on
|
|
45
|
-
*
|
|
46
|
-
* @param {Multiaddr[]} multiaddrs
|
|
47
|
-
* @returns {Multiaddr[]}
|
|
48
|
-
*/
|
|
49
|
-
filter(multiaddrs: Multiaddr[]): Multiaddr[];
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=transport.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/circuit/transport.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAUxD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAE9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAChF,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,qBAAqB,EAAqB,MAAM,6BAA6B,CAAA;AAChH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAM7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAC7E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAIvE,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;IACpB,SAAS,EAAE,SAAS,CAAA;IACpB,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,QAAQ,EAAE,QAAQ,CAAA;IAClB,cAAc,EAAE,cAAc,CAAA;CAC/B;AAED,qBAAa,OAAQ,YAAW,SAAS,EAAE,SAAS;IAClD,OAAO,CAAC,OAAO,CAAC,CAAmB;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAS;gBAEZ,UAAU,EAAE,iBAAiB,EAAE,IAAI,EAAE,WAAW;IAM7D,SAAS;IAIH,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAiBvB,IAAI;IAIV,UAAU;IAIV,SAAS;IAIT,IAAI,CAAC,MAAM,CAAC,IAAK,IAAI,CAEpB;IAED,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,WAEvB;IAEK,WAAW,CAAE,IAAI,EAAE,kBAAkB;IA6F3C;;OAEG;IACG,IAAI,CAAE,EAAE,EAAE,SAAS,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;IA4D3E;;OAEG;IACH,cAAc,CAAE,OAAO,EAAE,qBAAqB,GAAG,QAAQ;IAUzD;;;;;OAKG;IACH,MAAM,CAAE,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE;CAO9C"}
|