Files
proxmox/docs/03-deployment/MAINNET_WETH_RELAY_BACKLOG_POLICY.md

53 lines
2.1 KiB
Markdown
Raw Normal View History

# Mainnet WETH Relay Backlog Policy
This note documents the intentional backlog policy for the `mainnet-weth` relay worker.
## Current policy
- The worker runs in **forward-only** mode with `START_BLOCK=latest`.
- Historical oversized WETH release messages that are not meant to be replayed on every restart
are explicitly parked in `RELAY_SKIP_MESSAGE_IDS`.
- The worker remains **operational** with:
- `RELAY_SHEDDING=0`
- `RELAY_DELIVERY_ENABLED=1`
- `RELAY_ENFORCE_BRIDGE_TOKEN_BALANCE=1`
## Why this exists
The Chain 138 -> Ethereum Mainnet WETH lane had accumulated historical source messages whose
release amounts were larger than the current Mainnet relay bridge float. Replaying them on every
service restart created stale queue debt and made lane health depend on old backlog instead of
current forward traffic.
Parking those known historical message IDs is safer than repeatedly replaying them when:
- there is no active intent to fund and deliver those exact historical releases now
- there is no source-side cancel path
- the goal is to keep the worker truthful for current traffic
## What stays live
- New source `MessageSent` events are still monitored.
- Current forward traffic still relays normally.
- Underfunded new releases are deferred by the bridge-inventory guard instead of spending gas on a
reverting destination transaction.
## Operational rule
If you deliberately want to replay a parked historical WETH release later, do all of the following
in one planned operator pass:
1. Remove only the specific message ID from `RELAY_SKIP_MESSAGE_IDS`.
2. Set an explicit replay `START_BLOCK` that includes the source message.
3. Restart only `ccip-relay`.
4. Restore `START_BLOCK=latest` after the replay window is complete.
## Known historical WETH backlog posture
The current parked IDs live in:
- [`smom-dbis-138/services/relay/.env.mainnet-weth`](/home/intlc/projects/proxmox/smom-dbis-138/services/relay/.env.mainnet-weth)
Treat that env list as the enforced machine-readable source, and this document as the human policy
reference explaining why those IDs are intentionally skipped.