ysk-server-core 1.1.18 → 1.1.19
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/hosting/validators/adapters/avax.d.ts +1 -0
- package/dist/hosting/validators/adapters/avax.d.ts.map +1 -1
- package/dist/hosting/validators/adapters/avax.js +22 -8
- package/dist/hosting/validators/adapters/avax.js.map +1 -1
- package/dist/hosting/validators/adapters/eth-clients.d.ts +2 -0
- package/dist/hosting/validators/adapters/eth-clients.d.ts.map +1 -1
- package/dist/hosting/validators/adapters/eth-clients.js +43 -11
- package/dist/hosting/validators/adapters/eth-clients.js.map +1 -1
- package/dist/hosting/validators/adapters/eth.d.ts.map +1 -1
- package/dist/hosting/validators/adapters/eth.js +5 -2
- package/dist/hosting/validators/adapters/eth.js.map +1 -1
- package/dist/hosting/validators/adapters/near.d.ts.map +1 -1
- package/dist/hosting/validators/adapters/near.js +11 -2
- package/dist/hosting/validators/adapters/near.js.map +1 -1
- package/dist/hosting/validators/adapters/p2p-public-ip.d.ts +6 -0
- package/dist/hosting/validators/adapters/p2p-public-ip.d.ts.map +1 -0
- package/dist/hosting/validators/adapters/p2p-public-ip.js +11 -0
- package/dist/hosting/validators/adapters/p2p-public-ip.js.map +1 -0
- package/dist/hosting/validators/adapters/phase2.d.ts.map +1 -1
- package/dist/hosting/validators/adapters/phase2.js +66 -9
- package/dist/hosting/validators/adapters/phase2.js.map +1 -1
- package/dist/hosting/validators/compose-runner.d.ts +4 -0
- package/dist/hosting/validators/compose-runner.d.ts.map +1 -1
- package/dist/hosting/validators/compose-runner.js +32 -0
- package/dist/hosting/validators/compose-runner.js.map +1 -1
- package/dist/hosting/validators/disk.d.ts +2 -0
- package/dist/hosting/validators/disk.d.ts.map +1 -1
- package/dist/hosting/validators/disk.js +23 -0
- package/dist/hosting/validators/disk.js.map +1 -1
- package/dist/hosting/validators/extras.d.ts +33 -1
- package/dist/hosting/validators/extras.d.ts.map +1 -1
- package/dist/hosting/validators/extras.js +163 -2
- package/dist/hosting/validators/extras.js.map +1 -1
- package/dist/hosting/validators/manager.d.ts +10 -0
- package/dist/hosting/validators/manager.d.ts.map +1 -1
- package/dist/hosting/validators/manager.js +134 -5
- package/dist/hosting/validators/manager.js.map +1 -1
- package/dist/hosting/validators/ports.js +4 -4
- package/dist/hosting/validators/ports.js.map +1 -1
- package/dist/hosting/validators/registry.d.ts +7 -1
- package/dist/hosting/validators/registry.d.ts.map +1 -1
- package/dist/hosting/validators/registry.js +13 -2
- package/dist/hosting/validators/registry.js.map +1 -1
- package/dist/hosting/validators/releases.d.ts +56 -0
- package/dist/hosting/validators/releases.d.ts.map +1 -1
- package/dist/hosting/validators/releases.js +230 -21
- package/dist/hosting/validators/releases.js.map +1 -1
- package/dist/hosting/validators/runtime-status.js +2 -2
- package/dist/hosting/validators/runtime-status.js.map +1 -1
- package/dist/hosting/validators/software-catalog.d.ts +10 -1
- package/dist/hosting/validators/software-catalog.d.ts.map +1 -1
- package/dist/hosting/validators/software-catalog.js +84 -3
- package/dist/hosting/validators/software-catalog.js.map +1 -1
- package/dist/hosting/validators/upgrade.d.ts +18 -0
- package/dist/hosting/validators/upgrade.d.ts.map +1 -1
- package/dist/hosting/validators/upgrade.js +25 -4
- package/dist/hosting/validators/upgrade.js.map +1 -1
- package/package.json +2 -2
|
@@ -7,6 +7,7 @@ export declare function buildAvaxComposeYaml(spec: ValidatorInstanceDto): string
|
|
|
7
7
|
export declare function planAvaxInstall(spec: ValidatorInstanceDto): ValidatorHostPlan;
|
|
8
8
|
export declare function parseAvaxHealth(body: unknown): {
|
|
9
9
|
healthy: boolean;
|
|
10
|
+
lastError: string | null;
|
|
10
11
|
};
|
|
11
12
|
export declare function probeAvaxStatus(spec: ValidatorInstanceDto, fetchFn?: typeof fetch): Promise<{
|
|
12
13
|
syncProgress: number | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avax.d.ts","sourceRoot":"","sources":["../../../../src/hosting/validators/adapters/avax.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAKnD,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAE3D;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,UAAO,GAAG,IAAI,CAI9E;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"avax.d.ts","sourceRoot":"","sources":["../../../../src/hosting/validators/adapters/avax.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAKnD,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAE3D;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,UAAO,GAAG,IAAI,CAI9E;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,CA0BvE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,oBAAoB,GAAG,iBAAiB,CAS7E;AAMD,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAc7F;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,oBAAoB,EAC1B,OAAO,GAAE,OAAO,KAAa,GAC5B,OAAO,CAAC;IACT,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC,CAmBD;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC,CAAC;AAYF,qFAAqF;AACrF,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,oBAAoB,EAC1B,OAAO,GAAE,OAAO,KAAa,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CA6B9B;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,oBAAoB,EAC1B,OAAO,GAAE,OAAO,KAAa,GAC5B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAExB"}
|
|
@@ -17,7 +17,7 @@ export function ensureAvaxChainConfig(dataPath, stateSync = true) {
|
|
|
17
17
|
}
|
|
18
18
|
export function buildAvaxComposeYaml(spec) {
|
|
19
19
|
const node = spec.clients.node ?? v1ValidatorClients('avax')[0];
|
|
20
|
-
const img = `${node?.image ?? 'avaplatform/avalanchego'}:${node?.tag ?? 'v1.
|
|
20
|
+
const img = `${node?.image ?? 'avaplatform/avalanchego'}:${node?.tag ?? 'v1.14.1'}`;
|
|
21
21
|
const rpc = spec.ports.rpc ?? 9650;
|
|
22
22
|
const p2p = spec.ports.p2p ?? 9651;
|
|
23
23
|
const netId = spec.network === 'mainnet' ? 'mainnet' : 'fuji';
|
|
@@ -32,6 +32,7 @@ services:
|
|
|
32
32
|
- --http-host=0.0.0.0
|
|
33
33
|
- --http-port=9650
|
|
34
34
|
- --staking-port=9651
|
|
35
|
+
- --public-ip-resolution-service=opendns
|
|
35
36
|
- --db-dir=/data
|
|
36
37
|
- --chain-config-dir=/data/configs/chains
|
|
37
38
|
ports:
|
|
@@ -51,22 +52,35 @@ export function planAvaxInstall(spec) {
|
|
|
51
52
|
ports: spec.ports,
|
|
52
53
|
};
|
|
53
54
|
}
|
|
55
|
+
function asRecord(v) {
|
|
56
|
+
return v && typeof v === 'object' && !Array.isArray(v) ? v : null;
|
|
57
|
+
}
|
|
54
58
|
export function parseAvaxHealth(body) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
+
const top = asRecord(body);
|
|
60
|
+
const result = asRecord(top?.result) ?? top;
|
|
61
|
+
if (!result)
|
|
62
|
+
return { healthy: false, lastError: 'bad health' };
|
|
63
|
+
const healthy = result.healthy === true;
|
|
64
|
+
if (healthy)
|
|
65
|
+
return { healthy: true, lastError: null };
|
|
66
|
+
const checks = asRecord(result.checks) ?? asRecord(result.reason) ?? result;
|
|
67
|
+
const network = asRecord(checks.network);
|
|
68
|
+
const boot = asRecord(checks.bootstrapped);
|
|
69
|
+
const err = (typeof network?.error === 'string' && network.error) ||
|
|
70
|
+
(typeof boot?.error === 'string' && boot.error) ||
|
|
71
|
+
'unhealthy';
|
|
72
|
+
return { healthy: false, lastError: err.slice(0, 280) };
|
|
59
73
|
}
|
|
60
74
|
export async function probeAvaxStatus(spec, fetchFn = fetch) {
|
|
61
75
|
const url = `http://127.0.0.1:${spec.ports.rpc ?? 9650}/ext/health`;
|
|
62
76
|
try {
|
|
63
77
|
const res = await fetchFn(url);
|
|
64
|
-
const
|
|
78
|
+
const health = parseAvaxHealth(await readRpcJson(res));
|
|
65
79
|
return {
|
|
66
|
-
syncProgress: healthy ? 1 : null,
|
|
80
|
+
syncProgress: health.healthy ? 1 : null,
|
|
67
81
|
peers: null,
|
|
68
82
|
version: 'avalanchego',
|
|
69
|
-
lastError:
|
|
83
|
+
lastError: health.lastError,
|
|
70
84
|
};
|
|
71
85
|
}
|
|
72
86
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avax.js","sourceRoot":"","sources":["../../../../src/hosting/validators/adapters/avax.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,4EAA4E;AAC5E,MAAM,UAAU,gBAAgB,CAAC,SAAkB;IACjD,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,oBAAoB,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,QAAgB,EAAE,SAAS,GAAG,IAAI;IACtE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IACvF,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAA0B;IAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,MAAM,GAAG,GAAG,GAAG,IAAI,EAAE,KAAK,IAAI,yBAAyB,IAAI,IAAI,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;IACpF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC;IACnC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9D,OAAO;;;aAGI,GAAG;;;;uBAIO,KAAK
|
|
1
|
+
{"version":3,"file":"avax.js","sourceRoot":"","sources":["../../../../src/hosting/validators/adapters/avax.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
* Ethereum EL × CL compose fragments. JWT + localhost RPC on every combo.
|
|
3
3
|
*/
|
|
4
4
|
import type { ValidatorInstanceDto } from 'ysk-server-shared';
|
|
5
|
+
/** Community checkpoint-sync endpoints (eth-clients list). First URL is used. */
|
|
6
|
+
export declare const ETH_CHECKPOINT_FALLBACKS: Record<string, readonly string[]>;
|
|
5
7
|
export declare const ETH_CHECKPOINT: Record<string, string>;
|
|
6
8
|
export declare const ETH_EL_IDS: readonly ["reth", "geth", "nethermind"];
|
|
7
9
|
export declare const ETH_CL_IDS: readonly ["lighthouse", "prysm", "teku", "nimbus"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eth-clients.d.ts","sourceRoot":"","sources":["../../../../src/hosting/validators/adapters/eth-clients.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAG9D,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIjD,CAAC;AAEF,eAAO,MAAM,UAAU,yCAA0C,CAAC;AAClE,eAAO,MAAM,UAAU,oDAAqD,CAAC;AAC7E,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAClD,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAElD,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,IAAI,OAAO,CAEjD;AACD,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,IAAI,OAAO,CAEjD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAG/E;
|
|
1
|
+
{"version":3,"file":"eth-clients.d.ts","sourceRoot":"","sources":["../../../../src/hosting/validators/adapters/eth-clients.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAG9D,iFAAiF;AACjF,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAStE,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIjD,CAAC;AAEF,eAAO,MAAM,UAAU,yCAA0C,CAAC;AAClE,eAAO,MAAM,UAAU,oDAAqD,CAAC;AAC7E,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAClD,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAElD,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,IAAI,OAAO,CAEjD;AACD,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,IAAI,OAAO,CAEjD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAG/E;AAgBD,wBAAgB,cAAc,CAAC,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAsG9E;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,CAK1D;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CA8H9E"}
|
|
@@ -1,8 +1,19 @@
|
|
|
1
1
|
import { composeBind } from '../compose-runner.js';
|
|
2
|
+
/** Community checkpoint-sync endpoints (eth-clients list). First URL is used. */
|
|
3
|
+
export const ETH_CHECKPOINT_FALLBACKS = {
|
|
4
|
+
hoodi: [
|
|
5
|
+
'https://hoodi.beaconstate.ethstaker.cc/',
|
|
6
|
+
'https://beaconstate-hoodi.chainsafe.io',
|
|
7
|
+
'https://hoodi-checkpoint-sync.attestant.io',
|
|
8
|
+
'https://hoodi.checkpoint.sigp.io',
|
|
9
|
+
],
|
|
10
|
+
sepolia: ['https://checkpoint-sync.sepolia.ethpandaops.io'],
|
|
11
|
+
mainnet: ['https://beaconstate.info'],
|
|
12
|
+
};
|
|
2
13
|
export const ETH_CHECKPOINT = {
|
|
3
|
-
hoodi:
|
|
4
|
-
sepolia:
|
|
5
|
-
mainnet:
|
|
14
|
+
hoodi: ETH_CHECKPOINT_FALLBACKS.hoodi[0],
|
|
15
|
+
sepolia: ETH_CHECKPOINT_FALLBACKS.sepolia[0],
|
|
16
|
+
mainnet: ETH_CHECKPOINT_FALLBACKS.mainnet[0],
|
|
6
17
|
};
|
|
7
18
|
export const ETH_EL_IDS = ['reth', 'geth', 'nethermind'];
|
|
8
19
|
export const ETH_CL_IDS = ['lighthouse', 'prysm', 'teku', 'nimbus'];
|
|
@@ -23,7 +34,11 @@ function elImage(spec) {
|
|
|
23
34
|
}
|
|
24
35
|
function clImage(spec) {
|
|
25
36
|
const c = spec.clients.cl;
|
|
26
|
-
return { id: c?.id ?? 'lighthouse', image: `${c?.image ?? 'sigp/lighthouse'}:${c?.tag ?? '
|
|
37
|
+
return { id: c?.id ?? 'lighthouse', image: `${c?.image ?? 'sigp/lighthouse'}:${c?.tag ?? 'v8.2.2'}` };
|
|
38
|
+
}
|
|
39
|
+
function p2pTcpUdp(hostPort, containerPort) {
|
|
40
|
+
return ` - "0.0.0.0:${hostPort}:${containerPort}/tcp"
|
|
41
|
+
- "0.0.0.0:${hostPort}:${containerPort}/udp"`;
|
|
27
42
|
}
|
|
28
43
|
export function buildElService(spec, jwt) {
|
|
29
44
|
const net = ethNetworkFlag(spec.network);
|
|
@@ -54,10 +69,11 @@ export function buildElService(spec, jwt) {
|
|
|
54
69
|
- ${jwt}
|
|
55
70
|
- --port
|
|
56
71
|
- "30303"
|
|
72
|
+
- --nat=stun
|
|
57
73
|
${netFlag.join('\n')}
|
|
58
74
|
ports:
|
|
59
75
|
- "127.0.0.1:${rpc}:8545"
|
|
60
|
-
|
|
76
|
+
${p2pTcpUdp(p2p, 30303)}
|
|
61
77
|
volumes:
|
|
62
78
|
- ${composeBind(`${spec.dataPath}/${id}`, '/data/geth')}
|
|
63
79
|
- ${jwtVol}`;
|
|
@@ -83,9 +99,13 @@ ${netFlag.join('\n')}
|
|
|
83
99
|
- "8551"
|
|
84
100
|
- --JsonRpc.JwtSecretFile
|
|
85
101
|
- ${jwt}
|
|
102
|
+
- --Network.DiscoveryPort
|
|
103
|
+
- "30303"
|
|
104
|
+
- --Network.P2PPort
|
|
105
|
+
- "30303"
|
|
86
106
|
ports:
|
|
87
107
|
- "127.0.0.1:${rpc}:8545"
|
|
88
|
-
|
|
108
|
+
${p2pTcpUdp(p2p, 30303)}
|
|
89
109
|
volumes:
|
|
90
110
|
- ${composeBind(`${spec.dataPath}/${id}`, '/data/nethermind')}
|
|
91
111
|
- ${jwtVol}`;
|
|
@@ -114,9 +134,11 @@ ${netFlag.join('\n')}
|
|
|
114
134
|
- ${jwt}
|
|
115
135
|
- --port
|
|
116
136
|
- "30303"
|
|
137
|
+
- --nat
|
|
138
|
+
- publicip
|
|
117
139
|
ports:
|
|
118
140
|
- "127.0.0.1:${rpc}:8545"
|
|
119
|
-
|
|
141
|
+
${p2pTcpUdp(p2p, 30303)}
|
|
120
142
|
volumes:
|
|
121
143
|
- ${composeBind(`${spec.dataPath}/${id}`, '/data/reth')}
|
|
122
144
|
- ${jwtVol}`;
|
|
@@ -157,9 +179,11 @@ export function buildClService(spec, jwt) {
|
|
|
157
179
|
- "3500"
|
|
158
180
|
- --p2p-tcp-port
|
|
159
181
|
- "9000"
|
|
182
|
+
- --p2p-udp-port
|
|
183
|
+
- "9000"
|
|
160
184
|
ports:
|
|
161
185
|
- "127.0.0.1:${beacon}:3500"
|
|
162
|
-
|
|
186
|
+
${p2pTcpUdp(p2pCl, 9000)}
|
|
163
187
|
volumes:
|
|
164
188
|
- ${composeBind(`${spec.dataPath}/${id}`, '/data/prysm')}
|
|
165
189
|
- ${jwtVol}`;
|
|
@@ -180,9 +204,10 @@ export function buildClService(spec, jwt) {
|
|
|
180
204
|
- --rest-api-interface=0.0.0.0
|
|
181
205
|
- --rest-api-port=5051
|
|
182
206
|
- --p2p-port=9000
|
|
207
|
+
- --p2p-advertised-port=9000
|
|
183
208
|
ports:
|
|
184
209
|
- "127.0.0.1:${beacon}:5051"
|
|
185
|
-
|
|
210
|
+
${p2pTcpUdp(p2pCl, 9000)}
|
|
186
211
|
volumes:
|
|
187
212
|
- ${composeBind(`${spec.dataPath}/${id}`, '/data/teku')}
|
|
188
213
|
- ${jwtVol}`;
|
|
@@ -203,10 +228,11 @@ export function buildClService(spec, jwt) {
|
|
|
203
228
|
- --rest-address=0.0.0.0
|
|
204
229
|
- --rest-port=5052
|
|
205
230
|
- --tcp-port=9000
|
|
231
|
+
- --udp-port=9000
|
|
206
232
|
- --non-interactive
|
|
207
233
|
ports:
|
|
208
234
|
- "127.0.0.1:${beacon}:5052"
|
|
209
|
-
|
|
235
|
+
${p2pTcpUdp(p2pCl, 9000)}
|
|
210
236
|
volumes:
|
|
211
237
|
- ${composeBind(`${spec.dataPath}/${id}`, '/data/nimbus')}
|
|
212
238
|
- ${jwtVol}`;
|
|
@@ -236,10 +262,16 @@ export function buildClService(spec, jwt) {
|
|
|
236
262
|
- "5052"
|
|
237
263
|
- --port
|
|
238
264
|
- "9000"
|
|
265
|
+
- --discovery-port
|
|
266
|
+
- "9000"
|
|
267
|
+
- --enr-udp-port
|
|
268
|
+
- "9000"
|
|
269
|
+
- --enr-tcp-port
|
|
270
|
+
- "9000"
|
|
239
271
|
- --disable-deposit-contract-sync
|
|
240
272
|
ports:
|
|
241
273
|
- "127.0.0.1:${beacon}:5052"
|
|
242
|
-
|
|
274
|
+
${p2pTcpUdp(p2pCl, 9000)}
|
|
243
275
|
volumes:
|
|
244
276
|
- ${composeBind(`${spec.dataPath}/${id}`, '/data/lighthouse')}
|
|
245
277
|
- ${jwtVol}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eth-clients.js","sourceRoot":"","sources":["../../../../src/hosting/validators/adapters/eth-clients.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"eth-clients.js","sourceRoot":"","sources":["../../../../src/hosting/validators/adapters/eth-clients.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eth.d.ts","sourceRoot":"","sources":["../../../../src/hosting/validators/adapters/eth.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAKtF,wBAAgB,UAAU,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,CAE7D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAa5F;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAM9D;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"eth.d.ts","sourceRoot":"","sources":["../../../../src/hosting/validators/adapters/eth.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAKtF,wBAAgB,UAAU,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,CAE7D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAa5F;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAM9D;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,CAYtE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,oBAAoB,GAAG,iBAAiB,CAgB5E;AAED,eAAO,MAAM,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,aAAa,CAAC,GAAG;IAClE,MAAM,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,CAAC;CAO5C,CAAC;AAEF,wBAAsB,cAAc,CAClC,IAAI,EAAE,oBAAoB,EAC1B,OAAO,GAAE,OAAO,KAAa,GAC5B,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,cAAc,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,CAAC,CAAC,CAqCxF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { v1ValidatorClients } from '../registry.js';
|
|
2
|
-
import { buildClService, buildElService, jwtHost } from './eth-clients.js';
|
|
2
|
+
import { buildClService, buildElService, ETH_CHECKPOINT_FALLBACKS, jwtHost } from './eth-clients.js';
|
|
3
3
|
import { readRpcJson } from '../rpc-json.js';
|
|
4
4
|
export function ethJwtPath(spec) {
|
|
5
5
|
return jwtHost(spec);
|
|
@@ -29,8 +29,11 @@ export function parseEthPeerCount(body) {
|
|
|
29
29
|
}
|
|
30
30
|
export function buildEthComposeYaml(spec) {
|
|
31
31
|
const jwt = '/jwt/jwt.hex';
|
|
32
|
+
const net = spec.network === 'mainnet' || spec.network === 'sepolia' ? spec.network : 'hoodi';
|
|
33
|
+
const fallbacks = ETH_CHECKPOINT_FALLBACKS[net] ?? [];
|
|
32
34
|
return `# ysk-server validators eth — generated
|
|
33
35
|
# EL=${spec.clients.el?.id ?? 'reth'} CL=${spec.clients.cl?.id ?? 'lighthouse'}
|
|
36
|
+
# checkpoint fallbacks: ${fallbacks.slice(1).join(' ')}
|
|
34
37
|
# RPC localhost only. No staking keys.
|
|
35
38
|
services:
|
|
36
39
|
${buildElService(spec, jwt)}
|
|
@@ -88,7 +91,7 @@ export async function probeEthStatus(spec, fetchFn = fetch) {
|
|
|
88
91
|
syncProgress: sync.syncing ? sync.progress : 1,
|
|
89
92
|
peers,
|
|
90
93
|
version: typeof verBody.result === 'string' ? verBody.result : null,
|
|
91
|
-
lastError: null,
|
|
94
|
+
lastError: peers === 0 ? '0 peers' : null,
|
|
92
95
|
};
|
|
93
96
|
}
|
|
94
97
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eth.js","sourceRoot":"","sources":["../../../../src/hosting/validators/adapters/eth.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"eth.js","sourceRoot":"","sources":["../../../../src/hosting/validators/adapters/eth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"near.d.ts","sourceRoot":"","sources":["../../../../src/hosting/validators/adapters/near.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"near.d.ts","sourceRoot":"","sources":["../../../../src/hosting/validators/adapters/near.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAMxE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,CAoCvE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,oBAAoB,GAAG,iBAAiB,CAS7E;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG;IAC9C,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAqBA;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,oBAAoB,EAC1B,OAAO,GAAE,OAAO,KAAa,GAC5B,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,cAAc,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,CAAC,CAAC,CAcxF"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { v1ValidatorClients } from '../registry.js';
|
|
2
2
|
import { composeBind } from '../compose-runner.js';
|
|
3
3
|
import { readRpcJson } from '../rpc-json.js';
|
|
4
|
+
import { RESOLVE_PUBLIC_IP_SH } from './p2p-public-ip.js';
|
|
4
5
|
export function buildNearComposeYaml(spec) {
|
|
5
6
|
const node = spec.clients.node ?? v1ValidatorClients('near')[0];
|
|
6
7
|
const img = `${node?.image ?? 'nearprotocol/nearcore'}:${node?.tag ?? '2.5.0'}`;
|
|
@@ -12,8 +13,8 @@ services:
|
|
|
12
13
|
node:
|
|
13
14
|
image: ${img}
|
|
14
15
|
restart: unless-stopped
|
|
15
|
-
mem_limit:
|
|
16
|
-
memswap_limit:
|
|
16
|
+
mem_limit: 12g
|
|
17
|
+
memswap_limit: 12g
|
|
17
18
|
pids_limit: 4096
|
|
18
19
|
entrypoint: ["/bin/sh", "-c"]
|
|
19
20
|
command:
|
|
@@ -22,6 +23,14 @@ services:
|
|
|
22
23
|
if [ ! -f /data/config.json ]; then
|
|
23
24
|
neard --home /data init --chain-id ${chainId} --download-genesis --download-config
|
|
24
25
|
fi
|
|
26
|
+
${RESOLVE_PUBLIC_IP_SH.split('\n').join('\n ')}
|
|
27
|
+
if [ -n "$PUB" ] && [ -f /data/config.json ]; then
|
|
28
|
+
if grep -q '"public_addr"' /data/config.json; then
|
|
29
|
+
sed -i "s/\\"public_addr\\": \\"[^\\"]*\\"/\\"public_addr\\": \\"$PUB:24567\\"/" /data/config.json || true
|
|
30
|
+
else
|
|
31
|
+
sed -i "s/\\"addr\\": \\"0.0.0.0:24567\\"/\\"addr\\": \\"0.0.0.0:24567\\",\\n \\"public_addr\\": \\"$PUB:24567\\"/" /data/config.json || true
|
|
32
|
+
fi
|
|
33
|
+
fi
|
|
25
34
|
neard --home /data run
|
|
26
35
|
ports:
|
|
27
36
|
- "127.0.0.1:${rpc}:3030"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"near.js","sourceRoot":"","sources":["../../../../src/hosting/validators/adapters/near.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"near.js","sourceRoot":"","sources":["../../../../src/hosting/validators/adapters/near.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve host public IPv4 at container start. Fail-open: empty PUB is OK.
|
|
3
|
+
* Only ifconfig.me / ident.me — no custom STUN service.
|
|
4
|
+
*/
|
|
5
|
+
export declare const RESOLVE_PUBLIC_IP_SH = "PUB=\"\"\nPUB=$(wget -qO- --timeout=5 https://ifconfig.me 2>/dev/null || true)\nif [ -z \"$PUB\" ]; then PUB=$(curl -fsS --max-time 5 https://ifconfig.me 2>/dev/null || true); fi\nif [ -z \"$PUB\" ]; then PUB=$(wget -qO- --timeout=5 https://ident.me 2>/dev/null || true); fi\nif [ -z \"$PUB\" ]; then PUB=$(curl -fsS --max-time 5 https://ident.me 2>/dev/null || true); fi\n";
|
|
6
|
+
//# sourceMappingURL=p2p-public-ip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"p2p-public-ip.d.ts","sourceRoot":"","sources":["../../../../src/hosting/validators/adapters/p2p-public-ip.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,oBAAoB,0XAKhC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve host public IPv4 at container start. Fail-open: empty PUB is OK.
|
|
3
|
+
* Only ifconfig.me / ident.me — no custom STUN service.
|
|
4
|
+
*/
|
|
5
|
+
export const RESOLVE_PUBLIC_IP_SH = `PUB=""
|
|
6
|
+
PUB=$(wget -qO- --timeout=5 https://ifconfig.me 2>/dev/null || true)
|
|
7
|
+
if [ -z "$PUB" ]; then PUB=$(curl -fsS --max-time 5 https://ifconfig.me 2>/dev/null || true); fi
|
|
8
|
+
if [ -z "$PUB" ]; then PUB=$(wget -qO- --timeout=5 https://ident.me 2>/dev/null || true); fi
|
|
9
|
+
if [ -z "$PUB" ]; then PUB=$(curl -fsS --max-time 5 https://ident.me 2>/dev/null || true); fi
|
|
10
|
+
`;
|
|
11
|
+
//# sourceMappingURL=p2p-public-ip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"p2p-public-ip.js","sourceRoot":"","sources":["../../../../src/hosting/validators/adapters/p2p-public-ip.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;CAKnC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phase2.d.ts","sourceRoot":"","sources":["../../../../src/hosting/validators/adapters/phase2.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"phase2.d.ts","sourceRoot":"","sources":["../../../../src/hosting/validators/adapters/phase2.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAMxE,KAAK,KAAK,GAAG,IAAI,CAAC,mBAAmB,EAAE,cAAc,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,CAAC,CAAC;AAsB3F,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,CAsBtE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,oBAAoB,GAAG,iBAAiB,CAE5E;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,CAUjD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,mFAAmF;AACnF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKxD;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKnD;AAED,+FAA+F;AAC/F,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAM7D;AAED,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,OAAO,KAAa,GAC5B,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA+B3C;AAED,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,OAAO,KAAa,GAC5B,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAI3C;AAED,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,OAAO,KAAa,GAC5B,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAgB3C;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,CAuEzE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,oBAAoB,GAAG,iBAAiB,CAE/E;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,CAYtD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGrD;AAoCD,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAYvD;AAED,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,OAAO,KAAa,GAC5B,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAiB3C;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,CAuBtE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,oBAAoB,GAAG,iBAAiB,CAE5E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,CAKnD;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAiB1C;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,cAAc,GAAG,MAAM,CAGlG;AAED,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,OAAO,KAAa,GAC5B,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAqB3C;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,CAyBxE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,iBAAiB,CAE9E;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,CAQrD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,CAsBtE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,oBAAoB,GAAG,iBAAiB,CAE5E;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,CAYjD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,CA6BtE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,oBAAoB,GAAG,iBAAiB,CAO5E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,CAInD;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAI1E;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAarF;AAiCD,wBAAsB,cAAc,CAAC,IAAI,EAAE,oBAAoB,EAAE,OAAO,GAAE,OAAO,KAAa,GAAG,OAAO,CAAC,KAAK,CAAC,CAe9G;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,oBAAoB,EAAE,OAAO,GAAE,OAAO,KAAa,GAAG,OAAO,CAAC,KAAK,CAAC,CAOjH;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,oBAAoB,EAAE,OAAO,GAAE,OAAO,KAAa,GAAG,OAAO,CAAC,KAAK,CAAC,CAM9G;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,EAAE,OAAO,GAAE,OAAO,KAAa,GAAG,OAAO,CAAC,KAAK,CAAC,CAOhH;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,oBAAoB,EAAE,OAAO,GAAE,OAAO,KAAa,GAAG,OAAO,CAAC,KAAK,CAAC,CAM9G;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,oBAAoB,EAAE,OAAO,GAAE,OAAO,KAAa,GAAG,OAAO,CAAC,KAAK,CAAC,CAM9G"}
|
|
@@ -7,6 +7,7 @@ import { join } from 'node:path';
|
|
|
7
7
|
import { SUI_NODE_IMAGE, suiNodeTag, v1ValidatorClients } from '../registry.js';
|
|
8
8
|
import { composeBind } from '../compose-runner.js';
|
|
9
9
|
import { readRpcJson } from '../rpc-json.js';
|
|
10
|
+
import { RESOLVE_PUBLIC_IP_SH } from './p2p-public-ip.js';
|
|
10
11
|
function img(spec, fallback, tag) {
|
|
11
12
|
const n = spec.clients.node ?? v1ValidatorClients(spec.chain)[0];
|
|
12
13
|
return `${n?.image ?? fallback}:${n?.tag ?? tag}`;
|
|
@@ -181,13 +182,31 @@ services:
|
|
|
181
182
|
. /data/statesync.env
|
|
182
183
|
set +a
|
|
183
184
|
if [ -n "$TRUST_HEIGHT" ] && [ -n "$TRUST_HASH" ] && [ -n "$RPC_SERVERS" ]; then
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
185
|
+
gaiad config set config statesync.enable true --home /data 2>/dev/null || true
|
|
186
|
+
gaiad config set config statesync.trust_height "$TRUST_HEIGHT" --home /data 2>/dev/null || true
|
|
187
|
+
gaiad config set config statesync.trust_hash "$TRUST_HASH" --home /data 2>/dev/null || true
|
|
188
|
+
gaiad config set config statesync.trust_period "8h0m0s" --home /data 2>/dev/null || true
|
|
189
|
+
gaiad config set config statesync.rpc_servers "$RPC_SERVERS" --home /data 2>/dev/null || true
|
|
190
|
+
sed -i -e '/^\\[statesync\\]/,/^\\[/{
|
|
191
|
+
s/^enable = .*/enable = true/
|
|
192
|
+
s/^trust_period = .*/trust_period = "8h0m0s"/
|
|
193
|
+
s/^trust_height = .*/trust_height = '"$TRUST_HEIGHT"'/
|
|
194
|
+
s/^trust_hash = .*/trust_hash = "'"$TRUST_HASH"'"/
|
|
195
|
+
s/^rpc_servers = .*/rpc_servers = "'"$RPC_SERVERS"'"/
|
|
196
|
+
}' /data/config/config.toml || true
|
|
189
197
|
fi
|
|
190
198
|
fi
|
|
199
|
+
if [ "${chainId}" = "provider" ]; then
|
|
200
|
+
if ! awk '/^\\[statesync\\]/{p=1;next} /^\\[/{p=0} p && /^enable = true/{ok=1} END{exit ok?0:1}' /data/config/config.toml; then
|
|
201
|
+
echo "cosmos state-sync not enabled in [statesync]; refusing InitChain" >&2
|
|
202
|
+
exit 1
|
|
203
|
+
fi
|
|
204
|
+
fi
|
|
205
|
+
${RESOLVE_PUBLIC_IP_SH.split('\n').join('\n ')}
|
|
206
|
+
if [ -n "$PUB" ]; then
|
|
207
|
+
gaiad config set config p2p.external_address "tcp://$PUB:26656" --home /data 2>/dev/null || true
|
|
208
|
+
sed -i -e '/^\\[p2p\\]/,/^\\[/{s|^external_address = .*|external_address = "tcp://'"$PUB"':26656"|}' /data/config/config.toml || true
|
|
209
|
+
fi
|
|
191
210
|
gaiad start --home /data --rpc.laddr tcp://0.0.0.0:26657 --p2p.laddr tcp://0.0.0.0:26656 --p2p.seeds="${seeds}" --minimum-gas-prices=0.005uatom
|
|
192
211
|
ports:
|
|
193
212
|
- "127.0.0.1:${rpc}:26657"
|
|
@@ -216,8 +235,41 @@ export function suiGenesisUrl(network) {
|
|
|
216
235
|
const net = network === 'mainnet' ? 'mainnet' : 'testnet';
|
|
217
236
|
return `https://github.com/MystenLabs/sui-genesis/raw/main/${net}/genesis.blob`;
|
|
218
237
|
}
|
|
238
|
+
const SUI_TESTNET_SEEDS = `
|
|
239
|
+
p2p-config:
|
|
240
|
+
listen-address: "0.0.0.0:8084"
|
|
241
|
+
seed-peers:
|
|
242
|
+
- address: /dns/yto-tnt-ssfn-01.testnet.sui.io/udp/8084
|
|
243
|
+
peer-id: 2ed53564d5581ded9b6773970ac2f1c84d39f9edf01308ff5a1ffe09b1add7b3
|
|
244
|
+
- address: /dns/yto-tnt-ssfn-00.testnet.sui.io/udp/8084
|
|
245
|
+
peer-id: 6563732e5ab33b4ae09c73a98fd37499b71b8f03c27b5cc51acc26934974aff2
|
|
246
|
+
- address: /dns/nrt-tnt-ssfn-00.testnet.sui.io/udp/8084
|
|
247
|
+
peer-id: 23a1f7cd901b6277cbedaa986b3fc183f171d800cabba863d48f698f518967e1
|
|
248
|
+
- address: /dns/ewr-tnt-ssfn-00.testnet.sui.io/udp/8084
|
|
249
|
+
peer-id: df8a8d128051c249e224f95fcc463f518a0ebed8986bbdcc11ed751181fecd38
|
|
250
|
+
- address: /dns/lax-tnt-ssfn-00.testnet.sui.io/udp/8084
|
|
251
|
+
peer-id: f9a72a0a6c17eed09c27898eab389add704777c03e135846da2428f516a0c11d
|
|
252
|
+
- address: /dns/lhr-tnt-ssfn-00.testnet.sui.io/udp/8084
|
|
253
|
+
peer-id: 9393d6056bb9c9d8475a3cf3525c747257f17c6a698a7062cbbd1875bc6ef71e
|
|
254
|
+
- address: /dns/mel-tnt-ssfn-00.testnet.sui.io/udp/8084
|
|
255
|
+
peer-id: c88742f46e66a11cb8c84aca488065661401ef66f726cb9afeb8a5786d83456e
|
|
256
|
+
`;
|
|
257
|
+
const SUI_MAINNET_SEEDS = `
|
|
258
|
+
p2p-config:
|
|
259
|
+
listen-address: "0.0.0.0:8084"
|
|
260
|
+
seed-peers:
|
|
261
|
+
- address: /dns/mel-00.mainnet.sui.io/udp/8084
|
|
262
|
+
peer-id: d32b55bdf1737ec415df8c88b3bf91e194b59ee3127e3f38ea46fd88ba2e7849
|
|
263
|
+
- address: /dns/ewr-00.mainnet.sui.io/udp/8084
|
|
264
|
+
peer-id: c7bf6cb93ca8fdda655c47ebb85ace28e6931464564332bf63e27e90199c50ee
|
|
265
|
+
- address: /dns/ewr-01.mainnet.sui.io/udp/8084
|
|
266
|
+
peer-id: 3227f8a05f0faa1a197c075d31135a366a1c6f3d4872cb8af66c14dea3e0eb66
|
|
267
|
+
- address: /dns/lhr-00.mainnet.sui.io/udp/8084
|
|
268
|
+
peer-id: c619a5e0f8f36eac45118c1f8bda28f0f508e2839042781f1d4a9818043f732c
|
|
269
|
+
`;
|
|
219
270
|
export function suiFullnodeYaml(network) {
|
|
220
271
|
const net = network === 'mainnet' ? 'mainnet' : 'testnet';
|
|
272
|
+
const p2p = net === 'mainnet' ? SUI_MAINNET_SEEDS : SUI_TESTNET_SEEDS;
|
|
221
273
|
return `# ysk-server generated Sui ${net} fullnode
|
|
222
274
|
db-path: /data/suidb
|
|
223
275
|
network-address: /ip4/0.0.0.0/tcp/8080/http
|
|
@@ -226,7 +278,7 @@ json-rpc-address: 0.0.0.0:9000
|
|
|
226
278
|
enable-index-processing: false
|
|
227
279
|
genesis:
|
|
228
280
|
genesis-file-location: /data/genesis.blob
|
|
229
|
-
`;
|
|
281
|
+
${p2p}`;
|
|
230
282
|
}
|
|
231
283
|
export async function ensureSuiFullnodeFiles(dataPath, network, fetchFn = fetch) {
|
|
232
284
|
const dir = String(dataPath ?? '').replace(/\/+$/, '');
|
|
@@ -252,6 +304,7 @@ export async function ensureSuiFullnodeFiles(dataPath, network, fetchFn = fetch)
|
|
|
252
304
|
}
|
|
253
305
|
export function buildSuiComposeYaml(spec) {
|
|
254
306
|
const rpc = spec.ports.rpc ?? 9002;
|
|
307
|
+
const p2p = spec.ports.p2p ?? 8084;
|
|
255
308
|
const net = spec.network === 'mainnet' ? 'mainnet' : 'testnet';
|
|
256
309
|
const tag = suiNodeTag(spec.network);
|
|
257
310
|
const image = spec.clients.node?.image || SUI_NODE_IMAGE;
|
|
@@ -268,6 +321,7 @@ services:
|
|
|
268
321
|
SUI_NETWORK: ${net}
|
|
269
322
|
ports:
|
|
270
323
|
- "127.0.0.1:${rpc}:9000"
|
|
324
|
+
- "0.0.0.0:${p2p}:8084/udp"
|
|
271
325
|
volumes:
|
|
272
326
|
- ${composeBind(spec.dataPath, '/data')}
|
|
273
327
|
`;
|
|
@@ -291,7 +345,8 @@ base:
|
|
|
291
345
|
execution:
|
|
292
346
|
genesis_file_location: "/data/genesis.blob"
|
|
293
347
|
full_node_networks:
|
|
294
|
-
-
|
|
348
|
+
- network_id: "public"
|
|
349
|
+
discovery_method: "onchain"
|
|
295
350
|
listen_address: "/ip4/0.0.0.0/tcp/6180"
|
|
296
351
|
api:
|
|
297
352
|
enabled: true
|
|
@@ -406,6 +461,8 @@ export function parseDotSync(body) {
|
|
|
406
461
|
}
|
|
407
462
|
export function buildSolComposeYaml(spec) {
|
|
408
463
|
const rpc = spec.ports.rpc ?? 8899;
|
|
464
|
+
const gossip = spec.ports.p2p ?? 8000;
|
|
465
|
+
const gossipEnd = gossip + 20;
|
|
409
466
|
const net = spec.network === 'mainnet' ? 'mainnet-beta' : 'testnet';
|
|
410
467
|
return `# ysk-server validators sol — HEAVY (needs high IOPS / large disk)
|
|
411
468
|
services:
|
|
@@ -422,12 +479,12 @@ services:
|
|
|
422
479
|
- 8000-8020
|
|
423
480
|
- --entrypoint
|
|
424
481
|
- entrypoint.${net}.solana.com:8001
|
|
425
|
-
- --expected-genesis-hash
|
|
426
|
-
- auto
|
|
427
482
|
- --no-voting
|
|
428
483
|
- --limit-ledger-size
|
|
429
484
|
ports:
|
|
430
485
|
- "127.0.0.1:${rpc}:8899"
|
|
486
|
+
- "0.0.0.0:${gossip}-${gossipEnd}:8000-8020/tcp"
|
|
487
|
+
- "0.0.0.0:${gossip}-${gossipEnd}:8000-8020/udp"
|
|
431
488
|
volumes:
|
|
432
489
|
- ${composeBind(spec.dataPath, '/data')}
|
|
433
490
|
`;
|