Commit Graph
100 Commits
Author SHA1 Message Date
claude 8aee5fbccd Fix ipallowlist middleware for berachain-mainnet-reth-archive-trace: provide default 0.0.0.0/0 when WHITELIST empty 2026-08-13 00:12:25 +00:00
claudeandClaude Opus 5 92cdb31d17 zero-gravity: init guard must check the CONFIG volume, not a data-volume proxy
aristotle @ rpc-de-32 crash-looped after its build was fixed:

    priv_validator_state.json found in /root/.0g. Continuing!
    Already initialized, continuing!
    panic: ProvideBlsSigner (node-core/components/signer.go:46):
           key file does not exist at path: /root/.0g/config/priv_validator_key.json

$DATA_DIR and $CONFIG_DIR are SEPARATE docker volumes (<node>_zerog and
<node>_config), but the guard tested only $DATA_DIR/priv_validator_state.json —
inferring the state of the config volume from a file on the data volume. Worse, the
copy order wrote that guard file BEFORE the two key files, so an init interrupted
between them left the data volume with the guard and the config volume without the
keys. Every later start then took the 'Already initialized' branch, copied nothing,
and panicked. Unrecoverable by restarting: the node wedges permanently. aristotle
got there via the repeated build failures earlier today.

Fix, two parts:
  - guard on everything 0gchaind needs to boot (both config keys AND the data state
    file), not one proxy file on the wrong volume;
  - write the keys FIRST and the guard file LAST, so an interrupted init re-runs on
    the next start instead of latching into the wedged state.

Tested locally against the real 0gchaind binary (aristotle v1.0.6), sandboxed HOME:

  scenario                     before            after
  fresh volumes                keys created      keys created        (no regression)
  wedged (state, no keys)      keys MISSING      keys created        (unwedges)
  partial (state+node_key)     keys MISSING      keys created
  healthy (all present)        no re-init        no re-init, and a SENTINEL written
                                                 into priv_validator_key.json survives
                                                 -> never clobbers an initialized node

The 'wedged' row reproduces aristotle's production failure exactly.

Note this regenerates node identity on an affected node (node_key.json,
priv_validator_key.json). These are RPC nodes that never sign, so a fresh identity is
harmless; chain data on the _zerog volume is untouched.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-12 19:33:48 +00:00
claude 4a060bee0d deploy: regenerate compose from vibe-node main 3c848087f5c8 2026-08-12 17:37:46 +00:00
claude 4db13b2fc4 deploy: regenerate compose from vibe-node main 0415567d141c 2026-08-12 16:53:00 +00:00
claudeandClaude Opus 5 6df9f0f17a zero-gravity: detect tarball layout; galileo 3.0.8 moved binaries to a shared root bin/
Fixes the de-32 build break introduced by vibe-node #2912 (galileo 3.0.3 -> 3.0.8,
merged as bc4cecf). Job ad580587:

    #16 chmod: cannot access '/0g/bin/0gchaind': No such file or directory

The Dockerfile hardcoded 'galileo -> mv <root>/rpc /0g'. That held for 3.0.3, where
every profile dir carried its own copy of the binaries. 3.0.8 DEDUPLICATED them into
a shared <root>/bin/ (168 MB -> 69 MB), leaving rpc/ as configs-only — so the move
produced configs and no binaries, and the build died two layers later on a chmod.

Note 'does <root>/rpc exist' is not a sufficient test: 3.0.8 still ships rpc/, it just
no longer holds bin/. Verified layouts:

  galileo 3.0.3     <root>/{rpc,validator,archive,seed}/bin/ + configs
  galileo 3.0.8     <root>/bin/ shared + <root>/{rpc,...}/ configs
  aristotle 1.0.6   <root>/bin/ + configs, no profile dirs

So: take configs from the profile dir when present, then top the binaries up from the
shared root bin/ if the profile dir did not supply them.

