ethereum-optimism / ethereum-optimism/optimism

kona-node: unsafe signer rotation handling differs from op-node

Open
#22,447 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
6.5k
Forks
4k
Avg merge
2d 18h
Merged PRs (30d)
134

Description

## Summary

After both clients observe an `unsafeBlockSigner` change from A to B:

- op-node accepts A or B for a three-hour grace period; a block verified against B ends it early ([#19981](https://github.com/ethereum-optimism/optimism/issues/19981), [#20063](https://github.com/ethereum-optimism/optimism/pull/20063), [implementation](https://github.com/ethereum-optimism/optimism/blob/611e84758ba8c659a165c8877a7626f6ab2a1e06/op-node/p2p/gossip.go#L461-L497)).
- kona-node accepts only B ([implementation](https://github.com/ethereum-optimism/optimism/blob/611e84758ba8c659a165c8877a7626f6ab2a1e06/rust/kona/crates/node/gossip/src/block_validity.rs#L101-L121)); any other recovered signer is reported to gossipsub as `Reject`, which can lower the relaying peer's score.

So kona can reject an outgoing-signer block op-node still accepts, even when both hold the same current signer. This matters more as rotations of the configured signer become frequent (rotating or multi-sequencer designs — where I hit it, designing a multi-chain handoff with a bounded rotation window). Rotation acceptance is also unspecified: the [P2P spec](https://github.com/ethereum-optimism/specs/blob/2049036afe878a7cb443f513f4e6ca453d90c340/specs/protocol/rollup-node-p2p.md#L310-L337) says only to reject a block whose sequencer signature is invalid.

## Question

#19981 adopted the grace period deliberately, and I found no kona-side decision to omit it, so this looks like a port gap. If parity is the desired direction, I'm happy to submit a small PR with focused rotation-validation tests; if the omission is deliberate, happy to follow the intended direction instead ([#21906](https://github.com/ethereum-optimism/optimism/issues/21906) doesn't currently cover signer-rotation behavior, but it may be the natural home).

Contributor guide

Open the contributing guide

Research direction

Start by reading rust/kona/crates/node/gossip/src/block_validity.rs and compare its signer validation with op-node/p2p/gossip.go, then review the referenced P2P specification. Confirm whether kona-node should match op-node's three-hour rotation grace period, and add focused rotation-validation tests once the intended behavior is decided.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, rust
Domain
networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.