feat(prover-ray): preflight helpers - #3743
Merged
Merged
Conversation
ThomasPiellard
force-pushed
the
feat/preflight
branch
from
August 10, 2026 09:22
a555f07 to
3f45cb5
Compare
bogdanbear
reviewed
Aug 10, 2026
bogdanbear
reviewed
Aug 10, 2026
bogdanbear
reviewed
Aug 10, 2026
bogdanbear
reviewed
Aug 10, 2026
bogdanbear
previously approved these changes
Aug 10, 2026
ThomasPiellard
marked this pull request as ready for review
August 10, 2026 14:43
AlexandreBelling
previously approved these changes
Aug 11, 2026
ThomasPiellard
force-pushed
the
feat/preflight
branch
from
August 11, 2026 07:47
fb25d8c to
42e8943
Compare
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
ThomasPiellard
force-pushed
the
feat/preflight
branch
from
August 11, 2026 08:17
42e8943 to
1452061
Compare
Signed-off-by: Thomas Piellard <thomas.piellard@gmail.com> feat(prover-ray): fs hook for preflight Signed-off-by: AlexandreBelling <alexandrebelling8@gmail.com>
Signed-off-by: Thomas Piellard <thomas.piellard@gmail.com> Signed-off-by: AlexandreBelling <alexandrebelling8@gmail.com>
Signed-off-by: Thomas Piellard <thomas.piellard@gmail.com> Signed-off-by: AlexandreBelling <alexandrebelling8@gmail.com>
Signed-off-by: Thomas Piellard <thomas.piellard@gmail.com> Signed-off-by: AlexandreBelling <alexandrebelling8@gmail.com>
Signed-off-by: Thomas Piellard <thomas.piellard@gmail.com> Signed-off-by: AlexandreBelling <alexandrebelling8@gmail.com>
Signed-off-by: Thomas Piellard <thomas.piellard@gmail.com> fix(linea-besu): align Besu Kotlin runtime (#3734) * fix(linea-besu): align Besu Kotlin runtime Signed-off-by: nadeemb53 <nadeemb53@gmail.com> * fix(linea-besu): support modular plugin API Signed-off-by: nadeemb53 <nadeemb53@gmail.com> * fix(tracer): adapt block budget check Signed-off-by: nadeemb53 <nadeemb53@gmail.com> * fix(ci): support custom Besu artifacts Signed-off-by: nadeemb53 <nadeemb53@gmail.com> --------- Signed-off-by: nadeemb53 <nadeemb53@gmail.com> chore(misc): update CHANGELOG.md unreleased section of each updated component and milestone [skip ci] fix(linea-besu): add the missing web3j crypto jar in dist and fix ci … (#3737) * fix(linea-besu): add the missing web3j crypto jar in dist and fix ci to run e2e with locally built linea-besu-package Signed-off-by: jonesho <jones.ho@consensys.net> * fix(ci): add LINEA_BESU_PACKAGE_TAG to github env when the local image is downloadable Signed-off-by: jonesho <jones.ho@consensys.net> * chore(misc): update README Signed-off-by: jonesho <jones.ho@consensys.net> --------- Signed-off-by: jonesho <jones.ho@consensys.net> chore(misc): update CHANGELOG.md unreleased section of each updated component and milestone [skip ci] chore(linea-besu): update CHANGELOG.md for releases/linea-besu-package/v2.1.0 release [skip ci] chore(coordinator): update to vertx 5.1.5 (#3744) Signed-off-by: Fluent Crafter <205769460+fluentcrafter@users.noreply.github.com> chore(misc): update CHANGELOG.md unreleased section of each updated component and milestone [skip ci] chore(coordinator): package renaming to lineth (#3746) * chore(coordinator): package renaming to lineth.* from (net.consensys.zkevm.*, net.consensys.linea.*, net.consensys.*, build.linea.*, linea.*) Signed-off-by: Fluent Crafter <205769460+fluentcrafter@users.noreply.github.com> chore(misc): update CHANGELOG.md unreleased section of each updated component and milestone [skip ci] feat(prover-ray): add the public-input-layout for the recursion (#3679) * feat(prover-ray): add the public-input-layout for the recursion Signed-off-by: Soleimani193 <azam.soleimanian@ens.fr> * fix(prover-ray): chaniging the messageBus to slice formate Signed-off-by: Soleimani193 <azam.soleimanian@ens.fr> * test(prover-ray): add tests for unpacking Signed-off-by: Soleimani193 <azam.soleimanian@ens.fr> * refactor(prover-ray): refactor registeration to the public inputs Signed-off-by: Soleimani193 <azam.soleimanian@ens.fr> * test(prover-ray): added test for message bus public inputs Signed-off-by: Soleimani193 <azam.soleimanian@ens.fr> * refactor(prover-ray): cleaning Signed-off-by: Soleimani193 <azam.soleimanian@ens.fr> * style(prover-ray): minor Signed-off-by: Soleimani193 <azam.soleimanian@ens.fr> * ci(prover-ray): fixed ci error Signed-off-by: Soleimani193 <azam.soleimanian@ens.fr> * fix: simplifies the public input structure and moves the R5 specifics into their own folder to respect the code structure Signed-off-by: AlexandreBelling <alexandrebelling8@gmail.com> * make R5 a benchmark Signed-off-by: AlexandreBelling <alexandrebelling8@gmail.com> * make Risc5Arithmetization a benchmark to preserve the CI Signed-off-by: AlexandreBelling <alexandrebelling8@gmail.com> * remove double zkc compilation Signed-off-by: AlexandreBelling <alexandrebelling8@gmail.com> * add the known failures Signed-off-by: AlexandreBelling <alexandrebelling8@gmail.com> --------- Signed-off-by: Soleimani193 <azam.soleimanian@ens.fr> Signed-off-by: AlexandreBelling <alexandrebelling8@gmail.com> Co-authored-by: AlexandreBelling <alexandrebelling8@gmail.com> feat(arithmetization): reduce max degree (#3753) Signed-off-by: F Bojarski <ceciestunepoubelle@protonmail.ch> feat(prover-ray): remove Visibility in wiop (#3476) * feat(prover-ray): remove column visibility Signed-off-by: AlexandreBelling <alexandrebelling8@gmail.com> * fixup: uncommitted merge changes Signed-off-by: AlexandreBelling <alexandrebelling8@gmail.com> * uncomment the tests Signed-off-by: AlexandreBelling <alexandrebelling8@gmail.com> * minor space fixes Signed-off-by: AlexandreBelling <alexandrebelling8@gmail.com> * revert the message BUS tests Signed-off-by: AlexandreBelling <alexandrebelling8@gmail.com> * fix the doc Signed-off-by: AlexandreBelling <alexandrebelling8@gmail.com> --------- Signed-off-by: AlexandreBelling <alexandrebelling8@gmail.com> chore(linea-besu): package renaming to lineth.* (#3750) * chore(linea-besu): package renaming to lineth.* from (net.consensys.zkevm.*, net.consensys.linea.*, net.consensys.*, build.linea.*, linea.*) Signed-off-by: Fluent Crafter <205769460+fluentcrafter@users.noreply.github.com> chore(misc): update CHANGELOG.md unreleased section of each updated component and milestone [skip ci] feat(chore): add makefile for git-cliff commands (#3720) * chore(ci): add Makefile commands for git cliff commands Signed-off-by: jonesho <jones.ho@consensys.net> * chore(ci): revise commit message when auto updating .besu-resolved file Signed-off-by: jonesho <jones.ho@consensys.net> * chore(ci): revise for review comment Signed-off-by: jonesho <jones.ho@consensys.net> --------- Signed-off-by: jonesho <jones.ho@consensys.net> fix(coordinator): make runtime invariants explicit (#3716) * fix(coordinator): make runtime invariants explicit Replace unsafe proof and gas-cap dereferences with contextual invariant checks, and cover missing prover responses with regression tests. Refs #3686 Signed-off-by: nadeemb53 <nadeemb53@gmail.com> * test(coordinator): cover runtime invariants Signed-off-by: nadeemb53 <nadeemb53@gmail.com> * test(coordinator): prefer fakes and Kotlin assertions Signed-off-by: nadeemb53 <nadeemb53@gmail.com> * ci(coordinator): collect riscv client coverage Signed-off-by: nadeemb53 <nadeemb53@gmail.com> * test(coordinator): cover blob proof validation Signed-off-by: nadeemb53 <nadeemb53@gmail.com> --------- Signed-off-by: nadeemb53 <nadeemb53@gmail.com> chore(misc): update CHANGELOG.md unreleased section of each updated component and milestone [skip ci] chore(misc): update docker/login-action (#3756) Signed-off-by: Fluent Crafter <205769460+fluentcrafter@users.noreply.github.com> docs(maru): add config docs generation and doc.linea publishing workflow (#3735) * docs(maru): add config docs generation and doc.linea publishing workflow Wire Maru into the shared jvm-libs/linea/config-docs engine (built in #3713) so the Maru TOML config reference is auto-generated as Markdown/JSON snapshots and an ephemeral MDX partial, validated on every PR, and published to Consensys/doc.linea on releases/maru/* tags. - Annotate every property in maru/config/.../Config.kt with @ConfigDoc/@ConfigSection (descriptions, defaults, examples) so the shared ConfigSchemaWalker can document all 103 keys. - Add MaruConfigDocsSpec (mirrors CoordinatorConfigDocsSpec) and apply the linea.config-docs Gradle plugin in maru/config/build.gradle. - Commit the generated maru-config-reference.md and maru-config-schema.json snapshots. - Add maru-config-docs.yml: release-gated (validate on PR/main, publish on releases/maru/* tags or manual dispatch), reusing the validate-config-docs and publish-config-docs composite actions. Co-authored-by: Othryades <Othryades@users.noreply.github.com> Signed-off-by: Othryades <Othryades@users.noreply.github.com> * docs(maru): reference PR #3735 in changelog entry Co-authored-by: Othryades <Othryades@users.noreply.github.com> Signed-off-by: Othryades <Othryades@users.noreply.github.com> * fix(maru): document the TOML DTO schema, not the domain config PR #3735 rooted the config-docs spec at the domain MaruConfig, but Maru loads TOML into MaruConfigDtoToml (MaruConfigLoader.loadAppConfigs) and converts via domainFriendly(). The generated reference therefore contradicted real *.toml files: it documented validator-el-node.* (real section is [payload-validator]), followers/followers (real key is [follower-engine-apis]), and *.request-retries (no DTO field), omitted [defaults] and the legacy linea.l1-eth-api, and carried use-vertx-timers (not a DTO field). Required/default flags were also wrong. Re-root MaruConfigDocsSpec at MaruConfigDtoToml and move the @ConfigDoc/@ConfigSection annotations onto the DTO classes in HopliteTomlFriendly.kt (MaruConfigDtoToml, ApiEndpointDto, PayloadValidatorDto, LineaConfigDtoToml, QbftOptionsDtoToml, ForkTransitionDtoToml, DefaultsDtoToml). The shared classes (Persistence, P2PConfig, ObservabilityConfig, ApiConfig, SyncingConfig) keep their annotations. Dead annotations on the domain-only classes (MaruConfig, ApiEndpointConfig, FollowersConfig, ValidatorElNode, QbftConfig, LineaConfig, ForkTransition) are removed. Also reword inaccurate descriptions: p2p.port (TCP only; UDP is p2p.discovery.port), syncing.desync-tolerance (sync target vs this node's head), p2p.max-unsynced-peers (reserved; no consumer), and four gossip keys (history, gossip-size, gossip-factor, consider-peers-as-direct) in terms of the libp2p parameters they map to. Document both sync-target-selection forms (bare 'Highest' and the MostFrequent inline table with _type/peer-chain-height-granularity). Add MaruConfigDocsSpecGuardTest asserting the spec roots at MaruConfigDtoToml (the type MaruConfigLoader.loadAppConfigs returns); checkConfigDocs cannot catch a class mismatch. Wire the configDocs source set + engine onto the test classpath. Regenerate the committed maru-config-reference.md and maru-config-schema.json snapshots (106 keys). Drop the hand-written maru/CHANGELOG.md entry (docs commits are filtered by cliff; the changelog is a generated artifact). Co-authored-by: Othryades <Othryades@users.noreply.github.com> Signed-off-by: Othryades <Othryades@users.noreply.github.com> * fix(maru): surface deprecation and validator constraints in the config reference The Markdown/MDX generators only print descriptions for top-level sections and then flatten every leaf, so the notes stating that linea.l1-eth-api is a deprecated alias and that l2-eth-api-endpoint falls back to defaults.l2-eth-endpoint never reached the published page. Fold both into the linea section description, which does render. Also document that payload-validation-enabled must stay true when the qbft section is set (MaruConfig's init block rejects a validator with payload validation disabled), use the full linea.l1-eth-api-endpoint path as the deprecation replacement so it matches the key column, and tighten the spec guard test to containsExactly so a re-added domain root would fail it. Regenerate the committed snapshots (106 keys, all documented). Signed-off-by: Othryades <Othryades@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com> * fix(maru): address Filter94 review on config docs - Use acronym-aware kebab keys so fanoutTTL/seenTTL document as fanout-ttl/seen-ttl - Cascade @ConfigSection(deprecated) to nested leaves for Status column accuracy - Clarify allow-empty-blocks, consider-peers-as-direct, and random-download-peer descriptions - Delete unused p2p.maxUnsyncedPeers - Drop dead payload-validator eth-api-endpoint leftovers from examples and CliTest - Regenerate Maru config reference/schema (105 keys) Signed-off-by: Cursor Agent <cursoragent@cursor.com> --------- Signed-off-by: Othryades <Othryades@users.noreply.github.com> Signed-off-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Othryades <Othryades@users.noreply.github.com> fix(e2e): update plugin reload package name to lineth (#3757) Signed-off-by: Fluent Crafter <205769460+fluentcrafter@users.noreply.github.com> chore(maru): package renaming to lineth.* from (net.consensys.zkevm.*, net.consensys.linea.*, net.consensys.*, build.linea.*, linea.*) (#3755) Signed-off-by: Fluent Crafter <205769460+fluentcrafter@users.noreply.github.com> chore(misc): update CHANGELOG.md unreleased section of each updated component and milestone [skip ci] feat(coordinator): implement ExecutionProofGeneratingCoordinator for RISC-V l2-execution proofs (#3684) Adds ExecutionProofGeneratingCoordinator, L2ExecutionRequestBuilder, and L2ExecutionProofHandler to coordinator/core for the Type-1 RISC-V conflation flow. The coordinator receives a BlocksConflation, builds an L2ExecutionProofRequestV1 via the injected L2ExecutionRequestBuilder, submits it idempotently through L2ExecutionProverClientV1, tracks pending BlockIntervalProofIndex entries via a ConcurrentLinkedDeque, and delivers L2ExecutionProofResponseV1 (including proof bytes needed downstream for rollup proof assembly) to L2ExecutionProofHandler. Mirrors the submit-then-poll lifecycle of ProofGeneratingConflationHandlerImpl. Signed-off-by: Gaurav Ahuja <gauravahuja9@gmail.com> chore(misc): update CHANGELOG.md unreleased section of each updated component and milestone [skip ci] merge main Signed-off-by: Thomas Piellard <thomas.piellard@gmail.com> fixed linter Signed-off-by: Thomas Piellard <thomas.piellard@gmail.com> Signed-off-by: AlexandreBelling <alexandrebelling8@gmail.com>
Signed-off-by: Thomas Piellard <thomas.piellard@gmail.com> Signed-off-by: AlexandreBelling <alexandrebelling8@gmail.com>
AlexandreBelling
force-pushed
the
feat/preflight
branch
from
August 11, 2026 09:19
1452061 to
ee1b699
Compare
Signed-off-by: AlexandreBelling <alexandrebelling8@gmail.com>
AlexandreBelling
approved these changes
Aug 11, 2026
bogdanbear
approved these changes
Aug 11, 2026
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.
Add a preflight hook to derive the shared randomness in the message bus compiler. The expected caller's sequence is now:
latestUnreducedParticipantRound mirrors the logic of the existing
latestParticipantRound but works directly on sys.MessageBuses without
needing the pre-built byHandle map, so it can run before Compile has
grouped entries.
For the MSHash, the old prover's MSHash is used, and implements the following additive hash interface: