@aztec/bb-prover 0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2 → 0.76.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 +16 -14
- package/dest/bb/cli.d.ts +12 -0
- package/dest/bb/cli.d.ts.map +1 -0
- package/dest/bb/cli.js +9 -4
- package/dest/bb/execute.d.ts +170 -0
- package/dest/bb/execute.d.ts.map +1 -0
- package/dest/bb/execute.js +267 -395
- package/dest/bb/index.d.ts +3 -0
- package/dest/bb/index.d.ts.map +1 -0
- package/dest/bb/index.js +6 -4
- package/dest/config.d.ts +13 -0
- package/dest/config.d.ts.map +1 -0
- package/dest/config.js +2 -1
- package/dest/honk.d.ts +13 -0
- package/dest/honk.d.ts.map +1 -0
- package/dest/honk.js +5 -8
- package/dest/index.d.ts +8 -0
- package/dest/index.d.ts.map +1 -0
- package/dest/index.js +1 -0
- package/dest/instrumentation.d.ts +47 -0
- package/dest/instrumentation.d.ts.map +1 -0
- package/dest/instrumentation.js +41 -44
- 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 +19 -19
- package/dest/prover/bb_private_kernel_prover.d.ts +31 -0
- package/dest/prover/bb_private_kernel_prover.d.ts.map +1 -0
- package/dest/prover/bb_private_kernel_prover.js +11 -11
- package/dest/prover/bb_prover.d.ts +123 -0
- package/dest/prover/bb_prover.d.ts.map +1 -0
- package/dest/prover/bb_prover.js +445 -431
- 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 +9 -15
- package/dest/prover/index.d.ts +4 -0
- package/dest/prover/index.d.ts.map +1 -0
- package/dest/prover/index.js +1 -0
- package/dest/stats.d.ts +5 -0
- package/dest/stats.d.ts.map +1 -0
- package/dest/stats.js +14 -15
- package/dest/test/index.d.ts +3 -0
- package/dest/test/index.d.ts.map +1 -0
- package/dest/test/index.js +1 -0
- package/dest/test/test_circuit_prover.d.ts +72 -0
- package/dest/test/test_circuit_prover.d.ts.map +1 -0
- package/dest/test/test_circuit_prover.js +160 -156
- package/dest/test/test_verifier.d.ts +5 -0
- package/dest/test/test_verifier.d.ts.map +1 -0
- package/dest/test/test_verifier.js +1 -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 +8 -10
- package/dest/verifier/bb_verifier.d.ts +15 -0
- package/dest/verifier/bb_verifier.d.ts.map +1 -0
- package/dest/verifier/bb_verifier.js +13 -13
- 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 +16 -0
- package/dest/wasm/bb_wasm_private_kernel_prover.d.ts.map +1 -0
- package/dest/wasm/bb_wasm_private_kernel_prover.js +10 -11
- package/dest/wasm/bundle.d.ts +6 -0
- package/dest/wasm/bundle.d.ts.map +1 -0
- package/dest/wasm/bundle.js +2 -1
- package/dest/wasm/lazy.d.ts +6 -0
- package/dest/wasm/lazy.d.ts.map +1 -0
- package/dest/wasm/lazy.js +2 -1
- package/package.json +10 -10
- package/src/avm_proving_tests/avm_proving_tester.ts +15 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bb/index.ts"],"names":[],"mappings":";AAGA,OAAO,gCAAgC,CAAC"}
|
package/dest/bb/index.js
CHANGED
|
@@ -3,14 +3,16 @@ import { createConsoleLogger } from '@aztec/foundation/log';
|
|
|
3
3
|
import 'source-map-support/register.js';
|
|
4
4
|
import { getProgram } from './cli.js';
|
|
5
5
|
const log = createConsoleLogger();
|
|
6
|
-
/** CLI main entrypoint */
|
|
7
|
-
|
|
8
|
-
process.once('
|
|
6
|
+
/** CLI main entrypoint */
|
|
7
|
+
async function main() {
|
|
8
|
+
process.once('SIGINT', () => process.exit(0));
|
|
9
|
+
process.once('SIGTERM', () => process.exit(0));
|
|
9
10
|
const program = getProgram(log);
|
|
10
11
|
await program.parseAsync(process.argv);
|
|
11
12
|
}
|
|
12
|
-
main().catch(
|
|
13
|
+
main().catch(err => {
|
|
13
14
|
log(`Error in command execution`);
|
|
14
15
|
log(err);
|
|
15
16
|
process.exit(1);
|
|
16
17
|
});
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVELE9BQU8sZ0NBQWdDLENBQUM7QUFFeEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV0QyxNQUFNLEdBQUcsR0FBRyxtQkFBbUIsRUFBRSxDQUFDO0FBRWxDLDBCQUEwQjtBQUMxQixLQUFLLFVBQVUsSUFBSTtJQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRS9DLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoQyxNQUFNLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7SUFDakIsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDbEMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ1QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDLENBQUMsQ0FBQyJ9
|
package/dest/config.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface BBConfig {
|
|
2
|
+
bbBinaryPath: string;
|
|
3
|
+
bbWorkingDirectory: string;
|
|
4
|
+
/** Whether to skip tmp dir cleanup for debugging purposes */
|
|
5
|
+
bbSkipCleanup: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface ACVMConfig {
|
|
8
|
+
/** The path to the ACVM binary */
|
|
9
|
+
acvmBinaryPath: string;
|
|
10
|
+
/** The working directory to use for simulation/proving */
|
|
11
|
+
acvmWorkingDirectory: string;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,6DAA6D;IAC7D,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,kCAAkC;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,0DAA0D;IAC1D,oBAAoB,EAAE,MAAM,CAAC;CAC9B"}
|
package/dest/config.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
|
package/dest/honk.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type ServerProtocolArtifact } from '@aztec/noir-protocol-circuits-types/server';
|
|
2
|
+
export type UltraHonkFlavor = 'ultra_honk' | 'ultra_keccak_honk' | 'ultra_rollup_honk';
|
|
3
|
+
declare const UltraKeccakHonkCircuits: ["RootRollupArtifact"];
|
|
4
|
+
declare const UltraHonkCircuits: ["BaseParityArtifact", "RootParityArtifact"];
|
|
5
|
+
export type UltraKeccakHonkServerProtocolArtifact = (typeof UltraKeccakHonkCircuits)[number];
|
|
6
|
+
export type UltraHonkServerProtocolArtifact = (typeof UltraHonkCircuits)[number];
|
|
7
|
+
export type UltraRollupHonkServerProtocolArtifact = Exclude<Exclude<ServerProtocolArtifact, UltraKeccakHonkServerProtocolArtifact>, UltraHonkServerProtocolArtifact>;
|
|
8
|
+
export declare function getUltraHonkFlavorForCircuit(artifact: UltraKeccakHonkServerProtocolArtifact): 'ultra_keccak_honk';
|
|
9
|
+
export declare function getUltraHonkFlavorForCircuit(artifact: UltraHonkServerProtocolArtifact): 'ultra_honk';
|
|
10
|
+
export declare function getUltraHonkFlavorForCircuit(artifact: UltraRollupHonkServerProtocolArtifact): 'ultra_rollup_honk';
|
|
11
|
+
export declare function getUltraHonkFlavorForCircuit(artifact: ServerProtocolArtifact): UltraHonkFlavor;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=honk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"honk.d.ts","sourceRoot":"","sources":["../src/honk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AAEzF,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAEvF,QAAA,MAAM,uBAAuB,wBAAqE,CAAC;AACnG,QAAA,MAAM,iBAAiB,8CAA2F,CAAC;AAEnH,MAAM,MAAM,qCAAqC,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC7F,MAAM,MAAM,+BAA+B,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AACjF,MAAM,MAAM,qCAAqC,GAAG,OAAO,CACzD,OAAO,CAAC,sBAAsB,EAAE,qCAAqC,CAAC,EACtE,+BAA+B,CAChC,CAAC;AAEF,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,qCAAqC,GAAG,mBAAmB,CAAC;AACnH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,+BAA+B,GAAG,YAAY,CAAC;AACtG,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,qCAAqC,GAAG,mBAAmB,CAAC;AACnH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,sBAAsB,GAAG,eAAe,CAAC"}
|
package/dest/honk.js
CHANGED
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
const UltraKeccakHonkCircuits = [
|
|
2
|
-
|
|
3
|
-
];
|
|
4
|
-
const UltraHonkCircuits = [
|
|
5
|
-
'BaseParityArtifact',
|
|
6
|
-
'RootParityArtifact'
|
|
7
|
-
];
|
|
1
|
+
const UltraKeccakHonkCircuits = ['RootRollupArtifact'];
|
|
2
|
+
const UltraHonkCircuits = ['BaseParityArtifact', 'RootParityArtifact'];
|
|
8
3
|
export function getUltraHonkFlavorForCircuit(artifact) {
|
|
9
4
|
if (isUltraKeccakHonkCircuit(artifact)) {
|
|
10
5
|
return 'ultra_keccak_honk';
|
|
11
|
-
}
|
|
6
|
+
}
|
|
7
|
+
else if (UltraHonkCircuits.includes(artifact)) {
|
|
12
8
|
return 'ultra_honk';
|
|
13
9
|
}
|
|
14
10
|
return 'ultra_rollup_honk';
|
|
@@ -16,3 +12,4 @@ export function getUltraHonkFlavorForCircuit(artifact) {
|
|
|
16
12
|
function isUltraKeccakHonkCircuit(artifact) {
|
|
17
13
|
return UltraKeccakHonkCircuits.includes(artifact);
|
|
18
14
|
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9uay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9ob25rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBNkMsQ0FBQztBQUNuRyxNQUFNLGlCQUFpQixHQUFHLENBQUMsb0JBQW9CLEVBQUUsb0JBQW9CLENBQTZDLENBQUM7QUFhbkgsTUFBTSxVQUFVLDRCQUE0QixDQUFDLFFBQWdDO0lBQzNFLElBQUksd0JBQXdCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUN2QyxPQUFPLG1CQUFtQixDQUFDO0lBQzdCLENBQUM7U0FBTSxJQUFJLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxRQUEyQyxDQUFDLEVBQUUsQ0FBQztRQUNuRixPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO0lBQ0QsT0FBTyxtQkFBbUIsQ0FBQztBQUM3QixDQUFDO0FBRUQsU0FBUyx3QkFBd0IsQ0FBQyxRQUFnQztJQUNoRSxPQUFPLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxRQUFpRCxDQUFDLENBQUM7QUFDN0YsQ0FBQyJ9
|
package/dest/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './prover/index.js';
|
|
2
|
+
export * from './test/index.js';
|
|
3
|
+
export * from './verifier/index.js';
|
|
4
|
+
export * from './config.js';
|
|
5
|
+
export * from './bb/execute.js';
|
|
6
|
+
export * from './honk.js';
|
|
7
|
+
export { type ClientProtocolCircuitVerifier } from '@aztec/circuit-types';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAE1B,OAAO,EAAE,KAAK,6BAA6B,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dest/index.js
CHANGED
|
@@ -4,3 +4,4 @@ export * from './verifier/index.js';
|
|
|
4
4
|
export * from './config.js';
|
|
5
5
|
export * from './bb/execute.js';
|
|
6
6
|
export * from './honk.js';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLFdBQVcsQ0FBQyJ9
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type CircuitName } from '@aztec/circuit-types/stats';
|
|
2
|
+
import { type Timer } from '@aztec/foundation/timer';
|
|
3
|
+
import { type TelemetryClient, type Tracer } from '@aztec/telemetry-client';
|
|
4
|
+
/**
|
|
5
|
+
* Instrumentation class for Prover implementations.
|
|
6
|
+
*/
|
|
7
|
+
export declare class ProverInstrumentation {
|
|
8
|
+
private simulationDuration;
|
|
9
|
+
private witGenDuration;
|
|
10
|
+
private provingDuration;
|
|
11
|
+
private witGenInputSize;
|
|
12
|
+
private witGenOutputSize;
|
|
13
|
+
private proofSize;
|
|
14
|
+
private circuitSize;
|
|
15
|
+
private circuitPublicInputCount;
|
|
16
|
+
readonly tracer: Tracer;
|
|
17
|
+
constructor(telemetry: TelemetryClient, name: string);
|
|
18
|
+
/**
|
|
19
|
+
* Records the duration of a circuit operation.
|
|
20
|
+
* @param metric - The metric to record
|
|
21
|
+
* @param circuitName - The name of the circuit
|
|
22
|
+
* @param timerOrMS - The duration
|
|
23
|
+
*/
|
|
24
|
+
recordDuration(metric: 'simulationDuration' | 'witGenDuration' | 'provingDuration', circuitName: CircuitName | 'tubeCircuit', timerOrMS: Timer | number): void;
|
|
25
|
+
/**
|
|
26
|
+
* Records the duration of an AVM circuit operation.
|
|
27
|
+
* @param metric - The metric to record
|
|
28
|
+
* @param appCircuitName - The name of the function circuit (should be a `contract:function` string)
|
|
29
|
+
* @param timerOrMS - The duration
|
|
30
|
+
*/
|
|
31
|
+
recordAvmDuration(metric: 'witGenDuration' | 'provingDuration', appCircuitName: string, timerOrMS: Timer | number): void;
|
|
32
|
+
/**
|
|
33
|
+
* Records the size of a circuit operation.
|
|
34
|
+
* @param metric - Records the size of a circuit operation.
|
|
35
|
+
* @param circuitName - The name of the circuit
|
|
36
|
+
* @param size - The size
|
|
37
|
+
*/
|
|
38
|
+
recordSize(metric: 'witGenInputSize' | 'witGenOutputSize' | 'proofSize' | 'circuitSize' | 'circuitPublicInputCount', circuitName: CircuitName | 'tubeCircuit', size: number): void;
|
|
39
|
+
/**
|
|
40
|
+
* Records the size of an AVM circuit operation.
|
|
41
|
+
* @param metric - The metric to record
|
|
42
|
+
* @param appCircuitName - The name of the function circuit (should be a `contract:function` string)
|
|
43
|
+
* @param size - The size
|
|
44
|
+
*/
|
|
45
|
+
recordAvmSize(metric: 'witGenInputSize' | 'witGenOutputSize' | 'proofSize' | 'circuitSize' | 'circuitPublicInputCount', appCircuitName: string, size: number): void;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=instrumentation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../src/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAKL,KAAK,eAAe,EACpB,KAAK,MAAM,EAEZ,MAAM,yBAAyB,CAAC;AAEjC;;GAEG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,kBAAkB,CAAY;IACtC,OAAO,CAAC,cAAc,CAAY;IAClC,OAAO,CAAC,eAAe,CAAY;IAEnC,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,gBAAgB,CAAQ;IAEhC,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,uBAAuB,CAAQ;IAEvC,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEnB,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM;IAmDpD;;;;;OAKG;IACH,cAAc,CACZ,MAAM,EAAE,oBAAoB,GAAG,gBAAgB,GAAG,iBAAiB,EACnE,WAAW,EAAE,WAAW,GAAG,aAAa,EACxC,SAAS,EAAE,KAAK,GAAG,MAAM;IAS3B;;;;;OAKG;IACH,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,iBAAiB,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,GAAG,MAAM;IAOjH;;;;;OAKG;IACH,UAAU,CACR,MAAM,EAAE,iBAAiB,GAAG,kBAAkB,GAAG,WAAW,GAAG,aAAa,GAAG,yBAAyB,EACxG,WAAW,EAAE,WAAW,GAAG,aAAa,EACxC,IAAI,EAAE,MAAM;IAQd;;;;;OAKG;IACH,aAAa,CACX,MAAM,EAAE,iBAAiB,GAAG,kBAAkB,GAAG,WAAW,GAAG,aAAa,GAAG,yBAAyB,EACxG,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM;CAMf"}
|
package/dest/instrumentation.js
CHANGED
|
@@ -1,100 +1,97 @@
|
|
|
1
|
-
import { Attributes, Metrics, ValueType } from '@aztec/telemetry-client';
|
|
1
|
+
import { Attributes, Metrics, ValueType, } from '@aztec/telemetry-client';
|
|
2
2
|
/**
|
|
3
3
|
* Instrumentation class for Prover implementations.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
provingDuration;
|
|
8
|
-
witGenInputSize;
|
|
9
|
-
witGenOutputSize;
|
|
10
|
-
proofSize;
|
|
11
|
-
circuitSize;
|
|
12
|
-
circuitPublicInputCount;
|
|
13
|
-
tracer;
|
|
14
|
-
constructor(telemetry, name){
|
|
4
|
+
*/
|
|
5
|
+
export class ProverInstrumentation {
|
|
6
|
+
constructor(telemetry, name) {
|
|
15
7
|
this.tracer = telemetry.getTracer(name);
|
|
16
8
|
const meter = telemetry.getMeter(name);
|
|
17
9
|
this.simulationDuration = meter.createHistogram(Metrics.CIRCUIT_SIMULATION_DURATION, {
|
|
18
10
|
description: 'Records how long it takes to simulate a circuit',
|
|
19
11
|
unit: 'ms',
|
|
20
|
-
valueType: ValueType.INT
|
|
12
|
+
valueType: ValueType.INT,
|
|
21
13
|
});
|
|
22
14
|
this.witGenDuration = meter.createHistogram(Metrics.CIRCUIT_WITNESS_GEN_DURATION, {
|
|
23
15
|
description: 'Records how long it takes to generate the partial witness for a circuit',
|
|
24
16
|
unit: 'ms',
|
|
25
|
-
valueType: ValueType.INT
|
|
17
|
+
valueType: ValueType.INT,
|
|
26
18
|
});
|
|
27
19
|
this.provingDuration = meter.createHistogram(Metrics.CIRCUIT_PROVING_DURATION, {
|
|
28
20
|
unit: 'ms',
|
|
29
21
|
description: 'Records how long it takes to prove a circuit',
|
|
30
|
-
valueType: ValueType.INT
|
|
22
|
+
valueType: ValueType.INT,
|
|
31
23
|
});
|
|
32
24
|
this.witGenInputSize = meter.createGauge(Metrics.CIRCUIT_WITNESS_GEN_INPUT_SIZE, {
|
|
33
25
|
unit: 'By',
|
|
34
26
|
description: 'Records the size of the input to the witness generation',
|
|
35
|
-
valueType: ValueType.INT
|
|
27
|
+
valueType: ValueType.INT,
|
|
36
28
|
});
|
|
37
29
|
this.witGenOutputSize = meter.createGauge(Metrics.CIRCUIT_WITNESS_GEN_OUTPUT_SIZE, {
|
|
38
30
|
unit: 'By',
|
|
39
31
|
description: 'Records the size of the output of the witness generation',
|
|
40
|
-
valueType: ValueType.INT
|
|
32
|
+
valueType: ValueType.INT,
|
|
41
33
|
});
|
|
42
34
|
this.proofSize = meter.createGauge(Metrics.CIRCUIT_PROVING_PROOF_SIZE, {
|
|
43
35
|
unit: 'By',
|
|
44
36
|
description: 'Records the size of the proof generated for a circuit',
|
|
45
|
-
valueType: ValueType.INT
|
|
37
|
+
valueType: ValueType.INT,
|
|
46
38
|
});
|
|
47
39
|
this.circuitPublicInputCount = meter.createGauge(Metrics.CIRCUIT_PUBLIC_INPUTS_COUNT, {
|
|
48
40
|
description: 'Records the number of public inputs in a circuit',
|
|
49
|
-
valueType: ValueType.INT
|
|
41
|
+
valueType: ValueType.INT,
|
|
50
42
|
});
|
|
51
43
|
this.circuitSize = meter.createGauge(Metrics.CIRCUIT_SIZE, {
|
|
52
44
|
description: 'Records the size of the circuit in gates',
|
|
53
|
-
valueType: ValueType.INT
|
|
45
|
+
valueType: ValueType.INT,
|
|
54
46
|
});
|
|
55
47
|
}
|
|
56
48
|
/**
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
49
|
+
* Records the duration of a circuit operation.
|
|
50
|
+
* @param metric - The metric to record
|
|
51
|
+
* @param circuitName - The name of the circuit
|
|
52
|
+
* @param timerOrMS - The duration
|
|
53
|
+
*/
|
|
54
|
+
recordDuration(metric, circuitName, timerOrMS) {
|
|
62
55
|
const ms = typeof timerOrMS === 'number' ? timerOrMS : timerOrMS.ms();
|
|
63
56
|
this[metric].record(Math.ceil(ms), {
|
|
64
57
|
[Attributes.PROTOCOL_CIRCUIT_NAME]: circuitName,
|
|
65
|
-
[Attributes.PROTOCOL_CIRCUIT_TYPE]: 'server'
|
|
58
|
+
[Attributes.PROTOCOL_CIRCUIT_TYPE]: 'server',
|
|
66
59
|
});
|
|
67
60
|
}
|
|
68
61
|
/**
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
62
|
+
* Records the duration of an AVM circuit operation.
|
|
63
|
+
* @param metric - The metric to record
|
|
64
|
+
* @param appCircuitName - The name of the function circuit (should be a `contract:function` string)
|
|
65
|
+
* @param timerOrMS - The duration
|
|
66
|
+
*/
|
|
67
|
+
recordAvmDuration(metric, appCircuitName, timerOrMS) {
|
|
74
68
|
const ms = typeof timerOrMS === 'number' ? timerOrMS : timerOrMS.s();
|
|
75
69
|
this[metric].record(Math.ceil(ms), {
|
|
76
|
-
[Attributes.APP_CIRCUIT_NAME]: appCircuitName
|
|
70
|
+
[Attributes.APP_CIRCUIT_NAME]: appCircuitName,
|
|
77
71
|
});
|
|
78
72
|
}
|
|
79
73
|
/**
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
74
|
+
* Records the size of a circuit operation.
|
|
75
|
+
* @param metric - Records the size of a circuit operation.
|
|
76
|
+
* @param circuitName - The name of the circuit
|
|
77
|
+
* @param size - The size
|
|
78
|
+
*/
|
|
79
|
+
recordSize(metric, circuitName, size) {
|
|
85
80
|
this[metric].record(Math.ceil(size), {
|
|
86
81
|
[Attributes.PROTOCOL_CIRCUIT_NAME]: circuitName,
|
|
87
|
-
[Attributes.PROTOCOL_CIRCUIT_TYPE]: 'server'
|
|
82
|
+
[Attributes.PROTOCOL_CIRCUIT_TYPE]: 'server',
|
|
88
83
|
});
|
|
89
84
|
}
|
|
90
85
|
/**
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
86
|
+
* Records the size of an AVM circuit operation.
|
|
87
|
+
* @param metric - The metric to record
|
|
88
|
+
* @param appCircuitName - The name of the function circuit (should be a `contract:function` string)
|
|
89
|
+
* @param size - The size
|
|
90
|
+
*/
|
|
91
|
+
recordAvmSize(metric, appCircuitName, size) {
|
|
96
92
|
this[metric].record(Math.ceil(size), {
|
|
97
|
-
[Attributes.APP_CIRCUIT_NAME]: appCircuitName
|
|
93
|
+
[Attributes.APP_CIRCUIT_NAME]: appCircuitName,
|
|
98
94
|
});
|
|
99
95
|
}
|
|
100
96
|
}
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1bWVudGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2luc3RydW1lbnRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsVUFBVSxFQUdWLE9BQU8sRUFHUCxTQUFTLEdBQ1YsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQzs7R0FFRztBQUNILE1BQU0sT0FBTyxxQkFBcUI7SUFjaEMsWUFBWSxTQUEwQixFQUFFLElBQVk7UUFDbEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLDJCQUEyQixFQUFFO1lBQ25GLFdBQVcsRUFBRSxpREFBaUQ7WUFDOUQsSUFBSSxFQUFFLElBQUk7WUFDVixTQUFTLEVBQUUsU0FBUyxDQUFDLEdBQUc7U0FDekIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsRUFBRTtZQUNoRixXQUFXLEVBQUUseUVBQXlFO1lBQ3RGLElBQUksRUFBRSxJQUFJO1lBQ1YsU0FBUyxFQUFFLFNBQVMsQ0FBQyxHQUFHO1NBQ3pCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLEVBQUU7WUFDN0UsSUFBSSxFQUFFLElBQUk7WUFDVixXQUFXLEVBQUUsOENBQThDO1lBQzNELFNBQVMsRUFBRSxTQUFTLENBQUMsR0FBRztTQUN6QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLDhCQUE4QixFQUFF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
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
+
import { type ClientIvcProof } from '@aztec/circuits.js';
|
|
4
|
+
import { type Logger } from '@aztec/foundation/log';
|
|
5
|
+
import { type SimulationProvider } from '@aztec/simulator/server';
|
|
6
|
+
import { type WitnessMap } from '@noir-lang/types';
|
|
7
|
+
import { type BBConfig } from '../config.js';
|
|
8
|
+
import { BBPrivateKernelProver } from './bb_private_kernel_prover.js';
|
|
9
|
+
/**
|
|
10
|
+
* This proof creator implementation uses the native bb binary.
|
|
11
|
+
*/
|
|
12
|
+
export declare class BBNativePrivateKernelProver extends BBPrivateKernelProver {
|
|
13
|
+
private bbBinaryPath;
|
|
14
|
+
private bbWorkingDirectory;
|
|
15
|
+
private skipCleanup;
|
|
16
|
+
protected simulationProvider: SimulationProvider;
|
|
17
|
+
protected log: Logger;
|
|
18
|
+
private constructor();
|
|
19
|
+
static new(config: BBConfig, simulationProvider: SimulationProvider, log?: Logger): Promise<BBNativePrivateKernelProver>;
|
|
20
|
+
private _createClientIvcProof;
|
|
21
|
+
createClientIvcProof(acirs: Buffer[], witnessStack: WitnessMap[]): Promise<ClientIvcProof>;
|
|
22
|
+
computeGateCountForCircuit(bytecode: Buffer, circuitName: string): Promise<number>;
|
|
23
|
+
private runInDirectory;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=bb_native_private_kernel_prover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bb_native_private_kernel_prover.d.ts","sourceRoot":"","sources":["../../src/prover/bb_native_private_kernel_prover.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAIlE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAKnD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAGtE;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,qBAAqB;IAElE,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,WAAW;cACA,kBAAkB,EAAE,kBAAkB;cACtC,GAAG;IALxB,OAAO;WAUa,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,GAAG,CAAC,EAAE,MAAM;YAWhF,qBAAqB;IAmCb,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAQ1F,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBxG,OAAO,CAAC,cAAc;CAYvB"}
|
|
@@ -10,26 +10,25 @@ import { BBPrivateKernelProver } from './bb_private_kernel_prover.js';
|
|
|
10
10
|
import { readFromOutputDirectory } from './client_ivc_proof_utils.js';
|
|
11
11
|
/**
|
|
12
12
|
* This proof creator implementation uses the native bb binary.
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
bbWorkingDirectory
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
13
|
+
*/
|
|
14
|
+
export class BBNativePrivateKernelProver extends BBPrivateKernelProver {
|
|
15
|
+
constructor(bbBinaryPath, bbWorkingDirectory, skipCleanup, simulationProvider, log = createLogger('bb-prover:native')) {
|
|
16
|
+
super(new BundleArtifactProvider(), simulationProvider, log);
|
|
17
|
+
this.bbBinaryPath = bbBinaryPath;
|
|
18
|
+
this.bbWorkingDirectory = bbWorkingDirectory;
|
|
19
|
+
this.skipCleanup = skipCleanup;
|
|
20
|
+
this.simulationProvider = simulationProvider;
|
|
21
|
+
this.log = log;
|
|
21
22
|
}
|
|
22
23
|
static async new(config, simulationProvider, log) {
|
|
23
|
-
await fs.mkdir(config.bbWorkingDirectory, {
|
|
24
|
-
recursive: true
|
|
25
|
-
});
|
|
24
|
+
await fs.mkdir(config.bbWorkingDirectory, { recursive: true });
|
|
26
25
|
return new BBNativePrivateKernelProver(config.bbBinaryPath, config.bbWorkingDirectory, !!config.bbSkipCleanup, simulationProvider, log);
|
|
27
26
|
}
|
|
28
27
|
async _createClientIvcProof(directory, acirs, witnessStack) {
|
|
29
28
|
// TODO(#7371): Longer term we won't use this hacked together msgpack format
|
|
30
29
|
// and instead properly create the bincode serialization from rust
|
|
31
30
|
await fs.writeFile(path.join(directory, 'acir.msgpack'), encode(acirs));
|
|
32
|
-
await fs.writeFile(path.join(directory, 'witnesses.msgpack'), encode(witnessStack.map(
|
|
31
|
+
await fs.writeFile(path.join(directory, 'witnesses.msgpack'), encode(witnessStack.map(map => serializeWitness(map))));
|
|
33
32
|
const provingResult = await executeBbClientIvcProof(this.bbBinaryPath, directory, path.join(directory, 'acir.msgpack'), path.join(directory, 'witnesses.msgpack'), this.log.info);
|
|
34
33
|
if (provingResult.status === BB_RESULT.FAILURE) {
|
|
35
34
|
this.log.error(`Failed to generate client ivc proof`);
|
|
@@ -38,19 +37,19 @@ import { readFromOutputDirectory } from './client_ivc_proof_utils.js';
|
|
|
38
37
|
const proof = await readFromOutputDirectory(directory);
|
|
39
38
|
this.log.info(`Generated IVC proof`, {
|
|
40
39
|
duration: provingResult.durationMs,
|
|
41
|
-
eventName: 'circuit-proving'
|
|
40
|
+
eventName: 'circuit-proving',
|
|
42
41
|
});
|
|
43
42
|
return proof;
|
|
44
43
|
}
|
|
45
44
|
async createClientIvcProof(acirs, witnessStack) {
|
|
46
45
|
this.log.info(`Generating Client IVC proof`);
|
|
47
|
-
const operation = async (directory)=>{
|
|
46
|
+
const operation = async (directory) => {
|
|
48
47
|
return await this._createClientIvcProof(directory, acirs, witnessStack);
|
|
49
48
|
};
|
|
50
49
|
return await this.runInDirectory(operation);
|
|
51
50
|
}
|
|
52
51
|
async computeGateCountForCircuit(bytecode, circuitName) {
|
|
53
|
-
const logFunction = (message)=>{
|
|
52
|
+
const logFunction = (message) => {
|
|
54
53
|
this.log.debug(`$bb gates ${circuitName} - ${message}`);
|
|
55
54
|
};
|
|
56
55
|
const result = await computeGateCountForCircuit(this.bbBinaryPath, this.bbWorkingDirectory, circuitName, bytecode, 'mega_honk', logFunction);
|
|
@@ -61,9 +60,10 @@ import { readFromOutputDirectory } from './client_ivc_proof_utils.js';
|
|
|
61
60
|
}
|
|
62
61
|
runInDirectory(fn) {
|
|
63
62
|
const log = this.log;
|
|
64
|
-
return runInDirectory(this.bbWorkingDirectory, (dir)=>fn(dir).catch(
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
63
|
+
return runInDirectory(this.bbWorkingDirectory, (dir) => fn(dir).catch(err => {
|
|
64
|
+
log.error(`Error running operation at ${dir}: ${err}`);
|
|
65
|
+
throw err;
|
|
66
|
+
}), this.skipCleanup);
|
|
68
67
|
}
|
|
69
68
|
}
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJfbmF0aXZlX3ByaXZhdGVfa2VybmVsX3Byb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92ZXIvYmJfbmF0aXZlX3ByaXZhdGVfa2VybmVsX3Byb3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFlLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBRzNGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsUUFBUSxJQUFJLEVBQUUsRUFBRSxNQUFNLElBQUksQ0FBQztBQUNwQyxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFFeEIsT0FBTyxFQUFFLFNBQVMsRUFBRSwwQkFBMEIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWxHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXRFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLDJCQUE0QixTQUFRLHFCQUFxQjtJQUNwRSxZQUNVLFlBQW9CLEVBQ3BCLGtCQUEwQixFQUMxQixXQUFvQixFQUNULGtCQUFzQyxFQUN0QyxNQUFNLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQztRQUV6RCxLQUFLLENBQUMsSUFBSSxzQkFBc0IsRUFBRSxFQUFFLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBTnJELGlCQUFZLEdBQVosWUFBWSxDQUFRO1FBQ3BCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBUTtRQUMxQixnQkFBVyxHQUFYLFdBQVcsQ0FB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
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
+
import { type PrivateKernelProver, type PrivateKernelSimulateOutput } from '@aztec/circuit-types';
|
|
4
|
+
import { type ClientIvcProof, type PrivateKernelCircuitPublicInputs, type PrivateKernelInitCircuitPrivateInputs, type PrivateKernelInnerCircuitPrivateInputs, type PrivateKernelResetCircuitPrivateInputs, type PrivateKernelTailCircuitPrivateInputs, type PrivateKernelTailCircuitPublicInputs } from '@aztec/circuits.js';
|
|
5
|
+
import { type ArtifactProvider, type ClientProtocolArtifact } from '@aztec/noir-protocol-circuits-types/types';
|
|
6
|
+
import { type SimulationProvider } from '@aztec/simulator/client';
|
|
7
|
+
import { type Abi, type WitnessMap } from '@noir-lang/types';
|
|
8
|
+
export declare abstract class BBPrivateKernelProver implements PrivateKernelProver {
|
|
9
|
+
protected artifactProvider: ArtifactProvider;
|
|
10
|
+
protected simulationProvider: SimulationProvider;
|
|
11
|
+
protected log: import("@aztec/foundation/log").Logger;
|
|
12
|
+
constructor(artifactProvider: ArtifactProvider, simulationProvider: SimulationProvider, log?: import("@aztec/foundation/log").Logger);
|
|
13
|
+
generateInitOutput(inputs: PrivateKernelInitCircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
|
|
14
|
+
simulateInit(inputs: PrivateKernelInitCircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
|
|
15
|
+
generateInnerOutput(inputs: PrivateKernelInnerCircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
|
|
16
|
+
simulateInner(inputs: PrivateKernelInnerCircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
|
|
17
|
+
generateResetOutput(inputs: PrivateKernelResetCircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
|
|
18
|
+
simulateReset(inputs: PrivateKernelResetCircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
|
|
19
|
+
generateTailOutput(inputs: PrivateKernelTailCircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelTailCircuitPublicInputs>>;
|
|
20
|
+
simulateTail(inputs: PrivateKernelTailCircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelTailCircuitPublicInputs>>;
|
|
21
|
+
simulateCircuitOutput<I extends {
|
|
22
|
+
toBuffer: () => Buffer;
|
|
23
|
+
}, O extends PrivateKernelCircuitPublicInputs | PrivateKernelTailCircuitPublicInputs>(inputs: I, circuitType: ClientProtocolArtifact, convertInputs: (inputs: I, abi: Abi) => WitnessMap, convertOutputs: (outputs: WitnessMap, abi: Abi) => O): Promise<PrivateKernelSimulateOutput<O>>;
|
|
24
|
+
generateCircuitOutput<I extends {
|
|
25
|
+
toBuffer: () => Buffer;
|
|
26
|
+
}, O extends PrivateKernelCircuitPublicInputs | PrivateKernelTailCircuitPublicInputs>(inputs: I, circuitType: ClientProtocolArtifact, convertInputs: (inputs: I, abi: Abi) => WitnessMap, convertOutputs: (outputs: WitnessMap, abi: Abi) => O): Promise<PrivateKernelSimulateOutput<O>>;
|
|
27
|
+
makeEmptyKernelSimulateOutput<PublicInputsType extends PrivateKernelTailCircuitPublicInputs | PrivateKernelCircuitPublicInputs>(publicInputs: PublicInputsType, circuitType: ClientProtocolArtifact): PrivateKernelSimulateOutput<PublicInputsType>;
|
|
28
|
+
createClientIvcProof(_acirs: Buffer[], _witnessStack: WitnessMap[]): Promise<ClientIvcProof>;
|
|
29
|
+
computeGateCountForCircuit(_bytecode: Buffer, _circuitName: string): Promise<number>;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=bb_private_kernel_prover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bb_private_kernel_prover.d.ts","sourceRoot":"","sources":["../../src/prover/bb_private_kernel_prover.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAElG,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,gCAAgC,EACrC,KAAK,qCAAqC,EAC1C,KAAK,sCAAsC,EAC3C,KAAK,sCAAsC,EAC3C,KAAK,qCAAqC,EAC1C,KAAK,oCAAoC,EAC1C,MAAM,oBAAoB,CAAC;AAiB5B,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAE/G,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGlE,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAI7D,8BAAsB,qBAAsB,YAAW,mBAAmB;IAEtE,SAAS,CAAC,gBAAgB,EAAE,gBAAgB;IAC5C,SAAS,CAAC,kBAAkB,EAAE,kBAAkB;IAChD,SAAS,CAAC,GAAG;gBAFH,gBAAgB,EAAE,gBAAgB,EAClC,kBAAkB,EAAE,kBAAkB,EACtC,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,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;IA8B7B,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;IA+BnC,6BAA6B,CAClC,gBAAgB,SAAS,oCAAoC,GAAG,gCAAgC,EAChG,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,sBAAsB;IAU9D,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAI5F,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAG5F"}
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
import { createLogger } from '@aztec/foundation/log';
|
|
2
2
|
import { Timer } from '@aztec/foundation/timer';
|
|
3
|
-
import { convertPrivateKernelInitInputsToWitnessMapWithAbi, convertPrivateKernelInitOutputsFromWitnessMapWithAbi, convertPrivateKernelInnerInputsToWitnessMapWithAbi, convertPrivateKernelInnerOutputsFromWitnessMapWithAbi, convertPrivateKernelResetInputsToWitnessMapWithAbi, convertPrivateKernelResetOutputsFromWitnessMapWithAbi, convertPrivateKernelTailForPublicOutputsFromWitnessMapWithAbi, convertPrivateKernelTailInputsToWitnessMapWithAbi, convertPrivateKernelTailOutputsFromWitnessMapWithAbi, convertPrivateKernelTailToPublicInputsToWitnessMapWithAbi, getPrivateKernelResetArtifactName, updateResetCircuitSampleInputs } from '@aztec/noir-protocol-circuits-types/client';
|
|
3
|
+
import { convertPrivateKernelInitInputsToWitnessMapWithAbi, convertPrivateKernelInitOutputsFromWitnessMapWithAbi, convertPrivateKernelInnerInputsToWitnessMapWithAbi, convertPrivateKernelInnerOutputsFromWitnessMapWithAbi, convertPrivateKernelResetInputsToWitnessMapWithAbi, convertPrivateKernelResetOutputsFromWitnessMapWithAbi, convertPrivateKernelTailForPublicOutputsFromWitnessMapWithAbi, convertPrivateKernelTailInputsToWitnessMapWithAbi, convertPrivateKernelTailOutputsFromWitnessMapWithAbi, convertPrivateKernelTailToPublicInputsToWitnessMapWithAbi, getPrivateKernelResetArtifactName, updateResetCircuitSampleInputs, } from '@aztec/noir-protocol-circuits-types/client';
|
|
4
4
|
import { ClientCircuitVks } from '@aztec/noir-protocol-circuits-types/vks';
|
|
5
5
|
import { mapProtocolArtifactNameToCircuitName } from '../stats.js';
|
|
6
6
|
export class BBPrivateKernelProver {
|
|
7
|
-
artifactProvider
|
|
8
|
-
simulationProvider;
|
|
9
|
-
log;
|
|
10
|
-
constructor(artifactProvider, simulationProvider, log = createLogger('bb-prover')){
|
|
7
|
+
constructor(artifactProvider, simulationProvider, log = createLogger('bb-prover')) {
|
|
11
8
|
this.artifactProvider = artifactProvider;
|
|
12
9
|
this.simulationProvider = simulationProvider;
|
|
13
10
|
this.log = log;
|
|
@@ -51,10 +48,12 @@ export class BBPrivateKernelProver {
|
|
|
51
48
|
const compiledCircuit = await this.artifactProvider.getSimulatedClientCircuitArtifactByName(circuitType);
|
|
52
49
|
const witnessMap = convertInputs(inputs, compiledCircuit.abi);
|
|
53
50
|
const timer = new Timer();
|
|
54
|
-
const outputWitness = await this.simulationProvider
|
|
51
|
+
const outputWitness = await this.simulationProvider
|
|
52
|
+
.executeProtocolCircuit(witnessMap, compiledCircuit)
|
|
53
|
+
.catch((err) => {
|
|
55
54
|
this.log.debug(`Failed to simulate ${circuitType}`, {
|
|
56
55
|
circuitName: mapProtocolArtifactNameToCircuitName(circuitType),
|
|
57
|
-
error: err
|
|
56
|
+
error: err,
|
|
58
57
|
});
|
|
59
58
|
throw err;
|
|
60
59
|
});
|
|
@@ -64,7 +63,7 @@ export class BBPrivateKernelProver {
|
|
|
64
63
|
circuitName: mapProtocolArtifactNameToCircuitName(circuitType),
|
|
65
64
|
duration: timer.ms(),
|
|
66
65
|
inputSize: inputs.toBuffer().length,
|
|
67
|
-
outputSize: output.toBuffer().length
|
|
66
|
+
outputSize: output.toBuffer().length,
|
|
68
67
|
});
|
|
69
68
|
return this.makeEmptyKernelSimulateOutput(output, circuitType);
|
|
70
69
|
}
|
|
@@ -80,7 +79,7 @@ export class BBPrivateKernelProver {
|
|
|
80
79
|
circuitName: mapProtocolArtifactNameToCircuitName(circuitType),
|
|
81
80
|
duration: timer.ms(),
|
|
82
81
|
inputSize: inputs.toBuffer().length,
|
|
83
|
-
outputSize: output.toBuffer().length
|
|
82
|
+
outputSize: output.toBuffer().length,
|
|
84
83
|
});
|
|
85
84
|
const verificationKey = ClientCircuitVks[circuitType].keyAsFields;
|
|
86
85
|
const bytecode = Buffer.from(compiledCircuit.bytecode, 'base64');
|
|
@@ -88,7 +87,7 @@ export class BBPrivateKernelProver {
|
|
|
88
87
|
publicInputs: output,
|
|
89
88
|
verificationKey,
|
|
90
89
|
outputWitness,
|
|
91
|
-
bytecode
|
|
90
|
+
bytecode,
|
|
92
91
|
};
|
|
93
92
|
return kernelOutput;
|
|
94
93
|
}
|
|
@@ -97,7 +96,7 @@ export class BBPrivateKernelProver {
|
|
|
97
96
|
publicInputs,
|
|
98
97
|
verificationKey: ClientCircuitVks[circuitType].keyAsFields,
|
|
99
98
|
outputWitness: new Map(),
|
|
100
|
-
bytecode: Buffer.from([])
|
|
99
|
+
bytecode: Buffer.from([]),
|
|
101
100
|
};
|
|
102
101
|
return kernelProofOutput;
|
|
103
102
|
}
|
|
@@ -108,3 +107,4 @@ export class BBPrivateKernelProver {
|
|
|
108
107
|
throw new Error('Not implemented');
|
|
109
108
|
}
|
|
110
109
|
}
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJfcHJpdmF0ZV9rZXJuZWxfcHJvdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3Zlci9iYl9wcml2YXRlX2tlcm5lbF9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRCxPQUFPLEVBQ0wsaURBQWlELEVBQ2pELG9EQUFvRCxFQUNwRCxrREFBa0QsRUFDbEQscURBQXFELEVBQ3JELGtEQUFrRCxFQUNsRCxxREFBcUQsRUFDckQsNkRBQTZELEVBQzdELGlEQUFpRCxFQUNqRCxvREFBb0QsRUFDcEQseURBQXlELEVBQ3pELGlDQUFpQyxFQUNqQyw4QkFBOEIsR0FDL0IsTUFBTSw0Q0FBNEMsQ0FBQztBQUVwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQU0zRSxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbkUsTUFBTSxPQUFnQixxQkFBcUI7SUFDekMsWUFDWSxnQkFBa0MsRUFDbEMsa0JBQXNDLEVBQ3RDLE1BQU0sWUFBWSxDQUFDLFdBQVcsQ0FBQztRQUYvQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsUUFBRyxHQUFILEdBQUcsQ0FBNEI7SUFDeEMsQ0FBQztJQUVHLEtBQUssQ0FBQyxrQkFBa0IsQ0FDN0IsTUFBNkM7UUFFN0MsT0FBTyxNQUFNLElBQUksQ0FBQyxxQkFBcUIsQ0FDckMsTUFBTSxFQUNOLDJCQUEyQixFQUMzQixpREFBaUQsRUFDakQsb0RBQW9ELENBQ3JELENBQUM7SUFDSixDQUFDO0lBRU0sS0FBSyxDQUFDLFlBQVksQ0FDdkIsTUFBNkM7UUFFN0MsT0FBTyxNQUFNLElBQUksQ0FBQyxxQkFBcUIs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
|