Skip to content

Scope: what shipping CORE as the canonical guest would take #225

Description

@defenwycke

Requested after v0.20.0 shipped the stock guest and the acceleration stayed off. This is what changing that would cost, and what it would buy.

What Core is

Stock plus exactly two levers:

lever fidelity class what it means
0013 liftx hint advice-and-verify Core's own arithmetic still decides; the hint is checked with libsecp's fe_sqr against y² = x³+7
0012 field backend substitution (narrow) one primitive replaced at a backend interface libsecp already parameterises; every algorithm above it untouched

The precedent already exists. patches/0002 (SHA-256 → risc0 accelerator) is also a narrow substitution and is already shipped in the stock guest. Core is not a new category of claim — it is the same decision, taken once more, at the field layer instead of the hash layer.

What it buys

cards to hold tip
stock (shipping today) ~29
Core 10

Measured on two L40S, block 962,000, real proving: chunk work 4,029 card-seconds, straggler 1.295, aggregate 473 s.

Evidence already in hand

The work

  1. Decide the narrow substitution is acceptable as canonical. This is the only judgement call; everything else is mechanical.
  2. Arm the levers in the canonical build pathprovision-vps.sh / reproduce/Dockerfile. Today they default off and nothing turns them on.
  3. Ship Core's packing constants as the defaults417798 / 462435 / 2 / 41387. Worth straggler 1.311 → 1.210 on its own, and they are per-build-mode, so stock's defaults are wrong for Core.
  4. New METHOD_IDscripts/rebaseline-id.sh, then every doc that states the id.
  5. Regenerate the SNARK fixtures. A proof carries its guest id; they cannot be re-pointed, only re-proved. ~2 hours, procedure in prover/testdata/snark/README.md.
  6. CI green, then cut v0.21.0 — same flow as v0.20.0.
  7. Cutover: verifier release, wasm deploy, coordinator swap, board reset. Every trap from 2026-09-06 now documented, including the spine file served independently of the DB, and setting the worker identity BEFORE starting workers.
  8. Re-prove the board. Today's rebuild ran 0 → ~1,600 in about 90 minutes on two L40S — and at Core's speed it would be faster.

Cost

Roughly a day, most of it waiting on CI and re-proving. Every proof published under 3867611d is invalidated — including the ones being produced right now.

The honest counter-argument

Doing it twice in two days is the cost, not the work. Every re-baseline invalidates the board, and a project whose pitch is "check it yourself" spends credibility each time the thing to check is replaced. If Core ships, it should ship once, deliberately, with the fidelity decision written down — not as a follow-up patch to a release that just landed.

⚠ Also unresolved: Ghost's calibration is measured but not shipped (#209), and the COST_* defaults are per-build-mode. Whatever ships needs its own constants, or the packer optimises against work that is not there.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions