@aztec/bb-prover 3.0.0-nightly.20251115 → 3.0.0-nightly.20251118

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 (32) hide show
  1. package/dest/bb/execute.d.ts.map +1 -1
  2. package/dest/bb/execute.js +12 -8
  3. package/dest/prover/client/bb_private_kernel_prover.d.ts +2 -2
  4. package/dest/prover/client/bb_private_kernel_prover.d.ts.map +1 -1
  5. package/dest/prover/client/bb_private_kernel_prover.js +24 -5
  6. package/dest/prover/client/bundle.d.ts +6 -0
  7. package/dest/prover/client/bundle.d.ts.map +1 -0
  8. package/dest/prover/client/bundle.js +8 -0
  9. package/dest/prover/client/lazy.d.ts +6 -0
  10. package/dest/prover/client/lazy.d.ts.map +1 -0
  11. package/dest/prover/client/lazy.js +8 -0
  12. package/package.json +19 -19
  13. package/src/bb/execute.ts +5 -8
  14. package/src/prover/client/bb_private_kernel_prover.ts +29 -5
  15. package/src/prover/client/bundle.ts +11 -0
  16. package/src/prover/client/lazy.ts +11 -0
  17. package/dest/prover/client/native/bb_native_private_kernel_prover.d.ts +0 -23
  18. package/dest/prover/client/native/bb_native_private_kernel_prover.d.ts.map +0 -1
  19. package/dest/prover/client/native/bb_native_private_kernel_prover.js +0 -66
  20. package/dest/prover/client/wasm/bb_wasm_private_kernel_prover.d.ts +0 -15
  21. package/dest/prover/client/wasm/bb_wasm_private_kernel_prover.d.ts.map +0 -1
  22. package/dest/prover/client/wasm/bb_wasm_private_kernel_prover.js +0 -46
  23. package/dest/prover/client/wasm/bundle.d.ts +0 -6
  24. package/dest/prover/client/wasm/bundle.d.ts.map +0 -1
  25. package/dest/prover/client/wasm/bundle.js +0 -8
  26. package/dest/prover/client/wasm/lazy.d.ts +0 -6
  27. package/dest/prover/client/wasm/lazy.d.ts.map +0 -1
  28. package/dest/prover/client/wasm/lazy.js +0 -8
  29. package/src/prover/client/native/bb_native_private_kernel_prover.ts +0 -105
  30. package/src/prover/client/wasm/bb_wasm_private_kernel_prover.ts +0 -58
  31. package/src/prover/client/wasm/bundle.ts +0 -11
  32. package/src/prover/client/wasm/lazy.ts +0 -11
@@ -1 +1 @@
1
- {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/bb/execute.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAMlF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,eAAO,MAAM,WAAW,OAAO,CAAC;AAChC,eAAO,MAAM,sBAAsB,kBAAkB,CAAC;AACtD,eAAO,MAAM,cAAc,UAAU,CAAC;AACtC,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AACpD,eAAO,MAAM,qBAAqB,qBAAqB,CAAC;AACxD,eAAO,MAAM,0BAA0B,0BAA0B,CAAC;AAElE,oBAAY,SAAS;IACnB,OAAO,IAAA;IACP,OAAO,IAAA;IACP,eAAe,IAAA;CAChB;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,eAAe,CAAC;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAE7C,KAAK,YAAY,GAAG;IAClB,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,EAAE,KAAK,EACb,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,MAAM,EAChB,YAAY,IAAI,MAAM,MAAM,cAAe,GAC1C,OAAO,CAAC,YAAY,CAAC,CAiDvB;AAED,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,KAAK,EACV,OAAO,UAAQ,GACd,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAoDhC;AAmBD;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,EACvB,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAoEhC;AAED;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,MAAM,EACd,gBAAgB,GAAE,OAAe,GAChC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAiEhC;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,mBAAmB,EAAE,MAAM,EAC3B,eAAe,EAAE,eAAe,EAChC,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAShC;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,sBAAsB,EACpC,mBAAmB,EAAE,MAAM,EAC3B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAmBhC;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,KAAK,EACV,WAAW,SAAI,GACd,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CA4BhC;AAqED,wBAAsB,kCAAkC,CACtD,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CA8ChC;AAED;;;;;;;;GAQG;AACH,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,eAAe,GAAG,WAAW,EACrC,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CA0DhC"}
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/bb/execute.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { Timer } from '@aztec/foundation/timer';
3
3
  import * as proc from 'child_process';
4
4
  import { promises as fs } from 'fs';
5
5
  import { basename, dirname, join } from 'path';
6
+ import readline from 'readline';
6
7
  export const VK_FILENAME = 'vk';
7
8
  export const PUBLIC_INPUTS_FILENAME = 'public_inputs';
8
9
  export const PROOF_FILENAME = 'proof';
@@ -41,6 +42,11 @@ export var BB_RESULT = /*#__PURE__*/ function(BB_RESULT) {
41
42
  command,
42
43
  ...args
43
44
  ], {
45
+ stdio: [
46
+ 'ignore',
47
+ 'pipe',
48
+ 'pipe'
49
+ ],
44
50
  env
45
51
  });
46
52
  let timeoutId;
@@ -57,14 +63,12 @@ export var BB_RESULT = /*#__PURE__*/ function(BB_RESULT) {
57
63
  });
58
64
  }, timeout);
59
65
  }