Also asserts both binaries exist immediately after extraction, naming the chain, the
version and the known layouts — so the next upstream reshuffle reports itself at the
point of failure rather than as an anonymous chmod error.

Verified against the real artifacts — all three now yield an identical /0g
(bin/0gchaind 76M, bin/geth 46M, geth-config.toml, geth-genesis.json,
kzg-trusted-setup.json, 0g-home/, rollback_cl.sh), and a synthetic unknown layout
exits 1 with the diagnostic instead of reaching chmod.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-12 11:09:51 +00:00
claude 561ff43828 deploy: regenerate compose from vibe-node main bc4cecf1a74f 2026-08-12 08:38:04 +00:00
claudeandClaude Opus 5 cfac32736e zero-gravity: resolve release tag by probing known forms; fail loudly on 404
0G publishes aristotle and galileo from two different repos, and neither uses a
consistent release-tag format. The asset filename is always <spec>-v<version>.tar.gz;
only the tag varies:

  aristotle -> 0gchain-Aristotle   1.0.4 = "1.0.4"    1.0.6 = "v1.0.6"
  galileo   -> 0gchain-NG          3.0.3 = "v3.0.3"   3.0.7 = "galileo-v3.0.7"   3.0.8 = "v3.0.8"

The hardcoded formats meant aristotle could not go past 1.0.4 and galileo could not
reach 3.0.7. Resolve the tag by trying the known forms in order instead.

Also switch curl -sL to -fsSL. Without -f a 404 HTML body was written into the
.tar.gz and the build failed several layers later at 'tar: not in gzip format',
an error pointing nowhere near the cause. That has now caused three separate
misdiagnoses, including a de-32 build blocker.

