gaiad: v27.4.0 + statesync-skip-if-data + wasm-snapshot seed (port cursor host fix)
Live chain is v27.4.0 (abci_info); v25.3.2 halts at the v26/v27 upgrade heights (ghcr lags but v27.4.0 IS pullable). Statesync omits CosmWasm + IBC 08-wasm files -> gaia panics 'wasmlckeeper failed initialize pinned codes / Error opening Wasm file'. init.sh now: skip statesync if data/application.db exists (idempotent restart, preserves a restored snapshot); on fresh statesync, seed wasm from polkachu cosmos_wasmonly.tar.lz4. Porting cursor's host fix into the repo (host /root/rpc edits get reverted by run-rpc-update re-clone). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -264,6 +264,23 @@
|
|||||||
"arbitrum-nova-nitro-archive-pebble-path"
|
"arbitrum-nova-nitro-archive-pebble-path"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"chain": "nova",
|
||||||
|
"client": "nitro",
|
||||||
|
"compose_file": "arb/nitro/arbitrum-nova-nitro-minimal-pebble-hash",
|
||||||
|
"features": [
|
||||||
|
"hash",
|
||||||
|
"pebble"
|
||||||
|
],
|
||||||
|
"network": "arbitrum",
|
||||||
|
"node": null,
|
||||||
|
"relay": null,
|
||||||
|
"stack": "arb",
|
||||||
|
"type": "minimal",
|
||||||
|
"volumes": [
|
||||||
|
"arbitrum-nova-nitro-minimal-pebble-hash"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"chain": "nova",
|
"chain": "nova",
|
||||||
"client": "nitro",
|
"client": "nitro",
|
||||||
@@ -351,6 +368,23 @@
|
|||||||
"arbitrum-one-nitro-archive-pebble-path"
|
"arbitrum-one-nitro-archive-pebble-path"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"chain": "one",
|
||||||
|
"client": "nitro",
|
||||||
|
"compose_file": "arb/nitro/arbitrum-one-nitro-minimal-pebble-hash",
|
||||||
|
"features": [
|
||||||
|
"hash",
|
||||||
|
"pebble"
|
||||||
|
],
|
||||||
|
"network": "arbitrum",
|
||||||
|
"node": null,
|
||||||
|
"relay": null,
|
||||||
|
"stack": "arb",
|
||||||
|
"type": "minimal",
|
||||||
|
"volumes": [
|
||||||
|
"arbitrum-one-nitro-minimal-pebble-hash"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"chain": "one",
|
"chain": "one",
|
||||||
"client": "nitro",
|
"client": "nitro",
|
||||||
@@ -403,6 +437,23 @@
|
|||||||
"arbitrum-sepolia-nitro-archive-pebble-hash"
|
"arbitrum-sepolia-nitro-archive-pebble-hash"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"chain": "sepolia",
|
||||||
|
"client": "nitro",
|
||||||
|
"compose_file": "arb/nitro/arbitrum-sepolia-nitro-minimal-pebble-hash",
|
||||||
|
"features": [
|
||||||
|
"hash",
|
||||||
|
"pebble"
|
||||||
|
],
|
||||||
|
"network": "arbitrum",
|
||||||
|
"node": null,
|
||||||
|
"relay": null,
|
||||||
|
"stack": "arb",
|
||||||
|
"type": "minimal",
|
||||||
|
"volumes": [
|
||||||
|
"arbitrum-sepolia-nitro-minimal-pebble-hash"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"chain": "sepolia",
|
"chain": "sepolia",
|
||||||
"client": "nitro",
|
"client": "nitro",
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ services:
|
|||||||
dockerfile: cometbft.Dockerfile
|
dockerfile: cometbft.Dockerfile
|
||||||
args:
|
args:
|
||||||
CL_IMAGE: ${COSMOS_GAIAD_IMAGE:-ghcr.io/cosmos/gaia}
|
CL_IMAGE: ${COSMOS_GAIAD_IMAGE:-ghcr.io/cosmos/gaia}
|
||||||
CL_VERSION: ${COSMOS_MAINNET_GAIAD_VERSION:-v25.3.2}
|
CL_VERSION: ${COSMOS_MAINNET_GAIAD_VERSION:-v27.4.0}
|
||||||
sysctls:
|
sysctls:
|
||||||
# TCP Performance
|
# TCP Performance
|
||||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||||
@@ -67,6 +67,7 @@ services:
|
|||||||
- P2P_PORT=12554
|
- P2P_PORT=12554
|
||||||
- PERSISTENT_PEERS=a7f14a48cd97c0eae7833849ccdf4e9418622c56@65.108.128.201:14956,37dfe1ec33e9f88f378a61a32462d57d2baa5e74@65.108.99.140:26656,f86d297a28da1a2b186583daf0e229c2b1449414@144.76.217.227:26656,66ca3161c5532da890815e40826ddbbbe2cb7f6c@176.9.101.44:26656
|
- PERSISTENT_PEERS=a7f14a48cd97c0eae7833849ccdf4e9418622c56@65.108.128.201:14956,37dfe1ec33e9f88f378a61a32462d57d2baa5e74@65.108.99.140:26656,f86d297a28da1a2b186583daf0e229c2b1449414@144.76.217.227:26656,66ca3161c5532da890815e40826ddbbbe2cb7f6c@176.9.101.44:26656
|
||||||
- STATESYNC_RPC=https://cosmos-rpc.polkachu.com:443
|
- STATESYNC_RPC=https://cosmos-rpc.polkachu.com:443
|
||||||
|
- WASM_SNAPSHOT_URL=https://snapshots.polkachu.com/wasm/cosmos/cosmos_wasmonly.tar.lz4
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
stop_grace_period: 5m
|
stop_grace_period: 5m
|
||||||
networks:
|
networks:
|
||||||
|
|||||||
@@ -37,7 +37,29 @@ ct_patch_p2p "$CONFIG_DIR/config.toml" "$IP" "${P2P_PORT:-26656}"
|
|||||||
ct_merge_seeds "$CONFIG_DIR/config.toml" "$SEEDS"
|
ct_merge_seeds "$CONFIG_DIR/config.toml" "$SEEDS"
|
||||||
ct_set_persistent_peers "$CONFIG_DIR/config.toml" "$PERSISTENT_PEERS"
|
ct_set_persistent_peers "$CONFIG_DIR/config.toml" "$PERSISTENT_PEERS"
|
||||||
ct_set_moniker "$CONFIG_DIR/config.toml" "$MONIKER"
|
ct_set_moniker "$CONFIG_DIR/config.toml" "$MONIKER"
|
||||||
ct_configure_statesync "$CONFIG_DIR/config.toml" "$STATESYNC_RPC"
|
|
||||||
|
# Statesync ONLY on a fresh node. If application state already exists (a restored snapshot
|
||||||
|
# or prior sync), do NOT re-arm statesync — it would try to re-restore and, because statesync
|
||||||
|
# omits the CosmWasm + IBC 08-wasm blobs, the node panics at startup
|
||||||
|
# ("wasmlckeeper failed initialize pinned codes / Error opening Wasm file").
|
||||||
|
if [ -e "$HOME_DIR/data/application.db" ]; then
|
||||||
|
ct_log "statesync: existing data dir, skipping"
|
||||||
|
else
|
||||||
|
ct_configure_statesync "$CONFIG_DIR/config.toml" "$STATESYNC_RPC"
|
||||||
|
# statesync restores IAVL state but NOT the wasm files gaia needs at startup. Seed them
|
||||||
|
# from the wasm-only snapshot (best-effort; the fully robust alternative for wasm chains is
|
||||||
|
# a full snapshot restore). Extracts wasm/ (CosmWasm) + the IBC 08-light-client wasm.
|
||||||
|
if [ -n "$WASM_SNAPSHOT_URL" ] && { [ ! -d "$HOME_DIR/wasm" ] || [ -z "$(ls -A "$HOME_DIR/wasm" 2>/dev/null)" ]; }; then
|
||||||
|
ct_log "fetching wasm snapshot $WASM_SNAPSHOT_URL"
|
||||||
|
ct_apk lz4 tar
|
||||||
|
if curl -sL "$WASM_SNAPSHOT_URL" | lz4 -dc | tar -xf - -C "$HOME_DIR"; then
|
||||||
|
ct_log "wasm snapshot extracted into $HOME_DIR"
|
||||||
|
else
|
||||||
|
ct_log "WARN wasm snapshot fetch/extract failed"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
ct_seed_priv_validator_state "$HOME_DIR"
|
ct_seed_priv_validator_state "$HOME_DIR"
|
||||||
|
|
||||||
exec gaiad start --home "$HOME_DIR" --minimum-gas-prices "$MIN_GAS" "$@"
|
exec gaiad start --home "$HOME_DIR" --minimum-gas-prices "$MIN_GAS" "$@"
|
||||||
|
|||||||
Reference in New Issue
Block a user