54 Commits

Author SHA1 Message Date
Jack Grigg
5202ec6eda Integrate halo2_gadgets into the workspace
THe SHA-256 example gadget has been moved into the `halo2_gadgets` crate
behind an `unstable` feature flag.
2022-01-27 23:32:04 +00:00
Jack Grigg
f79ec5cadd Recreate halo2 as an empty library crate
This is now where the recursion logic will live.

Closes zcash/halo2#462.
2022-01-20 18:50:43 +00:00
Jack Grigg
3c6558f049 Move halo2 code into halo2_proofs crate 2022-01-20 18:50:43 +00:00
Jack Grigg
9e63eeff1b Enable getrandom/js feature flag for wasm32-unknown-unknown
Our dev-dependencies include getrandom, and the wasm32-unknown-unknown
target requires this getrandom feature flag in order to compile.
2022-01-20 17:42:15 +00:00
Jack Grigg
66a6537613 Pin bumpalo to >=3,<3.9.0 for wasm32 targets
`bumpalo 3.9.0` raised its MSRV to 1.54; our current MSRV is 1.51.
2022-01-20 17:42:15 +00:00
Jack Grigg
f5a8c9dff9 Depend on rand_core instead of rand
All non-test code no longer depends on `OsRng`, instead requiring the
caller to provide it.
2022-01-20 16:27:35 +00:00
Jack Grigg
deabd62eee Migrate to pasta_curves 0.3 and blake2b_simd 1 2022-01-05 02:45:51 +00:00
Jack Grigg
55364f0d99 CI: Fix benchmark collection
The benchmark action's "cargo" tooling assumes the standard bencher
output format, and can't parse criterion's output. Fortunately,
criterion can also provide bencher output for compatibility.

In order to pass criterion flags via `cargo bench`, we need to ensure
that all benchmarks use it (otherwise the flags are rejected by the
built-in benchmark harness as unknown). Since we don't actually have any
benchmarks inside the library itself, we simply disable its benchmark
harness.
2021-12-08 22:25:40 +00:00
Jack Grigg
d055acda31 Augment Error::NotEnoughRowsAvailable with current and min-required k
This makes the error message more useful, by informing the user of a
possible solution.
2021-11-15 21:44:51 +00:00
Jack Grigg
ca0f04dcb9 Add [BETA] to the crate description
Just so people see it when searching crates.io for halo2.
2021-09-24 17:08:46 +01:00
Jack Grigg
2c2349b576 Change crate license-file property to point at COPYING 2021-09-24 17:03:29 +01:00
Jack Grigg
7ca1933156 halo2 0.1.0-beta.1
This is the beta version of `halo2` used on testnet in zcashd v4.5.0.
2021-09-24 17:00:13 +01:00
Jack Grigg
78f0e21563 Require pasta_curves 0.2.1
This is the first version that was relicensed as MIT OR Apache-2.0.
2021-09-22 19:59:04 +01:00
Jack Grigg
81622bf847 ff 0.11, group 0.11, pasta_curves 0.2 2021-09-02 23:05:18 +01:00
Sean Bowe
2a253b89b0 Refactor the selector optimization pass so it can be independently proptested. 2021-07-24 16:35:45 -06:00
Daira Hopwood
f64b54156a Use global rayon threadpool.
Co-authored-by: Jack Grigg <jack@electriccoin.co>
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-07-03 15:17:03 +01:00
Jack Grigg
c86b24f496 pasta_curves 0.1 2021-06-02 00:03:50 +01:00
Jack Grigg
f53ab478f6 examples: Add cost model for estimating proof sizes 2021-05-18 13:54:05 +01:00
Steven
dda60a3630 Merge pull request #244 from steven-ecc/change-tgppl-to-bosl
Change TGPPL references to BOSL
2021-04-26 16:44:40 -07:00
Steven
7593ca66f0 Update Cargo.toml
Co-authored-by: ebfull <ewillbefull@gmail.com>
2021-04-26 16:44:32 -07:00
Jack Grigg
da6abf40de Migrate to pasta_curves with Coordinates struct 2021-04-20 09:29:02 +12:00
Steven Smith
bd39b5040e Changing TGPPL references to BOSL 2021-04-16 08:33:10 -07:00
str4d
b079624ea7 Merge pull request #228 from zcash/pasta_curves-crate
Migrate to the pasta_curves crate
2021-03-07 08:42:44 +13:00
str4d
eb97241e47 Merge pull request #229 from zcash/remove-metrics
Remove metrics crate and inline modelling
2021-03-05 11:52:47 +13:00
Jack Grigg
3a85f2269f Pin a specific pasta_curves revision 2021-03-04 22:45:11 +00:00
Jack Grigg
a130edaade Remove metrics crate and inline modelling
It is causing problems in (some) downstream crates, and we won't want
these annotations in the codebase anyway if a downstream crate is
collecting metrics. We'll be replacing this with the cost model binary
in https://github.com/zcash/halo2/pull/225 shortly.
2021-03-03 23:13:34 +00:00
Jack Grigg
7774dd8235 Migrate to the pasta_curves crate 2021-03-03 18:48:45 +00:00
honeywest
af84f60946 fix cargo repository error 2021-02-26 18:23:55 +08:00
Jack Grigg
b4ed5295fe Migrate to group traits
The `Curve` trait is now `CurveExt: group::prime::PrimeCurve`, and
`CurveAffine` is now `CurveAffine: group::prime::PrimeCurveAffine`.