60
- bb.stdout.on('data', (data)=>{
61
- const message = data.toString('utf-8').replace(/\n$/, '');
62
- logger(message);
63
- });
64
- bb.stderr.on('data', (data)=>{
65
- const message = data.toString('utf-8').replace(/\n$/, '');
66
- logger(message);
67
- });
66
+ readline.createInterface({
67
+ input: bb.stdout
68
+ }).on('line', logger);
69
+ readline.createInterface({
70
+ input: bb.stderr
71
+ }).on('line', logger);
68
72
  bb.on('close', (exitCode, signal)=>{
69
73
  if (timeoutId) {
70
74
  clearTimeout(timeoutId);
@@ -3,7 +3,7 @@ import type { Abi, WitnessMap } from '@aztec/noir-types';
3
3
  import type { CircuitSimulator } from '@aztec/simulator/client';
4
4
  import type { PrivateKernelProver } from '@aztec/stdlib/interfaces/client';
5
5
  import type { HidingKernelToPublicPrivateInputs, HidingKernelToRollupPrivateInputs, PrivateExecutionStep, PrivateKernelCircuitPublicInputs, PrivateKernelInitCircuitPrivateInputs, PrivateKernelInnerCircuitPrivateInputs, PrivateKernelResetCircuitPrivateInputs, PrivateKernelSimulateOutput, PrivateKernelTailCircuitPrivateInputs, PrivateKernelTailCircuitPublicInputs } from '@aztec/stdlib/kernel';
6
- import type { ChonkProofWithPublicInputs } from '@aztec/stdlib/proofs';
6
+ import { ChonkProofWithPublicInputs } from '@aztec/stdlib/proofs';
7
7
  export declare abstract class BBPrivateKernelProver implements PrivateKernelProver {
8
8
  protected artifactProvider: ArtifactProvider;
9
9
  protected simulator: CircuitSimulator;
@@ -26,7 +26,7 @@ export declare abstract class BBPrivateKernelProver implements PrivateKernelProv
26
26
  toBuffer: () => Buffer;
27
27
  }, O extends PrivateKernelCircuitPublicInputs | PrivateKernelTailCircuitPublicInputs>(inputs: I, circuitType: ClientProtocolArtifact, convertInputs: (inputs: I, abi: Abi) => WitnessMap, convertOutputs: (outputs: WitnessMap, abi: Abi) => O): Promise<PrivateKernelSimulateOutput<O>>;
28
28
  makeEmptyKernelSimulateOutput<PublicInputsType extends PrivateKernelTailCircuitPublicInputs | PrivateKernelCircuitPublicInputs>(publicInputs: PublicInputsType, circuitType: ClientProtocolArtifact): Promise<PrivateKernelSimulateOutput<PublicInputsType>>;
29
- createChonkProof(_executionSteps: PrivateExecutionStep[]): Promise<ChonkProofWithPublicInputs>;
29
+ createChonkProof(executionSteps: PrivateExecutionStep[]): Promise<ChonkProofWithPublicInputs>;
30
30
  computeGateCountForCircuit(_bytecode: Buffer, _circuitName: string): Promise<number>;
31
31
  }
32
32
  //# sourceMappingURL=bb_private_kernel_prover.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bb_private_kernel_prover.d.ts","sourceRoot":"","sources":["../../../src/prover/client/bb_private_kernel_prover.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bb_private_kernel_prover.d.ts","sourceRoot":"","sources":["../../../src/prover/client/bb_private_kernel_prover.ts"],"names":[],"mappings":"AAqBA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAE5B,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EACV,iCAAiC,EACjC,iCAAiC,EACjC,oBAAoB,EACpB,gCAAgC,EAChC,qCAAqC,EACrC,sCAAsC,EACtC,sCAAsC,EACtC,2BAA2B,EAC3B,qCAAqC,EACrC,oCAAoC,EACrC,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAKlE,8BAAsB,qBAAsB,YAAW,mBAAmB;IAEtE,SAAS,CAAC,gBAAgB,EAAE,gBAAgB;IAC5C,SAAS,CAAC,SAAS,EAAE,gBAAgB;IACrC,SAAS,CAAC,GAAG;gBAFH,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,gBAAgB,EAC3B,GAAG,yCAA4B;IAG9B,kBAAkB,CAC7B,MAAM,EAAE,qCAAqC,GAC5C,OAAO,CAAC,2BAA2B,CAAC,gCAAgC,CAAC,CAAC;IAS5D,YAAY,CACvB,MAAM,EAAE,qCAAqC,GAC5C,OAAO,CAAC,2BAA2B,CAAC,gCAAgC,CAAC,CAAC;IAS5D,mBAAmB,CAC9B,MAAM,EAAE,sCAAsC,GAC7C,OAAO,CAAC,2BAA2B,CAAC,gCAAgC,CAAC,CAAC;IAS5D,aAAa,CACxB,MAAM,EAAE,sCAAsC,GAC7C,OAAO,CAAC,2BAA2B,CAAC,gCAAgC,CAAC,CAAC;IAS5D,mBAAmB,CAC9B,MAAM,EAAE,sCAAsC,GAC7C,OAAO,CAAC,2BAA2B,CAAC,gCAAgC,CAAC,CAAC;IAW5D,aAAa,CACxB,MAAM,EAAE,sCAAsC,GAC7C,OAAO,CAAC,2BAA2B,CAAC,gCAAgC,CAAC,CAAC;IAY5D,kBAAkB,CAC7B,MAAM,EAAE,qCAAqC,GAC5C,OAAO,CAAC,2BAA2B,CAAC,oCAAoC,CAAC,CAAC;IAiBhE,YAAY,CACvB,MAAM,EAAE,qCAAqC,GAC5C,OAAO,CAAC,2BAA2B,CAAC,oCAAoC,CAAC,CAAC;IAiBhE,4BAA4B,CACvC,MAAM,EAAE,iCAAiC,GACxC,OAAO,CAAC,2BAA2B,CAAC,oCAAoC,CAAC,CAAC;IAShE,4BAA4B,CACvC,MAAM,EAAE,iCAAiC,GACxC,OAAO,CAAC,2BAA2B,CAAC,oCAAoC,CAAC,CAAC;IAShE,qBAAqB,CAChC,CAAC,SAAS;QAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;KAAE,EACpC,CAAC,SAAS,gCAAgC,GAAG,oCAAoC,EAEjF,MAAM,EAAE,CAAC,EACT,WAAW,EAAE,sBAAsB,EACnC,aAAa,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,UAAU,EAClD,cAAc,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,GACnD,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC;IA4B7B,qBAAqB,CAChC,CAAC,SAAS;QAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;KAAE,EACpC,CAAC,SAAS,gCAAgC,GAAG,oCAAoC,EAEjF,MAAM,EAAE,CAAC,EACT,WAAW,EAAE,sBAAsB,EACnC,aAAa,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,UAAU,EAClD,cAAc,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,GACnD,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC;IA6B7B,6BAA6B,CACxC,gBAAgB,SAAS,oCAAoC,GAAG,gCAAgC,EAChG,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,sBAAsB;IAUxD,gBAAgB,CAAC,cAAc,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAoB7F,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAMlG"}
@@ -1,6 +1,11 @@
1
+ import { AztecClientBackend, Barretenberg } from '@aztec/bb.js';
1
2
  import { createLogger } from '@aztec/foundation/log';
3
+ import { Timer } from '@aztec/foundation/timer';
4
+ import { serializeWitness } from '@aztec/noir-noirc_abi';
2
5
  import { convertHidingKernelPublicInputsToWitnessMapWithAbi, convertHidingKernelToRollupInputsToWitnessMapWithAbi, convertPrivateKernelInitInputsToWitnessMapWithAbi, convertPrivateKernelInitOutputsFromWitnessMapWithAbi, convertPrivateKernelInnerInputsToWitnessMapWithAbi, convertPrivateKernelInnerOutputsFromWitnessMapWithAbi, convertPrivateKernelResetInputsToWitnessMapWithAbi, convertPrivateKernelResetOutputsFromWitnessMapWithAbi, convertPrivateKernelTailForPublicOutputsFromWitnessMapWithAbi, convertPrivateKernelTailInputsToWitnessMapWithAbi, convertPrivateKernelTailOutputsFromWitnessMapWithAbi, convertPrivateKernelTailToPublicInputsToWitnessMapWithAbi, foreignCallHandler, getPrivateKernelResetArtifactName, updateResetCircuitSampleInputs } from '@aztec/noir-protocol-circuits-types/client';
3
6
  import { mapProtocolArtifactNameToCircuitName } from '@aztec/noir-protocol-circuits-types/types';
7
+ import { ChonkProofWithPublicInputs } from '@aztec/stdlib/proofs';
8
+ import { ungzip } from 'pako';
4
9
  export class BBPrivateKernelProver {
5
10
  artifactProvider;
6
11
  simulator;
@@ -103,10 +108,24 @@ export class BBPrivateKernelProver {
103
108
  };
104
109
  return kernelProofOutput;
105
110
  }
106
- createChonkProof(_executionSteps) {
107
- throw new Error('Not implemented');
108
- }
109
- computeGateCountForCircuit(_bytecode, _circuitName) {
110
- throw new Error('Not implemented');
111
+ async createChonkProof(executionSteps) {
112
+ const timer = new Timer();
113
+ this.log.info(`Generating ClientIVC proof...`);
114
+ const backend = new AztecClientBackend(executionSteps.map((step)=>ungzip(step.bytecode)), await Barretenberg.initSingleton());
115
+ const [proof] = await backend.prove(executionSteps.map((step)=>ungzip(serializeWitness(step.witness))), executionSteps.map((step)=>step.vk));
116
+ this.log.info(`Generated ClientIVC proof`, {
117
+ eventName: 'client-ivc-proof-generation',
118
+ duration: timer.ms(),
119
+ proofSize: proof.length
120
+ });
121
+ return ChonkProofWithPublicInputs.fromBufferArray(proof);
122
+ }
123
+ async computeGateCountForCircuit(_bytecode, _circuitName) {
124
+ // Note we do not pass the vk to the backend. This is unneeded for gate counts.
125
+ const backend = new AztecClientBackend([
126
+ ungzip(_bytecode)
127
+ ], await Barretenberg.initSingleton());
128
+ const gateCount = await backend.gates();
129
+ return gateCount[0];
111
130
  }
112
131
  }
@@ -0,0 +1,6 @@
1
+ import type { CircuitSimulator } from '@aztec/simulator/client';
2
+ import { BBPrivateKernelProver } from './bb_private_kernel_prover.js';
3
+ export declare class BBBundlePrivateKernelProver extends BBPrivateKernelProver {
4
+ constructor(simulator: CircuitSimulator, log?: import("@aztec/foundation/log").Logger);
5
+ }
6
+ //# sourceMappingURL=bundle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../../src/prover/client/bundle.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,qBAAa,2BAA4B,SAAQ,qBAAqB;gBACxD,SAAS,EAAE,gBAAgB,EAAE,GAAG,yCAAmC;CAGhF"}
@@ -0,0 +1,8 @@
1
+ import { createLogger } from '@aztec/foundation/log';
2
+ import { BundleArtifactProvider } from '@aztec/noir-protocol-circuits-types/client/bundle';
3
+ import { BBPrivateKernelProver } from './bb_private_kernel_prover.js';
4
+ export class BBBundlePrivateKernelProver extends BBPrivateKernelProver {
5
+ constructor(simulator, log = createLogger('bb-prover:bundle')){
6
+ super(new BundleArtifactProvider(), simulator, log);
7
+ }
8
+ }
@@ -0,0 +1,6 @@
1
+ import type { CircuitSimulator } from '@aztec/simulator/client';
2
+ import { BBPrivateKernelProver } from './bb_private_kernel_prover.js';
3
+ export declare class BBLazyPrivateKernelProver extends BBPrivateKernelProver {
4
+ constructor(simulator: CircuitSimulator, log?: import("@aztec/foundation/log").Logger);
5
+ }
6
+ //# sourceMappingURL=lazy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../../src/prover/client/lazy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,qBAAa,yBAA0B,SAAQ,qBAAqB;gBACtD,SAAS,EAAE,gBAAgB,EAAE,GAAG,yCAAiC;CAG9E"}
@@ -0,0 +1,8 @@
1
+ import { createLogger } from '@aztec/foundation/log';
2
+ import { LazyArtifactProvider } from '@aztec/noir-protocol-circuits-types/client/lazy';
3
+ import { BBPrivateKernelProver } from './bb_private_kernel_prover.js';
4
+ export class BBLazyPrivateKernelProver extends BBPrivateKernelProver {
5
+ constructor(simulator, log = createLogger('bb-prover:lazy')){
6
+ super(new LazyArtifactProvider(), simulator, log);
7
+ }
8
+ }
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@aztec/bb-prover",
3
- "version": "3.0.0-nightly.20251115",
3
+ "version": "3.0.0-nightly.20251118",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
7
- "./client/wasm/bundle": "./dest/prover/client/wasm/bundle.js",
8
- "./client/wasm/lazy": "./dest/prover/client/wasm/lazy.js",
9
- "./client/native": "./dest/prover/client/native/bb_native_private_kernel_prover.js",
7
+ "./client/bundle": "./dest/prover/client/bundle.js",
8
+ "./client/lazy": "./dest/prover/client/lazy.js",
9
+ "./client": "./dest/prover/client/bb_private_kernel_prover.js",
10
10
  "./verifier": "./dest/verifier/index.js",
11
11
  "./test": "./dest/test/index.js",
12
12
  "./config": "./dest/config.js"
@@ -69,27 +69,27 @@
69
69
  ]
70
70
  },
