@claw-network/core 0.6.15 → 2026.1.1
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/p2p/config.d.ts +20 -2
- package/dist/p2p/config.d.ts.map +1 -1
- package/dist/p2p/config.js +44 -2
- package/dist/p2p/config.js.map +1 -1
- package/package.json +1 -1
package/dist/p2p/config.d.ts
CHANGED
|
@@ -53,12 +53,30 @@ export interface P2PConfig {
|
|
|
53
53
|
}
|
|
54
54
|
/** Resolve the effective RelayConfig from a P2PConfig. */
|
|
55
55
|
export declare function resolveRelayConfig(config: P2PConfig): RelayConfig;
|
|
56
|
+
/** Bootstrap node hostname (dns4). */
|
|
57
|
+
export declare const BOOTSTRAP_HOST = "clawnetd.com";
|
|
58
|
+
/** Bootstrap node P2P port. */
|
|
59
|
+
export declare const BOOTSTRAP_PORT = 9527;
|
|
60
|
+
/** Bootstrap node HTTP API (used to discover its live PeerId). */
|
|
61
|
+
export declare const BOOTSTRAP_API_URL = "https://api.clawnetd.com/api/v1/node";
|
|
56
62
|
/**
|
|
57
|
-
* Official devnet bootstrap node.
|
|
63
|
+
* Official devnet bootstrap node base address (without PeerId).
|
|
58
64
|
* New nodes connect here first to discover the rest of the network via Kademlia DHT.
|
|
59
65
|
* Uses dns4 so the address survives IP changes — only the DNS A record needs updating.
|
|
66
|
+
*
|
|
67
|
+
* The PeerId is intentionally omitted — at startup `resolveBootstrapMultiaddrs()`
|
|
68
|
+
* fetches the live PeerId from the bootstrap node HTTP API to build the full
|
|
69
|
+
* multiaddr. This avoids hardcoding a PeerId that can go stale after key rotation.
|
|
60
70
|
*/
|
|
61
|
-
export declare const BOOTSTRAP_MULTIADDR = "/dns4/clawnetd.com/tcp/9527
|
|
71
|
+
export declare const BOOTSTRAP_MULTIADDR = "/dns4/clawnetd.com/tcp/9527";
|
|
72
|
+
/**
|
|
73
|
+
* Fetch the live PeerId from the bootstrap node's HTTP API and return
|
|
74
|
+
* the fully-qualified multiaddr(s).
|
|
75
|
+
*
|
|
76
|
+
* Throws if the fetch fails or times out (default 3 s) — the caller
|
|
77
|
+
* should treat this as a fatal startup error.
|
|
78
|
+
*/
|
|
79
|
+
export declare function resolveBootstrapMultiaddrs(apiUrl?: string, timeoutMs?: number): Promise<string[]>;
|
|
62
80
|
export declare const DEFAULT_P2P_CONFIG: P2PConfig;
|
|
63
81
|
/**
|
|
64
82
|
* Hardened config preset for bootstrap/seed nodes that accept many connections.
|
package/dist/p2p/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/p2p/config.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,MAAM,WAAW,WAAW;IAC1B,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAC;IACjB,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,iFAAiF;IACjF,eAAe,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kEAAkE;IAClE,eAAe,EAAE,MAAM,CAAC;IACxB,+DAA+D;IAC/D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gEAAgE;IAChE,4BAA4B,EAAE,MAAM,CAAC;IACrC,2CAA2C;IAC3C,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG,WAAW,CAAC;IAC/C,yDAAyD;IACzD,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,eAAO,MAAM,oBAAoB,EAAE,WAUlC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,WAMpC,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,uBAAuB,EAAE,OAAO,CAAC;IACjC,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,+DAA+D;IAC/D,kBAAkB,EAAE,OAAO,CAAC;IAC5B,0FAA0F;IAC1F,KAAK,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7B,qFAAqF;IACrF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE;QAClB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,6DAA6D;IAC7D,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,0DAA0D;AAC1D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW,CAIjE;AAED
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/p2p/config.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,MAAM,WAAW,WAAW;IAC1B,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAC;IACjB,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,iFAAiF;IACjF,eAAe,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kEAAkE;IAClE,eAAe,EAAE,MAAM,CAAC;IACxB,+DAA+D;IAC/D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gEAAgE;IAChE,4BAA4B,EAAE,MAAM,CAAC;IACrC,2CAA2C;IAC3C,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG,WAAW,CAAC;IAC/C,yDAAyD;IACzD,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,eAAO,MAAM,oBAAoB,EAAE,WAUlC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,WAMpC,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,uBAAuB,EAAE,OAAO,CAAC;IACjC,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,+DAA+D;IAC/D,kBAAkB,EAAE,OAAO,CAAC;IAC5B,0FAA0F;IAC1F,KAAK,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7B,qFAAqF;IACrF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE;QAClB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,6DAA6D;IAC7D,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,0DAA0D;AAC1D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW,CAIjE;AAED,sCAAsC;AACtC,eAAO,MAAM,cAAc,iBAAiB,CAAC;AAC7C,+BAA+B;AAC/B,eAAO,MAAM,cAAc,OAAO,CAAC;AACnC,kEAAkE;AAClE,eAAO,MAAM,iBAAiB,yCAAyC,CAAC;AAExE;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,gCACiB,CAAC;AAElD;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,GAAE,MAA0B,EAClC,SAAS,GAAE,MAAc,GACxB,OAAO,CAAC,MAAM,EAAE,CAAC,CAsBnB;AAED,eAAO,MAAM,kBAAkB,EAAE,SAehC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAmBlC,CAAC"}
|
package/dist/p2p/config.js
CHANGED
|
@@ -22,12 +22,54 @@ export function resolveRelayConfig(config) {
|
|
|
22
22
|
const enabled = base.enabled ?? config.enableCircuitRelay;
|
|
23
23
|
return { ...DEFAULT_RELAY_CONFIG, ...base, enabled };
|
|
24
24
|
}
|
|
25
|
+
/** Bootstrap node hostname (dns4). */
|
|
26
|
+
export const BOOTSTRAP_HOST = 'clawnetd.com';
|
|
27
|
+
/** Bootstrap node P2P port. */
|
|
28
|
+
export const BOOTSTRAP_PORT = 9527;
|
|
29
|
+
/** Bootstrap node HTTP API (used to discover its live PeerId). */
|
|
30
|
+
export const BOOTSTRAP_API_URL = 'https://api.clawnetd.com/api/v1/node';
|
|
25
31
|
/**
|
|
26
|
-
* Official devnet bootstrap node.
|
|
32
|
+
* Official devnet bootstrap node base address (without PeerId).
|
|
27
33
|
* New nodes connect here first to discover the rest of the network via Kademlia DHT.
|
|
28
34
|
* Uses dns4 so the address survives IP changes — only the DNS A record needs updating.
|
|
35
|
+
*
|
|
36
|
+
* The PeerId is intentionally omitted — at startup `resolveBootstrapMultiaddrs()`
|
|
37
|
+
* fetches the live PeerId from the bootstrap node HTTP API to build the full
|
|
38
|
+
* multiaddr. This avoids hardcoding a PeerId that can go stale after key rotation.
|
|
29
39
|
*/
|
|
30
|
-
export const BOOTSTRAP_MULTIADDR =
|
|
40
|
+
export const BOOTSTRAP_MULTIADDR = `/dns4/${BOOTSTRAP_HOST}/tcp/${BOOTSTRAP_PORT}`;
|
|
41
|
+
/**
|
|
42
|
+
* Fetch the live PeerId from the bootstrap node's HTTP API and return
|
|
43
|
+
* the fully-qualified multiaddr(s).
|
|
44
|
+
*
|
|
45
|
+
* Throws if the fetch fails or times out (default 3 s) — the caller
|
|
46
|
+
* should treat this as a fatal startup error.
|
|
47
|
+
*/
|
|
48
|
+
export async function resolveBootstrapMultiaddrs(apiUrl = BOOTSTRAP_API_URL, timeoutMs = 3_000) {
|
|
49
|
+
const controller = new AbortController();
|
|
50
|
+
const timer = setTimeout(() => controller.abort(), timeoutMs);
|
|
51
|
+
try {
|
|
52
|
+
const res = await fetch(apiUrl, { signal: controller.signal });
|
|
53
|
+
if (!res.ok) {
|
|
54
|
+
throw new Error(`Bootstrap API returned HTTP ${res.status}`);
|
|
55
|
+
}
|
|
56
|
+
const json = (await res.json());
|
|
57
|
+
const peerId = json?.data?.peerId;
|
|
58
|
+
if (!peerId) {
|
|
59
|
+
throw new Error('Bootstrap API response missing peerId');
|
|
60
|
+
}
|
|
61
|
+
return [`/dns4/${BOOTSTRAP_HOST}/tcp/${BOOTSTRAP_PORT}/p2p/${peerId}`];
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
if (err instanceof DOMException && err.name === 'AbortError') {
|
|
65
|
+
throw new Error(`Bootstrap API timed out after ${timeoutMs}ms (${apiUrl})`);
|
|
66
|
+
}
|
|
67
|
+
throw err;
|
|
68
|
+
}
|
|
69
|
+
finally {
|
|
70
|
+
clearTimeout(timer);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
31
73
|
export const DEFAULT_P2P_CONFIG = {
|
|
32
74
|
listen: ['/ip4/0.0.0.0/tcp/9527'],
|
|
33
75
|
bootstrap: [BOOTSTRAP_MULTIADDR],
|
package/dist/p2p/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/p2p/config.ts"],"names":[],"mappings":"AAsBA,MAAM,CAAC,MAAM,oBAAoB,GAAgB;IAC/C,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,EAAE;IACf,eAAe,EAAE,SAAS;IAC1B,iBAAiB,EAAE,IAAI;IACvB,eAAe,EAAE,UAAU;IAC3B,kBAAkB,EAAE,CAAC;IACrB,4BAA4B,EAAE,EAAE;IAChC,UAAU,EAAE,MAAM;IAClB,UAAU,EAAE,EAAE;CACf,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAgB;IACjD,GAAG,oBAAoB;IACvB,WAAW,EAAE,GAAG;IAChB,eAAe,EAAE,UAAU;IAC3B,kBAAkB,EAAE,CAAC;IACrB,4BAA4B,EAAE,EAAE;CACjC,CAAC;AAiCF,0DAA0D;AAC1D,MAAM,UAAU,kBAAkB,CAAC,MAAiB;IAClD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;IAChC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,kBAAkB,CAAC;IAC1D,OAAO,EAAE,GAAG,oBAAoB,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC;AACvD,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/p2p/config.ts"],"names":[],"mappings":"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"}
|