@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.
- package/dest/avm_proving_tests/avm_proving_tester.d.ts +14 -18
- package/dest/avm_proving_tests/avm_proving_tester.d.ts.map +1 -1
- package/dest/avm_proving_tests/avm_proving_tester.js +130 -79
- package/dest/bb/cli.d.ts +1 -1
- package/dest/bb/execute.d.ts +14 -47
- package/dest/bb/execute.d.ts.map +1 -1
- package/dest/bb/execute.js +132 -236
- package/dest/bb/index.d.ts +1 -1
- package/dest/config.d.ts +3 -1
- package/dest/config.d.ts.map +1 -1
- package/dest/honk.d.ts +3 -3
- package/dest/honk.d.ts.map +1 -1
- package/dest/honk.js +3 -2
- package/dest/index.d.ts +2 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +1 -0
- package/dest/instrumentation.d.ts +3 -3
- package/dest/instrumentation.d.ts.map +1 -1
- package/dest/instrumentation.js +2 -4
- package/dest/prover/client/bb_private_kernel_prover.d.ts +32 -0
- package/dest/prover/client/bb_private_kernel_prover.d.ts.map +1 -0
- package/dest/prover/{bb_private_kernel_prover.js → client/bb_private_kernel_prover.js} +42 -20
- package/dest/prover/client/bundle.d.ts +6 -0
- package/dest/prover/client/bundle.d.ts.map +1 -0
- package/dest/prover/client/bundle.js +8 -0
- package/dest/prover/client/lazy.d.ts +6 -0
- package/dest/prover/client/lazy.d.ts.map +1 -0
- package/dest/prover/client/lazy.js +8 -0
- package/dest/prover/index.d.ts +3 -4
- package/dest/prover/index.d.ts.map +1 -1
- package/dest/prover/index.js +2 -3
- package/dest/prover/proof_utils.d.ts +19 -0
- package/dest/prover/proof_utils.d.ts.map +1 -0
- package/dest/prover/proof_utils.js +72 -0
- package/dest/prover/server/bb_prover.d.ts +100 -0
- package/dest/prover/server/bb_prover.d.ts.map +1 -0
- package/dest/prover/server/bb_prover.js +339 -0
- package/dest/test/delay_values.d.ts +1 -1
- package/dest/test/delay_values.d.ts.map +1 -1
- package/dest/test/delay_values.js +33 -21
- package/dest/test/index.d.ts +1 -1
- package/dest/test/test_circuit_prover.d.ts +25 -34
- package/dest/test/test_circuit_prover.d.ts.map +1 -1
- package/dest/test/test_circuit_prover.js +85 -59
- package/dest/test/test_verifier.d.ts +6 -3
- package/dest/test/test_verifier.d.ts.map +1 -1
- package/dest/test/test_verifier.js +23 -1
- package/dest/verification_key/verification_key_data.d.ts +7 -1
- package/dest/verification_key/verification_key_data.d.ts.map +1 -1
- package/dest/verification_key/verification_key_data.js +23 -29
- package/dest/verifier/bb_verifier.d.ts +6 -5
- package/dest/verifier/bb_verifier.d.ts.map +1 -1
- package/dest/verifier/bb_verifier.js +46 -25
- package/dest/verifier/index.d.ts +2 -1
- package/dest/verifier/index.d.ts.map +1 -1
- package/dest/verifier/index.js +1 -0
- package/dest/verifier/queued_chonk_verifier.d.ts +15 -0
- package/dest/verifier/queued_chonk_verifier.d.ts.map +1 -0
- package/dest/verifier/queued_chonk_verifier.js +132 -0
- package/package.json +35 -33
- package/src/avm_proving_tests/avm_proving_tester.ts +210 -104
- package/src/bb/execute.ts +103 -250
- package/src/config.ts +2 -0
- package/src/honk.ts +3 -2
- package/src/index.ts +1 -0
- package/src/instrumentation.ts +2 -4
- package/src/prover/{bb_private_kernel_prover.ts → client/bb_private_kernel_prover.ts} +78 -30
- package/src/prover/client/bundle.ts +11 -0
- package/src/prover/client/lazy.ts +11 -0
- package/src/prover/index.ts +2 -3
- package/src/prover/proof_utils.ts +115 -0
- package/src/prover/server/bb_prover.ts +733 -0
- package/src/test/delay_values.ts +33 -21
- package/src/test/test_circuit_prover.ts +260 -147
- package/src/test/test_verifier.ts +15 -3
- package/src/verification_key/verification_key_data.ts +29 -24
- package/src/verifier/bb_verifier.ts +63 -32
- package/src/verifier/index.ts +1 -0
- package/src/verifier/queued_chonk_verifier.ts +140 -0
- package/dest/prover/bb_native_private_kernel_prover.d.ts +0 -25
- package/dest/prover/bb_native_private_kernel_prover.d.ts.map +0 -1
- package/dest/prover/bb_native_private_kernel_prover.js +0 -69
- package/dest/prover/bb_private_kernel_prover.d.ts +0 -32
- package/dest/prover/bb_private_kernel_prover.d.ts.map +0 -1
- package/dest/prover/bb_prover.d.ts +0 -120
- package/dest/prover/bb_prover.d.ts.map +0 -1
- package/dest/prover/bb_prover.js +0 -423
- package/dest/prover/client_ivc_proof_utils.d.ts +0 -25
- package/dest/prover/client_ivc_proof_utils.d.ts.map +0 -1
- package/dest/prover/client_ivc_proof_utils.js +0 -43
- package/dest/stats.d.ts +0 -5
- package/dest/stats.d.ts.map +0 -1
- package/dest/stats.js +0 -62
- package/dest/wasm/bb_wasm_private_kernel_prover.d.ts +0 -17
- package/dest/wasm/bb_wasm_private_kernel_prover.d.ts.map +0 -1
- package/dest/wasm/bb_wasm_private_kernel_prover.js +0 -46
- package/dest/wasm/bundle.d.ts +0 -6
- package/dest/wasm/bundle.d.ts.map +0 -1
- package/dest/wasm/bundle.js +0 -8
- package/dest/wasm/lazy.d.ts +0 -6
- package/dest/wasm/lazy.d.ts.map +0 -1
- package/dest/wasm/lazy.js +0 -8
- package/src/prover/bb_native_private_kernel_prover.ts +0 -119
- package/src/prover/bb_prover.ts +0 -781
- package/src/prover/client_ivc_proof_utils.ts +0 -42
- package/src/stats.ts +0 -64
- package/src/wasm/bb_wasm_private_kernel_prover.ts +0 -55
- package/src/wasm/bundle.ts +0 -11
- package/src/wasm/lazy.ts +0 -11
package/dest/wasm/bundle.d.ts
DELETED
|
@@ -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"}
|
package/dest/wasm/bundle.js
DELETED
|
@@ -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
|
-
}
|
package/dest/wasm/lazy.d.ts
DELETED
|
@@ -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
|
package/dest/wasm/lazy.d.ts.map
DELETED
|
@@ -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
|
-
}
|