@aztec/bb-prover 0.0.0-test.0 → 0.0.1-commit.21caa21

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 (109) hide show
  1. package/dest/avm_proving_tests/avm_proving_tester.d.ts +14 -18
  2. package/dest/avm_proving_tests/avm_proving_tester.d.ts.map +1 -1
  3. package/dest/avm_proving_tests/avm_proving_tester.js +130 -79
  4. package/dest/bb/cli.d.ts +1 -1
  5. package/dest/bb/execute.d.ts +14 -47
  6. package/dest/bb/execute.d.ts.map +1 -1
  7. package/dest/bb/execute.js +132 -236
  8. package/dest/bb/index.d.ts +1 -1
  9. package/dest/config.d.ts +3 -1
  10. package/dest/config.d.ts.map +1 -1
  11. package/dest/honk.d.ts +3 -3
  12. package/dest/honk.d.ts.map +1 -1
  13. package/dest/honk.js +3 -2
  14. package/dest/index.d.ts +2 -1
  15. package/dest/index.d.ts.map +1 -1
  16. package/dest/index.js +1 -0
  17. package/dest/instrumentation.d.ts +3 -3
  18. package/dest/instrumentation.d.ts.map +1 -1
  19. package/dest/instrumentation.js +2 -4
  20. package/dest/prover/client/bb_private_kernel_prover.d.ts +32 -0
  21. package/dest/prover/client/bb_private_kernel_prover.d.ts.map +1 -0
  22. package/dest/prover/{bb_private_kernel_prover.js → client/bb_private_kernel_prover.js} +42 -20
  23. package/dest/prover/client/bundle.d.ts +6 -0
  24. package/dest/prover/client/bundle.d.ts.map +1 -0
  25. package/dest/prover/client/bundle.js +8 -0
  26. package/dest/prover/client/lazy.d.ts +6 -0
  27. package/dest/prover/client/lazy.d.ts.map +1 -0
  28. package/dest/prover/client/lazy.js +8 -0
  29. package/dest/prover/index.d.ts +3 -4
  30. package/dest/prover/index.d.ts.map +1 -1
  31. package/dest/prover/index.js +2 -3
  32. package/dest/prover/proof_utils.d.ts +19 -0
  33. package/dest/prover/proof_utils.d.ts.map +1 -0
  34. package/dest/prover/proof_utils.js +72 -0
  35. package/dest/prover/server/bb_prover.d.ts +100 -0
  36. package/dest/prover/server/bb_prover.d.ts.map +1 -0
  37. package/dest/prover/server/bb_prover.js +339 -0
  38. package/dest/test/delay_values.d.ts +1 -1
  39. package/dest/test/delay_values.d.ts.map +1 -1
  40. package/dest/test/delay_values.js +33 -21
  41. package/dest/test/index.d.ts +1 -1
  42. package/dest/test/test_circuit_prover.d.ts +25 -34
  43. package/dest/test/test_circuit_prover.d.ts.map +1 -1
  44. package/dest/test/test_circuit_prover.js +85 -59
  45. package/dest/test/test_verifier.d.ts +6 -3
  46. package/dest/test/test_verifier.d.ts.map +1 -1
  47. package/dest/test/test_verifier.js +23 -1
  48. package/dest/verification_key/verification_key_data.d.ts +7 -1
  49. package/dest/verification_key/verification_key_data.d.ts.map +1 -1
  50. package/dest/verification_key/verification_key_data.js +23 -29
  51. package/dest/verifier/bb_verifier.d.ts +6 -5
  52. package/dest/verifier/bb_verifier.d.ts.map +1 -1
  53. package/dest/verifier/bb_verifier.js +46 -25
  54. package/dest/verifier/index.d.ts +2 -1
  55. package/dest/verifier/index.d.ts.map +1 -1
  56. package/dest/verifier/index.js +1 -0
  57. package/dest/verifier/queued_chonk_verifier.d.ts +15 -0
  58. package/dest/verifier/queued_chonk_verifier.d.ts.map +1 -0
  59. package/dest/verifier/queued_chonk_verifier.js +132 -0
  60. package/package.json +35 -33
  61. package/src/avm_proving_tests/avm_proving_tester.ts +210 -104
  62. package/src/bb/execute.ts +103 -250
  63. package/src/config.ts +2 -0
  64. package/src/honk.ts +3 -2
  65. package/src/index.ts +1 -0
  66. package/src/instrumentation.ts +2 -4
  67. package/src/prover/{bb_private_kernel_prover.ts → client/bb_private_kernel_prover.ts} +78 -30
  68. package/src/prover/client/bundle.ts +11 -0
  69. package/src/prover/client/lazy.ts +11 -0
  70. package/src/prover/index.ts +2 -3
  71. package/src/prover/proof_utils.ts +115 -0
  72. package/src/prover/server/bb_prover.ts +733 -0
  73. package/src/test/delay_values.ts +33 -21
  74. package/src/test/test_circuit_prover.ts +260 -147
  75. package/src/test/test_verifier.ts +15 -3
  76. package/src/verification_key/verification_key_data.ts +29 -24
  77. package/src/verifier/bb_verifier.ts +63 -32
  78. package/src/verifier/index.ts +1 -0
  79. package/src/verifier/queued_chonk_verifier.ts +140 -0
  80. package/dest/prover/bb_native_private_kernel_prover.d.ts +0 -25
  81. package/dest/prover/bb_native_private_kernel_prover.d.ts.map +0 -1
  82. package/dest/prover/bb_native_private_kernel_prover.js +0 -69
  83. package/dest/prover/bb_private_kernel_prover.d.ts +0 -32
  84. package/dest/prover/bb_private_kernel_prover.d.ts.map +0 -1
  85. package/dest/prover/bb_prover.d.ts +0 -120
  86. package/dest/prover/bb_prover.d.ts.map +0 -1
  87. package/dest/prover/bb_prover.js +0 -423
  88. package/dest/prover/client_ivc_proof_utils.d.ts +0 -25
  89. package/dest/prover/client_ivc_proof_utils.d.ts.map +0 -1
  90. package/dest/prover/client_ivc_proof_utils.js +0 -43
  91. package/dest/stats.d.ts +0 -5
  92. package/dest/stats.d.ts.map +0 -1
  93. package/dest/stats.js +0 -62
  94. package/dest/wasm/bb_wasm_private_kernel_prover.d.ts +0 -17
  95. package/dest/wasm/bb_wasm_private_kernel_prover.d.ts.map +0 -1
  96. package/dest/wasm/bb_wasm_private_kernel_prover.js +0 -46
  97. package/dest/wasm/bundle.d.ts +0 -6
  98. package/dest/wasm/bundle.d.ts.map +0 -1
  99. package/dest/wasm/bundle.js +0 -8
  100. package/dest/wasm/lazy.d.ts +0 -6
  101. package/dest/wasm/lazy.d.ts.map +0 -1
  102. package/dest/wasm/lazy.js +0 -8
  103. package/src/prover/bb_native_private_kernel_prover.ts +0 -119
  104. package/src/prover/bb_prover.ts +0 -781
  105. package/src/prover/client_ivc_proof_utils.ts +0 -42
  106. package/src/stats.ts +0 -64
  107. package/src/wasm/bb_wasm_private_kernel_prover.ts +0 -55
  108. package/src/wasm/bundle.ts +0 -11
  109. package/src/wasm/lazy.ts +0 -11