71
71
  "dependencies": {
72
- "@aztec/bb.js": "3.0.0-nightly.20251115",
73
- "@aztec/constants": "3.0.0-nightly.20251115",
74
- "@aztec/foundation": "3.0.0-nightly.20251115",
75
- "@aztec/noir-noirc_abi": "3.0.0-nightly.20251115",
76
- "@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20251115",
77
- "@aztec/noir-types": "3.0.0-nightly.20251115",
78
- "@aztec/simulator": "3.0.0-nightly.20251115",
79
- "@aztec/stdlib": "3.0.0-nightly.20251115",
80
- "@aztec/telemetry-client": "3.0.0-nightly.20251115",
81
- "@aztec/world-state": "3.0.0-nightly.20251115",
72
+ "@aztec/bb.js": "3.0.0-nightly.20251118",
73
+ "@aztec/constants": "3.0.0-nightly.20251118",
74
+ "@aztec/foundation": "3.0.0-nightly.20251118",
75
+ "@aztec/noir-noirc_abi": "3.0.0-nightly.20251118",
76
+ "@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20251118",
77
+ "@aztec/noir-types": "3.0.0-nightly.20251118",
78
+ "@aztec/simulator": "3.0.0-nightly.20251118",
79
+ "@aztec/stdlib": "3.0.0-nightly.20251118",
80
+ "@aztec/telemetry-client": "3.0.0-nightly.20251118",
81
+ "@aztec/world-state": "3.0.0-nightly.20251118",
82
82
  "commander": "^12.1.0",
83
83
  "pako": "^2.1.0",
84
84
  "source-map-support": "^0.5.21",
85
85
  "tslib": "^2.4.0"
86
86
  },
