All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Rust's notion of Semantic Versioning.
- MSRV bumped to
1.60.0
- Bumped dependencies to
ff 0.13
,group 0.13
,pairing 0.23
.
bellman::groth16::batch::Verifier
now has averify_multicore
method (when themulticore
feature is enabled) which will internally use the global rayon thread pool to parallelize the verification of a batch of proofs.
- The
multicore
feature now enables thegetrandom
feature of therand_core
crate.
bellman::multiexp::Exponent
bellman::multiexp::multiexp
now takes exponents asArc<Vec<Exponent<_>>>
instead ofArc<Vec<FieldBits<_>>>
.
- Migrating from
bitvec 0.22
tobitvec 1.0
caused a performance regression inbellman::multiexp::multiexp
, slowing down proof creation. Some of that performance has been regained by refactoringmultiexp
.
- MSRV bumped to
1.56.0
- Bumped dependencies to
ff 0.12
,group 0.12
,pairing 0.22
,bitvec 1.0
,blake2s_simd 1.0
.
- Groth16 prover now correctly computes query densitites with respect to linear combinations that contain coefficients of zero.
- Fixed an infinite recursion bug in the
Display
implementation forSynthesisError
.
- Compiling with
--no-default-features --features groth16
(i.e. disabling themulticore
feature flag) works again.
bellman::multicore::Waiter::wait
now consumesself
(better reflecting the fact that you can't wait on the same result twice), instead of taking&self
withmulticore
enabled and&mut self
with multicore disabled.
bellman
now usesrayon
for multithreading when the (default)multicore
feature flag is enabled. This means that, when this flag is enabled, theRAYON_NUM_THREADS
environment variable controls the number of threads thatbellman
will use. The default, which has not changed, is to use the same number of threads as logical CPUs.bellman::multicore::Waiter
Default
bound forbellman::multiexp::DensityTracker
.Default
bound forbellman::gadgets::test::TestConstraintSystem
.
- Bumped dependencies to
ff 0.11
,group 0.11
,pairing 0.21
. bellman::multicore
has migrated fromcrossbeam
torayon
:bellman::multicore::Worker::compute
now returnsbellman::multicore::Waiter
.bellman::multiexp::multiexp
now returnsbellman::multicore::Waiter<Result<G, SynthesisError>>
instead ofBox<dyn Future<Item = G, Error = SynthesisError>>
.bellman::multicore::log_num_cpus
is renamed tolog_num_threads
.
bellman::multiexp::SourceBuilder::new
is renamed toSourceBuilder::build
.
bellman::multicore::WorkerFuture
(replaced byWaiter
).
bellman::groth16::batch::Verifier
, for performing batched Groth16 proof verification.
- Bumped dependencies to
bitvec 0.22
,ff 0.10
,group 0.10
,pairing 0.20
. - MSRV is now 1.51.0.
- Bumped dependencies to
bitvec 0.20
,ff 0.9
,group 0.9
,pairing 0.19
,rand_core 0.6
. - MSRV is now 1.47.0.