ethereum-optimism / ethereum-optimism/optimism
kona-node: check whether follow-source requests can block sequencing (op-node liveness bug fixed by #21759)
- Dominant language
- Go
- Stars
- 6.5k
- Forks
- 4k
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 145
Description
## Summary
#21759 fixed a liveness bug in op-node's follow-source (light CL sequencer) mode: `followUpstream` executed its upstream status request plus up to four sequential L1 lookups synchronously on the driver's main event loop. When the follow-source endpoint became unresponsive, every follow tick blocked the loop for the full RPC client call timeout (10s default), freezing unsafe block production for the duration.
This issue tracks verifying whether kona-node has the same problem. **No investigation has been done yet** — this is a tracking issue for that check.
## What to check
- Does kona-node implement the follow-source / light CL sequencer mode (sequencing unsafe blocks with L1 derivation disabled, importing safe/finalized state from an external CL — op-node's `--syncmode` follow path, introduced in #18571)?
- If not implemented yet: note where it is planned, and make sure the design keeps upstream requests off the sequencing-critical path from the start.
- If implemented: are the upstream status request and the L1 origin validation lookups executed on a task/actor that also gates block production (the equivalent of op-node's driver event loop)? A stalled or slow follow-source endpoint must never delay unsafe block production.
- While there: check whether any other periodic external RPC sits on kona-node's sequencing hot path with the same blocking pattern.
## Regression coverage
#21759 also added acceptance-test infrastructure for exactly this failure mode:
- `sysgo.StallableProxy` / `StallableFollowSourceProxies` — a reverse proxy that holds follow-source requests open on demand
- `dsl.L2ELNode.KeptAdvancing` — asserts continuous head advancement (a stall followed by a catch-up burst fails)
- `TestLightSequencerKeepsSequencingWhenFollowSourceStalls` (`op-acceptance-tests/tests/supernode/interop/follow_l2/stalled_source_test.go`)
If/when kona-node supports this mode under devstack, the same test should run against a kona-node light sequencer (or an equivalent test should be added).
## References
- Fix: #21759 — op-node: move follow-source requests off the driver loop
- Original feature: #18571 — op-node: Light CL: Always Follow Source using CL
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Contributor guide
Assessment
This issue has not been assessed yet.