@aztec/bb-prover 0.76.4 → 0.77.0-testnet-ignition.21
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 +8 -8
- package/dest/avm_proving_tests/avm_proving_tester.d.ts.map +1 -1
- package/dest/avm_proving_tests/avm_proving_tester.js +24 -25
- package/dest/bb/cli.d.ts +3 -3
- package/dest/bb/cli.d.ts.map +1 -1
- package/dest/bb/cli.js +4 -9
- package/dest/bb/execute.d.ts +7 -37
- package/dest/bb/execute.d.ts.map +1 -1
- package/dest/bb/execute.js +359 -357
- package/dest/bb/index.js +4 -6
- package/dest/config.js +1 -2
- package/dest/honk.d.ts +1 -1
- package/dest/honk.d.ts.map +1 -1
- package/dest/honk.js +8 -5
- package/dest/index.d.ts +1 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +0 -1
- package/dest/instrumentation.d.ts +2 -2
- package/dest/instrumentation.d.ts.map +1 -1
- package/dest/instrumentation.js +50 -47
- package/dest/prover/bb_native_private_kernel_prover.d.ts +4 -4
- package/dest/prover/bb_native_private_kernel_prover.d.ts.map +1 -1
- package/dest/prover/bb_native_private_kernel_prover.js +19 -19
- package/dest/prover/bb_private_kernel_prover.d.ts +7 -6
- package/dest/prover/bb_private_kernel_prover.d.ts.map +1 -1
- package/dest/prover/bb_private_kernel_prover.js +14 -15
- package/dest/prover/bb_prover.d.ts +7 -10
- package/dest/prover/bb_prover.d.ts.map +1 -1
- package/dest/prover/bb_prover.js +402 -447
- package/dest/prover/client_ivc_proof_utils.d.ts +3 -3
- package/dest/prover/client_ivc_proof_utils.d.ts.map +1 -1
- package/dest/prover/client_ivc_proof_utils.js +18 -12
- package/dest/prover/index.js +0 -1
- package/dest/stats.d.ts +2 -2
- package/dest/stats.d.ts.map +1 -1
- package/dest/stats.js +15 -14
- 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.js +0 -1
- package/dest/test/test_circuit_prover.d.ts +16 -7
- package/dest/test/test_circuit_prover.d.ts.map +1 -1
- package/dest/test/test_circuit_prover.js +165 -161
- package/dest/test/test_verifier.d.ts +2 -1
- package/dest/test/test_verifier.d.ts.map +1 -1
- package/dest/test/test_verifier.js +0 -1
- package/dest/verification_key/verification_key_data.d.ts +1 -1
- package/dest/verification_key/verification_key_data.d.ts.map +1 -1
- package/dest/verification_key/verification_key_data.js +13 -9
- package/dest/verifier/bb_verifier.d.ts +6 -4
- package/dest/verifier/bb_verifier.d.ts.map +1 -1
- package/dest/verifier/bb_verifier.js +18 -18
- package/dest/verifier/index.js +0 -1
- package/dest/wasm/bb_wasm_private_kernel_prover.d.ts +5 -4
- package/dest/wasm/bb_wasm_private_kernel_prover.d.ts.map +1 -1
- package/dest/wasm/bb_wasm_private_kernel_prover.js +26 -11
- package/dest/wasm/bundle.d.ts +1 -1
- package/dest/wasm/bundle.d.ts.map +1 -1
- package/dest/wasm/bundle.js +1 -2
- package/dest/wasm/lazy.d.ts +1 -1
- package/dest/wasm/lazy.d.ts.map +1 -1
- package/dest/wasm/lazy.js +1 -2
- package/package.json +18 -19
- package/src/avm_proving_tests/avm_proving_tester.ts +17 -33
- package/src/bb/cli.ts +3 -3
- package/src/bb/execute.ts +80 -211
- package/src/honk.ts +1 -1
- package/src/index.ts +1 -1
- package/src/instrumentation.ts +10 -10
- package/src/prover/bb_native_private_kernel_prover.ts +5 -4
- package/src/prover/bb_private_kernel_prover.ts +20 -20
- package/src/prover/bb_prover.ts +33 -100
- package/src/prover/client_ivc_proof_utils.ts +3 -3
- package/src/stats.ts +2 -2
- package/src/test/delay_values.ts +31 -0
- package/src/test/test_circuit_prover.ts +149 -120
- package/src/test/test_verifier.ts +2 -1
- package/src/verification_key/verification_key_data.ts +4 -7
- package/src/verifier/bb_verifier.ts +16 -9
- package/src/wasm/bb_wasm_private_kernel_prover.ts +18 -5
- package/src/wasm/bundle.ts +1 -1
- package/src/wasm/lazy.ts +1 -1
package/dest/bb/index.js
CHANGED
|
@@ -3,16 +3,14 @@ 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('
|
|
9
|
-
process.once('SIGTERM', () => process.exit(0));
|
|
6
|
+
/** CLI main entrypoint */ async function main() {
|
|
7
|
+
process.once('SIGINT', ()=>process.exit(0));
|
|
8
|
+
process.once('SIGTERM', ()=>process.exit(0));
|
|
10
9
|
const program = getProgram(log);
|
|
11
10
|
await program.parseAsync(process.argv);
|
|
12
11
|
}
|
|
13
|
-
main().catch(err
|
|
12
|
+
main().catch((err)=>{
|
|
14
13
|
log(`Error in command execution`);
|
|
15
14
|
log(err);
|
|
16
15
|
process.exit(1);
|
|
17
16
|
});
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVELE9BQU8sZ0NBQWdDLENBQUM7QUFFeEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV0QyxNQUFNLEdBQUcsR0FBRyxtQkFBbUIsRUFBRSxDQUFDO0FBRWxDLDBCQUEwQjtBQUMxQixLQUFLLFVBQVUsSUFBSTtJQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRS9DLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoQyxNQUFNLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7SUFDakIsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDbEMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ1QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDLENBQUMsQ0FBQyJ9
|
package/dest/config.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
|
|
1
|
+
export { };
|
package/dest/honk.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { ServerProtocolArtifact } from '@aztec/noir-protocol-circuits-types/server';
|
|
2
2
|
export type UltraHonkFlavor = 'ultra_honk' | 'ultra_keccak_honk' | 'ultra_rollup_honk';
|
|
3
3
|
declare const UltraKeccakHonkCircuits: ["RootRollupArtifact"];
|
|
4
4
|
declare const UltraHonkCircuits: ["BaseParityArtifact", "RootParityArtifact"];
|
package/dest/honk.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"honk.d.ts","sourceRoot":"","sources":["../src/honk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"honk.d.ts","sourceRoot":"","sources":["../src/honk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,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,10 +1,14 @@
|
|
|
1
|
-
const UltraKeccakHonkCircuits = [
|
|
2
|
-
|
|
1
|
+
const UltraKeccakHonkCircuits = [
|
|
2
|
+
'RootRollupArtifact'
|
|
3
|
+
];
|
|
4
|
+
const UltraHonkCircuits = [
|
|
5
|
+
'BaseParityArtifact',
|
|
6
|
+
'RootParityArtifact'
|
|
7
|
+
];
|
|
3
8
|
export function getUltraHonkFlavorForCircuit(artifact) {
|
|
4
9
|
if (isUltraKeccakHonkCircuit(artifact)) {
|
|
5
10
|
return 'ultra_keccak_honk';
|
|
6
|
-
}
|
|
7
|
-
else if (UltraHonkCircuits.includes(artifact)) {
|
|
11
|
+
} else if (UltraHonkCircuits.includes(artifact)) {
|
|
8
12
|
return 'ultra_honk';
|
|
9
13
|
}
|
|
10
14
|
return 'ultra_rollup_honk';
|
|
@@ -12,4 +16,3 @@ export function getUltraHonkFlavorForCircuit(artifact) {
|
|
|
12
16
|
function isUltraKeccakHonkCircuit(artifact) {
|
|
13
17
|
return UltraKeccakHonkCircuits.includes(artifact);
|
|
14
18
|
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9uay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9ob25rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBNkMsQ0FBQztBQUNuRyxNQUFNLGlCQUFpQixHQUFHLENBQUMsb0JBQW9CLEVBQUUsb0JBQW9CLENBQTZDLENBQUM7QUFhbkgsTUFBTSxVQUFVLDRCQUE0QixDQUFDLFFBQWdDO0lBQzNFLElBQUksd0JBQXdCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUN2QyxPQUFPLG1CQUFtQixDQUFDO0lBQzdCLENBQUM7U0FBTSxJQUFJLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxRQUEyQyxDQUFDLEVBQUUsQ0FBQztRQUNuRixPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO0lBQ0QsT0FBTyxtQkFBbUIsQ0FBQztBQUM3QixDQUFDO0FBRUQsU0FBUyx3QkFBd0IsQ0FBQyxRQUFnQztJQUNoRSxPQUFPLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxRQUFpRCxDQUFDLENBQUM7QUFDN0YsQ0FBQyJ9
|
package/dest/index.d.ts
CHANGED
|
@@ -4,5 +4,5 @@ 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
|
-
export { type ClientProtocolCircuitVerifier } from '@aztec/
|
|
7
|
+
export { type ClientProtocolCircuitVerifier } from '@aztec/stdlib/interfaces/server';
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dest/index.d.ts.map
CHANGED
|
@@ -1 +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,
|
|
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,iCAAiC,CAAC"}
|
package/dest/index.js
CHANGED
|
@@ -4,4 +4,3 @@ 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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { Timer } from '@aztec/foundation/timer';
|
|
2
|
+
import type { CircuitName } from '@aztec/stdlib/stats';
|
|
3
3
|
import { type TelemetryClient, type Tracer } from '@aztec/telemetry-client';
|
|
4
4
|
/**
|
|
5
5
|
* Instrumentation class for Prover implementations.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../src/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../src/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,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,97 +1,100 @@
|
|
|
1
|
-
import { Attributes, Metrics, ValueType
|
|
1
|
+
import { Attributes, Metrics, ValueType } from '@aztec/telemetry-client';
|
|
2
2
|
/**
|
|
3
3
|
* Instrumentation class for Prover implementations.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
*/ export class ProverInstrumentation {
|
|
5
|
+
simulationDuration;
|
|
6
|
+
witGenDuration;
|
|
7
|
+
provingDuration;
|
|
8
|
+
witGenInputSize;
|
|
9
|
+
witGenOutputSize;
|
|
10
|
+
proofSize;
|
|
11
|
+
circuitSize;
|
|
12
|
+
circuitPublicInputCount;
|
|
13
|
+
tracer;
|
|
14
|
+
constructor(telemetry, name){
|
|
7
15
|
this.tracer = telemetry.getTracer(name);
|
|
8
16
|
const meter = telemetry.getMeter(name);
|
|
9
17
|
this.simulationDuration = meter.createHistogram(Metrics.CIRCUIT_SIMULATION_DURATION, {
|
|
10
18
|
description: 'Records how long it takes to simulate a circuit',
|
|
11
19
|
unit: 'ms',
|
|
12
|
-
valueType: ValueType.INT
|
|
20
|
+
valueType: ValueType.INT
|
|
13
21
|
});
|
|
14
22
|
this.witGenDuration = meter.createHistogram(Metrics.CIRCUIT_WITNESS_GEN_DURATION, {
|
|
15
23
|
description: 'Records how long it takes to generate the partial witness for a circuit',
|
|
16
|
-
unit: '
|
|
17
|
-
valueType: ValueType.
|
|
24
|
+
unit: 's',
|
|
25
|
+
valueType: ValueType.DOUBLE
|
|
18
26
|
});
|
|
19
27
|
this.provingDuration = meter.createHistogram(Metrics.CIRCUIT_PROVING_DURATION, {
|
|
20
|
-
unit: '
|
|
28
|
+
unit: 's',
|
|
21
29
|
description: 'Records how long it takes to prove a circuit',
|
|
22
|
-
valueType: ValueType.
|
|
30
|
+
valueType: ValueType.DOUBLE
|
|
23
31
|
});
|
|
24
32
|
this.witGenInputSize = meter.createGauge(Metrics.CIRCUIT_WITNESS_GEN_INPUT_SIZE, {
|
|
25
33
|
unit: 'By',
|
|
26
34
|
description: 'Records the size of the input to the witness generation',
|
|
27
|
-
valueType: ValueType.INT
|
|
35
|
+
valueType: ValueType.INT
|
|
28
36
|
});
|
|
29
37
|
this.witGenOutputSize = meter.createGauge(Metrics.CIRCUIT_WITNESS_GEN_OUTPUT_SIZE, {
|
|
30
38
|
unit: 'By',
|
|
31
39
|
description: 'Records the size of the output of the witness generation',
|
|
32
|
-
valueType: ValueType.INT
|
|
40
|
+
valueType: ValueType.INT
|
|
33
41
|
});
|
|
34
42
|
this.proofSize = meter.createGauge(Metrics.CIRCUIT_PROVING_PROOF_SIZE, {
|
|
35
43
|
unit: 'By',
|
|
36
44
|
description: 'Records the size of the proof generated for a circuit',
|
|
37
|
-
valueType: ValueType.INT
|
|
45
|
+
valueType: ValueType.INT
|
|
38
46
|
});
|
|
39
47
|
this.circuitPublicInputCount = meter.createGauge(Metrics.CIRCUIT_PUBLIC_INPUTS_COUNT, {
|
|
40
48
|
description: 'Records the number of public inputs in a circuit',
|
|
41
|
-
valueType: ValueType.INT
|
|
49
|
+
valueType: ValueType.INT
|
|
42
50
|
});
|
|
43
51
|
this.circuitSize = meter.createGauge(Metrics.CIRCUIT_SIZE, {
|
|
44
52
|
description: 'Records the size of the circuit in gates',
|
|
45
|
-
valueType: ValueType.INT
|
|
53
|
+
valueType: ValueType.INT
|
|
46
54
|
});
|
|
47
55
|
}
|
|
48
56
|
/**
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
this[metric].record(Math.ceil(ms), {
|
|
57
|
+
* Records the duration of a circuit operation.
|
|
58
|
+
* @param metric - The metric to record
|
|
59
|
+
* @param circuitName - The name of the circuit
|
|
60
|
+
* @param timerOrMS - The duration
|
|
61
|
+
*/ recordDuration(metric, circuitName, timerOrMS) {
|
|
62
|
+
const s = typeof timerOrMS === 'number' ? timerOrMS / 1000 : timerOrMS.s();
|
|
63
|
+
this[metric].record(s, {
|
|
57
64
|
[Attributes.PROTOCOL_CIRCUIT_NAME]: circuitName,
|
|
58
|
-
[Attributes.PROTOCOL_CIRCUIT_TYPE]: 'server'
|
|
65
|
+
[Attributes.PROTOCOL_CIRCUIT_TYPE]: 'server'
|
|
59
66
|
});
|
|
60
67
|
}
|
|
61
68
|
/**
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
[Attributes.APP_CIRCUIT_NAME]: appCircuitName,
|
|
69
|
+
* Records the duration of an AVM circuit operation.
|
|
70
|
+
* @param metric - The metric to record
|
|
71
|
+
* @param appCircuitName - The name of the function circuit (should be a `contract:function` string)
|
|
72
|
+
* @param timerOrMS - The duration
|
|
73
|
+
*/ recordAvmDuration(metric, appCircuitName, timerOrMS) {
|
|
74
|
+
const s = typeof timerOrMS === 'number' ? timerOrMS / 1000 : timerOrMS.s();
|
|
75
|
+
this[metric].record(s, {
|
|
76
|
+
[Attributes.APP_CIRCUIT_NAME]: appCircuitName
|
|
71
77
|
});
|
|
72
78
|
}
|
|
73
79
|
/**
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
recordSize(metric, circuitName, size) {
|
|
80
|
+
* Records the size of a circuit operation.
|
|
81
|
+
* @param metric - Records the size of a circuit operation.
|
|
82
|
+
* @param circuitName - The name of the circuit
|
|
83
|
+
* @param size - The size
|
|
84
|
+
*/ recordSize(metric, circuitName, size) {
|
|
80
85
|
this[metric].record(Math.ceil(size), {
|
|
81
86
|
[Attributes.PROTOCOL_CIRCUIT_NAME]: circuitName,
|
|
82
|
-
[Attributes.PROTOCOL_CIRCUIT_TYPE]: 'server'
|
|
87
|
+
[Attributes.PROTOCOL_CIRCUIT_TYPE]: 'server'
|
|
83
88
|
});
|
|
84
89
|
}
|
|
85
90
|
/**
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
recordAvmSize(metric, appCircuitName, size) {
|
|
91
|
+
* Records the size of an AVM circuit operation.
|
|
92
|
+
* @param metric - The metric to record
|
|
93
|
+
* @param appCircuitName - The name of the function circuit (should be a `contract:function` string)
|
|
94
|
+
* @param size - The size
|
|
95
|
+
*/ recordAvmSize(metric, appCircuitName, size) {
|
|
92
96
|
this[metric].record(Math.ceil(size), {
|
|
93
|
-
[Attributes.APP_CIRCUIT_NAME]: appCircuitName
|
|
97
|
+
[Attributes.APP_CIRCUIT_NAME]: appCircuitName
|
|
94
98
|
});
|
|
95
99
|
}
|
|
96
100
|
}
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1bWVudGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2luc3RydW1lbnRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsVUFBVSxFQUdWLE9BQU8sRUFHUCxTQUFTLEdBQ1YsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQzs7R0FFRztBQUNILE1BQU0sT0FBTyxxQkFBcUI7SUFjaEMsWUFBWSxTQUEwQixFQUFFLElBQVk7UUFDbEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLDJCQUEyQixFQUFFO1lBQ25GLFdBQVcsRUFBRSxpREFBaUQ7WUFDOUQsSUFBSSxFQUFFLElBQUk7WUFDVixTQUFTLEVBQUUsU0FBUyxDQUFDLEdBQUc7U0FDekIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsRUFBRTtZQUNoRixXQUFXLEVBQUUseUVBQXlFO1lBQ3RGLElBQUksRUFBRSxJQUFJO1lBQ1YsU0FBUyxFQUFFLFNBQVMsQ0FBQyxHQUFHO1NBQ3pCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLEVBQUU7WUFDN0UsSUFBSSxFQUFFLElBQUk7WUFDVixXQUFXLEVBQUUsOENBQThDO1lBQzNELFNBQVMsRUFBRSxTQUFTLENBQUMsR0FBRztTQUN6QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLDhCQUE4QixFQUFF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
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
2
|
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
-
import { type ClientIvcProof } from '@aztec/circuits.js';
|
|
4
3
|
import { type Logger } from '@aztec/foundation/log';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
4
|
+
import type { SimulationProvider } from '@aztec/simulator/server';
|
|
5
|
+
import type { ClientIvcProof } from '@aztec/stdlib/proofs';
|
|
6
|
+
import type { WitnessMap } from '@noir-lang/types';
|
|
7
|
+
import type { BBConfig } from '../config.js';
|
|
8
8
|
import { BBPrivateKernelProver } from './bb_private_kernel_prover.js';
|
|
9
9
|
/**
|
|
10
10
|
* This proof creator implementation uses the native bb binary.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bb_native_private_kernel_prover.d.ts","sourceRoot":"","sources":["../../src/prover/bb_native_private_kernel_prover.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"bb_native_private_kernel_prover.d.ts","sourceRoot":"","sources":["../../src/prover/bb_native_private_kernel_prover.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAElE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAKnD,OAAO,KAAK,EAAE,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;CAavB"}
|
|
@@ -10,25 +10,26 @@ 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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
this.simulationProvider = simulationProvider;
|
|
21
|
-
this.log = log;
|
|
13
|
+
*/ export class BBNativePrivateKernelProver extends BBPrivateKernelProver {
|
|
14
|
+
bbBinaryPath;
|
|
15
|
+
bbWorkingDirectory;
|
|
16
|
+
skipCleanup;
|
|
17
|
+
simulationProvider;
|
|
18
|
+
log;
|
|
19
|
+
constructor(bbBinaryPath, bbWorkingDirectory, skipCleanup, simulationProvider, log = createLogger('bb-prover:native')){
|
|
20
|
+
super(new BundleArtifactProvider(), simulationProvider, log), this.bbBinaryPath = bbBinaryPath, this.bbWorkingDirectory = bbWorkingDirectory, this.skipCleanup = skipCleanup, this.simulationProvider = simulationProvider, this.log = log;
|
|
22
21
|
}
|
|
23
22
|
static async new(config, simulationProvider, log) {
|
|
24
|
-
await fs.mkdir(config.bbWorkingDirectory, {
|
|
23
|
+
await fs.mkdir(config.bbWorkingDirectory, {
|
|
24
|
+
recursive: true
|
|
25
|
+
});
|
|
25
26
|
return new BBNativePrivateKernelProver(config.bbBinaryPath, config.bbWorkingDirectory, !!config.bbSkipCleanup, simulationProvider, log);
|
|
26
27
|
}
|
|
27
28
|
async _createClientIvcProof(directory, acirs, witnessStack) {
|
|
28
29
|
// TODO(#7371): Longer term we won't use this hacked together msgpack format
|
|
29
30
|
// and instead properly create the bincode serialization from rust
|
|
30
31
|
await fs.writeFile(path.join(directory, 'acir.msgpack'), encode(acirs));
|
|
31
|
-
await fs.writeFile(path.join(directory, 'witnesses.msgpack'), encode(witnessStack.map(map
|
|
32
|
+
await fs.writeFile(path.join(directory, 'witnesses.msgpack'), encode(witnessStack.map((map)=>serializeWitness(map))));
|
|
32
33
|
const provingResult = await executeBbClientIvcProof(this.bbBinaryPath, directory, path.join(directory, 'acir.msgpack'), path.join(directory, 'witnesses.msgpack'), this.log.info);
|
|
33
34
|
if (provingResult.status === BB_RESULT.FAILURE) {
|
|
34
35
|
this.log.error(`Failed to generate client ivc proof`);
|
|
@@ -37,19 +38,19 @@ export class BBNativePrivateKernelProver extends BBPrivateKernelProver {
|
|
|
37
38
|
const proof = await readFromOutputDirectory(directory);
|
|
38
39
|
this.log.info(`Generated IVC proof`, {
|
|
39
40
|
duration: provingResult.durationMs,
|
|
40
|
-
eventName: 'circuit-proving'
|
|
41
|
+
eventName: 'circuit-proving'
|
|
41
42
|
});
|
|
42
43
|
return proof;
|
|
43
44
|
}
|
|
44
45
|
async createClientIvcProof(acirs, witnessStack) {
|
|
45
46
|
this.log.info(`Generating Client IVC proof`);
|
|
46
|
-
const operation = async (directory)
|
|
47
|
+
const operation = async (directory)=>{
|
|
47
48
|
return await this._createClientIvcProof(directory, acirs, witnessStack);
|
|
48
49
|
};
|
|
49
50
|
return await this.runInDirectory(operation);
|
|
50
51
|
}
|
|
51
52
|
async computeGateCountForCircuit(bytecode, circuitName) {
|
|
52
|
-
const logFunction = (message)
|
|
53
|
+
const logFunction = (message)=>{
|
|
53
54
|
this.log.debug(`$bb gates ${circuitName} - ${message}`);
|
|
54
55
|
};
|
|
55
56
|
const result = await computeGateCountForCircuit(this.bbBinaryPath, this.bbWorkingDirectory, circuitName, bytecode, 'mega_honk', logFunction);
|
|
@@ -60,10 +61,9 @@ export class BBNativePrivateKernelProver extends BBPrivateKernelProver {
|
|
|
60
61
|
}
|
|
61
62
|
runInDirectory(fn) {
|
|
62
63
|
const log = this.log;
|
|
63
|
-
return runInDirectory(this.bbWorkingDirectory, (dir)
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
64
|
+
return runInDirectory(this.bbWorkingDirectory, (dir)=>fn(dir).catch((err)=>{
|
|
65
|
+
log.error(`Error running operation at ${dir}: ${err}`);
|
|
66
|
+
throw err;
|
|
67
|
+
}), this.skipCleanup, this.log);
|
|
67
68
|
}
|
|
68
69
|
}
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJfbmF0aXZlX3ByaXZhdGVfa2VybmVsX3Byb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92ZXIvYmJfbmF0aXZlX3ByaXZhdGVfa2VybmVsX3Byb3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFlLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBRzNGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsUUFBUSxJQUFJLEVBQUUsRUFBRSxNQUFNLElBQUksQ0FBQztBQUNwQyxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFFeEIsT0FBTyxFQUFFLFNBQVMsRUFBRSwwQkFBMEIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWxHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXRFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLDJCQUE0QixTQUFRLHFCQUFxQjtJQUNwRSxZQUNVLFlBQW9CLEVBQ3BCLGtCQUEwQixFQUMxQixXQUFvQixFQUNULGtCQUFzQyxFQUN0QyxNQUFNLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQztRQUV6RCxLQUFLLENBQUMsSUFBSSxzQkFBc0IsRUFBRSxFQUFFLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBTnJELGlCQUFZLEdBQVosWUFBWSxDQUFRO1FBQ3BCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBUTtRQUMxQixnQkFBVyxHQUFYLFdBQVcsQ0FB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
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
2
|
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
3
|
+
import type { ArtifactProvider, ClientProtocolArtifact } from '@aztec/noir-protocol-circuits-types/types';
|
|
4
|
+
import type { SimulationProvider } from '@aztec/simulator/client';
|
|
5
|
+
import type { PrivateKernelProver } from '@aztec/stdlib/interfaces/client';
|
|
6
|
+
import type { PrivateKernelCircuitPublicInputs, PrivateKernelInitCircuitPrivateInputs, PrivateKernelInnerCircuitPrivateInputs, PrivateKernelResetCircuitPrivateInputs, PrivateKernelSimulateOutput, PrivateKernelTailCircuitPrivateInputs, PrivateKernelTailCircuitPublicInputs } from '@aztec/stdlib/kernel';
|
|
7
|
+
import type { ClientIvcProof } from '@aztec/stdlib/proofs';
|
|
8
|
+
import type { Abi, WitnessMap } from '@noir-lang/types';
|
|
8
9
|
export declare abstract class BBPrivateKernelProver implements PrivateKernelProver {
|
|
9
10
|
protected artifactProvider: ArtifactProvider;
|
|
10
11
|
protected simulationProvider: SimulationProvider;
|
|
@@ -24,7 +25,7 @@ export declare abstract class BBPrivateKernelProver implements PrivateKernelProv
|
|
|
24
25
|
generateCircuitOutput<I extends {
|
|
25
26
|
toBuffer: () => Buffer;
|
|
26
27
|
}, 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
|
+
makeEmptyKernelSimulateOutput<PublicInputsType extends PrivateKernelTailCircuitPublicInputs | PrivateKernelCircuitPublicInputs>(publicInputs: PublicInputsType, circuitType: ClientProtocolArtifact): Promise<PrivateKernelSimulateOutput<PublicInputsType>>;
|
|
28
29
|
createClientIvcProof(_acirs: Buffer[], _witnessStack: WitnessMap[]): Promise<ClientIvcProof>;
|
|
29
30
|
computeGateCountForCircuit(_bytecode: Buffer, _circuitName: string): Promise<number>;
|
|
30
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bb_private_kernel_prover.d.ts","sourceRoot":"","sources":["../../src/prover/bb_private_kernel_prover.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"bb_private_kernel_prover.d.ts","sourceRoot":"","sources":["../../src/prover/bb_private_kernel_prover.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
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
|
|
4
|
-
import { ClientCircuitVks } from '@aztec/noir-protocol-circuits-types/vks';
|
|
3
|
+
import { convertPrivateKernelInitInputsToWitnessMapWithAbi, convertPrivateKernelInitOutputsFromWitnessMapWithAbi, convertPrivateKernelInnerInputsToWitnessMapWithAbi, convertPrivateKernelInnerOutputsFromWitnessMapWithAbi, convertPrivateKernelResetInputsToWitnessMapWithAbi, convertPrivateKernelResetOutputsFromWitnessMapWithAbi, convertPrivateKernelTailForPublicOutputsFromWitnessMapWithAbi, convertPrivateKernelTailInputsToWitnessMapWithAbi, convertPrivateKernelTailOutputsFromWitnessMapWithAbi, convertPrivateKernelTailToPublicInputsToWitnessMapWithAbi, getPrivateKernelResetArtifactName, updateResetCircuitSampleInputs } from '@aztec/noir-protocol-circuits-types/client';
|
|
5
4
|
import { mapProtocolArtifactNameToCircuitName } from '../stats.js';
|
|
6
5
|
export class BBPrivateKernelProver {
|
|
7
|
-
|
|
6
|
+
artifactProvider;
|
|
7
|
+
simulationProvider;
|
|
8
|
+
log;
|
|
9
|
+
constructor(artifactProvider, simulationProvider, log = createLogger('bb-prover')){
|
|
8
10
|
this.artifactProvider = artifactProvider;
|
|
9
11
|
this.simulationProvider = simulationProvider;
|
|
10
12
|
this.log = log;
|
|
@@ -48,12 +50,10 @@ export class BBPrivateKernelProver {
|
|
|
48
50
|
const compiledCircuit = await this.artifactProvider.getSimulatedClientCircuitArtifactByName(circuitType);
|
|
49
51
|
const witnessMap = convertInputs(inputs, compiledCircuit.abi);
|
|
50
52
|
const timer = new Timer();
|
|
51
|
-
const outputWitness = await this.simulationProvider
|
|
52
|
-
.executeProtocolCircuit(witnessMap, compiledCircuit)
|
|
53
|
-
.catch((err) => {
|
|
53
|
+
const outputWitness = await this.simulationProvider.executeProtocolCircuit(witnessMap, compiledCircuit).catch((err)=>{
|
|
54
54
|
this.log.debug(`Failed to simulate ${circuitType}`, {
|
|
55
55
|
circuitName: mapProtocolArtifactNameToCircuitName(circuitType),
|
|
56
|
-
error: err
|
|
56
|
+
error: err
|
|
57
57
|
});
|
|
58
58
|
throw err;
|
|
59
59
|
});
|
|
@@ -63,7 +63,7 @@ export class BBPrivateKernelProver {
|
|
|
63
63
|
circuitName: mapProtocolArtifactNameToCircuitName(circuitType),
|
|
64
64
|
duration: timer.ms(),
|
|
65
65
|
inputSize: inputs.toBuffer().length,
|
|
66
|
-
outputSize: output.toBuffer().length
|
|
66
|
+
outputSize: output.toBuffer().length
|
|
67
67
|
});
|
|
68
68
|
return this.makeEmptyKernelSimulateOutput(output, circuitType);
|
|
69
69
|
}
|
|
@@ -79,24 +79,24 @@ export class BBPrivateKernelProver {
|
|
|
79
79
|
circuitName: mapProtocolArtifactNameToCircuitName(circuitType),
|
|
80
80
|
duration: timer.ms(),
|
|
81
81
|
inputSize: inputs.toBuffer().length,
|
|
82
|
-
outputSize: output.toBuffer().length
|
|
82
|
+
outputSize: output.toBuffer().length
|
|
83
83
|
});
|
|
84
|
-
const verificationKey =
|
|
84
|
+
const verificationKey = (await this.artifactProvider.getCircuitVkByName(circuitType)).keyAsFields;
|
|
85
85
|
const bytecode = Buffer.from(compiledCircuit.bytecode, 'base64');
|
|
86
86
|
const kernelOutput = {
|
|
87
87
|
publicInputs: output,
|
|
88
88
|
verificationKey,
|
|
89
89
|
outputWitness,
|
|
90
|
-
bytecode
|
|
90
|
+
bytecode
|
|
91
91
|
};
|
|
92
92
|
return kernelOutput;
|
|
93
93
|
}
|
|
94
|
-
makeEmptyKernelSimulateOutput(publicInputs, circuitType) {
|
|
94
|
+
async makeEmptyKernelSimulateOutput(publicInputs, circuitType) {
|
|
95
95
|
const kernelProofOutput = {
|
|
96
96
|
publicInputs,
|
|
97
|
-
verificationKey:
|
|
97
|
+
verificationKey: (await this.artifactProvider.getCircuitVkByName(circuitType)).keyAsFields,
|
|
98
98
|
outputWitness: new Map(),
|
|
99
|
-
bytecode: Buffer.from([])
|
|
99
|
+
bytecode: Buffer.from([])
|
|
100
100
|
};
|
|
101
101
|
return kernelProofOutput;
|
|
102
102
|
}
|
|
@@ -107,4 +107,3 @@ export class BBPrivateKernelProver {
|
|
|
107
107
|
throw new Error('Not implemented');
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJfcHJpdmF0ZV9rZXJuZWxfcHJvdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3Zlci9iYl9wcml2YXRlX2tlcm5lbF9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRCxPQUFPLEVBQ0wsaURBQWlELEVBQ2pELG9EQUFvRCxFQUNwRCxrREFBa0QsRUFDbEQscURBQXFELEVBQ3JELGtEQUFrRCxFQUNsRCxxREFBcUQsRUFDckQsNkRBQTZELEVBQzdELGlEQUFpRCxFQUNqRCxvREFBb0QsRUFDcEQseURBQXlELEVBQ3pELGlDQUFpQyxFQUNqQyw4QkFBOEIsR0FDL0IsTUFBTSw0Q0FBNEMsQ0FBQztBQUVwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQU0zRSxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbkUsTUFBTSxPQUFnQixxQkFBcUI7SUFDekMsWUFDWSxnQkFBa0MsRUFDbEMsa0JBQXNDLEVBQ3RDLE1BQU0sWUFBWSxDQUFDLFdBQVcsQ0FBQztRQUYvQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsUUFBRyxHQUFILEdBQUcsQ0FBNEI7SUFDeEMsQ0FBQztJQUVHLEtBQUssQ0FBQyxrQkFBa0IsQ0FDN0IsTUFBNkM7UUFFN0MsT0FBTyxNQUFNLElBQUksQ0FBQyxxQkFBcUIsQ0FDckMsTUFBTSxFQUNOLDJCQUEyQixFQUMzQixpREFBaUQsRUFDakQsb0RBQW9ELENBQ3JELENBQUM7SUFDSixDQUFDO0lBRU0sS0FBSyxDQUFDLFlBQVksQ0FDdkIsTUFBNkM7UUFFN0MsT0FBTyxNQUFNLElBQUksQ0FBQyxxQkFBcUIs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
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { AVM_PROOF_LENGTH_IN_FIELDS, type AvmCircuitInputs, type BaseParityInputs, NESTED_RECURSIVE_PROOF_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, type ParityPublicInputs, Proof, RECURSIVE_PROOF_LENGTH, RecursiveProof, type RootParityInputs, TUBE_PROOF_LENGTH, type VerificationKeyData } from '@aztec/circuits.js';
|
|
3
|
-
import { type BaseOrMergeRollupPublicInputs, type BlockMergeRollupInputs, type BlockRootOrBlockMergePublicInputs, type BlockRootRollupInputs, type EmptyBlockRootRollupInputs, type MergeRollupInputs, type PrivateBaseRollupInputs, type PublicBaseRollupInputs, type RootRollupInputs, type RootRollupPublicInputs, type SingleTxBlockRootRollupInputs, type TubeInputs } from '@aztec/circuits.js/rollup';
|
|
1
|
+
import { AVM_PROOF_LENGTH_IN_FIELDS, NESTED_RECURSIVE_PROOF_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, RECURSIVE_PROOF_LENGTH, TUBE_PROOF_LENGTH } from '@aztec/constants';
|
|
4
2
|
import { type ServerProtocolArtifact } from '@aztec/noir-protocol-circuits-types/server';
|
|
3
|
+
import type { AvmCircuitInputs } from '@aztec/stdlib/avm';
|
|
4
|
+
import { type ProofAndVerificationKey, type PublicInputsAndRecursiveProof, type ServerCircuitProver } from '@aztec/stdlib/interfaces/server';
|
|
5
|
+
import type { BaseParityInputs, ParityPublicInputs, RootParityInputs } from '@aztec/stdlib/parity';
|
|
6
|
+
import { Proof } from '@aztec/stdlib/proofs';
|
|
7
|
+
import type { BaseOrMergeRollupPublicInputs, BlockMergeRollupInputs, BlockRootOrBlockMergePublicInputs, BlockRootRollupInputs, EmptyBlockRootRollupInputs, MergeRollupInputs, PrivateBaseRollupInputs, PublicBaseRollupInputs, RootRollupInputs, RootRollupPublicInputs, SingleTxBlockRootRollupInputs, TubeInputs } from '@aztec/stdlib/rollup';
|
|
8
|
+
import type { VerificationKeyData } from '@aztec/stdlib/vks';
|
|
5
9
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
6
10
|
import type { ACVMConfig, BBConfig } from '../config.js';
|
|
7
11
|
import { type UltraHonkFlavor } from '../honk.js';
|
|
@@ -103,13 +107,6 @@ export declare class BBNativeRollupProver implements ServerCircuitProver {
|
|
|
103
107
|
verifyAvmProof(proof: Proof, verificationKey: VerificationKeyData): Promise<void>;
|
|
104
108
|
verifyWithKey(flavor: UltraHonkFlavor, verificationKey: VerificationKeyData, proof: Proof): Promise<void>;
|
|
105
109
|
private verifyWithKeyInternal;
|
|
106
|
-
/**
|
|
107
|
-
* Will check a recursive proof argument for validity of it's 'fields' format of proof and convert if required
|
|
108
|
-
* @param proof - The input proof that may need converting
|
|
109
|
-
* @returns - The valid proof
|
|
110
|
-
*/
|
|
111
|
-
ensureValidProof(proof: RecursiveProof<typeof NESTED_RECURSIVE_PROOF_LENGTH>, // WORKTODO
|
|
112
|
-
circuit: ServerProtocolArtifact, vk: VerificationKeyData): Promise<RecursiveProof<459>>;
|
|
113
110
|
/**
|
|
114
111
|
* Returns the verification key data for a circuit.
|
|
115
112
|
* @param circuitType - The type of circuit for which the verification key is required
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bb_prover.d.ts","sourceRoot":"","sources":["../../src/prover/bb_prover.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"bb_prover.d.ts","sourceRoot":"","sources":["../../src/prover/bb_prover.ts"],"names":[],"mappings":"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"}
|