@aztec/bb-prover 0.0.0-test.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.
- package/dest/avm_proving_tests/avm_proving_tester.d.ts +25 -0
- package/dest/avm_proving_tests/avm_proving_tester.d.ts.map +1 -0
- package/dest/avm_proving_tests/avm_proving_tester.js +105 -0
- package/dest/bb/cli.d.ts +12 -0
- package/dest/bb/cli.d.ts.map +1 -0
- package/dest/bb/cli.js +19 -0
- package/dest/bb/execute.d.ts +140 -0
- package/dest/bb/execute.d.ts.map +1 -0
- package/dest/bb/execute.js +780 -0
- package/dest/bb/index.d.ts +3 -0
- package/dest/bb/index.d.ts.map +1 -0
- package/dest/bb/index.js +16 -0
- package/dest/config.d.ts +13 -0
- package/dest/config.d.ts.map +1 -0
- package/dest/config.js +1 -0
- package/dest/honk.d.ts +13 -0
- package/dest/honk.d.ts.map +1 -0
- package/dest/honk.js +18 -0
- package/dest/index.d.ts +8 -0
- package/dest/index.d.ts.map +1 -0
- package/dest/index.js +6 -0
- package/dest/instrumentation.d.ts +47 -0
- package/dest/instrumentation.d.ts.map +1 -0
- package/dest/instrumentation.js +100 -0
- package/dest/prover/bb_native_private_kernel_prover.d.ts +25 -0
- package/dest/prover/bb_native_private_kernel_prover.d.ts.map +1 -0
- package/dest/prover/bb_native_private_kernel_prover.js +69 -0
- package/dest/prover/bb_private_kernel_prover.d.ts +32 -0
- package/dest/prover/bb_private_kernel_prover.d.ts.map +1 -0
- package/dest/prover/bb_private_kernel_prover.js +109 -0
- package/dest/prover/bb_prover.d.ts +120 -0
- package/dest/prover/bb_prover.d.ts.map +1 -0
- package/dest/prover/bb_prover.js +423 -0
- package/dest/prover/client_ivc_proof_utils.d.ts +25 -0
- package/dest/prover/client_ivc_proof_utils.d.ts.map +1 -0
- package/dest/prover/client_ivc_proof_utils.js +43 -0
- package/dest/prover/index.d.ts +4 -0
- package/dest/prover/index.d.ts.map +1 -0
- package/dest/prover/index.js +3 -0
- package/dest/stats.d.ts +5 -0
- package/dest/stats.d.ts.map +1 -0
- package/dest/stats.js +62 -0
- package/dest/test/delay_values.d.ts +4 -0
- package/dest/test/delay_values.d.ts.map +1 -0
- package/dest/test/delay_values.js +29 -0
- package/dest/test/index.d.ts +3 -0
- package/dest/test/index.d.ts.map +1 -0
- package/dest/test/index.js +2 -0
- package/dest/test/test_circuit_prover.d.ts +81 -0
- package/dest/test/test_circuit_prover.d.ts.map +1 -0
- package/dest/test/test_circuit_prover.js +175 -0
- package/dest/test/test_verifier.d.ts +6 -0
- package/dest/test/test_verifier.d.ts.map +1 -0
- package/dest/test/test_verifier.js +5 -0
- package/dest/verification_key/verification_key_data.d.ts +9 -0
- package/dest/verification_key/verification_key_data.d.ts.map +1 -0
- package/dest/verification_key/verification_key_data.js +44 -0
- package/dest/verifier/bb_verifier.d.ts +17 -0
- package/dest/verifier/bb_verifier.d.ts.map +1 -0
- package/dest/verifier/bb_verifier.js +86 -0
- package/dest/verifier/index.d.ts +2 -0
- package/dest/verifier/index.d.ts.map +1 -0
- package/dest/verifier/index.js +1 -0
- package/dest/wasm/bb_wasm_private_kernel_prover.d.ts +17 -0
- package/dest/wasm/bb_wasm_private_kernel_prover.d.ts.map +1 -0
- package/dest/wasm/bb_wasm_private_kernel_prover.js +46 -0
- package/dest/wasm/bundle.d.ts +6 -0
- package/dest/wasm/bundle.d.ts.map +1 -0
- package/dest/wasm/bundle.js +8 -0
- package/dest/wasm/lazy.d.ts +6 -0
- package/dest/wasm/lazy.d.ts.map +1 -0
- package/dest/wasm/lazy.js +8 -0
- package/package.json +111 -0
- package/src/avm_proving_tests/avm_proving_tester.ts +170 -0
- package/src/bb/cli.ts +32 -0
- package/src/bb/execute.ts +853 -0
- package/src/bb/index.ts +23 -0
- package/src/config.ts +13 -0
- package/src/honk.ts +30 -0
- package/src/index.ts +8 -0
- package/src/instrumentation.ts +144 -0
- package/src/prover/bb_native_private_kernel_prover.ts +119 -0
- package/src/prover/bb_private_kernel_prover.ts +249 -0
- package/src/prover/bb_prover.ts +781 -0
- package/src/prover/client_ivc_proof_utils.ts +42 -0
- package/src/prover/index.ts +3 -0
- package/src/stats.ts +64 -0
- package/src/test/delay_values.ts +31 -0
- package/src/test/index.ts +2 -0
- package/src/test/test_circuit_prover.ts +368 -0
- package/src/test/test_verifier.ts +8 -0
- package/src/verification_key/verification_key_data.ts +45 -0
- package/src/verifier/bb_verifier.ts +114 -0
- package/src/verifier/index.ts +1 -0
- package/src/wasm/bb_wasm_private_kernel_prover.ts +55 -0
- package/src/wasm/bundle.ts +11 -0
- package/src/wasm/lazy.ts +11 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './bb_verifier.js';
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { AztecClientBackend } from '@aztec/bb.js';
|
|
2
|
+
import { createLogger } from '@aztec/foundation/log';
|
|
3
|
+
import { Timer } from '@aztec/foundation/timer';
|
|
4
|
+
import type { ArtifactProvider } from '@aztec/noir-protocol-circuits-types/types';
|
|
5
|
+
import type { SimulationProvider } from '@aztec/simulator/client';
|
|
6
|
+
import { ClientIvcProof } from '@aztec/stdlib/proofs';
|
|
7
|
+
|
|
8
|
+
import { serializeWitness } from '@noir-lang/noirc_abi';
|
|
9
|
+
import type { WitnessMap } from '@noir-lang/types';
|
|
10
|
+
import { ungzip } from 'pako';
|
|
11
|
+
|
|
12
|
+
import { BBPrivateKernelProver } from '../prover/bb_private_kernel_prover.js';
|
|
13
|
+
|
|
14
|
+
export abstract class BBWASMPrivateKernelProver extends BBPrivateKernelProver {
|
|
15
|
+
constructor(
|
|
16
|
+
protected override artifactProvider: ArtifactProvider,
|
|
17
|
+
protected override simulationProvider: SimulationProvider,
|
|
18
|
+
private threads: number = 1,
|
|
19
|
+
protected override log = createLogger('bb-prover:wasm'),
|
|
20
|
+
) {
|
|
21
|
+
super(artifactProvider, simulationProvider, log);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
public override async createClientIvcProof(acirs: Buffer[], witnessStack: WitnessMap[]): Promise<ClientIvcProof> {
|
|
25
|
+
const timer = new Timer();
|
|
26
|
+
this.log.info(`Generating ClientIVC proof...`);
|
|
27
|
+
const backend = new AztecClientBackend(
|
|
28
|
+
acirs.map(acir => ungzip(acir)),
|
|
29
|
+
{ threads: this.threads, logger: this.log.verbose, wasmPath: process.env.BB_WASM_PATH },
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
const [proof, vk] = await backend.prove(witnessStack.map(witnessMap => ungzip(serializeWitness(witnessMap))));
|
|
33
|
+
await backend.destroy();
|
|
34
|
+
this.log.info(`Generated ClientIVC proof`, {
|
|
35
|
+
eventName: 'client-ivc-proof-generation',
|
|
36
|
+
duration: timer.ms(),
|
|
37
|
+
proofSize: proof.length,
|
|
38
|
+
vkSize: vk.length,
|
|
39
|
+
});
|
|
40
|
+
return new ClientIvcProof(Buffer.from(proof), Buffer.from(vk));
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
public override async computeGateCountForCircuit(_bytecode: Buffer, _circuitName: string): Promise<number> {
|
|
44
|
+
const backend = new AztecClientBackend([ungzip(_bytecode)], {
|
|
45
|
+
threads: this.threads,
|
|
46
|
+
logger: this.log.verbose,
|
|
47
|
+
wasmPath: process.env.BB_WASM_PATH,
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
const gateCount = await backend.gates();
|
|
51
|
+
await backend.destroy();
|
|
52
|
+
|
|
53
|
+
return gateCount[0];
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -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 { SimulationProvider } from '@aztec/simulator/client';
|
|
4
|
+
|
|
5
|
+
import { BBWASMPrivateKernelProver } from './bb_wasm_private_kernel_prover.js';
|
|
6
|
+
|
|
7
|
+
export class BBWASMBundlePrivateKernelProver extends BBWASMPrivateKernelProver {
|
|
8
|
+
constructor(simulationProvider: SimulationProvider, threads = 1, log = createLogger('bb-prover:wasm:bundle')) {
|
|
9
|
+
super(new BundleArtifactProvider(), simulationProvider, threads, log);
|
|
10
|
+
}
|
|
11
|
+
}
|
package/src/wasm/lazy.ts
ADDED
|
@@ -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 { SimulationProvider } from '@aztec/simulator/client';
|
|
4
|
+
|
|
5
|
+
import { BBWASMPrivateKernelProver } from './bb_wasm_private_kernel_prover.js';
|
|
6
|
+
|
|
7
|
+
export class BBWASMLazyPrivateKernelProver extends BBWASMPrivateKernelProver {
|
|
8
|
+
constructor(simulationProvider: SimulationProvider, threads = 1, log = createLogger('bb-prover:wasm:lazy')) {
|
|
9
|
+
super(new LazyArtifactProvider(), simulationProvider, threads, log);
|
|
10
|
+
}
|
|
11
|
+
}
|