garfield forked at Jovian (2026-08-26, ~block 23712660) on rpc-de-11 because rollup.json/genesis.json stopped at Isthmus; the de-32 bench copy restored from Conduit's snapshot cannot parse post-Jovian L1-info deposits (data is unexpected length: 178) for the same reason. mainnet activates Jovian 2026-09-15 and Karst 2026-09-23.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RzxemENdcZBCxdGrzXiFvS
cronos-mainnet now uses port 11552, cronos-testnet uses port 14547
to prevent Bind for 0.0.0.0:10521 port already allocated errors on rpc-de-35
cronosd supports custom P2P_PORT via ct_patch_p2p in init.sh, so auto-generated
ports are wired through correctly via P2P_PORT env var.
Disable GET#/eth/v2/debug/beacon/states/*, GET#/eth/v1/beacon/states/*/committees,
GET#/eth/v1/beacon/states/*/validators, and POST#/eth/v1/beacon/states/*/validators
which produce multi-GB responses that timeout at the gateway.
These were applied live on hosts 2026-08-31 (rob, operator-approved) but existed
nowhere durable. Baking them in at the source prevents regeneration from
erasing them.
Affects all ethereum and gnosis beacon-chain upstreams.
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
Adds --parent-chain.blob-client.secondary-beacon-url=${ETHEREUM_<L1>_BEACON_REST_FALLBACK}
to all nitro clients using ethereum L1 (non-arbitrum l1_network_name).
Chains with l1_network_name=arbitrum (apechain, opencampuscodex) remain unchanged
as the flag is inside the non-arbitrum guard.
Generated from templates/clients/nitro.yml + default.env changes in PR #4332.
The arc-network cloudsmith registry has NO v-prefix for 0.8.0.
Available tags are 0.8.0 and 0.8.0-66ad2d5a (the v-prefix existed
only for v0.7.3). Deploy of the previous change failed with
manifest-unknown for arc-consensus:v0.8.0.
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
- Bump execution client version from v0.7.3 to v0.8.0
- Bump consensus client version from v0.7.3 to v0.8.0
- Add --prune.block-interval=5000 to retain previous pruning schedule
- Supports reth Storage V2 (v0.8.0 binary runs V1 data without migration)
- Addresses breaking changes from arc-node v0.8.0 BREAKING_CHANGES.md
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
Operator ruling: NEVER force a reconnect on a routine reload/rpc-update run.
Only upstream REMOVALS or new disabled-method ADDITIONS require a gateway
reconnect to be seen by dRPC gateways.
Implement snapshot-based comparison:
- Before SIGHUP, read current advertised set (upstream IDs + disabled methods)
- Compare against previous snapshot (if exists)
- Drop established gRPC connections ONLY IF:
* an upstream ID disappeared, OR
* a new disabled-method entry appeared
- Pure additions or no change: reload only, no drop
- First run with no prior snapshot: do NOT drop, just write snapshot
- Always rewrite snapshot after successful reload
- All operations best-effort (failures never fail the script)
Live-measured: upstream/method additions propagate over existing connection
in ~16s (no reconnect needed).
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
Fix AVAGO_STAKING_PORT to use fixed port 9651 instead of salted client_port.
Fix port mapping from {{ client_port }}:{{ client_port }} to {{ client_port }}:9651
to ensure container uses fixed P2P port while host binds to salted port.
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
Extend reload_dshackle.sh to drop established gateway gRPC connections on
port 2449 after a successful SIGHUP config reload, forcing the dRPC edge
to reconnect within ~1s and re-read the advertised chain/method list.
Gateways only re-initialize advertisements on reconnection (verified live:
0.03-0.06s serving gap, 33 re-probes in 4s). This allows deploy-time upstream
additions (new chains like mova, new backends like us-50) to be seen by
dRPC immediately rather than waiting for natural reconnection.
The TCP-level drop is best-effort: failure does NOT fail the script.
Operator ruling: this stays a TCP-level drop, NOT a dshackle code change.
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
- Add FEEHISTORY_CAP env tunable with default 250
- Update init.sh to use FEEHISTORY_CAP for feehistory-cap in app.toml
- Maintain backward compatibility with JSON_RPC_FEEHISTORY_CAP
- Apply to both mainnet and testnet profiles
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
Matches the run profile flags to prevent 'incompatible state scheme' crash
on fresh datadir initialization (stored: hash, provided: path).
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
- Fix ABCORE_MAINNET_GETH_VERSION default from empty to v1.13.15-abcore-1.2
- Fix command flag from '--config /config/config.toml' to '--config=/config/config.toml'
Both issues caused first-deploy failures on rpc-de-32:
1. Empty version default caused curl exit 22 on binary download
2. Space-separated flag/value caused geth crash-loop with 'flag provided but not defined: -config'
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
- Add abcore.Dockerfile for geth-fork binary download from ABFoundationGlobal/abcore
- Add scripts/init.sh for geth initialization with genesis.json and config.toml
- Add generated compose file abcore-mainnet-geth-pruned-pebble-path.yml
- Update compose_registry.json with new entry
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
The previous commit (7cbd0532) added VERSION normalization to the DOWNLOAD
RUN step but forgot to add it to the EXTRACTION RUN step. Each Dockerfile
RUN is a fresh shell, so the extraction step fails with 'VERSION: unbound
variable' when it tries to use ${VERSION} in the SRC variable.
Fix: add VERSION="${ZERO_GRAVITY_VERSION#v}"; to the extraction RUN step
(line 73) so it defines VERSION before using it.
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
Fix four sed address ranges that were missing closing slash before comma:
- /^\[rpc\],/^\[/ -> /^\[rpc\]/,/^\[/
- /^\[json-rpc\],/^\[/ -> /^\[json-rpc\]/,/^\[/ (3 occurrences)
The malformed patterns caused sed to crash-loop the TAC container.
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
Match upstream release tags: aristotle v1.0.6 (0gchain-Aristotle) and
galileo v3.0.8 (0gchain-NG) both carry v-prefix in their release tags.
Required for 0g hardfork; old clients stuck-syncing.
Supersedes stale unmergeable PR ethereum-rpc-docker#62.
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
Fuji validators run the v1.15.0-fuji prerelease and refuse v1.14.2 peers
('peer attempting to connect with newer version'), so fuji nodes cannot
bootstrap on the stable version.
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
The TAC mainnet container was crash-looping with 'sed: unsupported command ^'
because busybox sed in Alpine does not support the GNU sed extensions used in
the cometbft-common.sh scripts (address ranges with ^ anchor and {} grouping).
Adding the 'sed' package installs GNU sed which supports these features.
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>