87
87
  "devDependencies": {
88
- "@aztec/ethereum": "3.0.0-nightly.20251115",
89
- "@aztec/kv-store": "3.0.0-nightly.20251115",
90
- "@aztec/noir-contracts.js": "3.0.0-nightly.20251115",
91
- "@aztec/noir-test-contracts.js": "3.0.0-nightly.20251115",
92
- "@aztec/protocol-contracts": "3.0.0-nightly.20251115",
88
+ "@aztec/ethereum": "3.0.0-nightly.20251118",
89
+ "@aztec/kv-store": "3.0.0-nightly.20251118",
90
+ "@aztec/noir-contracts.js": "3.0.0-nightly.20251118",
91
+ "@aztec/noir-test-contracts.js": "3.0.0-nightly.20251118",
92
+ "@aztec/protocol-contracts": "3.0.0-nightly.20251118",
93
93
  "@jest/globals": "^30.0.0",
94
94
  "@types/jest": "^30.0.0",
95
95
  "@types/node": "^22.15.17",
package/src/bb/execute.ts CHANGED
@@ -6,6 +6,7 @@ import type { AvmCircuitInputs, AvmCircuitPublicInputs } from '@aztec/stdlib/avm
6
6
  import * as proc from 'child_process';
7
7
  import { promises as fs } from 'fs';
8
8
  import { basename, dirname, join } from 'path';
9
+ import readline from 'readline';
9
10
 
10
11
  import type { UltraHonkFlavor } from '../honk.js';
11
12
 
@@ -85,6 +86,7 @@ export function executeBB(
85
86
  logger(`BB concurrency: ${env.HARDWARE_CONCURRENCY}`);
86
87
  logger(`Executing BB with: ${pathToBB} ${command} ${args.join(' ')}`);
87
88
  const bb = proc.spawn(pathToBB, [command, ...args], {
89
+ stdio: ['ignore', 'pipe', 'pipe'],
88
90
  env,
89
91
  });
90
92
 
@@ -99,14 +101,9 @@ export function executeBB(
99
101
  }, timeout);
100
102
  }
101
103
 