@@ -1,6 +0,0 @@
1
- import type { SimulationProvider } from '@aztec/simulator/client';
2
- import { BBWASMPrivateKernelProver } from './bb_wasm_private_kernel_prover.js';
3
- export declare class BBWASMBundlePrivateKernelProver extends BBWASMPrivateKernelProver {
4
- constructor(simulationProvider: SimulationProvider, threads?: number, log?: import("@aztec/foundation/log").Logger);
5
- }
6
- //# sourceMappingURL=bundle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../src/wasm/bundle.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,qBAAa,+BAAgC,SAAQ,yBAAyB;gBAChE,kBAAkB,EAAE,kBAAkB,EAAE,OAAO,SAAI,EAAE,GAAG,yCAAwC;CAG7G"}
@@ -1,8 +0,0 @@
1
- import { createLogger } from '@aztec/foundation/log';
2
- import { BundleArtifactProvider } from '@aztec/noir-protocol-circuits-types/client/bundle';
3
- import { BBWASMPrivateKernelProver } from './bb_wasm_private_kernel_prover.js';
4
- export class BBWASMBundlePrivateKernelProver extends BBWASMPrivateKernelProver {
5
- constructor(simulationProvider, threads = 1, log = createLogger('bb-prover:wasm:bundle')){
6
- super(new BundleArtifactProvider(), simulationProvider, threads, log);
7
- }
8
- }
@@ -1,6 +0,0 @@
1
- import type { SimulationProvider } from '@aztec/simulator/client';
2
- import { BBWASMPrivateKernelProver } from './bb_wasm_private_kernel_prover.js';
3
- export declare class BBWASMLazyPrivateKernelProver extends BBWASMPrivateKernelProver {
4
- constructor(simulationProvider: SimulationProvider, threads?: number, log?: import("@aztec/foundation/log").Logger);
5
- }
6
- //# sourceMappingURL=lazy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../src/wasm/lazy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,qBAAa,6BAA8B,SAAQ,yBAAyB;gBAC9D,kBAAkB,EAAE,kBAAkB,EAAE,OAAO,SAAI,EAAE,GAAG,yCAAsC;CAG3G"}
package/dest/wasm/lazy.js DELETED
@@ -1,8 +0,0 @@
1
- import { createLogger } from '@aztec/foundation/log';
2
- import { LazyArtifactProvider } from '@aztec/noir-protocol-circuits-types/client/lazy';
3
- import { BBWASMPrivateKernelProver } from './bb_wasm_private_kernel_prover.js';
4
- export class BBWASMLazyPrivateKernelProver extends BBWASMPrivateKernelProver {
5
- constructor(simulationProvider, threads = 1, log = createLogger('bb-prover:wasm:lazy')){
6
- super(new LazyArtifactProvider(), simulationProvider, threads, log);
7
- }
8
- }
@@ -1,119 +0,0 @@
1
- import { runInDirectory } from '@aztec/foundation/fs';
2
- import { type Logger, createLogger } from '@aztec/foundation/log';
3
- import { BundleArtifactProvider } from '@aztec/noir-protocol-circuits-types/client/bundle';
4
- import type { SimulationProvider } from '@aztec/simulator/server';
5
- import type { ClientIvcProof } from '@aztec/stdlib/proofs';
6
-
7
- import { encode } from '@msgpack/msgpack';
8
- import { serializeWitness } from '@noir-lang/noirc_abi';
9
- import type { WitnessMap } from '@noir-lang/types';
10
- import { promises as fs } from 'fs';
11
- import path from 'path';
12
-
13
- import { BB_RESULT, computeGateCountForCircuit, executeBbClientIvcProof } from '../bb/execute.js';
14
- import type { BBConfig } from '../config.js';
15
- import { BBPrivateKernelProver } from './bb_private_kernel_prover.js';
16
- import { readFromOutputDirectory } from './client_ivc_proof_utils.js';
17
-
18
- /**
19
- * This proof creator implementation uses the native bb binary.
20
- */
21
- export class BBNativePrivateKernelProver extends BBPrivateKernelProver {
22
- private constructor(
23
- private bbBinaryPath: string,
24
- private bbWorkingDirectory: string,
25
- private skipCleanup: boolean,
26
- protected override simulationProvider: SimulationProvider,
27
- protected override log = createLogger('bb-prover:native'),
28
- ) {
29
- super(new BundleArtifactProvider(), simulationProvider, log);
30
- }
31
-
32
- public static async new(config: BBConfig, simulationProvider: SimulationProvider, log?: Logger) {
33
- await fs.mkdir(config.bbWorkingDirectory, { recursive: true });
34
- return new BBNativePrivateKernelProver(
35
- config.bbBinaryPath,
36
- config.bbWorkingDirectory,
37
- !!config.bbSkipCleanup,
38
- simulationProvider,
39
- log,
40
- );
41
- }
42
-
43
- private async _createClientIvcProof(
44
- directory: string,
45
- acirs: Buffer[],
46
- witnessStack: WitnessMap[],
47
- ): Promise<ClientIvcProof> {
48
- // TODO(#7371): Longer term we won't use this hacked together msgpack format
49
- // and instead properly create the bincode serialization from rust
50
- await fs.writeFile(path.join(directory, 'acir.msgpack'), encode(acirs));
51
- await fs.writeFile(
52
- path.join(directory, 'witnesses.msgpack'),
53
- encode(witnessStack.map(map => serializeWitness(map))),
54
- );
55
- const provingResult = await executeBbClientIvcProof(
56
- this.bbBinaryPath,
57
- directory,
58
- path.join(directory, 'acir.msgpack'),
59
- path.join(directory, 'witnesses.msgpack'),
60
- this.log.info,
61
- );
62
-
63
- if (provingResult.status === BB_RESULT.FAILURE) {
64
- this.log.error(`Failed to generate client ivc proof`);
65
- throw new Error(provingResult.reason);
66
- }
67
-
68
- const proof = await readFromOutputDirectory(directory);
69
-
70
- this.log.info(`Generated IVC proof`, {
71
- duration: provingResult.durationMs,
72
- eventName: 'circuit-proving',
73
- });
74
-
75
- return proof;
76
- }
77
-
78
- public override async createClientIvcProof(acirs: Buffer[], witnessStack: WitnessMap[]): Promise<ClientIvcProof> {
79
- this.log.info(`Generating Client IVC proof`);
80
- const operation = async (directory: string) => {
81
- return await this._createClientIvcProof(directory, acirs, witnessStack);
82
- };
83
- return await this.runInDirectory(operation);
84
- }
85
-
86
- public override async computeGateCountForCircuit(bytecode: Buffer, circuitName: string): Promise<number> {
87
- const logFunction = (message: string) => {
88
- this.log.debug(`$bb gates ${circuitName} - ${message}`);
89
- };
90
-
91
- const result = await computeGateCountForCircuit(
92
- this.bbBinaryPath,
93
- this.bbWorkingDirectory,
94
- circuitName,
95
- bytecode,
96
- 'mega_honk',
97
- logFunction,
98
- );
99
- if (result.status === BB_RESULT.FAILURE) {
100
- throw new Error(result.reason);
101
- }
102
-
103
- return result.circuitSize as number;
104
- }
105
-
106
- private runInDirectory<T>(fn: (dir: string) => Promise<T>) {
107
- const log = this.log;
108
- return runInDirectory(
109
- this.bbWorkingDirectory,
110
- (dir: string) =>
111
- fn(dir).catch(err => {
112
- log.error(`Error running operation at ${dir}: ${err}`);
113
- throw err;
114
- }),
115
- this.skipCleanup,
116
- this.log,
117
- );
118
- }
119
- }