Benchmark Check / changes (push) Has been cancelled
Benchmark Check / bench (ARM64, apple_m2_pro, prove, macOS) (push) Has been cancelled
Benchmark Check / bench (X64, cpu, prove, Linux) (push) Has been cancelled
Benchmark Check / bench (X64, nvidia_rtx_3090_ti, cuda, Linux) (push) Has been cancelled
Benchmark Check / bench-status-check (push) Has been cancelled
Benchmark Trends / bench (ARM64, apple_m2_pro, prove, macOS) (push) Has been cancelled
Benchmark Trends / bench (X64, cpu, prove, Linux) (push) Has been cancelled
Benchmark Trends / bench (X64, g6.xlarge, cuda, Linux) (push) Has been cancelled
Benchmark Trends / bench (X64, nvidia_rtx_3090_ti, cuda, Linux) (push) Has been cancelled
Benchmark Reports / alert_devops_if_failed (push) Has been cancelled
Nightly Tasks / crates_validate (push) Has been cancelled
Nightly Tasks / alert_devops_if_failed (push) Has been cancelled
Benchmark Reports / bench (ARM64, apple_m2_pro, prove, macOS) (push) Has been cancelled
Benchmark Reports / bench (X64, cpu, prove, Linux) (push) Has been cancelled
Benchmark Reports / bench (X64, g6.xlarge, cuda, Linux) (push) Has been cancelled
Benchmark Reports / bench (X64, nvidia_rtx_3090_ti, cuda, Linux) (push) Has been cancelled
Benchmark Reports / publish (push) Has been cancelled
Create Groth16 proofs using `gnark`instead of `rapidsnark`. This process consists of the following parts: - **`circom-compat`:** the Gnark bindings to Circom's R1CS, WTNS, and ZKEY for Groth16 proof generation in Go. - An update to the **`risczero/risc0-groth16-prover` Dockerfile**: - During the Docker build process, it runs the `circom-compat` converter to convert the `r1cs` and `zkey` files to their gnark counterparts. - It replaces `rapidsnark` with the `circom-compat` prover that reads these converted files plus the witness file. - In the entrypoint script, it creates a named Unix pipe to write the witness data to, allowing the prover to start and read the constraint system while the witness generation is still running. - A **patched `gnark`** version to match circom's R1CS-to-QAP reduction. (See https://github.com/risc0/gnark/pull/1) The resulting docker image has been deployed as [risczero/risc0-groth16-prover:v2025-01-24.1](https://hub.docker.com/layers/risczero/risc0-groth16-prover/v2025-01-24.1/images/sha256-434755bb2ccc0fb886f67855b67f37ba61c4983cb405dd3159588ce15016bbc3) and `risc0/groth16/src/docker.rs` has been updated to use that image. The `circom-compat` Go tests have been added to the CI. Closes ZKVM-906 --------- Co-authored-by: Paul <paul.gafni@gmail.com>