stop.sh and start.sh previously relied on ambient COMPOSE_FILE, so
backup fencing left orchestration unable to stop or restart the target
node. Pass -f base.yml and the node yml explicitly and fail loudly.
Co-authored-by: Cursor <cursoragent@cursor.com>
select_newest_remote_backup_from_list was sorting an empty process
substitution instead of the piped list-backups.sh output.
Co-authored-by: Cursor <cursoragent@cursor.com>
backup-node.sh now stops services, fences COMPOSE_FILE during backup, and
restores via EXIT trap; consumers skip <1MB .tar.zst artifacts so purged-
volume junk cannot shadow real backups.
Co-authored-by: Cursor <cursoragent@cursor.com>
Skip static-file offload when projected /slowdisk free space after restore
would fall below SLOWDISK_FLOOR_GB (default 150 GB); warn after extract if
the floor is breached. Restore never aborts — falls back to primary extract.
Co-authored-by: Cursor <cursoragent@cursor.com>
The aldaba_light binary writes sync and p2p logs only to rotating files
under /opt/l2_deploy/light/log/; wrap entry.sh so tail -n0 -F streams new
lines to stdout while preserving file logging and tini PID-1 semantics.
Co-authored-by: Cursor <cursoragent@cursor.com>
Set ADVERTISE_NODE_IP=${IP} and ADVERTISE_NODE_PORT to the salted host
port; map client_port:19000 so inbound cubenet peering is dialable.
Co-authored-by: Cursor <cursoragent@cursor.com>
When multicurl fails to reach the reference RPC (timeout/unreachable),
clean up the temp file, retry up to MAX_RETRIES, then exit with
'unverified (reference unreachable)' instead of falling through as success.
Also add Robinhood mainnet official RPC to reference-rpc-endpoint.json.
Co-authored-by: Cursor <cursoragent@cursor.com>
babylond v4.3.0 prompts for a BLS key password on every start when
bls_key.json exists unless start gets --no-bls-password; without it RPC
replicas crash-loop with "failed to get BLS password: EOF".
Co-authored-by: Cursor <cursoragent@cursor.com>
Switch to bitcoin/bitcoin:31.0 with txindex and tuned RPC flags, drop the
esplora indexer sidecar, and add bitcoin-protocol health probes so fleet
status and wait-for-online work for bitcoin-family nodes.
Co-authored-by: Cursor <cursoragent@cursor.com>
Pre-FROM ARG VERSION is not visible inside build stages; compose passes
VERSION as a build arg but git checkout expanded empty without a stage-level
re-declaration.
Co-authored-by: Cursor <cursoragent@cursor.com>
The golang:alpine go-builder stage runs git clone/checkout but never
installed git, causing compose build to fail with exit 127 on rpc-de-32.
Co-authored-by: Cursor <cursoragent@cursor.com>
op-reth reads OP-stack fork schedule from genesis.json; without
isthmusTime/jovianTime it rejects post-Jovian payloads (MinBaseFeeNotAllowedBeforeJovian).
Nitro crash-looped with "unsupported chain ID 4663" because baseConfig
only had chain.id. Add info-json with on-chain rollup addresses and
chain-config from genesis serializedChainConfig (BoLD v3.x, no validator-utils).
Co-authored-by: Cursor <cursoragent@cursor.com>
Orbit rollup on Ethereum/Sepolia with per-chain baseConfig assets (testnet
info-json from official config; mainnet genesis-json-file bootstrap).
Co-authored-by: Cursor <cursoragent@cursor.com>
Downgrade from 2.9.0 to fix mainnet crash-loop on block 81541799
(sender not an eoa) after us-40 purge.
Co-authored-by: Cursor <cursoragent@cursor.com>
Reduce stages.transaction_lookup.chunk_size from 5M to 500k in reth.toml
to prevent multi-hour pipeline stalls during large checkpoint windows on
op-reth-pruned-trace (rpc-de-32).
Mirror vanilla reth.yml's client_command_dbopts ({{ '- --full' if db_type in
['pruned','minimal'] else '' }}): the arc execution client now omits --full for the
archive variant (full history) and keeps it for pruned/minimal. Previously --full was
hardcoded so both variants ran identical pruned-sync flags.
- EL client renamed arc -> reth (it IS a reth fork); template arc.yml -> reth.arc.yml
so find_template picks it as the arc-network reth override. Path is now
arc/reth/arc-testnet-reth-{pruned,archive}-trace.yml (was arc/arc/arc-testnet-arc-full).
- profiles: full -> pruned[trace] + archive[trace] (there is no 'full' node type).
- removed the {{short_name}}-snapshots init container (arc-snapshots download, ~84 GB) and
the consensus-init depends_on that pointed at it. Chain data is seeded OUT-OF-BAND, never
via a compose service. Services: arc-testnet (EL) / arc-testnet-node (malachite CL) +
consensus-init / sockets-init.
- git rm orphaned arc/arc/arc-testnet-arc-full.yml.
kona's NodeMode enum (crates/node/service/src/service/mode.rs) has only
Validator/Sequencer and parses via FromStr against the PascalCase display
strings. There is no 'verifier' mode, so the old value failed to parse and
kona-node crash-looped on startup. Validator is also kona's default.
Source change is env/op/kona.env (global default for all op-stack kona nodes),
so this regenerates KONA_NODE_MODE across all 38 op/*/...--kona compose files.
Add PRECONFIRMATION_SERVER_JWT_SECRET and --preconfirmation.jwtSecret=/jwtsecret
to archive hoodi driver services so taiko-client v2.4.0 can start the
preconfirmation block server when PRECONFIRMATION_SERVER_PORT is enabled.
Co-authored-by: Cursor <cursoragent@cursor.com>
Update EL (op-reth) and CL (op-node) image defaults in all seven
base-mainnet compose profiles. Also aligns OP_NODE_RPC_PORT with
env/op/node.env (9545) on regen.
Co-authored-by: Cursor <cursoragent@cursor.com>
Rename SHASTA_INBOX to INBOX (v2.4.0 reads --inbox from INBOX env var
and no longer honors PACAYA_INBOX/SHASTA_INBOX). Remove unused PACAYA_INBOX.
Co-authored-by: Cursor <cursoragent@cursor.com>
In xlayer/op-node:v0.1.5.1, the =true path triggers an infinite
'Found highest L2 block with canonical L1 origin. Skip further sanity check
and jump to the safe head' loop that prevents block derivation entirely.
Setting =false restores normal startup: op-node advances through the check
and begins deriving blocks. No newer op-node image exists (v0.1.5.1 is latest).
Affects all xlayer-mainnet op-node variants (geth, reth) as they share
the same op-node consensus layer.
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
- Update heimdall init.sh with heimdall-109 chain_id and mainnet seeds
- Update cometbft.Dockerfile with v1.0.7-bone version
- Add bor.Dockerfile for building shibaone/bor from source at v1.3.9-bone
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
Add cronosd cometbft.Dockerfile and init.sh for Cronos EVM mainnet.
- Dockerfile: layer cometbft-common.sh + init.sh onto upstream cronos image
- init.sh: adapted from haqq pattern with EVM JSON-RPC on 8545, WS on 8546,
CometBFT RPC on 26657, P2P on 10521, chain-id cronosmainnet_25-1
- Statesync via ct_configure_statesync, genesis from official repo
- Pruning: custom with keep-recent=100, interval=19
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
Conduit's testnet rollup.json (doma-dev-ix58nm4rnd) omits chain_op_config,
crashing op-node v1.19.0 with 'cfg.Rollup.ChainOpConfig is nil'. Vendor a
complete rollup.json (chain_op_config eip1559 6/50/250, confirmed identical
in mainnet rollup.json and testnet genesis optimism config) plus the
post-fjord fork times baked in, mounted via custom_config so op-node uses
the local file instead of curling Conduit's incomplete one.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Doma testnet (Conduit slug doma-dev-ix58nm4rnd) on Conduit's purpose-built
conduit-op-reth image - better-tested for Conduit chains than upstream op-geth.
Fork times granite/holocene/isthmus/jovian (missing from Conduit's bare
rollup.json) supplied via env/op/doma/testnet/node.env. Experiment to validate
a clean canonical sync before redoing mainnet on op-reth.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Conduit's bare rollup.json for doma-mainnet omits jovian_time entirely, but the
EL genesis activates Jovian at 1769065201. Without the override op-node has no
Jovian fork time and mis-derives at the boundary (chain forks off canonical).
Same fix pattern as bob-sepolia. Override comes from env/op/doma/mainnet/node.env.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>