There is no `CurveAffine` trait in `group`, and it's a widely-used
trait in this crate, so we don't rename it to `CurveAffineExt`.
2021-02-22 20:20:23 +00:00
Daira Hopwood
704a6c3637 Remove unneeded sha3 dependency.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-02-21 00:45:33 +00:00
Sean Bowe
c48229ce0f Remove dependency on byteorder crate 2021-02-19 15:52:11 +00:00
Daira Hopwood
fa3afc29bb Add an implementation of simplified SWU hash-to-curve.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-02-19 15:52:11 +00:00
Jack Grigg
776016fe53 crossbeam-utils 0.8 2021-02-17 20:43:36 +00:00
Jack Grigg
0c4f779993 ff 0.9 2021-02-17 20:42:27 +00:00
Jack Grigg
2c77eccf01 metrics 0.14.2 2021-02-17 20:40:12 +00:00
Sean Bowe
4747112118 Downgrade to funty 1.1.0 to fix CI. 2021-02-14 09:24:15 -07:00
Jack Grigg
3c1132ec59 Add halo2::dev::circuit_layout behind dev-graph feature flag
This method renders circuits as tables, showing how the various regions
within them have been layed out.
2021-02-01 18:38:20 +00:00
Jack Grigg
7dd6e65a5f Add halo2::dev::circuit_dot_graph behind dev-graph feature flag
This method renders circuits as dot graphs, to help circuit developers
understand their structure.
2021-02-01 18:38:16 +00:00
Jack Grigg
bf771a7446 Add namespacing and gadget name collection to Layouter 2021-02-01 18:38:04 +00:00
Daira Hopwood
e13ee2c8ff Add sqrt_ratio implementation.
Co-authored-by: Jack Grigg <jack@electriccoin.co>
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-01-14 02:34:43 +00:00
Sean Bowe
dff5a3a692 Generate the URS using a homebrew mixture of blake2b and try-and-increment. 2021-01-06 10:45:11 -07:00
Jack Grigg
c8e6fd9dfd Pin all metrics crate dependencies
We depend on the alpha version, where breaking changes are occurring
regularly. However, the metrics crate does not pin exact versions of
its dependencies, which can break our CI if a new alpha dependency is
released with breaking changes. Fortunately the metrics crate only has
a single metrics-* dependency, so we can just pin that as well.
2020-12-22 12:28:31 +00:00
Jack Grigg
8389389d37 model: metrics 0.13.0-alpha.13 2020-12-22 12:27:36 +00:00
therealyingtong
39df4954b5 Add Committed::construct() to lookup::prover 2020-12-03 10:50:20 +08:00
Sean Bowe
a5d04725bd We depend on subtle 2.3 for Option<T>: From<CtOption<T>>. 2020-12-02 09:50:43 -07:00
Jack Grigg
cdbc41148a Migrate to ff traits
The `Field` trait in this crate is now `FieldExt: ff::PrimeField`.
2020-12-01 20:55:03 +00:00
Jack Grigg
e5e6700e10 Pin most recent metrics alpha 2020-11-25 19:56:52 +00:00
Jack Grigg
61cddec3b8 Update crate authors 2020-11-24 18:25:56 +00:00
Jack Grigg
fb8f67dfe5 Add a simple metrics Recorder for counting things in models 2020-11-23 12:47:42 +00:00
Sean Bowe
1f3fc875ab PLONK benchmarks. 2020-11-23 12:47:42 +00:00