-
Notifications
You must be signed in to change notification settings - Fork 199
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Epic: Rescope Nargo & NoirJS to exclude proving/verification/contract codegen #4960
Comments
From AztecProtocol/aztec-packages#6320 (comment):
@TomAFrench we shouldn't go that far as to remove default proving backend installation if that was what you were considering. That drives up onboarding frictions and support requests, with arguably little benefit in simplifying Noir 1.0's audit. |
Nargo is not going to be speaking to barretenberg and so there's no reason for it to install |
If we want |
Oh I didn't mean Nargo specifically. Goal is to preserve our current DevEx where users could get started / updated with 1 command. |
|
Is there a good way to avoid / warn about |
The output artefacts of nargo could have a "backend api" version number associated with them. In this model, noirs docs (which I think should at least give the 1-liner to install a compatible version of bb) can always provide, e.g. knowing compatibility with major version 3:
Also, I'm not totally against e.g. the |
Including an ACIR version in Noir artifacts should do the trick 👍 |
I'm going to close this epic and break out any remaining issues to be standalone or under a new documentation epic. |
@TomAFrench SGTM 👍 would be great if you could remove unresolved Issues from the Epic body while recreating them separately for more accurate communications 🙌 |
# Description ## Summary\* Update docs related to the installation and use of proving backends following #4960. Focusing mainly on improving: 1. Noir's proving backend agnosticity 2. Formatting/readability Best to merge this PR in before stable releasing v0.31.0 and v0.32.0. ## Documentation\* Check one: - [ ] No documentation needed. - [x] Documentation included in this PR. - [ ] **[For Experimental Features]** Documentation to be submitted in a separate PR. # PR Checklist\* - [x] I have tested the changes locally. - [x] I have formatted the changes with [Prettier](https://prettier.io/) and/or `cargo fmt` on default settings. --------- Co-authored-by: James Zaki <james.zaki@proton.me>
Nargo is currently the "everything-box" for working with Noir. You can install various proving backends, generate proofs in a single command, verify these, generate smart contract verifiers, etc. This has a few downsides:
contracts
folder instead ofcontract
#1009, Add option to specify output directory path when runningnargo codegen-verifier
#4476, When executing codegen-verifier, the name used for the generated Solidity contracts is currently fixed #4477#[recursive]
proof artifact generation tonargo prove
#4336nargo verify
will compile a circuit from scratch rather than just working on a verification key and a proof. Why should I need the original source code to verify a proof?All this while providing a generic interface which can handle the peculiarities of many different proving backends.
Ideally Noir/Nargo should:
As part of the tasks set out below we should:
bb
workflow worksbb
such that the UX is still high.bb
workflow as an exampleWrite a spec for ACIR backends to specify handling of
Nargo
nargo info
command #4962expression-width
field toNargo.toml
#4961NoirJS
noir_js_backend_barretenberg
into bb.js #5079Barretenberg feature parity tasks
bb
over to read ACIR from nargo artifacts AztecProtocol/aztec-packages#6283nargo
AztecProtocol/aztec-packages#6320nargo prove
andnargo verify
AztecProtocol/aztec-packages#6321The text was updated successfully, but these errors were encountered: