@gethashd/bytecave-browser 1.0.53 → 1.0.55
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/{chunk-WGSX425G.js → chunk-QQCX3OFK.js} +24 -0
- package/dist/client.d.ts +4 -0
- package/dist/index.cjs +24 -0
- package/dist/index.js +1 -1
- package/dist/react/index.cjs +1 -0
- package/dist/react/index.js +1 -1
- package/package.json +1 -1
- package/src/client.ts +34 -1
|
@@ -6057,6 +6057,7 @@ var p2pProtocolClient = new P2PProtocolClient();
|
|
|
6057
6057
|
import { createLibp2p } from "libp2p";
|
|
6058
6058
|
import { webRTC } from "@libp2p/webrtc";
|
|
6059
6059
|
import { webSockets } from "@libp2p/websockets";
|
|
6060
|
+
import { webTransport } from "@libp2p/webtransport";
|
|
6060
6061
|
import { noise } from "@chainsafe/libp2p-noise";
|
|
6061
6062
|
import { yamux } from "@chainsafe/libp2p-yamux";
|
|
6062
6063
|
import { floodsub } from "@libp2p/floodsub";
|
|
@@ -6428,6 +6429,7 @@ var ByteCaveClient = class {
|
|
|
6428
6429
|
transports: [
|
|
6429
6430
|
webRTC(),
|
|
6430
6431
|
webSockets(),
|
|
6432
|
+
webTransport(),
|
|
6431
6433
|
circuitRelayTransport()
|
|
6432
6434
|
],
|
|
6433
6435
|
connectionEncrypters: [noise()],
|
|
@@ -6616,6 +6618,9 @@ var ByteCaveClient = class {
|
|
|
6616
6618
|
connectedPeers: connectedPeers.length,
|
|
6617
6619
|
discoveredPeers: this.knownPeers.size
|
|
6618
6620
|
});
|
|
6621
|
+
setTimeout(() => {
|
|
6622
|
+
this.dialCachedPeers();
|
|
6623
|
+
}, 2e3);
|
|
6619
6624
|
} catch (error) {
|
|
6620
6625
|
this.setConnectionState("error");
|
|
6621
6626
|
console.error("Failed to start ByteCave client:", error);
|
|
@@ -7214,6 +7219,25 @@ Nonce: ${nonce}`;
|
|
|
7214
7219
|
console.warn("[ByteCave] Failed to load cached peers:", error);
|
|
7215
7220
|
}
|
|
7216
7221
|
}
|
|
7222
|
+
/**
|
|
7223
|
+
* Dial all cached peers (used on startup when relay might be down)
|
|
7224
|
+
*/
|
|
7225
|
+
async dialCachedPeers() {
|
|
7226
|
+
console.log("[ByteCave] Dialing", this.knownPeers.size, "cached peers...");
|
|
7227
|
+
for (const [peerId, peerInfo] of this.knownPeers) {
|
|
7228
|
+
if (peerInfo.connected) {
|
|
7229
|
+
continue;
|
|
7230
|
+
}
|
|
7231
|
+
const relayAddrs = peerInfo.relayAddrs;
|
|
7232
|
+
const multiaddrs = peerInfo.multiaddrs;
|
|
7233
|
+
if (relayAddrs || multiaddrs) {
|
|
7234
|
+
this.dialPeer(peerId, relayAddrs, multiaddrs).catch((err) => {
|
|
7235
|
+
console.warn("[ByteCave] Failed to dial cached peer:", peerId.slice(0, 12), err.message);
|
|
7236
|
+
});
|
|
7237
|
+
await new Promise((resolve) => setTimeout(resolve, 500));
|
|
7238
|
+
}
|
|
7239
|
+
}
|
|
7240
|
+
}
|
|
7217
7241
|
/**
|
|
7218
7242
|
* Save known peers to localStorage
|
|
7219
7243
|
*/
|
package/dist/client.d.ts
CHANGED
|
@@ -106,6 +106,10 @@ export declare class ByteCaveClient {
|
|
|
106
106
|
* Load cached peers from localStorage
|
|
107
107
|
*/
|
|
108
108
|
private loadCachedPeers;
|
|
109
|
+
/**
|
|
110
|
+
* Dial all cached peers (used on startup when relay might be down)
|
|
111
|
+
*/
|
|
112
|
+
private dialCachedPeers;
|
|
109
113
|
/**
|
|
110
114
|
* Save known peers to localStorage
|
|
111
115
|
*/
|
package/dist/index.cjs
CHANGED
|
@@ -61,6 +61,7 @@ module.exports = __toCommonJS(src_exports);
|
|
|
61
61
|
var import_libp2p = require("libp2p");
|
|
62
62
|
var import_webrtc = require("@libp2p/webrtc");
|
|
63
63
|
var import_websockets = require("@libp2p/websockets");
|
|
64
|
+
var import_webtransport = require("@libp2p/webtransport");
|
|
64
65
|
var import_libp2p_noise = require("@chainsafe/libp2p-noise");
|
|
65
66
|
var import_libp2p_yamux = require("@chainsafe/libp2p-yamux");
|
|
66
67
|
var import_floodsub = require("@libp2p/floodsub");
|
|
@@ -6481,6 +6482,7 @@ var ByteCaveClient = class {
|
|
|
6481
6482
|
transports: [
|
|
6482
6483
|
(0, import_webrtc.webRTC)(),
|
|
6483
6484
|
(0, import_websockets.webSockets)(),
|
|
6485
|
+
(0, import_webtransport.webTransport)(),
|
|
6484
6486
|
(0, import_circuit_relay_v2.circuitRelayTransport)()
|
|
6485
6487
|
],
|
|
6486
6488
|
connectionEncrypters: [(0, import_libp2p_noise.noise)()],
|
|
@@ -6669,6 +6671,9 @@ var ByteCaveClient = class {
|
|
|
6669
6671
|
connectedPeers: connectedPeers.length,
|
|
6670
6672
|
discoveredPeers: this.knownPeers.size
|
|
6671
6673
|
});
|
|
6674
|
+
setTimeout(() => {
|
|
6675
|
+
this.dialCachedPeers();
|
|
6676
|
+
}, 2e3);
|
|
6672
6677
|
} catch (error) {
|
|
6673
6678
|
this.setConnectionState("error");
|
|
6674
6679
|
console.error("Failed to start ByteCave client:", error);
|
|
@@ -7267,6 +7272,25 @@ Nonce: ${nonce}`;
|
|
|
7267
7272
|
console.warn("[ByteCave] Failed to load cached peers:", error);
|
|
7268
7273
|
}
|
|
7269
7274
|
}
|
|
7275
|
+
/**
|
|
7276
|
+
* Dial all cached peers (used on startup when relay might be down)
|
|
7277
|
+
*/
|
|
7278
|
+
async dialCachedPeers() {
|
|
7279
|
+
console.log("[ByteCave] Dialing", this.knownPeers.size, "cached peers...");
|
|
7280
|
+
for (const [peerId, peerInfo] of this.knownPeers) {
|
|
7281
|
+
if (peerInfo.connected) {
|
|
7282
|
+
continue;
|
|
7283
|
+
}
|
|
7284
|
+
const relayAddrs = peerInfo.relayAddrs;
|
|
7285
|
+
const multiaddrs = peerInfo.multiaddrs;
|
|
7286
|
+
if (relayAddrs || multiaddrs) {
|
|
7287
|
+
this.dialPeer(peerId, relayAddrs, multiaddrs).catch((err) => {
|
|
7288
|
+
console.warn("[ByteCave] Failed to dial cached peer:", peerId.slice(0, 12), err.message);
|
|
7289
|
+
});
|
|
7290
|
+
await new Promise((resolve) => setTimeout(resolve, 500));
|
|
7291
|
+
}
|
|
7292
|
+
}
|
|
7293
|
+
}
|
|
7270
7294
|
/**
|
|
7271
7295
|
* Save known peers to localStorage
|
|
7272
7296
|
*/
|
package/dist/index.js
CHANGED
package/dist/react/index.cjs
CHANGED
|
@@ -396,6 +396,7 @@ var import_react3 = __toESM(require("react"), 1);
|
|
|
396
396
|
var import_libp2p = require("libp2p");
|
|
397
397
|
var import_webrtc = require("@libp2p/webrtc");
|
|
398
398
|
var import_websockets = require("@libp2p/websockets");
|
|
399
|
+
var import_webtransport = require("@libp2p/webtransport");
|
|
399
400
|
var import_libp2p_noise = require("@chainsafe/libp2p-noise");
|
|
400
401
|
var import_libp2p_yamux = require("@chainsafe/libp2p-yamux");
|
|
401
402
|
var import_floodsub = require("@libp2p/floodsub");
|
package/dist/react/index.js
CHANGED
package/package.json
CHANGED
package/src/client.ts
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import { createLibp2p, Libp2p } from 'libp2p';
|
|
8
8
|
import { webRTC } from '@libp2p/webrtc';
|
|
9
9
|
import { webSockets } from '@libp2p/websockets';
|
|
10
|
+
import { webTransport } from '@libp2p/webtransport';
|
|
10
11
|
import { noise } from '@chainsafe/libp2p-noise';
|
|
11
12
|
import { yamux } from '@chainsafe/libp2p-yamux';
|
|
12
13
|
import { floodsub } from '@libp2p/floodsub';
|
|
@@ -101,11 +102,12 @@ export class ByteCaveClient {
|
|
|
101
102
|
|
|
102
103
|
console.log('[ByteCave] Bootstrap peers:', bootstrapPeers);
|
|
103
104
|
|
|
104
|
-
// Create libp2p node with WebRTC
|
|
105
|
+
// Create libp2p node with WebRTC and WebTransport transports
|
|
105
106
|
this.node = await createLibp2p({
|
|
106
107
|
transports: [
|
|
107
108
|
webRTC() as any,
|
|
108
109
|
webSockets() as any,
|
|
110
|
+
webTransport() as any,
|
|
109
111
|
circuitRelayTransport() as any
|
|
110
112
|
],
|
|
111
113
|
connectionEncrypters: [noise()],
|
|
@@ -334,6 +336,11 @@ export class ByteCaveClient {
|
|
|
334
336
|
discoveredPeers: this.knownPeers.size
|
|
335
337
|
});
|
|
336
338
|
|
|
339
|
+
// Dial cached peers after startup (important when relay is down)
|
|
340
|
+
setTimeout(() => {
|
|
341
|
+
this.dialCachedPeers();
|
|
342
|
+
}, 2000); // Wait 2s for node to fully initialize
|
|
343
|
+
|
|
337
344
|
} catch (error) {
|
|
338
345
|
this.setConnectionState('error');
|
|
339
346
|
console.error('Failed to start ByteCave client:', error);
|
|
@@ -1080,6 +1087,32 @@ Nonce: ${nonce}`;
|
|
|
1080
1087
|
}
|
|
1081
1088
|
}
|
|
1082
1089
|
|
|
1090
|
+
/**
|
|
1091
|
+
* Dial all cached peers (used on startup when relay might be down)
|
|
1092
|
+
*/
|
|
1093
|
+
private async dialCachedPeers(): Promise<void> {
|
|
1094
|
+
console.log('[ByteCave] Dialing', this.knownPeers.size, 'cached peers...');
|
|
1095
|
+
|
|
1096
|
+
for (const [peerId, peerInfo] of this.knownPeers) {
|
|
1097
|
+
// Skip if already connected
|
|
1098
|
+
if (peerInfo.connected) {
|
|
1099
|
+
continue;
|
|
1100
|
+
}
|
|
1101
|
+
|
|
1102
|
+
const relayAddrs = (peerInfo as any).relayAddrs;
|
|
1103
|
+
const multiaddrs = peerInfo.multiaddrs;
|
|
1104
|
+
|
|
1105
|
+
if (relayAddrs || multiaddrs) {
|
|
1106
|
+
this.dialPeer(peerId, relayAddrs, multiaddrs).catch(err => {
|
|
1107
|
+
console.warn('[ByteCave] Failed to dial cached peer:', peerId.slice(0, 12), err.message);
|
|
1108
|
+
});
|
|
1109
|
+
|
|
1110
|
+
// Stagger dials to avoid overwhelming the network
|
|
1111
|
+
await new Promise(resolve => setTimeout(resolve, 500));
|
|
1112
|
+
}
|
|
1113
|
+
}
|
|
1114
|
+
}
|
|
1115
|
+
|
|
1083
1116
|
/**
|
|
1084
1117
|
* Save known peers to localStorage
|
|
1085
1118
|
*/
|