@aztec/bb.js 0.12.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/README.md +14 -9
  2. package/dest/browser/barretenberg_api/index.d.ts +1 -11
  3. package/dest/browser/barretenberg_api/index.d.ts.map +1 -1
  4. package/dest/browser/index.js +1 -1
  5. package/dest/node/barretenberg_api/index.d.ts +1 -11
  6. package/dest/node/barretenberg_api/index.d.ts.map +1 -1
  7. package/dest/node/barretenberg_api/index.js +2 -42
  8. package/dest/node/barretenberg_api/pedersen.test.js +5 -62
  9. package/dest/node/barretenberg_api/schnorr.test.js +1 -2
  10. package/dest/node/barretenberg_wasm/barretenberg-threads.wasm +0 -0
  11. package/dest/node/benchmark/index.d.ts +3 -0
  12. package/dest/node/benchmark/index.d.ts.map +1 -0
  13. package/dest/node/benchmark/index.js +25 -0
  14. package/dest/node/benchmark/timer.d.ts +33 -0
  15. package/dest/node/benchmark/timer.d.ts.map +1 -0
  16. package/dest/node/benchmark/timer.js +38 -0
  17. package/dest/node/main.d.ts.map +1 -1
  18. package/dest/node/main.js +17 -4
  19. package/dest/node-cjs/barretenberg_api/index.d.ts +1 -11
  20. package/dest/node-cjs/barretenberg_api/index.d.ts.map +1 -1
  21. package/dest/node-cjs/barretenberg_api/index.js +2 -42
  22. package/dest/node-cjs/barretenberg_api/pedersen.test.js +4 -61
  23. package/dest/node-cjs/barretenberg_api/schnorr.test.js +1 -2
  24. package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm +0 -0
  25. package/dest/node-cjs/benchmark/index.d.ts +3 -0
  26. package/dest/node-cjs/benchmark/index.d.ts.map +1 -0
  27. package/dest/node-cjs/benchmark/index.js +30 -0
  28. package/dest/node-cjs/benchmark/timer.d.ts +33 -0
  29. package/dest/node-cjs/benchmark/timer.d.ts.map +1 -0
  30. package/dest/node-cjs/benchmark/timer.js +42 -0
  31. package/dest/node-cjs/main.d.ts.map +1 -1
  32. package/dest/node-cjs/main.js +17 -4
  33. package/package.json +1 -1
  34. package/src/barretenberg_api/index.ts +2 -60
  35. package/src/barretenberg_api/pedersen.test.ts +9 -71
  36. package/src/barretenberg_api/schnorr.test.ts +0 -1
  37. package/src/benchmark/index.ts +26 -0
  38. package/src/benchmark/timer.ts +41 -0
  39. package/src/main.ts +19 -3
package/README.md CHANGED
@@ -13,17 +13,22 @@ Note there are two independent WASM builds, one with threading enabled and one w
13
13
  memory flag is set within the WASM itself. If you're running in a context where you can't have shared memory, we want
14
14
  to fallback to single threaded performance.
15
15
 
16
- Performance for 2^19 (small witness generation phase):
16
+ The following output is from `bench_acir_tests.sh` script.
17
17
 
18
- - 16 core (not hyperthreads) x86: ~15s.
19
- - 10 core M1 Mac Pro: ~20s.
18
+ Table represents time in ms to build circuit and proof for each test on n threads.
19
+ Ignores proving key construction.
20
20
 
21
- Linear scaling was observed up to 32 cores.
22
-
23
- Witness generation phase is not multithreaded, and an interesting 512k circuit can take ~12s. This results in:
24
-
25
- - 16 core (not hyperthreads) x86: ~28s.
26
- - 10 core M1 Mac Pro: ~32s.
21
+ ```
22
+ +--------------------------+------------+---------------+-----------+-----------+-----------+-----------+-----------+
23
+ | Test | Gate Count | Subgroup Size | 1 | 4 | 16 | 32 | 64 |
24
+ +--------------------------+------------+---------------+-----------+-----------+-----------+-----------+-----------+
25
+ | sha256 | 38799 | 65536 | 18764 | 5116 | 1854 | 1524 | 1635 |
26
+ | ecdsa_secp256k1 | 41049 | 65536 | 19129 | 5595 | 2255 | 2097 | 2166 |
27
+ | ecdsa_secp256r1 | 67331 | 131072 | 38815 | 11257 | 4744 | 3633 | 3702 |
28
+ | schnorr | 33740 | 65536 | 18649 | 5244 | 2019 | 1498 | 1702 |
29
+ | double_verify_proof | 505513 | 524288 | 149652 | 45702 | 20811 | 16979 | 15679 |
30
+ +--------------------------+------------+---------------+-----------+-----------+-----------+-----------+-----------+
31
+ ```
27
32
 
28
33
  ## Using as a standalone binary
29
34
 
@@ -4,18 +4,8 @@ export declare class BarretenbergApi {
4
4
  binder: BarretenbergBinder;
5
5
  constructor(binder: BarretenbergBinder);
6
6
  destroy(): Promise<void>;
7
- pedersenInit(): Promise<void>;
8
- pedersenCompressFields(left: Fr, right: Fr): Promise<Fr>;
9
- pedersenCompress(inputsBuffer: Fr[]): Promise<Fr>;
10
- pedersenCompressWithHashIndex(inputsBuffer: Fr[], hashIndex: number): Promise<Fr>;
11
- pedersenCommit(inputsBuffer: Fr[]): Promise<Fr>;
12
- pedersenHashInit(): Promise<void>;
13
- pedersenHash(inputsBuffer: Fr[]): Promise<Fr>;
7
+ pedersenCommit(inputsBuffer: Fr[]): Promise<Point>;
14
8
  pedersenHashWithHashIndex(inputsBuffer: Fr[], hashIndex: number): Promise<Fr>;
15
- pedersenHashPair(left: Fr, right: Fr): Promise<Fr>;
16
- pedersenHashMultiple(inputsBuffer: Fr[]): Promise<Fr>;
17
- pedersenHashMultipleWithHashIndex(inputsBuffer: Fr[], hashIndex: number): Promise<Fr>;
18
- pedersenHashToTree(data: Fr[]): Promise<Fr[]>;
19
9
  blake2s(data: Uint8Array): Promise<Buffer32>;
20
10
  blake2sToField(data: Uint8Array): Promise<Fr>;
21
11
  schnorrComputePublicKey(privateKey: Fr): Promise<Point>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/barretenberg_api/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/barretenberg_api/index.ts"],"names":[],"mappings":"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"}