@highway1/cli 0.1.32 → 0.1.34
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.js +26 -9
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/commands/join.ts +26 -7
package/dist/index.js
CHANGED
|
@@ -116169,10 +116169,11 @@ async function createNode(config2) {
|
|
|
116169
116169
|
bootstrapPeers = [],
|
|
116170
116170
|
enableDHT = true,
|
|
116171
116171
|
enableRelay = false,
|
|
116172
|
+
reserveRelaySlot = false,
|
|
116172
116173
|
enableMDNS = false,
|
|
116173
116174
|
privateKey
|
|
116174
116175
|
} = config2;
|
|
116175
|
-
const relayListenAddrs = [];
|
|
116176
|
+
const relayListenAddrs = reserveRelaySlot ? bootstrapPeers.map((peer) => `${peer}/p2p-circuit`) : [];
|
|
116176
116177
|
const libp2pConfig = {
|
|
116177
116178
|
addresses: {
|
|
116178
116179
|
listen: [...listenAddresses, ...relayListenAddrs]
|
|
@@ -116222,7 +116223,10 @@ async function createNode(config2) {
|
|
|
116222
116223
|
}
|
|
116223
116224
|
if (peerDiscovery.length > 0) libp2pConfig.peerDiscovery = peerDiscovery;
|
|
116224
116225
|
const libp2p = await createLibp2p(libp2pConfig);
|
|
116225
|
-
logger2.info("Libp2p node created"
|
|
116226
|
+
logger2.info("Libp2p node created", {
|
|
116227
|
+
listenAddresses: libp2pConfig.addresses.listen,
|
|
116228
|
+
reserveRelaySlot
|
|
116229
|
+
});
|
|
116226
116230
|
return {
|
|
116227
116231
|
libp2p,
|
|
116228
116232
|
start: async () => {
|
|
@@ -116230,7 +116234,8 @@ async function createNode(config2) {
|
|
|
116230
116234
|
logger2.info("Node started", {
|
|
116231
116235
|
peerId: libp2p.peerId.toString(),
|
|
116232
116236
|
addresses: libp2p.getMultiaddrs().map((ma) => ma.toString()),
|
|
116233
|
-
relay: enableRelay
|
|
116237
|
+
relay: enableRelay,
|
|
116238
|
+
reserveRelaySlot
|
|
116234
116239
|
});
|
|
116235
116240
|
},
|
|
116236
116241
|
stop: async () => {
|
|
@@ -118287,18 +118292,30 @@ function registerJoinCommand(program2) {
|
|
|
118287
118292
|
info("Waiting for relay reservation...");
|
|
118288
118293
|
await new Promise((resolve) => {
|
|
118289
118294
|
const timeout = setTimeout(() => {
|
|
118290
|
-
info(`Relay reservation timeout after
|
|
118295
|
+
info(`Relay reservation timeout after 10s. Multiaddrs: ${node.getMultiaddrs().join(", ")}`);
|
|
118291
118296
|
resolve();
|
|
118292
|
-
},
|
|
118293
|
-
const
|
|
118297
|
+
}, 1e4);
|
|
118298
|
+
const onReservation = () => {
|
|
118299
|
+
info(`Relay reservation successful!`);
|
|
118300
|
+
clearTimeout(timeout);
|
|
118301
|
+
setTimeout(() => {
|
|
118302
|
+
info(`Relay addresses: ${node.getMultiaddrs().filter((a2) => a2.includes("/p2p-circuit")).join(", ")}`);
|
|
118303
|
+
resolve();
|
|
118304
|
+
}, 500);
|
|
118305
|
+
};
|
|
118306
|
+
const onPeerUpdate = () => {
|
|
118294
118307
|
if (hasRelayAddr()) {
|
|
118295
|
-
info(`Relay address acquired
|
|
118308
|
+
info(`Relay address acquired via peer update`);
|
|
118296
118309
|
clearTimeout(timeout);
|
|
118297
118310
|
resolve();
|
|
118298
118311
|
}
|
|
118299
118312
|
};
|
|
118300
|
-
node.libp2p.addEventListener("
|
|
118301
|
-
|
|
118313
|
+
node.libp2p.addEventListener("relay:reservation", onReservation, { once: true });
|
|
118314
|
+
node.libp2p.addEventListener("self:peer:update", onPeerUpdate);
|
|
118315
|
+
setTimeout(() => {
|
|
118316
|
+
node.libp2p.removeEventListener("relay:reservation", onReservation);
|
|
118317
|
+
node.libp2p.removeEventListener("self:peer:update", onPeerUpdate);
|
|
118318
|
+
}, 1e4);
|
|
118302
118319
|
});
|
|
118303
118320
|
} else {
|
|
118304
118321
|
info(`Relay address already present: ${node.getMultiaddrs().filter((a2) => a2.includes("/p2p-circuit")).join(", ")}`);
|