Skip to content
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

Enable full nargo <-> bb.js interop #1569

Closed
vezenovm opened this issue Jun 6, 2023 · 4 comments
Closed

Enable full nargo <-> bb.js interop #1569

vezenovm opened this issue Jun 6, 2023 · 4 comments
Assignees
Labels
backend Proving backends enhancement New feature or request nargo Noir's CLI development tool

Comments

@vezenovm
Copy link
Contributor

vezenovm commented Jun 6, 2023

Problem

The current dummy backend in this PR currently only enables someone working with the bb.js backend (found here: https://www.npmjs.com/package/@aztec/bb.js), to compile their circuit and execute a witness into the format that bb.js expects. The current workflow to work with bb.js is to run nargo compile and nargo execute, but then use a global bb.js executable for any proving and verification.

In order to enable using bb.js with nargo we need to add a communication layer for this to be possible. This communication layer is also necessary for us to enable ACVM simulation for black box funcs that need to communicate with the backend (such as pedersen, schnorr, etc.)

Happy Case

nargo should work with bb.js as it does for our plonk_bn254 and plonk_bn254_wasm backends.

Alternatives Considered

No response

Additional Context

With bb.js now including recursion we will have to expose this feature while it will not be supported by our other backends.

Would you like to submit a PR for this Issue?

No

Support Needs

No response

@vezenovm vezenovm added enhancement New feature or request backend Proving backends nargo Noir's CLI development tool labels Jun 6, 2023
@github-project-automation github-project-automation bot moved this to 📋 Backlog in Noir Jun 6, 2023
@Savio-Sou
Copy link
Collaborator

The kh-nargo-abackend branch enables Nargo <> bb.js interop, works as a transitionary solution to this intermediate issue.

Long term barretenberg and any other proving backends should be packaged into standalone executables with minimum dependencies (versus e.g. bb.js that requires Node.js to run in CLI) and interface with Nargo.

@kevaundray
Copy link
Contributor

Related #595

@Savio-Sou
Copy link
Collaborator

@TomAFrench / @kobyhallx can we consider this to be superseded by #2164?

@Savio-Sou
Copy link
Collaborator

Superseded by noir-lang/acvm-backend-barretenberg#245, where Noir now interops with bb binary (instead of bb.js).

@github-project-automation github-project-automation bot moved this from 📋 Backlog to ✅ Done in Noir Sep 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend Proving backends enhancement New feature or request nargo Noir's CLI development tool
Projects
Archived in project
Development

No branches or pull requests

5 participants