Skip to content

refactor: separate precompile verification from proving - #3734

Merged
huitseeker merged 11 commits into
nextfrom
feat/precompiles-verifier-split-incremental
Aug 31, 2026
Merged

refactor: separate precompile verification from proving#3734
huitseeker merged 11 commits into
nextfrom
feat/precompiles-verifier-split-incremental

Conversation

@huitseeker

Copy link
Copy Markdown
Collaborator
  • miden-verifier now uses miden-precompiles-verifier. Shared AIR code is in miden-precompiles-air.
  • All proving work remains in miden-precompiles-prover: verifier users do not build prover code.

This completes the crate split discussed in #2282. #3222 created the runtime crate. #3293 and #3343 added the first PVM proof path. #3467 added the MASM verifier input adapter. #3672 settled the MASM package layout. The verifier split was left until that work was complete.

  • Existing PVM proof bytes still verify when their registry root matches.
  • The relation digest, preprocessed commitment, ACE registry root, AIR order, and proof encoding are unchanged.
  • A pinned proof from before the split verifies with its recorded root and fails with a different root.

Closes #2282

@Al-Kindi-0 Al-Kindi-0 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, modulo the change log entry

Comment thread Cargo.toml
Comment on lines 38 to 42
"crates/precompiles",
"crates/precompiles-air",
"crates/precompiles-verifier",
"crates/lib/core/codegen",
"crates/precompiles-prover",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We'll need to set up trusted publishing for precompiles-air and precompiles-verifier crates.

Also question: is the reason crates/lib/core/codegen mixed in between the precompiles crates because it is related to precompiles?

Also also, after this PR, may be a good time to update the Project structure section in the main README as it has become quite outdated.

@huitseeker huitseeker Aug 31, 2026

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. The current position of crates/lib/core/codegen is historical: it used to be precompiles/codegen, and I will move it next to crates/lib/core.
  2. For miden-precompiles-air and miden-precompiles-verifier, recall you need to publish one version of each with an API token. Then you just need to add a trusted publisher for repository 0xMiden/miden-vm and workflow workspace-publish.yml, using the release environment.

@huitseeker
huitseeker force-pushed the feat/precompiles-verifier-split-incremental branch from c4716bd to a20f524 Compare August 31, 2026 15:01
@huitseeker
huitseeker force-pushed the feat/precompiles-verifier-split-incremental branch from a20f524 to 317b2b1 Compare August 31, 2026 15:14
@huitseeker
huitseeker merged commit 4e10057 into next Aug 31, 2026
33 checks passed
@huitseeker
huitseeker deleted the feat/precompiles-verifier-split-incremental branch August 31, 2026 15:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

precompiles: consider a separate precompile crate

3 participants