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>
Catch up from v1.2.1/1.0.1 pins so mainnet and sepolia followers track the current Consensys/maru release.
Co-authored-by: Cursor <cursoragent@cursor.com>
Re-label consensys/maru FROM tag into image OCI labels (upstream leaves
version/vcs-ref empty) and scrape /metrics on :9090 instead of the 404ing
/debug/metrics/prometheus path.
Co-authored-by: Cursor <cursoragent@cursor.com>
All defaults preserve current effective behavior - this deploy is a rendering no-op
until a host_var overrides a value. Part of the resource-optimizer knob rollout
(resource-optimizer/knob-manifest.yaml is the registry; verify_manifest.py enforces
default sync between templates and envfile).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Add relay template (templates/relays/celestia.doma.yml) for op-alt-da
- Add celestia relay config to op/doma stack in context.yml
- Add relay: celestia to op/doma testnet in config.yml
- Add op-node.doma.yml template with ALTDA env vars gated on relay_name
- Update op/doma/testnet/rollup.json with complete config including alt_da block
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
maru v1.2.x strictly validates l2-eth-api-endpoint as a URL and crashes when SEQUENCER
env var is empty. Old maru tolerated empty. Fixes 4 stuck Linea instances on
de-27, de-32, us-40 — all besu/geth running but maru crash-looping with config error
'Required type class java.net.URL could not be decoded from a String value: '
v1.2.0 tag doesn't exist on Docker Hub, causing compose build
failures on de-27, de-32, us-40. Using the actual tag format.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
SNAP sync is broken for Linea - it picks an old pivot block (~24.7M) that
no peers can serve world state for. This causes:
- World state download stuck with 0 pending requests
- Maru unable to push blocks to EL without complete world state
- Node stuck returning block 0 for "latest"
FULL sync executes every block from genesis. It's slower but reliable
and allows maru to drive the sync via engine API.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
When Besu is behind the CL head (e.g., during initial sync or after restart),
desync-tolerance=0 prevents maru from sending any fork choice updates to Besu.
This causes Besu to remain stuck at its current block.
Increasing desync-tolerance to 100000 allows maru to continue sending blocks
even when Besu is significantly behind, enabling it to catch up.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
When payload-validation-enabled is true, maru validates every block against
Besu before sending fork choice updates. If Besu is in an inconsistent state
(e.g., stuck in SNAP sync), this causes maru to stop sending fork choice
updates entirely, preventing Besu from ever syncing.
The official Linea configuration uses payload-validation-enabled = false,
which allows maru to continue sending fork choice updates regardless of
Besu's current state.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>