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

v0.8.0 placeholder #455

Merged
merged 249 commits into from
Feb 7, 2023
Merged

v0.8.0 placeholder #455

merged 249 commits into from
Feb 7, 2023

Conversation

gbotrel
Copy link
Collaborator

@gbotrel gbotrel commented Feb 3, 2023

need #458

Tabaie and others added 22 commits December 20, 2022 15:14
…form and big.Ints are always non-Mont (#422)

* refactor: no non-mont on bls12-377

* refactor: groth16 backend tests pass

* refactor: MSM takes Montgomery only - Plonk

* fix:`ToBigIntRegular` => `BigInt`

* fix: more `ToBigIntRegular` => `BigInt`
* feat: auto generate tiny field

* fix: update toBigInt interface for conversion element - big int

* fix: revert previous commit
…ency of debug info (#421)

* feat: add debug.SymbolTable into constraint system for storage efficiency of debug info

* feat: solution takes symbol table only, limit stack size to 2 without debug

* perf: don't store stack for assert boolean if no debug flag

* fix: fix line number in Example output

* fix: remove boolean trace test
* feat: add debug.SymbolTable into constraint system for storage efficiency of debug info

* feat: solution takes symbol table only, limit stack size to 2 without debug

* perf: don't store stack for assert boolean if no debug flag

* perf: restore frontend.WithCapacity usage

* fix: fix line number in Example output

* fix: remove boolean trace test
* feat: add keccak-f permutation function

* docs: add package documentation

* test: remove Plonk+FRI test
* feat: add debug.SymbolTable into constraint system for storage efficiency of debug info

* feat: solution takes symbol table only, limit stack size to 2 without debug

* perf: don't store stack for assert boolean if no debug flag

* perf: restore frontend.WithCapacity usage

* fix: fix line number in Example output

* fix: remove boolean trace test

* experiment checkpoint

* feat: add api.MAC and api.Compiler().NewBuffer(capacity)

* style: clean PR from NewBuffer

* revert: revert builder.linearExpression method

* fix: don't overwrite buffer when compressing le

* style: address some PR comments

* perf: engine.Test MulAcc improvment
Previously the result of MulConst had non-zero overflow when multipling a
constant by a small constant. This panics Reduce method which assumes that
constants have zero overflow.

Fixes #431
* feat: add go-ethereum dep for ecdsa compatibility

* feat: add emulated SW EC

* feat: add ECDSA using emulated SW
* refactor: allow enforcing full-width element

* feat: ensure nb of limbs when enforcing modulus-width element

* feat: add full limb packing

* fix: use full limb packing for quotient computation

The method is only used for element equality assertion. But as we allow
non-reduced values and add subtraction padding, the quotient k = diff/p may be
larger than the modulus.

* test: increase expected constraint count
…t building a `Schema` (#444)

* feat: added reflectwalk-light package

* feat: introduce schema.Walk

* refactor: target make everything work but std/math/emulated

* refactor: further into the rabbit hole, disabling json tests

* checkpoint

* refactor: one step further

* refactor: all tests OK, walk doesn't like pointer leaves

* refactor: code cleaning

* perf: replaced list by a simple stack

* style: remove todo

* style: cosmetic

* docs: remove deadcode

* build: make staticcheck happier

* build: update witness.go.tmpl to match refactoring

* fix: re-introduce pointer type handling in schema parse

* fix: uncomment tests

* refactor: renamed schema.ParseDeprecated to schema.New
* feat: add HashCode to Term

* refactor: element constructors

* feat: automatic witness element constraining

* docs: document Element limbs

* fix: different var->element cases in fake-api

* test: fromBinary takes varargs not slice

* test: count witness constraining

* test: update stats
* refactor: step 1 clean up api and builder wrapper

* refactor: PackElementLimbs PackFull -> packLimbs

* refactor: added field.NewElement

* refactor: remove deadcode from builder stuff, update stats with constraining inputs

* build: restore golangci-lint conf

* refactor: emulated.NewConstant -> emulated.FromConstant

* refactor: emulated.FromConstant -> emulated.ValueOf

* fix: ensure we alwways constrain witness limbs

* fix: fix optimisation test bound with constrained limbs

* perf: constraint to modulus width the witness limbs
…` interface (#450)

* refactor: replace internal/witness by gnark crypto fr.Vector and decouple schema.Schema

* refactor: move benchmarks in groth16

* fix: fix previous commit

* style: correct couple of typos

* docs: add ExampleWitness and update package doc

* docs: update doc

* style: fix typo

* style: store fr.Vector instead of *fr.Vector in witness

* perf: do less work in witness.FromJSON

* test: added roundTripJSON witness test

* style: use fr.Vector instead of []fr.Element in backend prove / verify apis
…452)

* refactor: replace internal/witness by gnark crypto fr.Vector and decouple schema.Schema

* refactor: move benchmarks in groth16

* fix: fix previous commit

* style: correct couple of typos

* docs: add ExampleWitness and update package doc

* docs: update doc

* style: fix typo

* feat: add cs.GetConstraint and pretty printer helpers

* style: remove dead commented code

* style: store fr.Vector instead of *fr.Vector in witness

* perf: do less work in witness.FromJSON

* test: added roundTripJSON witness test

* style: use fr.Vector instead of []fr.Element in backend prove / verify apis
@gbotrel gbotrel added this to the v0.8.0 milestone Feb 3, 2023
yelhousni and others added 6 commits February 6, 2023 09:28
* feat: add go-ethereum dep for ecdsa compatibility

* feat: add emulated SW EC

* feat: add ECDSA using emulated SW

* refactor: use gnark-crypto instead of geth (secp256k1, ecdsa)

* fix(ecdsa): rebase on gnark-crypto

* refactor(test/ecdsa): update following gnark-crypto

* test: ecdsa with pre-hashed message

* feat: gnark-crypto dependency update

* refactor: ValueOf takes any integer-like

* chore: remove unused dependencies

* refactor: ecdsa package import

---------

Co-authored-by: Ivo Kubjas <ivo.kubjas@consensys.net>
@gbotrel gbotrel merged commit f9e5574 into master Feb 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants