Commit Graph

11 Commits

Author SHA1 Message Date
Philipp Sippl 1732e15d63
circom2 proof generation (#14)
* circom2 proof generation

* fix fmt and test

* fix clippy and format dependency

* make clippy happy (circom2 changes)

* make clippy happy (#12)
2021-12-22 03:05:57 +02:00
oskarth 64e0ee9546
Initial Circom 2 support (#10)
* Import circom-2 test vectors

* Add failing test under feature flag

* Add exceptionHandler

* Add showSharedRWMemory

* Add getFieldNumLen32 and disable getFrLen

* Add getVersion

Also print version, n32

* Add getRawPrime

- Disable getPtrRawPrime
- Write as conditional cfg code blocks

* Refactor cfg code blocks

* Add readSharedRWMemory and get prime from WASM mem

- Add fromArray32 convenience function

* WIP: Debug R1CSfile header

field_size in header is 1, not 32 as expected

Don't see anything recently changed here:
https://github.com/iden3/r1csfile/blob/master/src/r1csfile.js (used by snarkjs)

But this seems new: 0149dc0643/constraint_writers/src/r1cs_writer.rs

* Add CircomVersion struct to Wasm

* XXX: Enum test

* Trait version

* Move traits to Circom, CircomBase, Circom2

* Simplify Wasm struct and remove version

* Feature gate Circom1/Circom2 traits

* Use cfg_if for witness calculation

Make normal dependency

* Fix visibilty for both test paths

* Remove println

Can introduce tracing separately

* refactor

* Make clippy happy with imports, unused variables
2021-11-29 10:02:46 +02:00
Georgios Konstantopoulos bb0f5429fc
feat: benchmarks (#3)
* add benchmark

* chore: add complex circuit

* feat: enable parallel / asm

* bench: use pre-calculated matrices/constraints

* chore: bump ethers-rs

* chore: fmt

* feat: add benches for differently sized circuits (#6)

* feat: update bench circuit

* feat: add benches for many sizes

* fix: adjust bench parameters

* fix: remove sym

* chore: fmt

* fix: point to correct commit of groth16

* fix: update function names to upstream

* fix: update function names to upstream

Co-authored-by: Kobi Gurkan <kobigurk@gmail.com>
2021-09-08 21:52:17 +03:00
Georgios Konstantopoulos 11e6d04f3b
Feat: Use pre-calculated ConstraintMatrices (#2)
* feat: add function for calculating the coefficients

* fix tests / debug coeffs

* feat: use groth16 with configurable matrices

* test: add no r1cs test

* test: add a test to check matrices values

* scaffold of the matrix calculation

* feat: correctly load and use matrices in the without_r1cs variant

* chore: cargo fmt

* chore: cargo fmt / lints

* ci: do not double run tests

* fix: calculate correctly points at inf

* test: use correct abicoder v2 types

Co-authored-by: Kobi Gurkan <kobigurk@gmail.com>
2021-08-17 14:45:13 +03:00
Georgios Konstantopoulos a85b99e0db perf: enable parallel on ark packages 2021-08-13 12:40:23 +03:00
Georgios Konstantopoulos 3c11c94d63 perf: enable asm on ark-ff 2021-08-13 12:39:06 +03:00
Georgios Konstantopoulos f316f6a9fa chore: use latest upstream gro16 2021-08-13 12:37:09 +03:00
Georgios Konstantopoulos c32270a285 fix: use latest names for groth16 traits/types 2021-08-10 18:09:32 +03:00
Georgios Konstantopoulos c03ae8490f chore: trim deps 2021-07-26 18:13:46 +03:00
Georgios Konstantopoulos 72c533ac62 refactor: rename circuit -> circom 2021-07-26 17:54:04 +03:00
Georgios Konstantopoulos b64f038283 initial commit 2021-07-26 17:04:43 +03:00