WIP: feat(coordinator): implement RollupProofGeneratingCoordinator for RISC-V rollup proofs - #3747
WIP: feat(coordinator): implement RollupProofGeneratingCoordinator for RISC-V rollup proofs#3747gauravahuja wants to merge 1 commit into
Conversation
…C-V rollup proofs Adds RollupProofGeneratingCoordinator, RollupRequestBuilder, and RollupProofHandler to coordinator/core for the Type-1 RISC-V conflation flow. The coordinator receives Blob events from the blob-aware calculator, accumulates K blobs (Config.blobsPerRollupProof, default 1 per the RISC-V spec decision to keep K=1 for initial rollout), then builds a RollupProofRequestV1 via RollupRequestBuilder and submits it through RollupProverClientV1. Completed proofs are delivered to RollupProofHandler. Mirrors the submit-then-poll lifecycle of BlobCompressionProofCoordinator. Signed-off-by: Gaurav Ahuja <gauravahuja9@gmail.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Reviewed by Cursor Bugbot for commit ba57c44. Configure here.
| name = "compression.queue.size", | ||
| description = "Number of blobs accumulated and waiting to form a rollup proof request", | ||
| measurementSupplier = { pendingBlobs.size }, | ||
| ) |
There was a problem hiding this comment.
Colliding rollup queue metric name
Medium Severity
The pending-blob accumulation gauge is registered as compression.queue.size under LineaMetricsCategory.BLOB, the same name already used by BlobCompressionProofCoordinator. Micrometer keeps the first registration, so one supplier is ignored and the gauge reports the wrong queue. The shared counter / blocks.size / batches.size names have the same collision risk during Type-1/Type-2 coexistence.
Additional Locations (1)
Triggered by project rule: Bugbot Review Instructions
Reviewed by Cursor Bugbot for commit ba57c44. Configure here.
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |


Summary
Adds `RollupProofGeneratingCoordinator`, `RollupRequestBuilder`, and `RollupProofHandler` to `coordinator/core` for the Type-1 RISC-V conflation flow.
Test plan
Note
Medium Risk
New core conflation/proof orchestration on the critical blob→proof path; misconfiguration of K or polling could delay or duplicate proof handling, though idempotent submit and already-proven handling reduce restart risk.
Overview
Introduces
RollupProofGeneratingCoordinatorfor the Type-1 RISC-V conflation path: it implementsBlobCreationHandlerand a periodic poller to drive rollup proof generation end-to-end.Incoming
Blobevents are buffered untilConfig.blobsPerRollupProof(default K=1) is reached, thenRollupRequestBuilderbuilds aRollupProofRequestV1. The coordinator submits viaRollupProverClientV1, tracks in-flightBlockIntervalProofIndexvalues, polls up torollupProofPollsPerTickper tick, and on success callsRollupProofHandler—including an already-proven fast path whenfindProofResponsereturns immediately. Transient failures useAsyncRetryerwith configurable backoff.RollupRequestBuilderandRollupProofHandlerare small fun interfaces for wiring request construction and persistence. Metrics cover blob intake, queue depth, pending proofs, and blob size histograms.Reviewed by Cursor Bugbot for commit ba57c44. Bugbot is set up for automated code reviews on this repo. Configure here.