Giter Site home page Giter Site logo

sindri-resources's People

Contributors

derekblackbirdmarkets avatar jasmine-b23 avatar katiemckeon avatar kpreisner avatar nickpann avatar sangaline avatar stasiacarson avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

flyq

sindri-resources's Issues

Add Alternate Noir Versions to our DB

With broader version support for Noir Circuits, we need to update our sample circuits to include each possible supported version. (Bonus points for circuits with features not supported by previous versions!)

Chiquito sample circuits

We should provide sample circuits for Chiquito-halo2 which will give users the ability to understand the necessary steps to build their circuits.

Update Circom Circuits

The Circom circuit type within forge will soon undergo a simplifying name change from Circom [C/WASM] Groth16 bn254 to simply Circom. The auxilliary Sindri.json file now contains the required witness executable, proving scheme, and curve information. Consequently we need to update our sample circuits here.

Acceptance Criteria

Required to be satisfied in order to accept the issue.

  • Sindri.json file has updated fields in:
    • circom/foodie
    • circom/multiplier2
    • circom/sha256
    • circom/sudoku
  • circom/README.md reflects the acceptable choices for each new field:
    • CURVE_NAME
    • WITNESS_EXECUTABLE
    • PROVING_SCHEME
  • All compressed files have been replaced with updates

Gnark version update

Description

We need to update all of the gnark sample circuits to represent the version label change in forge. This change requires Sindri.json version from "8.1" to "0.8.1" to be true to the actual gnark version. We also need to add new circuits to represent gnark version "0.9.0".

Checklist:

  • update all of the current tar files and associated folders with the Sindri.json version changes
  • create new _v9 circuits and complimentary tar files for version "0.9.0"

Provide code for offline verification (Halo2)

As a user
I want to see examples which decode and verify a proof returned by Sindri
so that I can easily use that data

Acceptance Criteria

Required to be satisfied in order to accept the issue. The example-code directory contains a subdir with code performing the following:

  • Verify Halo2 proofs

Add Noir Example Circuits

When the API begins support for Noir, we need to provide a new directory here with well documented Noir example circuits.

Provide code for offline verification (Circom+Gnark)

As a user
I want to see examples which decode and verify a proof returned by Sindri
so that I can easily use that data

Acceptance Criteria

Required to be satisfied in order to accept the issue. The example-code directory contains a subdir with code performing the following:

  • Verify Circom/Groth16 proofs
  • Verify Gnark/Groth16 proofs

Add Rust Quickstart Example

As a user
I want to see an example program that interacts with Forge via Rust and the reqwest crate
so that it is easier to integrate with my existing codebase.

Acceptance Criteria

Required to be satisfied in order to accept the issue.

  • Code has a main function which
    • creates/uploads/compiles a circuit
    • proves from that circuit
    • verifies that proof
  • Polling during compilation and proofs happens via one unified function
  • API key is loaded from an environment variable

Mockup

See https://github.com/Sindri-Labs/forge-sample-data/tree/klm-initial-rust-quickstart

Update Halo2 Circuits

The Halo2 circuit type within forge will soon undergo a simplifying name change from Halo2 Axiom v[0.2.2/0.3.0] to simply Halo2. The auxilliary Sindri.json file now contains the required version. Consequently we need to update our sample circuits here.

Acceptance Criteria

Required to be satisfied in order to accept the issue.

  • Sindri.json file has updated fields in:
    • halo2/axiom-v0.3.0
      • axiom_header_goerli
      • float_radius
      • quadratic_circuit
    • halo2/axiom-v0.2.2
      • mult-example
      • storage_proof
  • halo2/README.md reflects the acceptable choices for the new field
  • All compressed files have been replaced with updates

Update Gnark Circuits

The Gnark circuit type within forge will soon undergo a simplifying name change from Gnark v0.9.1 Groth16 bn254 to simply Gnark. The auxilliary Sindri.json file now contains the required version, proving scheme, and curve information. Consequently we need to update our sample circuits here.

Acceptance Criteria
Required to be satisfied in order to accept the issue.

  • Sindri.json file has updated fields in:
    • gnark/cubic/
    • gnark/poseidon/
  • gnark/README.md reflects the acceptable choices for each new field:
    • CURVE_NAME
    • VERSION
    • PROVING_SCHEME
  • All compressed files have been replaced with updates

Update `circuit_database/halo2/axiom-v0.3.0/mainnet_header` example circuit

Due to an updated snark-verifier-sdk package version (v0.1.6) which requires a rust version (v0.1.73) that we do not yet support, we must specify the v0.1.1 tag within the Cargo.toml for our axiom-eth circuits

Note that this will require invoking _prepare_circuit_database.py as well to update the compressed versions.

Add a JavaScript quickstart example script

We currently have forge-sample-data/example-code/quickstart.py, but porting the example code to additional languages would make it easier for people to get started if they aren't using Python. JavaScript is one of the next most common client languages, so that's a good starting point.

Provide examples for key upload

We should provide sample code which will serialize proving and verification keys in the format we are expecting so that users have an example to adapt. Optionally, we may revise some of our example circuits to already include the necessary key files.

Revise Circom circuits to include `circuit_path` field

We no longer require the main circom file of a circom circuit upload to be named circuit.circom. You may now include a field circuit_path in your Sindri manifest specifying the full path to your main circom file.

One way to raise awareness of the new feature is to revise all of our database and tutorial circuits to utilize the feature. This will probably give the more complicated circuit projects a more informative file structure.

Polish READMEs within `circuit_tutorials/`

Any readme of the form circuit_tutorials/{framework}/README.md contains the old readme from what is now called circuit_database/. This information should not be placed in these readmes, as the tutorials are more individual walkthroughs rather than general commentary about circuit requirements.

This information should either be placed within the appropriate readme for circuit_database/ or within the docs

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.