docs(operators): document the send-only sequencer endpoint and the missing minimal node tier - #2296
Open
GigaHierz wants to merge 2 commits into
Open
docs(operators): document the send-only sequencer endpoint and the missing minimal node tier#2296GigaHierz wants to merge 2 commits into
GigaHierz wants to merge 2 commits into
Conversation
…ssing minimal node tier The sequencer URLs were documented on three operator pages without noting that the endpoints reject every method except eth_sendRawTransaction, and no builder-facing page mentioned the sequencer at all. Separately, the NODE_TYPE reference listed only full and archive, omitting the minimal tier the compose setup supports. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
GigaHierz
requested review from
piersy and
seolaoh
and removed request for
a team
August 31, 2026 12:54
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The hole, and the fix
A builder running a node asked where to send transactions directly. Answering it surfaced two gaps in the docs, both fixed here.
1. The sequencer endpoint is send-only, and nothing said so. The URLs are documented on three operator pages, but none mention that the endpoints reject every method except
eth_sendRawTransaction. Anyone who takes the URL from those pages and configures it as a provider endpoint gets an opaque403/-32601 "rpc method is not whitelisted"on their first read call, with nothing in the docs to explain it. Separately, no builder-facing page mentioned the sequencer at all, so the question arrived as support traffic instead of resolving in the docs. Adds a<Note>on Run a public RPC node, and one sentence on Forno routing readers to the operator page.2. The
minimalnode tier was missing.celo-l2-node-docker-composesupportsminimal,fullandarchive, andNODE_TYPEselects both the snapshot downloaded and reth's prune profile. The docs listed two, presenting the Values column ofconfiguration.mdxas exhaustive when it isn't — so an operator sizing a node against our reference had no way to learn the smallest tier exists. Adds it to the reference row, the "Node types" list, and the run-node step.Two trade-offs picked the wording. The Forno sentence deliberately does not repeat the sequencer URL — publishing it on a builder page would promote direct submission to an endpoint with no published rate limit or SLA, so it points at the operator page instead. And the
minimaldescription says what the tier costs (little historical RPC), not only what it saves; a tier listed by name alone invites operators to pick the smallest number and discover the limitation in production.What this does NOT do / residual risk
x-ratelimit-limit: 200; mainnet sits behind Cloudflare and exposes no rate-limit header. No published policy exists for either, and a number sourced only from a response header is a guess. Left out deliberately — tracked as an ops step below.troubleshooting.mdx,configuration.mdx); they still give the URL without the caveat. Deliberate — one fact, one home. Flagged as a question below.configuration.mdxagainst the node repo. Only theNODE_TYPErow was verified, because that is what the question surfaced. The other rows are unverified and could carry the same staleness.NODE_TYPErow can go stale again exactly the way it just did.minimalguide page, and does not copy the repo's disk-size figures (~7 GB / ~20 GB) — those change per snapshot, and duplicating them into a second location is the drift this PR is fixing.Judgement calls
Bundling. This is two concerns in one PR — a live builder-facing fix and reference staleness — bundled at the maintainer's direction. They share no files and split cleanly (
public-rpc-node.mdx+forno.mdx/configuration.mdx+overview.mdx+run-node.mdx); happy to split on request, either half stands alone.public-rpc-node.mdxonly, not on all three pages carrying the URL. Duplicating a fact across three pages is where drift starts. Reversal cost: copy 5 lines per page.minimallisted first,fullstill marked(default). Ordering is smallest→largest to match the repo's own table; the(default)marker carries the recommendation rather than the ordering. Reversal cost: reorder one row.minimaldescribed as validating every block. The repo README calls it reth's "most aggressive prune profile" and confirms it "syncs to tip, validates consensus". Stated explicitly so nobody readsminimalas a light client — Celo L2 has none, and that exact misreading is what prompted this work. Reversal cost: delete one clause.archive-node.mdxuntouched — archive-specific and correct as-is.No product change bundled.
Issues
No linked issue — this came from inbound builder traffic rather than a ticket, and no open issue covers it. Happy to file retroactively for the trail.
Stacking / conflicts
Branched off
main, independent of my other open PRs. Checked all 8 open PRs for file overlap against the 5 changed files — none.Verification evidence
Claim 1 — the sequencer endpoint accepts only
eth_sendRawTransaction. Tested against both live endpoints on 2026-08-31:eth_sendRawTransactionreaches transaction decoding.eth_blockNumber,eth_getBlockByNumber,eth_call,eth_gasPrice,eth_getTransactionCount,net_versionandweb3_clientVersionall return-32601. Identical results onhttps://sequencer.celo-sepolia.celo-testnet.org.Claim 2 —
minimalis a real tier that prunes but still executes every block. Upstream pinned to SHAbde11361b578ofcelo-org/celo-l2-node-docker-compose:README.md:55-56scripts/start-op-reth.sh:30-33,48-51— confirmsNODE_TYPEdoes double duty, which is why the row now reads "prune profile and the snapshot tier":Supporting — the forwarding claim the Note sits next to.
scripts/start-op-reth.sh:116-117at the same SHA starts op-reth with--rollup.sequencer="$OP_RETH__SEQUENCER_URL"and--rollup.disable-tx-pool-gossip;envs/mainnet/op-reth.envandenvs/celo-sepolia/op-reth.envcarry the two URLs the docs quote, matching character for character.Both CI gates, run on this head — not CI's cached result:
Mutation count: 2. This repo has no test suite, so the link checker is the only executable gate. Both links this PR adds were broken deliberately and restored, to confirm the gate is live rather than a no-op:
To be explicit about what that does and does not buy: the gate covers the two links, nothing else. Every prose claim in this diff is ungated — they rest on the curl output and the pinned upstream SHA above, and nothing stronger.
Remaining ops steps
Questions for the maintainer
troubleshooting.mdxandconfiguration.mdx, or is one home right?build-on-celo/network-overview?minimalwarrant its own guide page likearchive-node.mdx, or is reference coverage enough for now?configuration.mdxagainst the node repo? Only theNODE_TYPErow was verified.