102
- bb.stdout.on('data', data => {
103
- const message = data.toString('utf-8').replace(/\n$/, '');
104
- logger(message);
105
- });
106
- bb.stderr.on('data', data => {
107
- const message = data.toString('utf-8').replace(/\n$/, '');
108
- logger(message);
109
- });
104
+ readline.createInterface({ input: bb.stdout }).on('line', logger);
105
+ readline.createInterface({ input: bb.stderr }).on('line', logger);
106
+
110
107
  bb.on('close', (exitCode: number, signal?: string) => {
111
108
  if (timeoutId) {
112
109
  clearTimeout(timeoutId);
@@ -1,4 +1,7 @@
1
+ import { AztecClientBackend, Barretenberg } from '@aztec/bb.js';
1
2
  import { createLogger } from '@aztec/foundation/log';
3
+ import { Timer } from '@aztec/foundation/timer';
4
+ import { serializeWitness } from '@aztec/noir-noirc_abi';
2
5
  import {
3
6
  convertHidingKernelPublicInputsToWitnessMapWithAbi,
4
7
  convertHidingKernelToRollupInputsToWitnessMapWithAbi,
@@ -37,9 +40,11 @@ import type {
37
40
  PrivateKernelTailCircuitPublicInputs,
38
41
  } from '@aztec/stdlib/kernel';
39
42
  import type { NoirCompiledCircuitWithName } from '@aztec/stdlib/noir';
40
- import type { ChonkProofWithPublicInputs } from '@aztec/stdlib/proofs';
43
+ import { ChonkProofWithPublicInputs } from '@aztec/stdlib/proofs';
41
44
  import type { CircuitSimulationStats, CircuitWitnessGenerationStats } from '@aztec/stdlib/stats';
42
45
 
46
+ import { ungzip } from 'pako';
47
+
43
48
  export abstract class BBPrivateKernelProver implements PrivateKernelProver {
44
49
  constructor(
45
50
  protected artifactProvider: ArtifactProvider,
@@ -263,11 +268,30 @@ export abstract class BBPrivateKernelProver implements PrivateKernelProver {
263
268
  return kernelProofOutput;
264
269
  }
265
270
 
266
- public createChonkProof(_executionSteps: PrivateExecutionStep[]): Promise<ChonkProofWithPublicInputs> {
267
- throw new Error('Not implemented');
271
+ public async createChonkProof(executionSteps: PrivateExecutionStep[]): Promise<ChonkProofWithPublicInputs> {
272
+ const timer = new Timer();
273
+ this.log.info(`Generating ClientIVC proof...`);
274
+ const backend = new AztecClientBackend(
275
+ executionSteps.map(step => ungzip(step.bytecode)),
276
+ await Barretenberg.initSingleton(),
277
+ );
278
+
279
+ const [proof] = await backend.prove(
280
+ executionSteps.map(step => ungzip(serializeWitness(step.witness))),
281
+ executionSteps.map(step => step.vk),
282
+ );
283
+ this.log.info(`Generated ClientIVC proof`, {
284
+ eventName: 'client-ivc-proof-generation',
285
+ duration: timer.ms(),
286
+ proofSize: proof.length,
287
+ });
288
+ return ChonkProofWithPublicInputs.fromBufferArray(proof);
268
289
  }
269
290
 
270
- public computeGateCountForCircuit(_bytecode: Buffer, _circuitName: string): Promise<number> {
271
- throw new Error('Not implemented');
291
+ public async computeGateCountForCircuit(_bytecode: Buffer, _circuitName: string): Promise<number> {
292
+ // Note we do not pass the vk to the backend. This is unneeded for gate counts.
293
+ const backend = new AztecClientBackend([ungzip(_bytecode)], await Barretenberg.initSingleton());
294
+ const gateCount = await backend.gates();
295
+ return gateCount[0];
272
296
  }
273
297
  }
@@ -0,0 +1,11 @@
1
+ import { createLogger } from '@aztec/foundation/log';
2
+ import { BundleArtifactProvider } from '@aztec/noir-protocol-circuits-types/client/bundle';
3
+ import type { CircuitSimulator } from '@aztec/simulator/client';
4
+
5
+ import { BBPrivateKernelProver } from './bb_private_kernel_prover.js';
6
+
7
+ export class BBBundlePrivateKernelProver extends BBPrivateKernelProver {
8
+ constructor(simulator: CircuitSimulator, log = createLogger('bb-prover:bundle')) {
9
+ super(new BundleArtifactProvider(), simulator, log);
10
+ }
11
+ }
@@ -0,0 +1,11 @@
1
+ import { createLogger } from '@aztec/foundation/log';
2
+ import { LazyArtifactProvider } from '@aztec/noir-protocol-circuits-types/client/lazy';
3
+ import type { CircuitSimulator } from '@aztec/simulator/client';
4
+
5
+ import { BBPrivateKernelProver } from './bb_private_kernel_prover.js';
6
+
7
+ export class BBLazyPrivateKernelProver extends BBPrivateKernelProver {
8
+ constructor(simulator: CircuitSimulator, log = createLogger('bb-prover:lazy')) {
9
+ super(new LazyArtifactProvider(), simulator, log);
10
+ }
11
+ }
@@ -1,23 +0,0 @@
1
- import { type Logger } from '@aztec/foundation/log';
2
- import type { CircuitSimulator } from '@aztec/simulator/server';
3
- import { type PrivateExecutionStep } from '@aztec/stdlib/kernel';
4
- import type { ChonkProofWithPublicInputs } from '@aztec/stdlib/proofs';
5
- import type { BBConfig } from '../../../config.js';
6
- import { BBPrivateKernelProver } from '../bb_private_kernel_prover.js';
7
- /**
8
- * This proof creator implementation uses the native bb binary.
9
- */
10
- export declare class BBNativePrivateKernelProver extends BBPrivateKernelProver {
11
- private bbBinaryPath;
12
- private bbWorkingDirectory;
13
- private skipCleanup;
14
- protected simulator: CircuitSimulator;
15
- protected log: Logger;
16
- private constructor();
17
- static new(config: BBConfig, simulator: CircuitSimulator, log?: Logger): Promise<BBNativePrivateKernelProver>;
18
- private _createChonkProof;
19
- createChonkProof(executionSteps: PrivateExecutionStep[]): Promise<ChonkProofWithPublicInputs>;
20
- computeGateCountForCircuit(bytecode: Buffer, circuitName: string): Promise<number>;
21
- private runInDirectory;
22
- }
23
- //# sourceMappingURL=bb_native_private_kernel_prover.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bb_native_private_kernel_prover.d.ts","sourceRoot":"","sources":["../../../../src/prover/client/native/bb_native_private_kernel_prover.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAElE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,KAAK,oBAAoB,EAAkC,MAAM,sBAAsB,CAAC;AACjG,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAMvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAEvE;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,qBAAqB;IAElE,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,WAAW;cACA,SAAS,EAAE,gBAAgB;cAC3B,GAAG;IALxB,OAAO;WAUa,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,CAAC,EAAE,MAAM;YAWrE,iBAAiB;IAuBT,gBAAgB,CAAC,cAAc,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAQ7F,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBxG,OAAO,CAAC,cAAc;CAavB"}
@@ -1,66 +0,0 @@
1
- import { runInDirectory } from '@aztec/foundation/fs';
2
- import { createLogger } from '@aztec/foundation/log';
3
- import { BundleArtifactProvider } from '@aztec/noir-protocol-circuits-types/client/bundle';
4
- import { serializePrivateExecutionSteps } from '@aztec/stdlib/kernel';
5
- import { promises as fs } from 'fs';
6
- import path from 'path';
7
- import { BB_RESULT, computeGateCountForCircuit, executeBbChonkProof } from '../../../bb/execute.js';
8
- import { readChonkProofFromOutputDirectory } from '../../proof_utils.js';
9
- import { BBPrivateKernelProver } from '../bb_private_kernel_prover.js';
10
- /**
11
- * This proof creator implementation uses the native bb binary.
12
- */ export class BBNativePrivateKernelProver extends BBPrivateKernelProver {
13
- bbBinaryPath;
14
- bbWorkingDirectory;
15
- skipCleanup;
16
- simulator;
17
- log;
18
- constructor(bbBinaryPath, bbWorkingDirectory, skipCleanup, simulator, log = createLogger('bb-prover:native')){
19
- super(new BundleArtifactProvider(), simulator, log), this.bbBinaryPath = bbBinaryPath, this.bbWorkingDirectory = bbWorkingDirectory, this.skipCleanup = skipCleanup, this.simulator = simulator, this.log = log;
20
- }
21
- static async new(config, simulator, log) {
22
- await fs.mkdir(config.bbWorkingDirectory, {
23
- recursive: true
24
- });
25
- return new BBNativePrivateKernelProver(config.bbBinaryPath, config.bbWorkingDirectory, !!config.bbSkipCleanup, simulator, log);
26
- }
27
- async _createChonkProof(directory, executionSteps) {
28
- const inputsPath = path.join(directory, 'ivc-inputs.msgpack');
29
- await fs.writeFile(inputsPath, serializePrivateExecutionSteps(executionSteps));
30
- const provingResult = await executeBbChonkProof(this.bbBinaryPath, directory, inputsPath, this.log.info);
31
- if (provingResult.status === BB_RESULT.FAILURE) {
32
- this.log.error(`Failed to generate chonk proof`);
33
- throw new Error(provingResult.reason);
34
- }
35
- const proof = await readChonkProofFromOutputDirectory(directory);
36
- this.log.info(`Generated Chonk proof`, {
37
- duration: provingResult.durationMs,
38
- eventName: 'circuit-proving'
39
- });
40
- return proof;
41
- }
42
- async createChonkProof(executionSteps) {
43
- this.log.info(`Generating Chonk proof`);
44
- const operation = async (directory)=>{
45
- return await this._createChonkProof(directory, executionSteps);
46
- };
47
- return await this.runInDirectory(operation);
48
- }
49
- async computeGateCountForCircuit(bytecode, circuitName) {
50
- const logFunction = (message)=>{
51
- this.log.debug(`$bb gates ${circuitName} - ${message}`);
52
- };
53
- const result = await computeGateCountForCircuit(this.bbBinaryPath, this.bbWorkingDirectory, circuitName, bytecode, 'mega_honk', logFunction);
54
- if (result.status === BB_RESULT.FAILURE) {
55
- throw new Error(result.reason);
56
- }
57
- return result.circuitSize;
58
- }
59
- runInDirectory(fn) {
60
- const log = this.log;
61
- return runInDirectory(this.bbWorkingDirectory, (dir)=>fn(dir).catch((err)=>{
62
- log.error(`Error running operation at ${dir}: ${err}`);
63
- throw err;
64
- }), this.skipCleanup, this.log);
65
- }
66
- }
@@ -1,15 +0,0 @@
1
- import type { ArtifactProvider } from '@aztec/noir-protocol-circuits-types/types';
2
- import type { CircuitSimulator } from '@aztec/simulator/client';
3
- import type { PrivateExecutionStep } from '@aztec/stdlib/kernel';
4
- import { ChonkProofWithPublicInputs } from '@aztec/stdlib/proofs';
5
- import { BBPrivateKernelProver } from '../bb_private_kernel_prover.js';
6
- export declare abstract class BBWASMPrivateKernelProver extends BBPrivateKernelProver {
7
- protected artifactProvider: ArtifactProvider;
8
- protected simulator: CircuitSimulator;
9
- private threads;
10
- protected log: import("@aztec/foundation/log").Logger;
11
- constructor(artifactProvider: ArtifactProvider, simulator: CircuitSimulator, threads?: number, log?: import("@aztec/foundation/log").Logger);
12
- createChonkProof(executionSteps: PrivateExecutionStep[]): Promise<ChonkProofWithPublicInputs>;
13
- computeGateCountForCircuit(_bytecode: Buffer, _circuitName: string): Promise<number>;
14
- }
15
- //# sourceMappingURL=bb_wasm_private_kernel_prover.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bb_wasm_private_kernel_prover.d.ts","sourceRoot":"","sources":["../../../../src/prover/client/wasm/bb_wasm_private_kernel_prover.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAIlE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,8BAAsB,yBAA0B,SAAQ,qBAAqB;cAEtD,gBAAgB,EAAE,gBAAgB;cAClC,SAAS,EAAE,gBAAgB;IAC9C,OAAO,CAAC,OAAO;cACI,GAAG;gBAHH,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,gBAAgB,EACtC,OAAO,GAAE,MAAU,EACR,GAAG,yCAAiC;IAKnC,gBAAgB,CAAC,cAAc,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAqB7F,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAa3G"}
@@ -1,46 +0,0 @@
1
- import { AztecClientBackend } from '@aztec/bb.js';
2
- import { createLogger } from '@aztec/foundation/log';
3
- import { Timer } from '@aztec/foundation/timer';
4
- import { serializeWitness } from '@aztec/noir-noirc_abi';
5
- import { ChonkProofWithPublicInputs } from '@aztec/stdlib/proofs';
6
- import { ungzip } from 'pako';
7
- import { BBPrivateKernelProver } from '../bb_private_kernel_prover.js';
8
- export class BBWASMPrivateKernelProver extends BBPrivateKernelProver {
9
- artifactProvider;
10
- simulator;
11
- threads;
12
- log;
13
- constructor(artifactProvider, simulator, threads = 1, log = createLogger('bb-prover:wasm')){
14
- super(artifactProvider, simulator, log), this.artifactProvider = artifactProvider, this.simulator = simulator, this.threads = threads, this.log = log;
15
- }
16
- async createChonkProof(executionSteps) {
17
- const timer = new Timer();
18
- this.log.info(`Generating Chonk proof...`);
19
- const backend = new AztecClientBackend(executionSteps.map((step)=>ungzip(step.bytecode)), {
20
- threads: this.threads,
21
- logger: this.log.verbose,
22
- wasmPath: process.env.BB_WASM_PATH
23
- });
24
- const [proof] = await backend.prove(executionSteps.map((step)=>ungzip(serializeWitness(step.witness))), executionSteps.map((step)=>step.vk));
25
- await backend.destroy();
26
- this.log.info(`Generated Chonk proof`, {
27
- eventName: 'chonk-proof-generation',
28
- duration: timer.ms(),
29
- proofSize: proof.length
30
- });
31
- return ChonkProofWithPublicInputs.fromBufferArray(proof);
32
- }
33
- async computeGateCountForCircuit(_bytecode, _circuitName) {
34
- // Note we do not pass the vk to the backend. This is unneeded for gate counts.
35
- const backend = new AztecClientBackend([
36
- ungzip(_bytecode)
37
- ], {
38
- threads: this.threads,
39
- logger: this.log.verbose,
40
- wasmPath: process.env.BB_WASM_PATH
41
- });
42
- const gateCount = await backend.gates();
43
- await backend.destroy();
44
- return gateCount[0];
45
- }
46
- }
@@ -1,6 +0,0 @@
1
- import type { CircuitSimulator } from '@aztec/simulator/client';
2
- import { BBWASMPrivateKernelProver } from './bb_wasm_private_kernel_prover.js';
3
- export declare class BBWASMBundlePrivateKernelProver extends BBWASMPrivateKernelProver {
4
- constructor(simulator: CircuitSimulator, 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/prover/client/wasm/bundle.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,qBAAa,+BAAgC,SAAQ,yBAAyB;gBAChE,SAAS,EAAE,gBAAgB,EAAE,OAAO,SAAK,EAAE,GAAG,yCAAwC;CAGnG"}
@@ -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(simulator, threads = 16, log = createLogger('bb-prover:wasm:bundle')){
6
- super(new BundleArtifactProvider(), simulator, threads, log);
7
- }
8
- }
@@ -1,6 +0,0 @@
1
- import type { CircuitSimulator } from '@aztec/simulator/client';
2
- import { BBWASMPrivateKernelProver } from './bb_wasm_private_kernel_prover.js';
3
- export declare class BBWASMLazyPrivateKernelProver extends BBWASMPrivateKernelProver {
4
- constructor(simulator: CircuitSimulator, 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/prover/client/wasm/lazy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,qBAAa,6BAA8B,SAAQ,yBAAyB;gBAC9D,SAAS,EAAE,gBAAgB,EAAE,OAAO,SAAK,EAAE,GAAG,yCAAsC;CAGjG"}
@@ -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(simulator, threads = 16, log = createLogger('bb-prover:wasm:lazy')){
6
- super(new LazyArtifactProvider(), simulator, threads, log);
7
- }
8
- }
@@ -1,105 +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 { CircuitSimulator } from '@aztec/simulator/server';
5
- import { type PrivateExecutionStep, serializePrivateExecutionSteps } from '@aztec/stdlib/kernel';
6
- import type { ChonkProofWithPublicInputs } from '@aztec/stdlib/proofs';
7
-
8
- import { promises as fs } from 'fs';
9
- import path from 'path';
10
-
11
- import { BB_RESULT, computeGateCountForCircuit, executeBbChonkProof } from '../../../bb/execute.js';
12
- import type { BBConfig } from '../../../config.js';
13
- import { readChonkProofFromOutputDirectory } from '../../proof_utils.js';
14
- import { BBPrivateKernelProver } from '../bb_private_kernel_prover.js';
15
-
16
- /**
17
- * This proof creator implementation uses the native bb binary.
18
- */
19
- export class BBNativePrivateKernelProver extends BBPrivateKernelProver {
20
- private constructor(
21
- private bbBinaryPath: string,
22
- private bbWorkingDirectory: string,
23
- private skipCleanup: boolean,
24
- protected override simulator: CircuitSimulator,
25
- protected override log = createLogger('bb-prover:native'),
26
- ) {
27
- super(new BundleArtifactProvider(), simulator, log);
28
- }
29
-
30
- public static async new(config: BBConfig, simulator: CircuitSimulator, log?: Logger) {
31
- await fs.mkdir(config.bbWorkingDirectory, { recursive: true });
32
- return new BBNativePrivateKernelProver(
33
- config.bbBinaryPath,
34
- config.bbWorkingDirectory,
35
- !!config.bbSkipCleanup,
36
- simulator,
37
- log,
38
- );
39
- }
40
-
41
- private async _createChonkProof(
42
- directory: string,
43
- executionSteps: PrivateExecutionStep[],
44
- ): Promise<ChonkProofWithPublicInputs> {
45
- const inputsPath = path.join(directory, 'ivc-inputs.msgpack');
46
- await fs.writeFile(inputsPath, serializePrivateExecutionSteps(executionSteps));
47
- const provingResult = await executeBbChonkProof(this.bbBinaryPath, directory, inputsPath, this.log.info);
48
-
49
- if (provingResult.status === BB_RESULT.FAILURE) {
50
- this.log.error(`Failed to generate chonk proof`);
51
- throw new Error(provingResult.reason);
52
- }
53
-
54
- const proof = await readChonkProofFromOutputDirectory(directory);
55
-
56
- this.log.info(`Generated Chonk proof`, {
57
- duration: provingResult.durationMs,
58
- eventName: 'circuit-proving',
59
- });
60
-
61
- return proof;
62
- }
63
-
64
- public override async createChonkProof(executionSteps: PrivateExecutionStep[]): Promise<ChonkProofWithPublicInputs> {
65
- this.log.info(`Generating Chonk proof`);
66
- const operation = async (directory: string) => {
67
- return await this._createChonkProof(directory, executionSteps);
68
- };
69
- return await this.runInDirectory(operation);
70
- }
71
-
72
- public override async computeGateCountForCircuit(bytecode: Buffer, circuitName: string): Promise<number> {
73
- const logFunction = (message: string) => {
74
- this.log.debug(`$bb gates ${circuitName} - ${message}`);
75
- };
76
-
77
- const result = await computeGateCountForCircuit(
78
- this.bbBinaryPath,
79
- this.bbWorkingDirectory,
80
- circuitName,
81
- bytecode,
82
- 'mega_honk',
83
- logFunction,
84
- );
85
- if (result.status === BB_RESULT.FAILURE) {
86
- throw new Error(result.reason);
87
- }
88
-
89
- return result.circuitSize as number;
90
- }
91
-
92
- private runInDirectory<T>(fn: (dir: string) => Promise<T>) {
93
- const log = this.log;
94
- return runInDirectory(
95
- this.bbWorkingDirectory,
96
- (dir: string) =>
97
- fn(dir).catch(err => {
98
- log.error(`Error running operation at ${dir}: ${err}`);
99
- throw err;
100
- }),
101
- this.skipCleanup,
102
- this.log,
103
- );
104
- }
105
- }
@@ -1,58 +0,0 @@
1
- import { AztecClientBackend } from '@aztec/bb.js';
2
- import { createLogger } from '@aztec/foundation/log';
3
- import { Timer } from '@aztec/foundation/timer';
4
- import { serializeWitness } from '@aztec/noir-noirc_abi';
5
- import type { ArtifactProvider } from '@aztec/noir-protocol-circuits-types/types';
6
- import type { CircuitSimulator } from '@aztec/simulator/client';
7
- import type { PrivateExecutionStep } from '@aztec/stdlib/kernel';
8
- import { ChonkProofWithPublicInputs } from '@aztec/stdlib/proofs';
9
-
10
- import { ungzip } from 'pako';
11
-
12
- import { BBPrivateKernelProver } from '../bb_private_kernel_prover.js';
13
-
14
- export abstract class BBWASMPrivateKernelProver extends BBPrivateKernelProver {
15
- constructor(
16
- protected override artifactProvider: ArtifactProvider,
17
- protected override simulator: CircuitSimulator,
18
- private threads: number = 1,
19
- protected override log = createLogger('bb-prover:wasm'),
20
- ) {
21
- super(artifactProvider, simulator, log);
22
- }
23
-
24
- public override async createChonkProof(executionSteps: PrivateExecutionStep[]): Promise<ChonkProofWithPublicInputs> {
25
- const timer = new Timer();
26
- this.log.info(`Generating Chonk proof...`);
27
- const backend = new AztecClientBackend(
28
- executionSteps.map(step => ungzip(step.bytecode)),
29
- { threads: this.threads, logger: this.log.verbose, wasmPath: process.env.BB_WASM_PATH },
30
- );
31
-
32
- const [proof] = await backend.prove(
33
- executionSteps.map(step => ungzip(serializeWitness(step.witness))),
34
- executionSteps.map(step => step.vk),
35
- );
36
- await backend.destroy();
37
- this.log.info(`Generated Chonk proof`, {
38
- eventName: 'chonk-proof-generation',
39
- duration: timer.ms(),
40
- proofSize: proof.length,
41
- });
42
- return ChonkProofWithPublicInputs.fromBufferArray(proof);
43
- }
44
-
45
- public override async computeGateCountForCircuit(_bytecode: Buffer, _circuitName: string): Promise<number> {
46
- // Note we do not pass the vk to the backend. This is unneeded for gate counts.
47
- const backend = new AztecClientBackend([ungzip(_bytecode)], {
48
- threads: this.threads,
49
- logger: this.log.verbose,
50
- wasmPath: process.env.BB_WASM_PATH,
51
- });
52
-
53
- const gateCount = await backend.gates();
54
- await backend.destroy();
55
-
56
- return gateCount[0];
57
- }
58
- }
@@ -1,11 +0,0 @@
1
- import { createLogger } from '@aztec/foundation/log';
2
- import { BundleArtifactProvider } from '@aztec/noir-protocol-circuits-types/client/bundle';
3
- import type { CircuitSimulator } from '@aztec/simulator/client';
4
-
5
- import { BBWASMPrivateKernelProver } from './bb_wasm_private_kernel_prover.js';
6
-
7
- export class BBWASMBundlePrivateKernelProver extends BBWASMPrivateKernelProver {
8
- constructor(simulator: CircuitSimulator, threads = 16, log = createLogger('bb-prover:wasm:bundle')) {
9
- super(new BundleArtifactProvider(), simulator, threads, log);
10
- }
11
- }
@@ -1,11 +0,0 @@
1
- import { createLogger } from '@aztec/foundation/log';
2
- import { LazyArtifactProvider } from '@aztec/noir-protocol-circuits-types/client/lazy';
3
- import type { CircuitSimulator } from '@aztec/simulator/client';
4
-
5
- import { BBWASMPrivateKernelProver } from './bb_wasm_private_kernel_prover.js';
6
-
7
- export class BBWASMLazyPrivateKernelProver extends BBWASMPrivateKernelProver {
8
- constructor(simulator: CircuitSimulator, threads = 16, log = createLogger('bb-prover:wasm:lazy')) {
9
- super(new LazyArtifactProvider(), simulator, threads, log);
10
- }
11
- }