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

Epic: Noir.js first release #2711

Closed
19 tasks done
Tracked by #1384 ...
Savio-Sou opened this issue Jul 21, 2023 · 3 comments
Closed
19 tasks done
Tracked by #1384 ...

Epic: Noir.js first release #2711

Savio-Sou opened this issue Jul 21, 2023 · 3 comments
Assignees
Labels
js Noir's JavaScript packages
Milestone

Comments

@Savio-Sou
Copy link
Collaborator

Savio-Sou commented Jul 21, 2023

Prerequisite

Preview Give feedback
  1. 7 of 7
    kobyhallx

As a Noir app developer, I would like to make use of one Noir.js package to carry out everything Noir-related in JavaScript environments, so I can worry less about importing and managing multiple packages and ease my coding.

The app development workflow would start in the CLI:

  1. Compile Noir programs into ACIRs with Nargo
  2. Generate Solidity verifiers for the Noir programs with Nargo
  3. Deploy the Solidity verifiers with any preferred EVM tooling (e.g. hardhat, forge)

Then in browser, developers should be able to build their app where their users can:

  1. Install Noir.js to their project using NPM
  2. Users can generate their desired set of inputs for the Noir program with the help of Noir.js
  3. Generate witnesses with Noir.js
  4. Prove the ACIRs + witnesses with any Noir compatible proving backends' packages (e.g. barretenberg's bb.js)
  5. Submit proofs to the Solidity verifiers with any preferred EVM tooling (e.g. ethers.js)

Note: This is meant to illustrate the E2E workflow for a Noir app developer. Noir.js's focus would be on steps (4) to (6) instead of all of the above.

Open to further discussions

Should we name it:

  • Noir.js as it seems the most intuitive
  • Nargo.js as parity with Nargo is largely what we're aiming for
    • An outlier would be helper functions that could later be provided by this package but not necessarily provided by Nargo.
  • Something else?

Additional context

Developers might want to prove and verify Noir programs using the package as well, but as Noir is proving backend agnostic that would be left as proving backend packages' responsibilities (e.g. bb.js) for now.

We can revisit the need for tighter integration with backend packages at a later date.

@kobyhallx
Copy link
Contributor

What would be use cases one would came to this package for?

@Savio-Sou
Copy link
Collaborator Author

Savio-Sou commented Aug 8, 2023

Intention is for this package to be the go-to for docs, tutorials, etc.
Making this the package for most Noir devs to carry out everything-Noir in JavaScript.

Subsequently, the individual sub-packages would be documented in separate "advanced" sections.

@Savio-Sou Savio-Sou changed the title Epic: Noir.js MVP release Epic: Noir.js v0.0.1 Aug 31, 2023
@jonybur jonybur self-assigned this Sep 12, 2023
@Savio-Sou Savio-Sou changed the title Epic: Noir.js v0.0.1 Epic: Noir.js first release Sep 15, 2023
@Savio-Sou
Copy link
Collaborator Author

Savio-Sou commented Sep 15, 2023

Renamed the Epic for accuracy, as we should sync Noir.js's releases with Noir's / Nargo's rather than having its own set of version numbers.

@github-project-automation github-project-automation bot moved this to 📋 Backlog in Noir Sep 15, 2023
@Savio-Sou Savio-Sou transferred this issue from noir-lang/Planning Sep 15, 2023
@Savio-Sou Savio-Sou added this to the Beta milestone Sep 15, 2023
@Savio-Sou Savio-Sou moved this from 📋 Backlog to 🏗 In progress in Noir Sep 19, 2023
@Savio-Sou Savio-Sou added the js Noir's JavaScript packages label Oct 10, 2023
@github-project-automation github-project-automation bot moved this from 🏗 In progress to ✅ Done in Noir Oct 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
js Noir's JavaScript packages
Projects
Archived in project
Development

No branches or pull requests

3 participants