@@ -42,7 +42,12 @@ The development roadmap can be found in the
4242
4343The constraint system API is provided ** FOR EXPERIMENTS ONLY** , and must be
4444enabled by specifying the ` yoloproofs ` feature. It is not covered by semver
45- compatibility and is ** SUBJECT TO CHANGE WITHOUT NOTICE** .
45+ compatibility and is ** SUBJECT TO CHANGE WITHOUT NOTICE** .
46+
47+ Currently, the ` yoloproofs ` feature is disabled in the published version of the
48+ crate, so it can only be used by specifying a git dependency on the ` develop `
49+ branch. This means that it is not possible to publish a crate using the R1CS
50+ API, because it is ** FOR EXPERIMENTS ONLY** .
4651
4752## Documentation
4853
@@ -61,10 +66,10 @@ the library's [internal documentation][doc_internal]:
6166
6267## Comparative Performance
6368
64- The following table gives comparative timings for proving and
65- verification of a 64-bit rangeproof on an i7-7800X with Turbo Boost
66- disabled. Times are in microseconds (lower is better), with the
67- relative speed compared to the fastest implementation.
69+ The following table gives comparative timings for proving and verification of a
70+ 64-bit rangeproof on an Intel Skylake-X i7-7800X ( @ 3 .5GHz, Turbo Boost
71+ disabled) . Times are in microseconds (lower is better), with the relative
72+ speed compared to the fastest implementation.
6873
6974| Implementation | Group | Proving (μs) | rel | Verification (μs) | rel |
7075| ----------------| ------------------| -------------:| ----------:| ------------------:| ----------:|
@@ -74,12 +79,22 @@ relative speed compared to the fastest implementation.
7479| libsecp-endo | secp256k1 | 16800 | ** 2.30x** | 2080 | ** 2.00x** |
7580| Monero | ed25519 (unsafe) | 53300 | ** 7.30x** | 4810 | ** 4.63x** |
7681
82+ Use of the ` curve25519-dalek ` IFMA backend gives another 1.5x speedup on a
83+ Cannonlake i3-8121U, increasing the verification speedup ** 3x** over libsecp
84+ and ** 7x** over Monero, but these processors are not yet generally available.
85+
7786This crate also contains other benchmarks; see the * Tests and Benchmarks*
78- section below for details.
87+ section below for details on how to run them all .
7988
8089## Example
8190
91+ The following example shows how to create and verify a 32-bit rangeproof.
92+
8293``` rust
94+ # // The #-commented lines are hidden in Rustdoc but not in raw
95+ # // markdown rendering, and contain boilerplate code so that the
96+ # // code in the README.md is actually run as part of the test suite.
97+ #
8398# extern crate rand;
8499# use rand :: thread_rng;
85100#
@@ -133,8 +148,8 @@ assert!(
133148
134149## Tests and Benchmarks
135150
136- Run tests with ` cargo test ` .
137- Run benchmarks with ` cargo bench ` . This crate uses [ criterion.rs] [ criterion ] for benchmarks.
151+ Run tests with ` cargo test ` . Run benchmarks with ` cargo bench ` . This crate
152+ uses [ criterion.rs] [ criterion ] for benchmarks.
138153
139154## Features
140155
0 commit comments