ethereum-optimism / ethereum-optimism/optimism
kona-node: complete op-conductor support and compatibility
- Dominant language
- Go
- Stars
- 6.5k
- Forks
- 4k
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 145
Description
## Summary
Track the work required to make `kona-node` a fully supported, production-safe consensus-layer client behind `op-conductor`, with behavioral parity and shared acceptance coverage alongside op-node.
Kona currently contains partial conductor integration: it can configure a conductor RPC client, expose much of the sequencer admin API, and submit unsafe payloads to conductor. However, the current implementation and test fixtures do not establish full compatibility or the same HA safety guarantees as op-node.
## Goals
A conductor-managed Kona deployment should satisfy these invariants:
- conductor configuration forces the sequencer to start stopped;
- a sequencer starts only when its conductor reports leadership and the requested unsafe-head hash matches locally;
- every conductor RPC uses the configured timeout and the same parameter contract as op-conductor;
- an unsafe payload is committed to Raft before Kona canonicalizes or gossips it;
- commit errors and ambiguous timeouts cannot leak an uncommitted payload;
- leadership transfer and sequencer failure preserve liveness without producing divergent unsafe chains;
- the same acceptance requirements run against op-node and Kona.
## Known implementation gaps to audit
- `conductor.rpc.timeout` is parsed but not currently propagated to the conductor client.
- `conductor_overrideLeader` does not currently send the boolean parameter expected by op-conductor.
- `admin_startSequencer` does not currently enforce conductor leadership or the expected unsafe-head hash.
- conductor configuration does not automatically force stopped startup as it does in op-node.
- the sequencer currently seals and canonicalizes before committing to conductor, and commit errors are logged and ignored before gossip.
- the existing Kona conductor test fixture silently delegates to an op-node-only conductor preset.
## Testing strategy
Use two complementary layers:
1. Fast Rust integration tests for Kona's RPC contract and publication-safety invariants.
2. Full acceptance tests using real `kona-node`, EL, and `op-conductor` instances for Raft leadership, health, failover, proxying, block progression, and hash convergence.
## Completion criteria
- [ ] The tracked sub-issues are complete.
- [ ] Kona's conductor RPC and admin RPC contracts match op-conductor's expectations.
- [ ] No code path canonicalizes or gossips a conductor-managed payload without a successful conductor commit.
- [ ] Shared conductor acceptance coverage passes against both op-node and Kona.
- [ ] CI explicitly exercises a real Kona conductor cluster.
- [ ] Archived upstream Kona conductor issues are either superseded or closed with links to the completed monorepo work.
## Prior art
- https://github.com/op-rs/kona/issues/3094
- https://github.com/op-rs/kona/issues/3095
- #16418
Contributor guide
Assessment
This issue has not been assessed yet.