ethereum-optimism / ethereum-optimism/optimism

kona-safedb: land the SafeDB crate and integrate it into the ChainController

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

Description

Land PR #21522's collapsed single crate (rocksdb-backed, kona's own format — no op-node DB compatibility; parity is at record semantics + RPC level). Integrate: write at local-safe promotion in the ChainController (`derived_from` supplies the L1 key), truncate on resets, serve `optimism_safeHeadAtL1Block` (currently deliberately MethodNotFound — reversed here; update comment + rpc/rollup.mdx), config flag. Choose the disabled-state error shape consciously (two consumers sniff it: rollupclient.go "not found" coercion; kona-sp1 fetcher matches -32601/"safedb").

Depends on: #22527 (controller write hook); the crate itself can land in parallel.

🤖 *Co-created with Claude (Fable 5)*

Contributor guide

Open the contributing guide

Research direction

Start with PR #21522 and the ChainController write hook from dependency #22527, then trace local-safe promotion through derived_from and reset handling. Read rpc/rollup.mdx, rollupclient.go, and the kona-sp1 fetcher to compare expected disabled-state errors. Done means SafeDB is configurable, written and truncated at the specified points, and optimism_safeHeadAtL1Block is served with matching documentation and consumer behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, rust
Domain
api, backend, database
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.