Verified end-to-end against the real artifacts: aristotle 1.0.4/1.0.6 and galileo
3.0.3/3.0.7/3.0.8 all resolve; aristotle 3.0.3 and galileo 9.9.9 fail immediately
with an actionable message.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-11 06:21:38 +00:00
claude 799209b5d2 zero-gravity-aristotle: fix node version to 1.0.4 (was 3.0.3 which doesn't exist for Aristotle repo) 2026-08-10 21:56:44 +00:00
claude 17cd0d5f23 deploy: regenerate compose from vibe-node main c5e4641499ff 2026-08-07 12:13:22 +00:00
claude d57fd2e644 tempo-mainnet: bump reth to 1.12.0 (T9 hardfork requires v1.12.0, node crash-loop at block 33513646) 2026-08-06 16:24:58 +00:00
claude e1427de966 ethereum: bump blsync to alltools-v1.17.5 for go-ethereum v1.17.5 patch (2026-07-27); includes polygon-amoy bor 2.10.0-private for hardfork at block 44,120,000 2026-08-06 11:48:53 +00:00
claudeandMistral Vibe db38905bfe polygon-amoy: bump bor from 2.9.0 to 2.10.0-private for private Amoy hardfork at block 44,120,000 (ExtraData layout change)
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-08-05 22:35:04 +00:00
claudeandMistral Vibe 699723d742 berachain: upgrade bera-reth to v1.4.4 for Osaka1 hardfork support
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-08-05 21:15:20 +00:00
claude a0483f6934 thundercore: zeus is MAINNET (chainid 108) — fix mislabeled thundercore-testnet upstream label (drpc_name pin; SLUG-COLLISION lint find) 2026-08-05 05:09:30 +00:00
claude b940a72643 soneium: remove 5 orphaned 'soneium-miniato' composes (typo'd generated leftovers from a pre-rename config; correct minato-sepolia variants exist; flagged by SLUG-COLLISION lint) 2026-08-05 04:14:00 +00:00
claude d5e39c2329 zircuit: migrate mainnet to Conduit op-reth stack, drop dead op-geth archives
- Add zircuit-mainnet to conduit-op-reth (ghcr.io/conduitxyz/conduit-op-reth:v2.1.1)
- Add genesis.json/rollup.json from Conduit API with bedrockBlock=32956468 fix
- Add Conduit P2P bootnodes + static peer
- Use ETHEREUM_MAINNET_* vars for L1 (chainid 1) with oplabs op-node:v1.19.3
- Remove zircuit-mainnet op-geth archive/pruned profiles (SLS dependency dead)
- Keep sequencer endpoint and drpc_chain=zircuit-mainnet

SLS-decommission root cause: zircuit1/l2-geth hard-requires Zircuit-hosted
SLS DB that no longer resolves (mainnet-sls-db-global-primary.cluster-ro...
no such host). Migrating to Conduit external-node stack per operator directive.
2026-08-05 03:58:36 +00:00
claude 7d27ff1918 fix list-restorable.sh process-substitution infinite loop in volume-keys read loop
Regression from d896378e: putting < <(...) on `read` re-runs the producer each iteration. Capture required volume keys once and feed via done<<<.
2026-08-04 16:23:48 +02:00
claudeandMistral Vibe b23545e143 immutable-zkevm: bump geth v1.17.4→v1.17.5 (mainnet)
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-08-04 12:20:48 +00:00
claude 3be855a681 fix soneium-minato→miniato typo + add drpc_chain to compose_registry.json
Add authoritative dRPC slug field (operator audit 2026-08-04):
- generate_registry.py: add drpc_chain field from x-upstreams[0].chain
- Fix soneium-minato-sepolia → soneium-miniato-sepolia typo in compose files
- drpc_chain is null for entries without x-upstreams (not dRPC-servable)

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-08-04 07:34:50 +00:00
claude d896378eb7 Add optional/ephemeral volume notation for restore resilience
Introduce x-optional-volumes for beacon sidecars (prysm, nimbus, lighthouse,
teku, lodestar) that are checkpoint-sync capable and rebuild state quickly.
Mark reth sockets volumes as ephemeral (runtime IPC artifacts).

Script changes:
- volume-utils.sh: add is_optional_volume_key() function
- restore-volumes.sh: tolerate missing optional/ephemeral volume archives
- clone-backup.sh: skip missing optional/ephemeral volumes gracefully
- list-restorable.sh: only require archives for non-optional persistent volumes

This fixes the de-25 ethereum prysm incident (entire 1.1T restore failed
due to missing prysm archive) and arc-testnet reth sockets restore loops.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-08-04 06:10:55 +00:00
claude d21f2669ae beacon x-upstreams: restore disable-validation: true for gnosis and ethereum nimbus beacon-chain upstreams
Restore the beacon x-upstream options.disable-validation: true that was
removed during regeneration. This prevents dshackle 0.79.10's beacon health
validator from timing out on the spec-compliant empty-body 200 that nimbus
returns, causing the upstream to flap UNAVAILABLE. Matches the established
ethereum-beacon pattern.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-08-03 06:58:50 +00:00
claude 2779f359d6 polygon: remove bor minimal profile .prune.yml (prune-block incompatible with pebble+path freezer) 2026-08-02 03:10:47 +00:00
claude 879ea1769f polygon: remove bor minimal profile (prune-block incompatible with pebble+path freezer) 2026-08-02 03:09:56 +00:00
claude 776aabd231 polygon minimal .prune: pass --datadir.ancient (bor nests chaindata under bor/; prune-block cannot derive the freezer path — crash-looped on de-12) 2026-08-02 02:10:59 +00:00
claudeandMistral Vibe 399fe87f46 ethereum: bump erigon3 from v3.5.2 to v3.5.3
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-08-01 06:16:03 +00:00
claude 9e1aaf6393 erigon3: bump Dockerfile VERSION to v3.5.3 2026-07-31 10:35:01 +00:00
claude 302c663039 op.zircuit.garfield: bump op-node to v1.19.3
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-07-31 09:06:07 +00:00
claudeandCursor 30aa16e4e2 arc.mainnet: bump arc-execution (reth) and arc-consensus to v0.7.3
Mirror arc.testnet pins so mainnet EL/CL image defaults use v0.7.3.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 07:35:35 +00:00
claudeandCursor 59e432fa72 linea-mainnet: disable Maru [linea] finalization provider
Maru CL stuck behind tip was sending FCU with finalized ahead of EL head
(Besu -38002). Comment out [linea] until EL catches tip (no enabled flag).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 07:31:23 +00:00
claudeandCursor f68b541f58 ink-mainnet: bump op-reth to v2.4.0
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 04:34:06 +00:00
claude 97482cffe1 polygon: add bor minimal profile + .prune compose (bor snapshot prune-block rotation, arb-style) 2026-07-31 01:16:15 +00:00
claude 4806a8ad1b deploy: regenerate compose from vibe-node main 47bb3d78e3c1 2026-07-30 08:05:17 +00:00
claudeandCursor 7b05a14515 drpc: bump default dshackle image to 0.79.11-ss2
ss1 shipped without drpcorg public-submodule resources and crash-loops
at boot (compatible-clients.yaml missing); ss2 is the boot-verified fix.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-30 07:51:24 +00:00
claudeandCursor bab834dcde drpc: default dshackle image to stakesquid fork 0.79.11-ss1
Fleet-wide default is now stakesquid/dshackle:0.79.11-ss1 (digest-pinned);
DSHACKLE_IMAGE env escape hatch retained for rollback to upstream.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-30 07:29:36 +00:00
claudeandCursor 76dfdfe2a2 drpc: allow per-host DSHACKLE_IMAGE override for canary fork rollout
Default remains drpcorg/dshackle:0.79.10; canary hosts can set
DSHACKLE_IMAGE via host_vars env_overrides without editing compose.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-30 07:25:54 +00:00
claude 03b9aff1e9 deploy: regenerate compose from vibe-node main ed19fc13dd0f 2026-07-29 12:27:48 +00:00
claude 7b87130e4f deploy: regenerate compose from vibe-node main a319d697a820 2026-07-29 11:47:54 +00:00
claude fbf6963ca7 deploy: regenerate compose from vibe-node main 2c49f032cd65 2026-07-29 02:47:11 +00:00
claude 580ece7b9c ink-mainnet: drop all compose variants except op-reth pruned-trace--kona
Orphaned op-geth files (already removed from config.yml) plus sibling
op-reth/op-erigon profiles still share Traefik service names/paths under
COMPOSE_FILE. Keep only ink-mainnet-op-reth-pruned-trace--kona.yml as the
single active /ink-mainnet route.
2026-07-28 11:49:27 +00:00
claudeandCursor 093ecb0d7a op.superseed.sepolia: bump conduit-op-reth v2.1.1 -> v2.1.2
Also regenerates digibyte-mainnet compose to match already-landed digibyted 9.26.5 pin.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-28 02:43:25 +00:00
claudeandCursor c3ce5da911 bump bsc reth-bsc v0.1.0-fix -> v0.1.1 (Pasteur-ready)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-28 00:42:19 +00:00
claude 81985dbc98 digibyte: bump digibyted Dockerfile 9.26.4 -> 9.26.5
Post-activation maintenance release; update VERSION and tarball SHA256.
2026-07-26 06:14:11 +00:00
claudeandCursor c17c4bd35e berachain-bepolia: bump bera-reth v1.4.3 -> v1.4.3-rc.0 (Osaka1)
v1.4.3 does not exist on GHCR; v1.4.3-rc.0 is the Osaka1 hardfork fix.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-26 06:08:05 +00:00
claude 6078c661dc deploy: regenerate compose from vibe-node main 2d213d3bd0ee 2026-07-26 04:43:23 +00:00
claudeandCursor 3737986e27 taiko-hoodi: bump nethermind 1.39.1 -> 1.39.2 (.NET CVE patch)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-26 04:37:06 +00:00
claudeandClaude d56b3a414b zircuit-garfield: migrate testnet to Conduit (op-reth + op-node)
Replace the old op-geth + zircuit1/op-node garfield (holesky L1, built-in
OP_NODE_NETWORK=garfield) with the Conduit node template:
- EL: ghcr.io/conduitxyz/conduit-op-reth:v2.1.1 (--chain=/config/genesis.json)
- CL: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.19.0
      (OP_NODE_ROLLUP_CONFIG=/config/rollup.json)
- L1: Ethereum Sepolia (l1_chain_id 11155111)
- rollup.json/genesis.json from api.conduit.xyz (slug zircuit-garfield-testnet;
  regenesis 2026-07-06, bedrockBlock 0)
- Conduit P2P static peer + bootnodes
Remove the 4 now-orphaned op-geth garfield composes (none were deployed).

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-25 03:45:22 +00:00
claudeandCursor 05066c20d0 berachain-bepolia: bump bera-reth v1.4.2 -> v1.4.3
EL/CL baseFee mismatch at block 22961752; CL crash-loops on
INVALID payload from post-v1.4.2 block format while beacon-kit
is on v1.4.1. Also regenerates ink-mainnet OPE P2P bootnodes
from parent a790c3e and refreshes reference-rpc-endpoint (mova).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-24 10:55:03 +00:00
claude 60fa1dd047 deploy: regenerate compose from vibe-node main 98bd87d192f5 2026-07-23 07:13:30 +00:00
claude b02c0971ce deploy: regenerate compose from vibe-node main de243b1ca320 2026-07-23 03:14:03 +00:00
claude 99664129aa deploy: regenerate compose from vibe-node main 4a45537ac06b 2026-07-22 23:25:05 +00:00
claudeandCursor d4d4091939 Bump cronos-zkevm external-node from v31.0.0 to v31.3.0
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-22 06:09:43 +00:00
claudeandCursor ad4c7e5528 arc.testnet: bump arc-execution + arc-consensus 0.7.2 → v0.7.3 (EL+CL lockstep)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-22 01:06:36 +00:00
claude 28232799c7 deploy: regenerate compose from vibe-node main daf770f1b20d 2026-07-22 00:25:03 +00:00
claudeandCursor 35aa9c9d1e gnosis: expose nimbus CL beacon REST via Traefik (mirror ethereum)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-21 23:56:57 +00:00
claudeandCursor 63736e47a3 tempo: drop removed --consensus.fee-recipient flag (1.10.2 crash-loop)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-21 12:26:19 +00:00
claudeandCursor eb7c5f0e64 bsc: bump bsc client 1.7.3 → 1.7.6 (Pasteur hardfork)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-21 11:24:18 +00:00
claudeandCursor 0068e82f6b berachain.mainnet: bump bera-reth v1.4.1 → v1.4.2
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-21 04:04:28 +00:00
claude 7db90e75e4 deploy: regenerate compose from vibe-node main b0f2d7c6cc87 2026-07-21 03:04:31 +00:00
claude fbc5af63e2 deploy: regenerate compose from vibe-node main 00e25d8393e3 2026-07-21 01:01:56 +00:00
claudeandCursor 093babb50f drpc: cap dshackle JVM heap with JAVA_OPTS=-Xms1g -Xmx4g
Image default is -Xms1024M with no -Xmx, so heap can grow unbounded (~30GiB).
us-41 was at 90% memory with no swap; -Xmx4g provides a safety limit.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-20 16:24:22 +00:00
claudeandCursor 477afc412a bitcoin-cash: bump bitcoind (bitcoin-abc) 0.33.7 -> 0.33.8
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-20 15:37:46 +00:00
claude 53503bc6e5 deploy: regenerate compose from vibe-node main 73a2d943c297 2026-07-20 13:10:03 +00:00
claude 6a19dc91e1 deploy: regenerate compose from vibe-node main e1cb79cc7707 2026-07-19 08:52:47 +00:00
claude db81e62c73 plasma: add testnet compose + assets (reth + plasma-consensus)
Canonicalize plasma-testnet so the tracked compose adopts the same
volume/service names as the de-32 hand-written override (rpc_plasma-
testnet-reth-pruned-trace-{execution,consensus,jwt}). Also refresh
mainnet observer sed to be chain-agnostic.
2026-07-19 04:15:45 +00:00
claudeandCursor 38c43345f6 bump kona-node image tag v1.6.1 → v1.6.2
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 02:44:38 +00:00
claudeandCursor f14b9ff27d celo+ronin: bump eigenda-proxy relay to 2.7.1
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 01:55:07 +00:00
claude ab58da64b7 deploy: regenerate compose from vibe-node main 87142cd310ec 2026-07-18 00:12:57 +00:00
claudeandCursor 1fdef578b3 op.ink.sepolia: bump op-reth image tag v2.3.2 → v2.4.0
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 17:08:28 +00:00
claude 64e0bef77a deploy: regenerate compose from vibe-node main 9ed685edcf50 2026-07-17 14:34:25 +00:00
claude 07be37d3a4 deploy: regenerate compose from vibe-node main 2583bcb3d07e 2026-07-17 01:33:53 +00:00
claudeandCursor 3e22390e9a op.katana.mainnet: pin op-reth develop → v2.4.0
Also regenerate compose for already-merged hashkey static-peers / op-geth
static-nodes entrypoint (parent #1437) that had not yet landed in rpc.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 13:39:58 +00:00
claude 671f293771 tempo-testnet: fix init exit when validator_key.json exists
Replace buggy && short-circuit with if/fi so the one-shot init
exits 0 when the signing key is already present (matches mainnet/
moderato and templates/clients/reth.tempo.yml), unblocking sync
resume on data-intact hosts still on the orphaned testnet compose.
2026-07-16 05:08:07 +00:00
claudeandCursor d2dc6a607e nethermind: bump 1.39.0 → 1.39.1
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 00:40:08 +00:00
claude 6c48f8a8e5 deploy: regenerate compose from vibe-node main f34cc646017b 2026-07-15 23:17:07 +00:00
claudeandCursor 98d8a25e53 fix chain-name typos: ethereum-hoodie→hoodi, drop stale soneium-miniato compose
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-15 18:14:59 +00:00
claude b92e1a6e67 deploy: regenerate compose from vibe-node main 37cda84e5bde 2026-07-15 16:03:43 +00:00
claudeandCursor 810c5b8631 ethereum: bump prysm v7.1.4/v7.1.6 → v7.1.7 in generated compose defaults.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-15 13:06:09 +00:00
claude de7984c792 deploy: regenerate compose from vibe-node main dfabbf30beac 2026-07-15 12:14:04 +00:00
claudeandClaude 3dfe9cd8ef reload_dshackle.sh: gate the reload on the 1:1 invariant
Insert validate-dshackle-1to1.py between the overrides weave and the HUP signal:
a dshackle config routing >1 node for the same chain is REFUSED (exit 1) so the
live config stays active. Structural enforcement of 1 dshackle = 1 node/chain —
we can't attribute traffic to multiple nodes behind one proxy (no per-upstream
request metric; conn-seconds biases it). See /root/proxy-1to1-invariant-plan.md.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-15 01:02:52 +00:00
claudeandClaude bcc24595a9 add validate-dshackle-1to1.py: structural 1:1 proxy invariant gate
Refuses to activate a dshackle config routing >1 upstream for the same chain
(any kind/client) — we cannot attribute traffic to multiple nodes behind one
proxy (no per-upstream request-count metric; conn-seconds biases it), and the
attribution model + placement planner both assume 1:1. Wire into
reload_dshackle.sh BEFORE the reload so a drifting config can never go live.
Host-local by design (the repo doesn't track host->dshackle assignment; 1:1 is
only checkable against the assembled dshackle config at /root/rpc/main_configs).
See /root/proxy-1to1-invariant-plan.md.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-15 00:12:48 +00:00
claudeandCursor e67c16a432 cronos-testnet: use v1.7.8-testnet cronosd binary (tcrc bech32)
Mainnet cronosd v1.7.8 embeds crc/crcvaloper prefixes and cannot replay
testnet validator addresses (tcrc/tcrcvaloper), causing crash-loop on start.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-14 15:21:26 +00:00
claude f0ec0ba784 deploy: regenerate compose from vibe-node main 80a0c8998610 2026-07-14 15:06:31 +00:00
claude e165b81731 deploy: regenerate compose from vibe-node main bbf5b6cdb835 2026-07-14 12:50:47 +00:00
claude 526f125d5a cronos: persist ws-origins=* in init.sh on every start
Empty ws-origins rejects WebSocket connections with an Origin header
(dshackle head-subscription monitoring). Sed under [json-rpc] like
address/ws-address so restarts keep the value.
2026-07-13 17:09:09 +00:00
claude 14b3d70125 deploy: regenerate compose from vibe-node main e5b8e344f927 2026-07-13 16:58:03 +00:00
claude ba410ba7f6 plasma: vendor mainnet chain assets (genesis, non-validator config, validator keys) 2026-07-13 16:34:23 +00:00
claude a761bd7845 deploy: regenerate compose from vibe-node main b9a5ff49c3b4 2026-07-13 15:50:09 +00:00
claude 2e9f31a6fb deploy: regenerate compose from vibe-node main 95fd32365c42 2026-07-13 04:19:56 +00:00
claudeandCursor 4509b5afd2 op/celo,op/ronin: revert eigenda-proxy 2.7.1 → v2.6.0
Restore prior eigenda-proxy relay image default in generated compose.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-13 01:06:36 +00:00
claudeandCursor 849f5e3235 op/celo: bump eigenda-proxy v2.6.0 → 2.7.1
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-12 23:36:30 +00:00
claude 59c8d67923 op.ronin: bump eigenda-proxy 2.7.0 → 2.7.1
Update default relay image tag for Ronin mainnet and Saigon testnet
compose profiles.
2026-07-12 20:36:27 +00:00
claudeandCursor 5dd087f10b fraxtal: bump op-node to v1.19.0-frax-1.2.1
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-12 17:04:55 +00:00
claude 050c67f48e deploy: regenerate compose from vibe-node main 88f325516e7b 2026-07-12 15:14:49 +00:00
claude 10e8772e85 deploy: regenerate compose from vibe-node main 20e64aa33cad 2026-07-12 12:06:33 +00:00
claude 7ba1b0944b aztec-testnet: bump AZTEC_TESTNET_AZTEC_VERSION to 5.0.0-rc.2
Testnet rollup protocol upgrade; rc.2 passes compatibility check.
2026-07-12 03:12:00 +00:00
claude ff41ec1c25 deploy: regenerate compose from vibe-node main 642ad0342dde 2026-07-12 02:09:52 +00:00
claude 52d0d7cf05 deploy: regenerate compose from vibe-node main dbd3156992d7 2026-07-11 15:33:25 +00:00
claude 25ba700ea2 Bump vanilla erigon3 compose image tag v3.5.0 → v3.5.1
Regenerated from context.clients.erigon3.client_version bump (ethereum,
gnosis, linea profiles only; polygon/BSC forks unchanged).
2026-07-11 13:07:23 +00:00
claude a47324ed0a deploy: regenerate compose from vibe-node main 91d4f07dcd8a 2026-07-11 10:32:47 +00:00
claude 4cc335cfce deploy: regenerate compose from vibe-node main 6e2f43c9c44b 2026-07-11 02:35:08 +00:00