@aztec/bb-prover 0.0.1-commit.2f68f620 → 0.0.1-commit.321f6a9
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 +4 -3
- package/dest/avm_proving_tests/avm_proving_tester.d.ts.map +1 -1
- package/dest/avm_proving_tests/avm_proving_tester.js +27 -5
- package/dest/bb/bb_js_backend.d.ts +1 -1
- package/dest/bb/bb_js_backend.d.ts.map +1 -1
- package/dest/bb/bb_js_backend.js +8 -2
- package/dest/prover/client/bb_private_kernel_prover.d.ts +13 -5
- package/dest/prover/client/bb_private_kernel_prover.d.ts.map +1 -1
- package/dest/prover/client/bb_private_kernel_prover.js +37 -9
- package/dest/prover/server/bb_prover.d.ts +3 -3
- package/dest/prover/server/bb_prover.d.ts.map +1 -1
- package/dest/prover/server/bb_prover.js +10 -8
- package/dest/test/test_circuit_prover.d.ts +3 -3
- package/dest/test/test_circuit_prover.d.ts.map +1 -1
- package/dest/test/test_circuit_prover.js +2 -2
- package/package.json +16 -16
- package/src/avm_proving_tests/avm_proving_tester.ts +33 -5
- package/src/bb/bb_js_backend.ts +8 -2
- package/src/prover/client/bb_private_kernel_prover.ts +125 -17
- package/src/prover/server/bb_prover.ts +12 -18
- package/src/test/test_circuit_prover.ts +3 -5
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PublicTxSimulationTester, SimpleContractDataSource, type TestEnqueuedCall, type TestExecutorMetrics, type TestPrivateInsertions } from '@aztec/simulator/public/fixtures';
|
|
1
|
+
import { type MeasuredSimulatorFactory, PublicTxSimulationTester, SimpleContractDataSource, type TestEnqueuedCall, type TestExecutorMetrics, type TestPrivateInsertions } from '@aztec/simulator/public/fixtures';
|
|
2
2
|
import type { PublicTxResult } from '@aztec/simulator/server';
|
|
3
3
|
import { AvmCircuitInputs, AvmCircuitPublicInputs } from '@aztec/stdlib/avm';
|
|
4
4
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
@@ -9,8 +9,9 @@ import { NativeWorldStateService } from '@aztec/world-state';
|
|
|
9
9
|
export declare class AvmProvingTester extends PublicTxSimulationTester {
|
|
10
10
|
private checkCircuitOnly;
|
|
11
11
|
private readonly bbJsFactory;
|
|
12
|
-
constructor(checkCircuitOnly: boolean, contractDataSource: SimpleContractDataSource, merkleTrees: MerkleTreeWriteOperations, globals?: GlobalVariables, metrics?: TestExecutorMetrics);
|
|
12
|
+
constructor(checkCircuitOnly: boolean, contractDataSource: SimpleContractDataSource, merkleTrees: MerkleTreeWriteOperations, globals?: GlobalVariables, metrics?: TestExecutorMetrics, simulatorFactory?: MeasuredSimulatorFactory);
|
|
13
13
|
static new(worldStateService: NativeWorldStateService, checkCircuitOnly?: boolean, globals?: GlobalVariables, metrics?: TestExecutorMetrics): Promise<AvmProvingTester>;
|
|
14
|
+
close(): Promise<void>;
|
|
14
15
|
/**
|
|
15
16
|
* Generate an AVM proof (or run check-circuit if configured). Records per-stage timings in the test metrics.
|
|
16
17
|
* Returns the in-memory proof fields on success; throws via jest expect() on failure.
|
|
@@ -23,4 +24,4 @@ export declare class AvmProvingTester extends PublicTxSimulationTester {
|
|
|
23
24
|
executeTxWithLabel(txLabel: string, sender: AztecAddress, setupCalls?: TestEnqueuedCall[], appCalls?: TestEnqueuedCall[], teardownCall?: TestEnqueuedCall, feePayer?: AztecAddress, privateInsertions?: TestPrivateInsertions, gasLimits?: Gas): Promise<PublicTxResult>;
|
|
24
25
|
simProveVerifyAppLogic(appCall: TestEnqueuedCall, expectRevert?: boolean, txLabel?: string, gasLimits?: Gas): Promise<void>;
|
|
25
26
|
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZtX3Byb3ZpbmdfdGVzdGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXZtX3Byb3ZpbmdfdGVzdHMvYXZtX3Byb3ZpbmdfdGVzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFDTCxLQUFLLHdCQUF3QixFQUM3Qix3QkFBd0IsRUFDeEIsd0JBQXdCLEVBQ3hCLEtBQUssZ0JBQWdCLEVBQ3JCLEtBQUssbUJBQW1CLEVBQ3hCLEtBQUsscUJBQXFCLEVBQzNCLE1BQU0sa0NBQWtDLENBQUM7QUFFMUMsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHNCQUFzQixFQUF5QixNQUFNLG1CQUFtQixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pGLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBa0I3RCxxQkFBYSxnQkFBaUIsU0FBUSx3QkFBd0I7SUFPMUQsT0FBTyxDQUFDLGdCQUFnQjtJQU4xQixPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FHekI7SUFFSCxZQUNVLGdCQUFnQixFQUFFLE9BQU8sRUFDakMsa0JBQWtCLEVBQUUsd0JBQXdCLEVBQzVDLFdBQVcsRUFBRSx5QkFBeUIsRUFDdEMsT0FBTyxDQUFDLEVBQUUsZUFBZSxFQUN6QixPQUFPLENBQUMsRUFBRSxtQkFBbUIsRUFDN0IsZ0JBQWdCLENBQUMsRUFBRSx3QkFBd0IsRUFHNUM7SUFFRCxPQUFhLEdBQUcsQ0FDZCxpQkFBaUIsRUFBRSx1QkFBdUIsRUFDMUMsZ0JBQWdCLEdBQUUsT0FBZSxFQUNqQyxPQUFPLENBQUMsRUFBRSxlQUFlLEVBQ3pCLE9BQU8sQ0FBQyxFQUFFLG1CQUFtQiw2QkFtQjlCO0lBRXFCLEtBQUssSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBTTNDO0lBRUQ7OztPQUdHO0lBQ0csS0FBSyxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE9BQU8sR0FBRSxNQUFzQixHQUFHLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQWV0RztJQUVLLE1BQU0sQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FTckY7SUFFWSxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxHQUFFLE1BQXNCLGlCQUczRjtJQUVELE9BQU8sQ0FBQyxtQkFBbUI7SUE0QmQsY0FBYyxDQUN6QixNQUFNLEVBQUUsWUFBWSxFQUNwQixVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsRUFDOUIsUUFBUSxFQUFFLGdCQUFnQixFQUFFLEVBQzVCLFlBQVksRUFBRSxnQkFBZ0IsR0FBRyxTQUFTLEVBQzFDLFlBQVksRUFBRSxPQUFPLEdBQUcsU0FBUyxFQUNqQyxRQUFRLGVBQVMsRUFDakIsaUJBQWlCLENBQUMsRUFBRSxxQkFBcUIsRUFDekMsT0FBTyxHQUFFLE1BQXNCLEVBQy9CLGtCQUFrQixHQUFFLE9BQWUsRUFDbkMsU0FBUyxDQUFDLEVBQUUsR0FBRyxHQUNkLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0EyQnpCO0lBRXFCLGtCQUFrQixDQUN0QyxPQUFPLEVBQUUsTUFBTSxFQUNmLE1BQU0sRUFBRSxZQUFZLEVBQ3BCLFVBQVUsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLEVBQy9CLFFBQVEsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLEVBQzdCLFlBQVksQ0FBQyxFQUFFLGdCQUFnQixFQUMvQixRQUFRLENBQUMsRUFBRSxZQUFZLEVBQ3ZCLGlCQUFpQixDQUFDLEVBQUUscUJBQXFCLEVBQ3pDLFNBQVMsQ0FBQyxFQUFFLEdBQUcsMkJBY2hCO0lBRVksc0JBQXNCLENBQ2pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFDekIsWUFBWSxDQUFDLEVBQUUsT0FBTyxFQUN0QixPQUFPLEdBQUUsTUFBc0IsRUFDL0IsU0FBUyxDQUFDLEVBQUUsR0FBRyxpQkFjaEI7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avm_proving_tester.d.ts","sourceRoot":"","sources":["../../src/avm_proving_tests/avm_proving_tester.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"avm_proving_tester.d.ts","sourceRoot":"","sources":["../../src/avm_proving_tests/avm_proving_tester.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,wBAAwB,EAC7B,wBAAwB,EACxB,wBAAwB,EACxB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC3B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAyB,MAAM,mBAAmB,CAAC;AACpG,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAkB7D,qBAAa,gBAAiB,SAAQ,wBAAwB;IAO1D,OAAO,CAAC,gBAAgB;IAN1B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAGzB;IAEH,YACU,gBAAgB,EAAE,OAAO,EACjC,kBAAkB,EAAE,wBAAwB,EAC5C,WAAW,EAAE,yBAAyB,EACtC,OAAO,CAAC,EAAE,eAAe,EACzB,OAAO,CAAC,EAAE,mBAAmB,EAC7B,gBAAgB,CAAC,EAAE,wBAAwB,EAG5C;IAED,OAAa,GAAG,CACd,iBAAiB,EAAE,uBAAuB,EAC1C,gBAAgB,GAAE,OAAe,EACjC,OAAO,CAAC,EAAE,eAAe,EACzB,OAAO,CAAC,EAAE,mBAAmB,6BAmB9B;IAEqB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAM3C;IAED;;;OAGG;IACG,KAAK,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,OAAO,GAAE,MAAsB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAetG;IAEK,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,YAAY,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CASrF;IAEY,WAAW,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,OAAO,GAAE,MAAsB,iBAG3F;IAED,OAAO,CAAC,mBAAmB;IA4Bd,cAAc,CACzB,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,gBAAgB,EAAE,EAC9B,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,YAAY,EAAE,gBAAgB,GAAG,SAAS,EAC1C,YAAY,EAAE,OAAO,GAAG,SAAS,EACjC,QAAQ,eAAS,EACjB,iBAAiB,CAAC,EAAE,qBAAqB,EACzC,OAAO,GAAE,MAAsB,EAC/B,kBAAkB,GAAE,OAAe,EACnC,SAAS,CAAC,EAAE,GAAG,GACd,OAAO,CAAC,cAAc,CAAC,CA2BzB;IAEqB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,YAAY,EACpB,UAAU,CAAC,EAAE,gBAAgB,EAAE,EAC/B,QAAQ,CAAC,EAAE,gBAAgB,EAAE,EAC7B,YAAY,CAAC,EAAE,gBAAgB,EAC/B,QAAQ,CAAC,EAAE,YAAY,EACvB,iBAAiB,CAAC,EAAE,qBAAqB,EACzC,SAAS,CAAC,EAAE,GAAG,2BAchB;IAEY,sBAAsB,CACjC,OAAO,EAAE,gBAAgB,EACzB,YAAY,CAAC,EAAE,OAAO,EACtB,OAAO,GAAE,MAAsB,EAC/B,SAAS,CAAC,EAAE,GAAG,iBAchB;CACF"}
|
|
@@ -63,8 +63,10 @@ function _ts_dispose_resources(env) {
|
|
|
63
63
|
return next();
|
|
64
64
|
})(env);
|
|
65
65
|
}
|
|
66
|
+
import { createLogger } from '@aztec/foundation/log';
|
|
66
67
|
import { Timer } from '@aztec/foundation/timer';
|
|
67
68
|
import { PublicTxSimulationTester, SimpleContractDataSource } from '@aztec/simulator/public/fixtures';
|
|
69
|
+
import { AvmSimulatorPool, MeasuredPublicTxSimulator } from '@aztec/simulator/server';
|
|
68
70
|
import { AvmCircuitInputs, PublicSimulatorConfig } from '@aztec/stdlib/avm';
|
|
69
71
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
70
72
|
import path from 'path';
|
|
@@ -82,14 +84,34 @@ const provingConfig = PublicSimulatorConfig.from({
|
|
|
82
84
|
export class AvmProvingTester extends PublicTxSimulationTester {
|
|
83
85
|
checkCircuitOnly;
|
|
84
86
|
bbJsFactory;
|
|
85
|
-
constructor(checkCircuitOnly, contractDataSource, merkleTrees, globals, metrics){
|
|
86
|
-
|
|
87
|
-
|
|
87
|
+
constructor(checkCircuitOnly, contractDataSource, merkleTrees, globals, metrics, simulatorFactory){
|
|
88
|
+
super(merkleTrees, contractDataSource, globals, metrics, simulatorFactory, provingConfig), this.checkCircuitOnly = checkCircuitOnly, this.bbJsFactory = new BBJsFactory(BB_PATH, {
|
|
89
|
+
debugDir: process.env.BB_DEBUG_OUTPUT_DIR,
|
|
90
|
+
logger: createLogger('bb-prover:avm-proving-tester')
|
|
91
|
+
});
|
|
88
92
|
}
|
|
89
93
|
static async new(worldStateService, checkCircuitOnly = false, globals, metrics) {
|
|
90
94
|
const contractDataSource = new SimpleContractDataSource();
|
|
91
95
|
const merkleTrees = await worldStateService.fork();
|
|
92
|
-
|
|
96
|
+
const avmSimulator = await AvmSimulatorPool.spawn({
|
|
97
|
+
wsdbIpcPath: worldStateService.getIpcPath()
|
|
98
|
+
});
|
|
99
|
+
const simulatorFactory = (mt, cdb, g, m, c)=>new MeasuredPublicTxSimulator(avmSimulator, g, cdb, mt.getRevision().forkId, m, c, undefined);
|
|
100
|
+
const tester = new AvmProvingTester(checkCircuitOnly, contractDataSource, merkleTrees, globals, metrics, simulatorFactory);
|
|
101
|
+
tester.avmSimulator = avmSimulator;
|
|
102
|
+
return tester;
|
|
103
|
+
}
|
|
104
|
+
async close() {
|
|
105
|
+
const results = await Promise.allSettled([
|
|
106
|
+
super.close(),
|
|
107
|
+
this.bbJsFactory.destroy()
|
|
108
|
+
]);
|
|
109
|
+
const errors = results.flatMap((result)=>result.status === 'rejected' ? [
|
|
110
|
+
result.reason
|
|
111
|
+
] : []);
|
|
112
|
+
if (errors.length > 0) {
|
|
113
|
+
throw new AggregateError(errors, `Failed to close AVM proving tester`);
|
|
114
|
+
}
|
|
93
115
|
}
|
|
94
116
|
/**
|
|
95
117
|
* Generate an AVM proof (or run check-circuit if configured). Records per-stage timings in the test metrics.
|
|
@@ -207,7 +229,7 @@ export class AvmProvingTester extends PublicTxSimulationTester {
|
|
|
207
229
|
return await this.simProveVerify(sender, setupCalls ?? [], appCalls ?? [], teardownCall, undefined, feePayer, privateInsertions, txLabel, true, gasLimits);
|
|
208
230
|
}
|
|
209
231
|
async simProveVerifyAppLogic(appCall, expectRevert, txLabel = 'unlabeledTx', gasLimits) {
|
|
210
|
-
await this.simProveVerify(/*sender=*/ AztecAddress.
|
|
232
|
+
await this.simProveVerify(/*sender=*/ AztecAddress.fromNumberUnsafe(42), /*setupCalls=*/ [], [
|
|
211
233
|
appCall
|
|
212
234
|
], undefined, expectRevert, /*feePayer=*/ undefined, /*privateInsertions=*/ undefined, txLabel, /*disableRevertCheck=*/ false, gasLimits);
|
|
213
235
|
}
|
|
@@ -193,4 +193,4 @@ export declare class BBJsFactory {
|
|
|
193
193
|
private makeBorrowed;
|
|
194
194
|
private makeDisposable;
|
|
195
195
|
}
|
|
196
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJfanNfYmFja2VuZC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2JiL2JiX2pzX2JhY2tlbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssT0FBTyxFQUFrRCxNQUFNLGNBQWMsQ0FBQztBQUM1RixPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFLM0QsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBb0JsRCx5REFBeUQ7QUFDekQsTUFBTSxNQUFNLGVBQWUsR0FBRztJQUM1QiwyQ0FBMkM7SUFDM0MsV0FBVyxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQzFCLGtEQUFrRDtJQUNsRCxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUNoQywrQ0FBK0M7SUFDL0MsVUFBVSxFQUFFLE1BQU0sQ0FBQztDQUNwQixDQUFDO0FBRUYscUZBQXFGO0FBQ3JGLE1BQU0sV0FBVyxPQUFPO0lBQ3RCLGFBQWEsQ0FDWCxXQUFXLEVBQUUsTUFBTSxFQUNuQixRQUFRLEVBQUUsVUFBVSxFQUNwQixlQUFlLEVBQUUsVUFBVSxFQUMzQixPQUFPLEVBQUUsVUFBVSxFQUNuQixNQUFNLEVBQUUsZUFBZSxHQUN0QixPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDNUIsV0FBVyxDQUNULFdBQVcsRUFBRSxVQUFVLEVBQUUsRUFDekIsZUFBZSxFQUFFLFVBQVUsRUFDM0IsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLEVBQy9CLE1BQU0sRUFBRSxlQUFlLEdBQ3RCLE9BQU8sQ0FBQztRQUFFLFFBQVEsRUFBRSxPQUFPLENBQUM7UUFBQyxVQUFVLEVBQUUsTUFBTSxDQUFBO0tBQUUsQ0FBQyxDQUFDO0lBQ3RELGdCQUFnQixDQUNkLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxFQUNwQyxlQUFlLEVBQUUsVUFBVSxHQUMxQixPQUFPLENBQUM7UUFB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bb_js_backend.d.ts","sourceRoot":"","sources":["../../src/bb/bb_js_backend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAkD,MAAM,cAAc,CAAC;AAC5F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"bb_js_backend.d.ts","sourceRoot":"","sources":["../../src/bb/bb_js_backend.ts"],"names":[],"mappings":"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"}
|
package/dest/bb/bb_js_backend.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { BackendType, Barretenberg } from '@aztec/bb.js';
|
|
2
2
|
import { FifoMemoryQueue } from '@aztec/foundation/queue';
|
|
3
3
|
import { Timer } from '@aztec/foundation/timer';
|
|
4
|
+
import { ProvingError } from '@aztec/stdlib/errors';
|
|
4
5
|
/**
|
|
5
6
|
* Maps UltraHonkFlavor to the bb.js ProofSystemSettings.
|
|
6
7
|
* All server-side proofs use disableZk: true.
|
|
@@ -53,8 +54,13 @@ import { Timer } from '@aztec/foundation/timer';
|
|
|
53
54
|
if (threads !== undefined) {
|
|
54
55
|
options.threads = threads;
|
|
55
56
|
}
|
|
56
|
-
|
|
57
|
-
|
|
57
|
+
try {
|
|
58
|
+
return new BBJsInstance(await Barretenberg.new(options));
|
|
59
|
+
} catch (err) {
|
|
60
|
+
// bb startup failures are environmental (machine load, a wedged or dead bb process), never a
|
|
61
|
+
// property of the proof inputs, so the job is always safe to retry.
|
|
62
|
+
throw new ProvingError(`Failed to start bb process: ${err}`, err, /*retry*/ true);
|
|
63
|
+
}
|
|
58
64
|
}
|
|
59
65
|
/**
|
|
60
66
|
* Generate an UltraHonk proof for a circuit.
|
|
@@ -4,7 +4,7 @@ import { type ArtifactProvider, type ClientProtocolArtifact } from '@aztec/noir-
|
|
|
4
4
|
import type { Abi, WitnessMap } from '@aztec/noir-types';
|
|
5
5
|
import type { CircuitSimulator } from '@aztec/simulator/client';
|
|
6
6
|
import type { PrivateKernelProver } from '@aztec/stdlib/interfaces/client';
|
|
7
|
-
import type { HidingKernelToPublicPrivateInputs, HidingKernelToRollupPrivateInputs, PrivateExecutionStep, PrivateKernelCircuitPublicInputs, PrivateKernelInit2CircuitPrivateInputs, PrivateKernelInit3CircuitPrivateInputs, PrivateKernelInitCircuitPrivateInputs, PrivateKernelInner2CircuitPrivateInputs, PrivateKernelInner3CircuitPrivateInputs, PrivateKernelInnerCircuitPrivateInputs, PrivateKernelResetCircuitPrivateInputs,
|
|
7
|
+
import type { HidingKernelToPublicPrivateInputs, HidingKernelToRollupPrivateInputs, PrivateExecutionStep, PrivateKernelCircuitPublicInputs, PrivateKernelInit2CircuitPrivateInputs, PrivateKernelInit3CircuitPrivateInputs, PrivateKernelInit4CircuitPrivateInputs, PrivateKernelInit5CircuitPrivateInputs, PrivateKernelInitCircuitPrivateInputs, PrivateKernelInner2CircuitPrivateInputs, PrivateKernelInner3CircuitPrivateInputs, PrivateKernelInner4CircuitPrivateInputs, PrivateKernelInner5CircuitPrivateInputs, PrivateKernelInnerCircuitPrivateInputs, PrivateKernelResetCircuitPrivateInputs, PrivateKernelResetTailCircuitPrivateInputs, PrivateKernelSimulateOutput, PrivateKernelTailCircuitPublicInputs } from '@aztec/stdlib/kernel';
|
|
8
8
|
import { ChonkProofWithPublicInputs } from '@aztec/stdlib/proofs';
|
|
9
9
|
export type BBPrivateKernelProverOptions = Omit<BackendOptions, 'logger'> & {
|
|
10
10
|
logger?: Logger;
|
|
@@ -21,16 +21,24 @@ export declare abstract class BBPrivateKernelProver implements PrivateKernelProv
|
|
|
21
21
|
simulateInit2(inputs: PrivateKernelInit2CircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
|
|
22
22
|
generateInit3Output(inputs: PrivateKernelInit3CircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
|
|
23
23
|
simulateInit3(inputs: PrivateKernelInit3CircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
|
|
24
|
+
generateInit4Output(inputs: PrivateKernelInit4CircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
|
|
25
|
+
simulateInit4(inputs: PrivateKernelInit4CircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
|
|
26
|
+
generateInit5Output(inputs: PrivateKernelInit5CircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
|
|
27
|
+
simulateInit5(inputs: PrivateKernelInit5CircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
|
|
24
28
|
generateInnerOutput(inputs: PrivateKernelInnerCircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
|
|
25
29
|
simulateInner(inputs: PrivateKernelInnerCircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
|
|
26
30
|
generateInner2Output(inputs: PrivateKernelInner2CircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
|
|
27
31
|
simulateInner2(inputs: PrivateKernelInner2CircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
|
|
28
32
|
generateInner3Output(inputs: PrivateKernelInner3CircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
|
|
29
33
|
simulateInner3(inputs: PrivateKernelInner3CircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
|
|
34
|
+
generateInner4Output(inputs: PrivateKernelInner4CircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
|
|
35
|
+
simulateInner4(inputs: PrivateKernelInner4CircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
|
|
36
|
+
generateInner5Output(inputs: PrivateKernelInner5CircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
|
|
37
|
+
simulateInner5(inputs: PrivateKernelInner5CircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
|
|
30
38
|
generateResetOutput(inputs: PrivateKernelResetCircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
|
|
31
39
|
simulateReset(inputs: PrivateKernelResetCircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>>;
|
|
32
|
-
|
|
33
|
-
|
|
40
|
+
generateResetTailOutput(inputs: PrivateKernelResetTailCircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelTailCircuitPublicInputs>>;
|
|
41
|
+
simulateResetTail(inputs: PrivateKernelResetTailCircuitPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelTailCircuitPublicInputs>>;
|
|
34
42
|
generateHidingToRollupOutput(inputs: HidingKernelToRollupPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelTailCircuitPublicInputs>>;
|
|
35
43
|
generateHidingToPublicOutput(inputs: HidingKernelToPublicPrivateInputs): Promise<PrivateKernelSimulateOutput<PrivateKernelTailCircuitPublicInputs>>;
|
|
36
44
|
simulateCircuitOutput<I extends {
|
|
@@ -41,6 +49,6 @@ export declare abstract class BBPrivateKernelProver implements PrivateKernelProv
|
|
|
41
49
|
}, O extends PrivateKernelCircuitPublicInputs | PrivateKernelTailCircuitPublicInputs>(inputs: I, circuitType: ClientProtocolArtifact, convertInputs: (inputs: I, abi: Abi) => WitnessMap, convertOutputs: (outputs: WitnessMap, abi: Abi) => O): Promise<PrivateKernelSimulateOutput<O>>;
|
|
42
50
|
makeEmptyKernelSimulateOutput<PublicInputsType extends PrivateKernelTailCircuitPublicInputs | PrivateKernelCircuitPublicInputs>(publicInputs: PublicInputsType, circuitType: ClientProtocolArtifact): Promise<PrivateKernelSimulateOutput<PublicInputsType>>;
|
|
43
51
|
createChonkProof(executionSteps: PrivateExecutionStep[]): Promise<ChonkProofWithPublicInputs>;
|
|
44
|
-
computeGateCountForCircuit(_bytecode: Buffer, _circuitName: string): Promise<number>;
|
|
52
|
+
computeGateCountForCircuit(_bytecode: Buffer, _circuitName: string, _circuitKind: PrivateExecutionStep['kind']): Promise<number>;
|
|
45
53
|
}
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJfcHJpdmF0ZV9rZXJuZWxfcHJvdmVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvdmVyL2NsaWVudC9iYl9wcml2YXRlX2tlcm5lbF9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixLQUFLLGNBQWMsRUFBZ0IsTUFBTSxjQUFjLENBQUM7QUFDckYsT0FBTyxFQUFpQixLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQXFDakYsT0FBTyxFQUNMLEtBQUssZ0JBQWdCLEVBQ3JCLEtBQUssc0JBQXNCLEVBRTVCLE1BQU0sMkNBQTJDLENBQUM7QUFDbkQsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRSxPQUFPLEtBQUssRUFDVixpQ0FBaUMsRUFDakMsaUNBQWlDLEVBQ2pDLG9CQUFvQixFQUNwQixnQ0FBZ0MsRUFDaEMsc0NBQXNDLEVBQ3RDLHNDQUFzQyxFQUN0QyxzQ0FBc0MsRUFDdEMsc0NBQXNDLEVBQ3RDLHFDQUFxQyxFQUNyQyx1Q0FBdUMsRUFDdkMsdUNBQXVDLEVBQ3ZDLHVDQUF1QyxFQUN2Qyx1Q0FBdUMsRUFDdkMsc0NBQXNDLEVBQ3RDLHNDQUFzQyxFQUN0QywwQ0FBMEMsRUFDMUMsMkJBQTJCLEVBQzNCLG9DQUFvQyxFQUNyQyxNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBS2xFLE1BQU0sTUFBTSw0QkFBNEIsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxHQUFHO0lBQUUsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFBO0NBQUUs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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bb_private_kernel_prover.d.ts","sourceRoot":"","sources":["../../../src/prover/client/bb_private_kernel_prover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,cAAc,EAAgB,MAAM,cAAc,CAAC;AACrF,OAAO,EAAiB,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"bb_private_kernel_prover.d.ts","sourceRoot":"","sources":["../../../src/prover/client/bb_private_kernel_prover.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { AztecClientBackend, Barretenberg } from '@aztec/bb.js';
|
|
|
2
2
|
import { createLogger } from '@aztec/foundation/log';
|
|
3
3
|
import { Timer } from '@aztec/foundation/timer';
|
|
4
4
|
import { serializeWitness } from '@aztec/noir-noirc_abi';
|
|
5
|
-
import { convertHidingKernelPublicInputsToWitnessMapWithAbi, convertHidingKernelToRollupInputsToWitnessMapWithAbi, convertPrivateKernelInit2InputsToWitnessMapWithAbi, convertPrivateKernelInit2OutputsFromWitnessMapWithAbi, convertPrivateKernelInit3InputsToWitnessMapWithAbi, convertPrivateKernelInit3OutputsFromWitnessMapWithAbi, convertPrivateKernelInitInputsToWitnessMapWithAbi, convertPrivateKernelInitOutputsFromWitnessMapWithAbi, convertPrivateKernelInner2InputsToWitnessMapWithAbi, convertPrivateKernelInner2OutputsFromWitnessMapWithAbi, convertPrivateKernelInner3InputsToWitnessMapWithAbi, convertPrivateKernelInner3OutputsFromWitnessMapWithAbi, convertPrivateKernelInnerInputsToWitnessMapWithAbi, convertPrivateKernelInnerOutputsFromWitnessMapWithAbi, convertPrivateKernelResetInputsToWitnessMapWithAbi, convertPrivateKernelResetOutputsFromWitnessMapWithAbi,
|
|
5
|
+
import { convertHidingKernelPublicInputsToWitnessMapWithAbi, convertHidingKernelToRollupInputsToWitnessMapWithAbi, convertPrivateKernelInit2InputsToWitnessMapWithAbi, convertPrivateKernelInit2OutputsFromWitnessMapWithAbi, convertPrivateKernelInit3InputsToWitnessMapWithAbi, convertPrivateKernelInit3OutputsFromWitnessMapWithAbi, convertPrivateKernelInit4InputsToWitnessMapWithAbi, convertPrivateKernelInit4OutputsFromWitnessMapWithAbi, convertPrivateKernelInit5InputsToWitnessMapWithAbi, convertPrivateKernelInit5OutputsFromWitnessMapWithAbi, convertPrivateKernelInitInputsToWitnessMapWithAbi, convertPrivateKernelInitOutputsFromWitnessMapWithAbi, convertPrivateKernelInner2InputsToWitnessMapWithAbi, convertPrivateKernelInner2OutputsFromWitnessMapWithAbi, convertPrivateKernelInner3InputsToWitnessMapWithAbi, convertPrivateKernelInner3OutputsFromWitnessMapWithAbi, convertPrivateKernelInner4InputsToWitnessMapWithAbi, convertPrivateKernelInner4OutputsFromWitnessMapWithAbi, convertPrivateKernelInner5InputsToWitnessMapWithAbi, convertPrivateKernelInner5OutputsFromWitnessMapWithAbi, convertPrivateKernelInnerInputsToWitnessMapWithAbi, convertPrivateKernelInnerOutputsFromWitnessMapWithAbi, convertPrivateKernelResetInputsToWitnessMapWithAbi, convertPrivateKernelResetOutputsFromWitnessMapWithAbi, convertPrivateKernelResetTailInputsToWitnessMapWithAbi, convertPrivateKernelResetTailToPublicInputsToWitnessMapWithAbi, convertPrivateKernelTailForPublicOutputsFromWitnessMapWithAbi, convertPrivateKernelTailOutputsFromWitnessMapWithAbi, foreignCallHandler, getPrivateKernelResetArtifactName, getPrivateKernelResetTailArtifactName, updateResetCircuitSampleInputs } from '@aztec/noir-protocol-circuits-types/client';
|
|
6
6
|
import { mapProtocolArtifactNameToCircuitName } from '@aztec/noir-protocol-circuits-types/types';
|
|
7
7
|
import { ChonkProofWithPublicInputs } from '@aztec/stdlib/proofs';
|
|
8
8
|
import { ungzip } from 'pako';
|
|
@@ -35,6 +35,18 @@ export class BBPrivateKernelProver {
|
|
|
35
35
|
async simulateInit3(inputs) {
|
|
36
36
|
return await this.simulateCircuitOutput(inputs, 'PrivateKernelInit3Artifact', convertPrivateKernelInit3InputsToWitnessMapWithAbi, convertPrivateKernelInit3OutputsFromWitnessMapWithAbi);
|
|
37
37
|
}
|
|
38
|
+
async generateInit4Output(inputs) {
|
|
39
|
+
return await this.generateCircuitOutput(inputs, 'PrivateKernelInit4Artifact', convertPrivateKernelInit4InputsToWitnessMapWithAbi, convertPrivateKernelInit4OutputsFromWitnessMapWithAbi);
|
|
40
|
+
}
|
|
41
|
+
async simulateInit4(inputs) {
|
|
42
|
+
return await this.simulateCircuitOutput(inputs, 'PrivateKernelInit4Artifact', convertPrivateKernelInit4InputsToWitnessMapWithAbi, convertPrivateKernelInit4OutputsFromWitnessMapWithAbi);
|
|
43
|
+
}
|
|
44
|
+
async generateInit5Output(inputs) {
|
|
45
|
+
return await this.generateCircuitOutput(inputs, 'PrivateKernelInit5Artifact', convertPrivateKernelInit5InputsToWitnessMapWithAbi, convertPrivateKernelInit5OutputsFromWitnessMapWithAbi);
|
|
46
|
+
}
|
|
47
|
+
async simulateInit5(inputs) {
|
|
48
|
+
return await this.simulateCircuitOutput(inputs, 'PrivateKernelInit5Artifact', convertPrivateKernelInit5InputsToWitnessMapWithAbi, convertPrivateKernelInit5OutputsFromWitnessMapWithAbi);
|
|
49
|
+
}
|
|
38
50
|
async generateInnerOutput(inputs) {
|
|
39
51
|
return await this.generateCircuitOutput(inputs, 'PrivateKernelInnerArtifact', convertPrivateKernelInnerInputsToWitnessMapWithAbi, convertPrivateKernelInnerOutputsFromWitnessMapWithAbi);
|
|
40
52
|
}
|
|
@@ -53,6 +65,18 @@ export class BBPrivateKernelProver {
|
|
|
53
65
|
async simulateInner3(inputs) {
|
|
54
66
|
return await this.simulateCircuitOutput(inputs, 'PrivateKernelInner3Artifact', convertPrivateKernelInner3InputsToWitnessMapWithAbi, convertPrivateKernelInner3OutputsFromWitnessMapWithAbi);
|
|
55
67
|
}
|
|
68
|
+
async generateInner4Output(inputs) {
|
|
69
|
+
return await this.generateCircuitOutput(inputs, 'PrivateKernelInner4Artifact', convertPrivateKernelInner4InputsToWitnessMapWithAbi, convertPrivateKernelInner4OutputsFromWitnessMapWithAbi);
|
|
70
|
+
}
|
|
71
|
+
async simulateInner4(inputs) {
|
|
72
|
+
return await this.simulateCircuitOutput(inputs, 'PrivateKernelInner4Artifact', convertPrivateKernelInner4InputsToWitnessMapWithAbi, convertPrivateKernelInner4OutputsFromWitnessMapWithAbi);
|
|
73
|
+
}
|
|
74
|
+
async generateInner5Output(inputs) {
|
|
75
|
+
return await this.generateCircuitOutput(inputs, 'PrivateKernelInner5Artifact', convertPrivateKernelInner5InputsToWitnessMapWithAbi, convertPrivateKernelInner5OutputsFromWitnessMapWithAbi);
|
|
76
|
+
}
|
|
77
|
+
async simulateInner5(inputs) {
|
|
78
|
+
return await this.simulateCircuitOutput(inputs, 'PrivateKernelInner5Artifact', convertPrivateKernelInner5InputsToWitnessMapWithAbi, convertPrivateKernelInner5OutputsFromWitnessMapWithAbi);
|
|
79
|
+
}
|
|
56
80
|
async generateResetOutput(inputs) {
|
|
57
81
|
const variantInputs = inputs.trimToSizes();
|
|
58
82
|
const artifactName = getPrivateKernelResetArtifactName(inputs.dimensions);
|
|
@@ -64,17 +88,19 @@ export class BBPrivateKernelProver {
|
|
|
64
88
|
const artifactName = getPrivateKernelResetArtifactName(inputs.dimensions);
|
|
65
89
|
return await this.simulateCircuitOutput(variantInputs, artifactName, convertPrivateKernelResetInputsToWitnessMapWithAbi, convertPrivateKernelResetOutputsFromWitnessMapWithAbi);
|
|
66
90
|
}
|
|
67
|
-
async
|
|
91
|
+
async generateResetTailOutput(inputs) {
|
|
92
|
+
const artifactName = getPrivateKernelResetTailArtifactName(inputs.dimensions, inputs.isForPublic());
|
|
68
93
|
if (!inputs.isForPublic()) {
|
|
69
|
-
return await this.generateCircuitOutput(inputs,
|
|
94
|
+
return await this.generateCircuitOutput(inputs, artifactName, convertPrivateKernelResetTailInputsToWitnessMapWithAbi, convertPrivateKernelTailOutputsFromWitnessMapWithAbi);
|
|
70
95
|
}
|
|
71
|
-
return await this.generateCircuitOutput(inputs,
|
|
96
|
+
return await this.generateCircuitOutput(inputs, artifactName, convertPrivateKernelResetTailToPublicInputsToWitnessMapWithAbi, convertPrivateKernelTailForPublicOutputsFromWitnessMapWithAbi);
|
|
72
97
|
}
|
|
73
|
-
async
|
|
98
|
+
async simulateResetTail(inputs) {
|
|
99
|
+
const artifactName = getPrivateKernelResetTailArtifactName(inputs.dimensions, inputs.isForPublic());
|
|
74
100
|
if (!inputs.isForPublic()) {
|
|
75
|
-
return await this.simulateCircuitOutput(inputs,
|
|
101
|
+
return await this.simulateCircuitOutput(inputs, artifactName, convertPrivateKernelResetTailInputsToWitnessMapWithAbi, convertPrivateKernelTailOutputsFromWitnessMapWithAbi);
|
|
76
102
|
}
|
|
77
|
-
return await this.simulateCircuitOutput(inputs,
|
|
103
|
+
return await this.simulateCircuitOutput(inputs, artifactName, convertPrivateKernelResetTailToPublicInputsToWitnessMapWithAbi, convertPrivateKernelTailForPublicOutputsFromWitnessMapWithAbi);
|
|
78
104
|
}
|
|
79
105
|
async generateHidingToRollupOutput(inputs) {
|
|
80
106
|
return await this.generateCircuitOutput(inputs, 'HidingKernelToRollup', convertHidingKernelToRollupInputsToWitnessMapWithAbi, convertPrivateKernelTailOutputsFromWitnessMapWithAbi);
|
|
@@ -141,7 +167,7 @@ export class BBPrivateKernelProver {
|
|
|
141
167
|
...this.options,
|
|
142
168
|
logger: this.options.logger?.verbose
|
|
143
169
|
});
|
|
144
|
-
const backend = new AztecClientBackend(executionSteps.map((step)=>ungzip(step.bytecode)), barretenberg, executionSteps.map((step)=>step.functionName));
|
|
170
|
+
const backend = new AztecClientBackend(executionSteps.map((step)=>ungzip(step.bytecode)), barretenberg, executionSteps.map((step)=>step.functionName), executionSteps.map((step)=>step.kind));
|
|
145
171
|
// Use compressed prove path to get both proof fields and compressed proof bytes
|
|
146
172
|
const result = await backend.prove(executionSteps.map((step)=>ungzip(serializeWitness(step.witness))), executionSteps.map((step)=>step.vk), {
|
|
147
173
|
compress: true
|
|
@@ -160,7 +186,7 @@ export class BBPrivateKernelProver {
|
|
|
160
186
|
proofWithPubInputs.compressedProof = result.compressedProof ? Buffer.from(result.compressedProof) : undefined;
|
|
161
187
|
return proofWithPubInputs;
|
|
162
188
|
}
|
|
163
|
-
async computeGateCountForCircuit(_bytecode, _circuitName) {
|
|
189
|
+
async computeGateCountForCircuit(_bytecode, _circuitName, _circuitKind) {
|
|
164
190
|
// Note we do not pass the vk to the backend. This is unneeded for gate counts.
|
|
165
191
|
const barretenberg = await Barretenberg.initSingleton({
|
|
166
192
|
...this.options,
|
|
@@ -170,6 +196,8 @@ export class BBPrivateKernelProver {
|
|
|
170
196
|
ungzip(_bytecode)
|
|
171
197
|
], barretenberg, [
|
|
172
198
|
_circuitName
|
|
199
|
+
], [
|
|
200
|
+
_circuitKind
|
|
173
201
|
]);
|
|
174
202
|
const gateCount = await backend.gates();
|
|
175
203
|
return gateCount[0];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AVM_V2_PROOF_LENGTH_IN_FIELDS, NESTED_RECURSIVE_PROOF_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, RECURSIVE_PROOF_LENGTH } from '@aztec/constants';
|
|
2
2
|
import { type ServerProtocolArtifact } from '@aztec/noir-protocol-circuits-types/server';
|
|
3
3
|
import type { AvmCircuitInputs, AvmCircuitPublicInputs } from '@aztec/stdlib/avm';
|
|
4
4
|
import { type PublicInputsAndRecursiveProof, type ServerCircuitProver } from '@aztec/stdlib/interfaces/server';
|
|
@@ -37,7 +37,7 @@ export declare class BBNativeRollupProver implements ServerCircuitProver {
|
|
|
37
37
|
* @param inputs - The inputs to the AVM circuit.
|
|
38
38
|
* @returns The proof.
|
|
39
39
|
*/
|
|
40
|
-
getAvmProof(inputs: AvmCircuitInputs): Promise<RecursiveProof<typeof
|
|
40
|
+
getAvmProof(inputs: AvmCircuitInputs): Promise<RecursiveProof<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS>>;
|
|
41
41
|
getPublicChonkVerifierProof(inputs: PublicChonkVerifierPrivateInputs): Promise<PublicInputsAndRecursiveProof<PublicChonkVerifierPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
42
42
|
/**
|
|
43
43
|
* Simulates the base rollup circuit from its inputs.
|
|
@@ -93,4 +93,4 @@ export declare class BBNativeRollupProver implements ServerCircuitProver {
|
|
|
93
93
|
private getVerificationKeyDataForCircuit;
|
|
94
94
|
private runInDirectory;
|
|
95
95
|
}
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJfcHJvdmVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvdmVyL3NlcnZlci9iYl9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLDZCQUE2QixFQUM3Qiw2QkFBNkIsRUFDN0IseUNBQXlDLEVBRXpDLHNCQUFzQixFQUV2QixNQUFNLGtCQUFrQixDQUFDO0FBSTFCLE9BQU8sRUFDTCxLQUFLLHNCQUFzQixFQW9DNUIsTUFBTSw0Q0FBNEMsQ0FBQztBQUtwRCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWxGLE9BQU8sRUFDTCxLQUFLLDZCQUE2QixFQUNsQyxLQUFLLG1CQUFtQixFQUV6QixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxFQUFFLHVCQUF1QixFQUFFLGtCQUFrQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakgsT0FBTyxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQWdDLE1BQU0sc0JBQXNCLENBQUM7QUFDM0YsT0FBTyxFQUNMLDZCQUE2QixFQUM3Qix1QkFBdUIsRUFDdkIsd0NBQXdDLEVBQ3hDLGlDQUFpQyxFQUNqQyw0QkFBNEIsRUFDNUIseUNBQXlDLEVBQ3pDLG9DQUFvQyxFQUNwQyxrQ0FBa0MsRUFDbEMsb0NBQW9DLEVBQ3BDLDRCQUE0QixFQUM1QixpQ0FBaUMsRUFDakMsNENBQTRDLEVBQzVDLEtBQUssZ0NBQWdDLEVBQ3JDLGdDQUFnQyxFQUNoQywrQkFBK0IsRUFDL0IsK0JBQStCLEVBQy9CLEtBQUssdUJBQXVCLEVBQzVCLEtBQUssc0JBQXNCLEVBQzNCLEtBQUssMEJBQTBCLEVBQy9CLEtBQUssb0JBQW9CLEVBQzFCLE1BQU0sc0JBQXNCLENBQUM7QUFHOUIsT0FBTyxFQUFjLEtBQUssZUFBZSxFQUFpQyxNQUFNLHlCQUF5QixDQUFDO0FBTzFHLE9B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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bb_prover.d.ts","sourceRoot":"","sources":["../../../src/prover/server/bb_prover.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"bb_prover.d.ts","sourceRoot":"","sources":["../../../src/prover/server/bb_prover.ts"],"names":[],"mappings":"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"}
|
|
@@ -436,7 +436,7 @@ function _apply_decs_2203_r(targetClass, memberDecs, classDecs, parentClass) {
|
|
|
436
436
|
return (_apply_decs_2203_r = applyDecs2203RFactory())(targetClass, memberDecs, classDecs, parentClass);
|
|
437
437
|
}
|
|
438
438
|
var _dec, _dec1, _dec2, _initProto;
|
|
439
|
-
import {
|
|
439
|
+
import { AVM_V2_PROOF_LENGTH_IN_FIELDS, NESTED_RECURSIVE_PROOF_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, PAIRING_POINTS_SIZE, RECURSIVE_PROOF_LENGTH, ULTRA_KECCAK_PROOF_LENGTH } from '@aztec/constants';
|
|
440
440
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
441
441
|
import { runInDirectory } from '@aztec/foundation/fs';
|
|
442
442
|
import { createLogger } from '@aztec/foundation/log';
|
|
@@ -661,7 +661,9 @@ _dec = trackSpan('BBNativeRollupProver.getBaseParityProof', {
|
|
|
661
661
|
if (result) await result;
|
|
662
662
|
}
|
|
663
663
|
} catch (error) {
|
|
664
|
-
|
|
664
|
+
// Preserve retryability of the underlying failure (e.g. a transient bb startup error).
|
|
665
|
+
const retry = error instanceof ProvingError && error.retry;
|
|
666
|
+
throw new ProvingError(`Failed to generate proof for ${circuitType}: ${error}`, error, retry);
|
|
665
667
|
}
|
|
666
668
|
return {
|
|
667
669
|
circuitOutput: output,
|
|
@@ -681,15 +683,13 @@ _dec = trackSpan('BBNativeRollupProver.getBaseParityProof', {
|
|
|
681
683
|
const { proof: proofFieldArrays, durationMs } = await instance.generateAvmProof(inputsBuffer);
|
|
682
684
|
// Convert Uint8Array[] (32-byte field elements) to Fr[]
|
|
683
685
|
const proofFields = proofFieldArrays.map((f)=>Fr.fromBuffer(Buffer.from(f)));
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
throw new Error(`Proof has ${proofFields.length} fields, expected no more than ${AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED}.`);
|
|
686
|
+
if (proofFields.length !== AVM_V2_PROOF_LENGTH_IN_FIELDS) {
|
|
687
|
+
throw new Error(`Proof has ${proofFields.length} fields, expected exactly ${AVM_V2_PROOF_LENGTH_IN_FIELDS}.`);
|
|
687
688
|
}
|
|
688
|
-
const proofFieldsPadded = proofFields.concat(Array(AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED - proofFields.length).fill(new Fr(0)));
|
|
689
689
|
// Build the binary proof from the raw field data
|
|
690
690
|
const rawProofBuffer = Buffer.concat(proofFieldArrays.map((f)=>Buffer.from(f)));
|
|
691
691
|
const binaryProof = new Proof(rawProofBuffer, /*numPublicInputs=*/ 0);
|
|
692
|
-
const avmProof = new RecursiveProof(
|
|
692
|
+
const avmProof = new RecursiveProof(proofFields, binaryProof, true, AVM_V2_PROOF_LENGTH_IN_FIELDS);
|
|
693
693
|
const circuitType = 'avm-circuit';
|
|
694
694
|
const appCircuitName = 'unknown';
|
|
695
695
|
this.instrumentation.recordAvmDuration('provingDuration', appCircuitName, durationMs);
|
|
@@ -778,7 +778,9 @@ _dec = trackSpan('BBNativeRollupProver.getBaseParityProof', {
|
|
|
778
778
|
if (result) await result;
|
|
779
779
|
}
|
|
780
780
|
} catch (error) {
|
|
781
|
-
|
|
781
|
+
// Preserve retryability of the underlying failure (e.g. a transient bb startup error).
|
|
782
|
+
const retry = error instanceof ProvingError && error.retry;
|
|
783
|
+
throw new ProvingError(`Failed to verify proof for ${circuitType}: ${error}`, error, retry);
|
|
782
784
|
}
|
|
783
785
|
if (!verified) {
|
|
784
786
|
throw new ProvingError('Failed to verify proof from key!');
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AVM_V2_PROOF_LENGTH_IN_FIELDS, NESTED_RECURSIVE_PROOF_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, RECURSIVE_PROOF_LENGTH } from '@aztec/constants';
|
|
2
2
|
import { type ServerProtocolArtifact } from '@aztec/noir-protocol-circuits-types/server';
|
|
3
3
|
import { type CircuitSimulator } from '@aztec/simulator/server';
|
|
4
4
|
import type { AvmCircuitInputs } from '@aztec/stdlib/avm';
|
|
@@ -63,10 +63,10 @@ export declare class TestCircuitProver implements ServerCircuitProver {
|
|
|
63
63
|
* @returns The public inputs as outputs of the simulation.
|
|
64
64
|
*/
|
|
65
65
|
getRootRollupProof(input: RootRollupPrivateInputs): Promise<PublicInputsAndRecursiveProof<RootRollupPublicInputs>>;
|
|
66
|
-
getAvmProof(_inputs: AvmCircuitInputs): Promise<RecursiveProof<typeof
|
|
66
|
+
getAvmProof(_inputs: AvmCircuitInputs): Promise<RecursiveProof<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS>>;
|
|
67
67
|
private applyDelay;
|
|
68
68
|
verifyProof(_1: ServerProtocolArtifact, _2: Proof): Promise<void>;
|
|
69
69
|
private simulate;
|
|
70
70
|
}
|
|
71
71
|
export {};
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF9jaXJjdWl0X3Byb3Zlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3QvdGVzdF9jaXJjdWl0X3Byb3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLDZCQUE2QixFQUM3Qix5Q0FBeUMsRUFDekMsc0JBQXNCLEVBQ3ZCLE1BQU0sa0JBQWtCLENBQUM7QUFJMUIsT0FBTyxFQUNMLEtBQUssc0JBQXNCLEVBbUM1QixNQUFNLDRDQUE0QyxDQUFDO0FBSXBELE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUFzRCxNQUFNLHlCQUF5QixDQUFDO0FBQ3BILE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxFQUNMLEtBQUssNkJBQTZCLEVBQ2xDLEtBQUssbUJBQW1CLEVBRXpCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsa0JBQWtCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqSCxPQUFPLEVBQ0wsS0FBSyxLQUFLLEVBRVYsY0FBYyxFQUdmLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUNMLEtBQUssNkJBQTZCLEVBQ2xDLEtBQUssdUJBQXVCLEVBQzVCLEtBQUssd0NBQXdDLEVBQzdDLEtBQUssaUNBQWlDLEVBQ3RDLEtBQUssNEJBQTRCLEVBQ2pDLEtBQUsseUNBQXlDLEVBQzlDLEtBQUssb0NBQW9DLEVBQ3pDLEtBQUssa0NBQWtDLEVBQ3ZDLEtBQUssb0NBQW9DLEVBQ3pDLEtBQUssNEJBQTRCLEVBQ2pDLEtBQUssaUNBQWlDLEVBQ3RDLEtBQUssNENBQTRDLEVBQ2pELEtBQUssZ0NBQWdDLEVBQ3JDLEtBQUssZ0NBQWdDLEVBQ3JDLCtCQUErQixFQUMvQixLQUFLLCtCQUErQixFQUNwQyxLQUFLLHVCQUF1QixFQUM1QixLQUFLLHNC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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test_circuit_prover.d.ts","sourceRoot":"","sources":["../../src/test/test_circuit_prover.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"test_circuit_prover.d.ts","sourceRoot":"","sources":["../../src/test/test_circuit_prover.ts"],"names":[],"mappings":"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"}
|
|
@@ -371,7 +371,7 @@ function _apply_decs_2203_r(targetClass, memberDecs, classDecs, parentClass) {
|
|
|
371
371
|
return (_apply_decs_2203_r = applyDecs2203RFactory())(targetClass, memberDecs, classDecs, parentClass);
|
|
372
372
|
}
|
|
373
373
|
var _dec, _dec1, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _dec15, _initProto;
|
|
374
|
-
import {
|
|
374
|
+
import { AVM_V2_PROOF_LENGTH_IN_FIELDS, NESTED_RECURSIVE_PROOF_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, RECURSIVE_PROOF_LENGTH } from '@aztec/constants';
|
|
375
375
|
import { createLogger } from '@aztec/foundation/log';
|
|
376
376
|
import { sleep } from '@aztec/foundation/sleep';
|
|
377
377
|
import { Timer } from '@aztec/foundation/timer';
|
|
@@ -563,7 +563,7 @@ _dec = trackSpan('TestCircuitProver.getBaseParityProof'), _dec1 = trackSpan('Tes
|
|
|
563
563
|
// We can't simulate the AVM because we don't have enough context to do so (e.g., DBs).
|
|
564
564
|
// We just return an empty proof.
|
|
565
565
|
this.logger.debug('Skipping AVM simulation in TestCircuitProver.');
|
|
566
|
-
return this.applyDelay(ProvingRequestType.PUBLIC_VM, ()=>makeEmptyRecursiveProof(
|
|
566
|
+
return this.applyDelay(ProvingRequestType.PUBLIC_VM, ()=>makeEmptyRecursiveProof(AVM_V2_PROOF_LENGTH_IN_FIELDS));
|
|
567
567
|
}
|
|
568
568
|
async applyDelay(type, fn) {
|
|
569
569
|
const timer = new Timer();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/bb-prover",
|
|
3
|
-
"version": "0.0.1-commit.
|
|
3
|
+
"version": "0.0.1-commit.321f6a9",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -70,16 +70,16 @@
|
|
|
70
70
|
]
|
|
71
71
|
},
|
|
72
72
|
"dependencies": {
|
|
73
|
-
"@aztec/bb.js": "0.0.1-commit.
|
|
74
|
-
"@aztec/constants": "0.0.1-commit.
|
|
75
|
-
"@aztec/foundation": "0.0.1-commit.
|
|
76
|
-
"@aztec/noir-noirc_abi": "0.0.1-commit.
|
|
77
|
-
"@aztec/noir-protocol-circuits-types": "0.0.1-commit.
|
|
78
|
-
"@aztec/noir-types": "0.0.1-commit.
|
|
79
|
-
"@aztec/simulator": "0.0.1-commit.
|
|
80
|
-
"@aztec/stdlib": "0.0.1-commit.
|
|
81
|
-
"@aztec/telemetry-client": "0.0.1-commit.
|
|
82
|
-
"@aztec/world-state": "0.0.1-commit.
|
|
73
|
+
"@aztec/bb.js": "0.0.1-commit.321f6a9",
|
|
74
|
+
"@aztec/constants": "0.0.1-commit.321f6a9",
|
|
75
|
+
"@aztec/foundation": "0.0.1-commit.321f6a9",
|
|
76
|
+
"@aztec/noir-noirc_abi": "0.0.1-commit.321f6a9",
|
|
77
|
+
"@aztec/noir-protocol-circuits-types": "0.0.1-commit.321f6a9",
|
|
78
|
+
"@aztec/noir-types": "0.0.1-commit.321f6a9",
|
|
79
|
+
"@aztec/simulator": "0.0.1-commit.321f6a9",
|
|
80
|
+
"@aztec/stdlib": "0.0.1-commit.321f6a9",
|
|
81
|
+
"@aztec/telemetry-client": "0.0.1-commit.321f6a9",
|
|
82
|
+
"@aztec/world-state": "0.0.1-commit.321f6a9",
|
|
83
83
|
"commander": "^12.1.0",
|
|
84
84
|
"msgpackr": "^1.11.2",
|
|
85
85
|
"pako": "^2.1.0",
|
|
@@ -87,11 +87,11 @@
|
|
|
87
87
|
"tslib": "^2.4.0"
|
|
88
88
|
},
|
|
89
89
|
"devDependencies": {
|
|
90
|
-
"@aztec/ethereum": "0.0.1-commit.
|
|
91
|
-
"@aztec/kv-store": "0.0.1-commit.
|
|
92
|
-
"@aztec/noir-contracts.js": "0.0.1-commit.
|
|
93
|
-
"@aztec/noir-test-contracts.js": "0.0.1-commit.
|
|
94
|
-
"@aztec/protocol-contracts": "0.0.1-commit.
|
|
90
|
+
"@aztec/ethereum": "0.0.1-commit.321f6a9",
|
|
91
|
+
"@aztec/kv-store": "0.0.1-commit.321f6a9",
|
|
92
|
+
"@aztec/noir-contracts.js": "0.0.1-commit.321f6a9",
|
|
93
|
+
"@aztec/noir-test-contracts.js": "0.0.1-commit.321f6a9",
|
|
94
|
+
"@aztec/protocol-contracts": "0.0.1-commit.321f6a9",
|
|
95
95
|
"@jest/globals": "^30.0.0",
|
|
96
96
|
"@types/jest": "^30.0.0",
|
|
97
97
|
"@types/node": "^22.15.17",
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import type { AvmStat } from '@aztec/bb.js';
|
|
2
|
+
import { createLogger } from '@aztec/foundation/log';
|
|
2
3
|
import { Timer } from '@aztec/foundation/timer';
|
|
3
4
|
import {
|
|
5
|
+
type MeasuredSimulatorFactory,
|
|
4
6
|
PublicTxSimulationTester,
|
|
5
7
|
SimpleContractDataSource,
|
|
6
8
|
type TestEnqueuedCall,
|
|
7
9
|
type TestExecutorMetrics,
|
|
8
10
|
type TestPrivateInsertions,
|
|
9
11
|
} from '@aztec/simulator/public/fixtures';
|
|
12
|
+
import { AvmSimulatorPool, MeasuredPublicTxSimulator } from '@aztec/simulator/server';
|
|
10
13
|
import type { PublicTxResult } from '@aztec/simulator/server';
|
|
11
14
|
import { AvmCircuitInputs, AvmCircuitPublicInputs, PublicSimulatorConfig } from '@aztec/stdlib/avm';
|
|
12
15
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
@@ -32,7 +35,10 @@ const provingConfig: PublicSimulatorConfig = PublicSimulatorConfig.from({
|
|
|
32
35
|
});
|
|
33
36
|
|
|
34
37
|
export class AvmProvingTester extends PublicTxSimulationTester {
|
|
35
|
-
private readonly bbJsFactory = new BBJsFactory(BB_PATH
|
|
38
|
+
private readonly bbJsFactory = new BBJsFactory(BB_PATH, {
|
|
39
|
+
debugDir: process.env.BB_DEBUG_OUTPUT_DIR,
|
|
40
|
+
logger: createLogger('bb-prover:avm-proving-tester'),
|
|
41
|
+
});
|
|
36
42
|
|
|
37
43
|
constructor(
|
|
38
44
|
private checkCircuitOnly: boolean,
|
|
@@ -40,9 +46,9 @@ export class AvmProvingTester extends PublicTxSimulationTester {
|
|
|
40
46
|
merkleTrees: MerkleTreeWriteOperations,
|
|
41
47
|
globals?: GlobalVariables,
|
|
42
48
|
metrics?: TestExecutorMetrics,
|
|
49
|
+
simulatorFactory?: MeasuredSimulatorFactory,
|
|
43
50
|
) {
|
|
44
|
-
|
|
45
|
-
super(merkleTrees, contractDataSource, globals, metrics, /*simulatorFactory=*/ undefined, provingConfig);
|
|
51
|
+
super(merkleTrees, contractDataSource, globals, metrics, simulatorFactory, provingConfig);
|
|
46
52
|
}
|
|
47
53
|
|
|
48
54
|
static async new(
|
|
@@ -53,7 +59,29 @@ export class AvmProvingTester extends PublicTxSimulationTester {
|
|
|
53
59
|
) {
|
|
54
60
|
const contractDataSource = new SimpleContractDataSource();
|
|
55
61
|
const merkleTrees = await worldStateService.fork();
|
|
56
|
-
|
|
62
|
+
|
|
63
|
+
const avmSimulator = await AvmSimulatorPool.spawn({ wsdbIpcPath: worldStateService.getIpcPath() });
|
|
64
|
+
const simulatorFactory: MeasuredSimulatorFactory = (mt, cdb, g, m, c) =>
|
|
65
|
+
new MeasuredPublicTxSimulator(avmSimulator, g, cdb, mt.getRevision().forkId, m, c, undefined);
|
|
66
|
+
|
|
67
|
+
const tester = new AvmProvingTester(
|
|
68
|
+
checkCircuitOnly,
|
|
69
|
+
contractDataSource,
|
|
70
|
+
merkleTrees,
|
|
71
|
+
globals,
|
|
72
|
+
metrics,
|
|
73
|
+
simulatorFactory,
|
|
74
|
+
);
|
|
75
|
+
tester.avmSimulator = avmSimulator;
|
|
76
|
+
return tester;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
public override async close(): Promise<void> {
|
|
80
|
+
const results = await Promise.allSettled([super.close(), this.bbJsFactory.destroy()]);
|
|
81
|
+
const errors = results.flatMap(result => (result.status === 'rejected' ? [result.reason] : []));
|
|
82
|
+
if (errors.length > 0) {
|
|
83
|
+
throw new AggregateError(errors, `Failed to close AVM proving tester`);
|
|
84
|
+
}
|
|
57
85
|
}
|
|
58
86
|
|
|
59
87
|
/**
|
|
@@ -192,7 +220,7 @@ export class AvmProvingTester extends PublicTxSimulationTester {
|
|
|
192
220
|
gasLimits?: Gas,
|
|
193
221
|
) {
|
|
194
222
|
await this.simProveVerify(
|
|
195
|
-
/*sender=*/ AztecAddress.
|
|
223
|
+
/*sender=*/ AztecAddress.fromNumberUnsafe(42),
|
|
196
224
|
/*setupCalls=*/ [],
|
|
197
225
|
[appCall],
|
|
198
226
|
undefined,
|
package/src/bb/bb_js_backend.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { type AvmStat, type BackendOptions, BackendType, Barretenberg } from '@a
|
|
|
2
2
|
import type { LogFn, Logger } from '@aztec/foundation/log';
|
|
3
3
|
import { FifoMemoryQueue } from '@aztec/foundation/queue';
|
|
4
4
|
import { Timer } from '@aztec/foundation/timer';
|
|
5
|
+
import { ProvingError } from '@aztec/stdlib/errors';
|
|
5
6
|
|
|
6
7
|
import type { UltraHonkFlavor } from '../honk.js';
|
|
7
8
|
|
|
@@ -84,8 +85,13 @@ export class BBJsInstance implements BBJsApi {
|
|
|
84
85
|
if (threads !== undefined) {
|
|
85
86
|
options.threads = threads;
|
|
86
87
|
}
|
|
87
|
-
|
|
88
|
-
|
|
88
|
+
try {
|
|
89
|
+
return new BBJsInstance(await Barretenberg.new(options));
|
|
90
|
+
} catch (err) {
|
|
91
|
+
// bb startup failures are environmental (machine load, a wedged or dead bb process), never a
|
|
92
|
+
// property of the proof inputs, so the job is always safe to retry.
|
|
93
|
+
throw new ProvingError(`Failed to start bb process: ${err}`, err, /*retry*/ true);
|
|
94
|
+
}
|
|
89
95
|
}
|
|
90
96
|
|
|
91
97
|
/**
|
|
@@ -9,22 +9,31 @@ import {
|
|
|
9
9
|
convertPrivateKernelInit2OutputsFromWitnessMapWithAbi,
|
|
10
10
|
convertPrivateKernelInit3InputsToWitnessMapWithAbi,
|
|
11
11
|
convertPrivateKernelInit3OutputsFromWitnessMapWithAbi,
|
|
12
|
+
convertPrivateKernelInit4InputsToWitnessMapWithAbi,
|
|
13
|
+
convertPrivateKernelInit4OutputsFromWitnessMapWithAbi,
|
|
14
|
+
convertPrivateKernelInit5InputsToWitnessMapWithAbi,
|
|
15
|
+
convertPrivateKernelInit5OutputsFromWitnessMapWithAbi,
|
|
12
16
|
convertPrivateKernelInitInputsToWitnessMapWithAbi,
|
|
13
17
|
convertPrivateKernelInitOutputsFromWitnessMapWithAbi,
|
|
14
18
|
convertPrivateKernelInner2InputsToWitnessMapWithAbi,
|
|
15
19
|
convertPrivateKernelInner2OutputsFromWitnessMapWithAbi,
|
|
16
20
|
convertPrivateKernelInner3InputsToWitnessMapWithAbi,
|
|
17
21
|
convertPrivateKernelInner3OutputsFromWitnessMapWithAbi,
|
|
22
|
+
convertPrivateKernelInner4InputsToWitnessMapWithAbi,
|
|
23
|
+
convertPrivateKernelInner4OutputsFromWitnessMapWithAbi,
|
|
24
|
+
convertPrivateKernelInner5InputsToWitnessMapWithAbi,
|
|
25
|
+
convertPrivateKernelInner5OutputsFromWitnessMapWithAbi,
|
|
18
26
|
convertPrivateKernelInnerInputsToWitnessMapWithAbi,
|
|
19
27
|
convertPrivateKernelInnerOutputsFromWitnessMapWithAbi,
|
|
20
28
|
convertPrivateKernelResetInputsToWitnessMapWithAbi,
|
|
21
29
|
convertPrivateKernelResetOutputsFromWitnessMapWithAbi,
|
|
30
|
+
convertPrivateKernelResetTailInputsToWitnessMapWithAbi,
|
|
31
|
+
convertPrivateKernelResetTailToPublicInputsToWitnessMapWithAbi,
|
|
22
32
|
convertPrivateKernelTailForPublicOutputsFromWitnessMapWithAbi,
|
|
23
|
-
convertPrivateKernelTailInputsToWitnessMapWithAbi,
|
|
24
33
|
convertPrivateKernelTailOutputsFromWitnessMapWithAbi,
|
|
25
|
-
convertPrivateKernelTailToPublicInputsToWitnessMapWithAbi,
|
|
26
34
|
foreignCallHandler,
|
|
27
35
|
getPrivateKernelResetArtifactName,
|
|
36
|
+
getPrivateKernelResetTailArtifactName,
|
|
28
37
|
updateResetCircuitSampleInputs,
|
|
29
38
|
} from '@aztec/noir-protocol-circuits-types/client';
|
|
30
39
|
import {
|
|
@@ -42,13 +51,17 @@ import type {
|
|
|
42
51
|
PrivateKernelCircuitPublicInputs,
|
|
43
52
|
PrivateKernelInit2CircuitPrivateInputs,
|
|
44
53
|
PrivateKernelInit3CircuitPrivateInputs,
|
|
54
|
+
PrivateKernelInit4CircuitPrivateInputs,
|
|
55
|
+
PrivateKernelInit5CircuitPrivateInputs,
|
|
45
56
|
PrivateKernelInitCircuitPrivateInputs,
|
|
46
57
|
PrivateKernelInner2CircuitPrivateInputs,
|
|
47
58
|
PrivateKernelInner3CircuitPrivateInputs,
|
|
59
|
+
PrivateKernelInner4CircuitPrivateInputs,
|
|
60
|
+
PrivateKernelInner5CircuitPrivateInputs,
|
|
48
61
|
PrivateKernelInnerCircuitPrivateInputs,
|
|
49
62
|
PrivateKernelResetCircuitPrivateInputs,
|
|
63
|
+
PrivateKernelResetTailCircuitPrivateInputs,
|
|
50
64
|
PrivateKernelSimulateOutput,
|
|
51
|
-
PrivateKernelTailCircuitPrivateInputs,
|
|
52
65
|
PrivateKernelTailCircuitPublicInputs,
|
|
53
66
|
} from '@aztec/stdlib/kernel';
|
|
54
67
|
import type { NoirCompiledCircuitWithName } from '@aztec/stdlib/noir';
|
|
@@ -135,6 +148,50 @@ export abstract class BBPrivateKernelProver implements PrivateKernelProver {
|
|
|
135
148
|
);
|
|
136
149
|
}
|
|
137
150
|
|
|
151
|
+
public async generateInit4Output(
|
|
152
|
+
inputs: PrivateKernelInit4CircuitPrivateInputs,
|
|
153
|
+
): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>> {
|
|
154
|
+
return await this.generateCircuitOutput(
|
|
155
|
+
inputs,
|
|
156
|
+
'PrivateKernelInit4Artifact',
|
|
157
|
+
convertPrivateKernelInit4InputsToWitnessMapWithAbi,
|
|
158
|
+
convertPrivateKernelInit4OutputsFromWitnessMapWithAbi,
|
|
159
|
+
);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
public async simulateInit4(
|
|
163
|
+
inputs: PrivateKernelInit4CircuitPrivateInputs,
|
|
164
|
+
): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>> {
|
|
165
|
+
return await this.simulateCircuitOutput(
|
|
166
|
+
inputs,
|
|
167
|
+
'PrivateKernelInit4Artifact',
|
|
168
|
+
convertPrivateKernelInit4InputsToWitnessMapWithAbi,
|
|
169
|
+
convertPrivateKernelInit4OutputsFromWitnessMapWithAbi,
|
|
170
|
+
);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
public async generateInit5Output(
|
|
174
|
+
inputs: PrivateKernelInit5CircuitPrivateInputs,
|
|
175
|
+
): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>> {
|
|
176
|
+
return await this.generateCircuitOutput(
|
|
177
|
+
inputs,
|
|
178
|
+
'PrivateKernelInit5Artifact',
|
|
179
|
+
convertPrivateKernelInit5InputsToWitnessMapWithAbi,
|
|
180
|
+
convertPrivateKernelInit5OutputsFromWitnessMapWithAbi,
|
|
181
|
+
);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
public async simulateInit5(
|
|
185
|
+
inputs: PrivateKernelInit5CircuitPrivateInputs,
|
|
186
|
+
): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>> {
|
|
187
|
+
return await this.simulateCircuitOutput(
|
|
188
|
+
inputs,
|
|
189
|
+
'PrivateKernelInit5Artifact',
|
|
190
|
+
convertPrivateKernelInit5InputsToWitnessMapWithAbi,
|
|
191
|
+
convertPrivateKernelInit5OutputsFromWitnessMapWithAbi,
|
|
192
|
+
);
|
|
193
|
+
}
|
|
194
|
+
|
|
138
195
|
public async generateInnerOutput(
|
|
139
196
|
inputs: PrivateKernelInnerCircuitPrivateInputs,
|
|
140
197
|
): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>> {
|
|
@@ -201,6 +258,50 @@ export abstract class BBPrivateKernelProver implements PrivateKernelProver {
|
|
|
201
258
|
);
|
|
202
259
|
}
|
|
203
260
|
|
|
261
|
+
public async generateInner4Output(
|
|
262
|
+
inputs: PrivateKernelInner4CircuitPrivateInputs,
|
|
263
|
+
): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>> {
|
|
264
|
+
return await this.generateCircuitOutput(
|
|
265
|
+
inputs,
|
|
266
|
+
'PrivateKernelInner4Artifact',
|
|
267
|
+
convertPrivateKernelInner4InputsToWitnessMapWithAbi,
|
|
268
|
+
convertPrivateKernelInner4OutputsFromWitnessMapWithAbi,
|
|
269
|
+
);
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
public async simulateInner4(
|
|
273
|
+
inputs: PrivateKernelInner4CircuitPrivateInputs,
|
|
274
|
+
): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>> {
|
|
275
|
+
return await this.simulateCircuitOutput(
|
|
276
|
+
inputs,
|
|
277
|
+
'PrivateKernelInner4Artifact',
|
|
278
|
+
convertPrivateKernelInner4InputsToWitnessMapWithAbi,
|
|
279
|
+
convertPrivateKernelInner4OutputsFromWitnessMapWithAbi,
|
|
280
|
+
);
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
public async generateInner5Output(
|
|
284
|
+
inputs: PrivateKernelInner5CircuitPrivateInputs,
|
|
285
|
+
): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>> {
|
|
286
|
+
return await this.generateCircuitOutput(
|
|
287
|
+
inputs,
|
|
288
|
+
'PrivateKernelInner5Artifact',
|
|
289
|
+
convertPrivateKernelInner5InputsToWitnessMapWithAbi,
|
|
290
|
+
convertPrivateKernelInner5OutputsFromWitnessMapWithAbi,
|
|
291
|
+
);
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
public async simulateInner5(
|
|
295
|
+
inputs: PrivateKernelInner5CircuitPrivateInputs,
|
|
296
|
+
): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>> {
|
|
297
|
+
return await this.simulateCircuitOutput(
|
|
298
|
+
inputs,
|
|
299
|
+
'PrivateKernelInner5Artifact',
|
|
300
|
+
convertPrivateKernelInner5InputsToWitnessMapWithAbi,
|
|
301
|
+
convertPrivateKernelInner5OutputsFromWitnessMapWithAbi,
|
|
302
|
+
);
|
|
303
|
+
}
|
|
304
|
+
|
|
204
305
|
public async generateResetOutput(
|
|
205
306
|
inputs: PrivateKernelResetCircuitPrivateInputs,
|
|
206
307
|
): Promise<PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>> {
|
|
@@ -228,40 +329,42 @@ export abstract class BBPrivateKernelProver implements PrivateKernelProver {
|
|
|
228
329
|
);
|
|
229
330
|
}
|
|
230
331
|
|
|
231
|
-
public async
|
|
232
|
-
inputs:
|
|
332
|
+
public async generateResetTailOutput(
|
|
333
|
+
inputs: PrivateKernelResetTailCircuitPrivateInputs,
|
|
233
334
|
): Promise<PrivateKernelSimulateOutput<PrivateKernelTailCircuitPublicInputs>> {
|
|
335
|
+
const artifactName = getPrivateKernelResetTailArtifactName(inputs.dimensions, inputs.isForPublic());
|
|
234
336
|
if (!inputs.isForPublic()) {
|
|
235
337
|
return await this.generateCircuitOutput(
|
|
236
338
|
inputs,
|
|
237
|
-
|
|
238
|
-
|
|
339
|
+
artifactName,
|
|
340
|
+
convertPrivateKernelResetTailInputsToWitnessMapWithAbi,
|
|
239
341
|
convertPrivateKernelTailOutputsFromWitnessMapWithAbi,
|
|
240
342
|
);
|
|
241
343
|
}
|
|
242
344
|
return await this.generateCircuitOutput(
|
|
243
345
|
inputs,
|
|
244
|
-
|
|
245
|
-
|
|
346
|
+
artifactName,
|
|
347
|
+
convertPrivateKernelResetTailToPublicInputsToWitnessMapWithAbi,
|
|
246
348
|
convertPrivateKernelTailForPublicOutputsFromWitnessMapWithAbi,
|
|
247
349
|
);
|
|
248
350
|
}
|
|
249
351
|
|
|
250
|
-
public async
|
|
251
|
-
inputs:
|
|
352
|
+
public async simulateResetTail(
|
|
353
|
+
inputs: PrivateKernelResetTailCircuitPrivateInputs,
|
|
252
354
|
): Promise<PrivateKernelSimulateOutput<PrivateKernelTailCircuitPublicInputs>> {
|
|
355
|
+
const artifactName = getPrivateKernelResetTailArtifactName(inputs.dimensions, inputs.isForPublic());
|
|
253
356
|
if (!inputs.isForPublic()) {
|
|
254
357
|
return await this.simulateCircuitOutput(
|
|
255
358
|
inputs,
|
|
256
|
-
|
|
257
|
-
|
|
359
|
+
artifactName,
|
|
360
|
+
convertPrivateKernelResetTailInputsToWitnessMapWithAbi,
|
|
258
361
|
convertPrivateKernelTailOutputsFromWitnessMapWithAbi,
|
|
259
362
|
);
|
|
260
363
|
}
|
|
261
364
|
return await this.simulateCircuitOutput(
|
|
262
365
|
inputs,
|
|
263
|
-
|
|
264
|
-
|
|
366
|
+
artifactName,
|
|
367
|
+
convertPrivateKernelResetTailToPublicInputsToWitnessMapWithAbi,
|
|
265
368
|
convertPrivateKernelTailForPublicOutputsFromWitnessMapWithAbi,
|
|
266
369
|
);
|
|
267
370
|
}
|
|
@@ -384,6 +487,7 @@ export abstract class BBPrivateKernelProver implements PrivateKernelProver {
|
|
|
384
487
|
executionSteps.map(step => ungzip(step.bytecode)),
|
|
385
488
|
barretenberg,
|
|
386
489
|
executionSteps.map(step => step.functionName),
|
|
490
|
+
executionSteps.map(step => step.kind),
|
|
387
491
|
);
|
|
388
492
|
|
|
389
493
|
// Use compressed prove path to get both proof fields and compressed proof bytes
|
|
@@ -410,13 +514,17 @@ export abstract class BBPrivateKernelProver implements PrivateKernelProver {
|
|
|
410
514
|
return proofWithPubInputs;
|
|
411
515
|
}
|
|
412
516
|
|
|
413
|
-
public async computeGateCountForCircuit(
|
|
517
|
+
public async computeGateCountForCircuit(
|
|
518
|
+
_bytecode: Buffer,
|
|
519
|
+
_circuitName: string,
|
|
520
|
+
_circuitKind: PrivateExecutionStep['kind'],
|
|
521
|
+
): Promise<number> {
|
|
414
522
|
// Note we do not pass the vk to the backend. This is unneeded for gate counts.
|
|
415
523
|
const barretenberg = await Barretenberg.initSingleton({
|
|
416
524
|
...this.options,
|
|
417
525
|
logger: this.options.logger?.[(process.env.LOG_LEVEL as LogLevel) || 'verbose'],
|
|
418
526
|
});
|
|
419
|
-
const backend = new AztecClientBackend([ungzip(_bytecode)], barretenberg, [_circuitName]);
|
|
527
|
+
const backend = new AztecClientBackend([ungzip(_bytecode)], barretenberg, [_circuitName], [_circuitKind]);
|
|
420
528
|
const gateCount = await backend.gates();
|
|
421
529
|
return gateCount[0];
|
|
422
530
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
2
|
+
AVM_V2_PROOF_LENGTH_IN_FIELDS,
|
|
3
3
|
NESTED_RECURSIVE_PROOF_LENGTH,
|
|
4
4
|
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
5
5
|
PAIRING_POINTS_SIZE,
|
|
@@ -177,9 +177,7 @@ export class BBNativeRollupProver implements ServerCircuitProver {
|
|
|
177
177
|
@trackSpan('BBNativeRollupProver.getAvmProof', inputs => ({
|
|
178
178
|
[Attributes.APP_CIRCUIT_NAME]: inputs.hints.tx.hash,
|
|
179
179
|
}))
|
|
180
|
-
public async getAvmProof(
|
|
181
|
-
inputs: AvmCircuitInputs,
|
|
182
|
-
): Promise<RecursiveProof<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>> {
|
|
180
|
+
public async getAvmProof(inputs: AvmCircuitInputs): Promise<RecursiveProof<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS>> {
|
|
183
181
|
const proof = await this.createAvmProof(inputs);
|
|
184
182
|
await this.verifyAvmProof(proof.binaryProof, inputs.publicInputs);
|
|
185
183
|
return proof;
|
|
@@ -499,7 +497,9 @@ export class BBNativeRollupProver implements ServerCircuitProver {
|
|
|
499
497
|
getUltraHonkFlavorForCircuit(circuitType),
|
|
500
498
|
);
|
|
501
499
|
} catch (error) {
|
|
502
|
-
|
|
500
|
+
// Preserve retryability of the underlying failure (e.g. a transient bb startup error).
|
|
501
|
+
const retry = error instanceof ProvingError && error.retry;
|
|
502
|
+
throw new ProvingError(`Failed to generate proof for ${circuitType}: ${error}`, error, retry);
|
|
503
503
|
}
|
|
504
504
|
|
|
505
505
|
return {
|
|
@@ -508,9 +508,7 @@ export class BBNativeRollupProver implements ServerCircuitProver {
|
|
|
508
508
|
};
|
|
509
509
|
}
|
|
510
510
|
|
|
511
|
-
private async createAvmProof(
|
|
512
|
-
input: AvmCircuitInputs,
|
|
513
|
-
): Promise<RecursiveProof<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>> {
|
|
511
|
+
private async createAvmProof(input: AvmCircuitInputs): Promise<RecursiveProof<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS>> {
|
|
514
512
|
logger.info(`Proving avm-circuit for TX ${input.hints.tx.hash}...`);
|
|
515
513
|
|
|
516
514
|
const inputsBuffer = input.serializeWithMessagePack();
|
|
@@ -520,20 +518,14 @@ export class BBNativeRollupProver implements ServerCircuitProver {
|
|
|
520
518
|
// Convert Uint8Array[] (32-byte field elements) to Fr[]
|
|
521
519
|
const proofFields = proofFieldArrays.map(f => Fr.fromBuffer(Buffer.from(f)));
|
|
522
520
|
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
throw new Error(
|
|
526
|
-
`Proof has ${proofFields.length} fields, expected no more than ${AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED}.`,
|
|
527
|
-
);
|
|
521
|
+
if (proofFields.length !== AVM_V2_PROOF_LENGTH_IN_FIELDS) {
|
|
522
|
+
throw new Error(`Proof has ${proofFields.length} fields, expected exactly ${AVM_V2_PROOF_LENGTH_IN_FIELDS}.`);
|
|
528
523
|
}
|
|
529
|
-
const proofFieldsPadded = proofFields.concat(
|
|
530
|
-
Array(AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED - proofFields.length).fill(new Fr(0)),
|
|
531
|
-
);
|
|
532
524
|
|
|
533
525
|
// Build the binary proof from the raw field data
|
|
534
526
|
const rawProofBuffer = Buffer.concat(proofFieldArrays.map(f => Buffer.from(f)));
|
|
535
527
|
const binaryProof = new Proof(rawProofBuffer, /*numPublicInputs=*/ 0);
|
|
536
|
-
const avmProof = new RecursiveProof(
|
|
528
|
+
const avmProof = new RecursiveProof(proofFields, binaryProof, true, AVM_V2_PROOF_LENGTH_IN_FIELDS);
|
|
537
529
|
|
|
538
530
|
const circuitType = 'avm-circuit' as const;
|
|
539
531
|
const appCircuitName = 'unknown' as const;
|
|
@@ -645,7 +637,9 @@ export class BBNativeRollupProver implements ServerCircuitProver {
|
|
|
645
637
|
flavor,
|
|
646
638
|
));
|
|
647
639
|
} catch (error) {
|
|
648
|
-
|
|
640
|
+
// Preserve retryability of the underlying failure (e.g. a transient bb startup error).
|
|
641
|
+
const retry = error instanceof ProvingError && error.retry;
|
|
642
|
+
throw new ProvingError(`Failed to verify proof for ${circuitType}: ${error}`, error, retry);
|
|
649
643
|
}
|
|
650
644
|
|
|
651
645
|
if (!verified) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
2
|
+
AVM_V2_PROOF_LENGTH_IN_FIELDS,
|
|
3
3
|
NESTED_RECURSIVE_PROOF_LENGTH,
|
|
4
4
|
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
5
5
|
RECURSIVE_PROOF_LENGTH,
|
|
@@ -402,13 +402,11 @@ export class TestCircuitProver implements ServerCircuitProver {
|
|
|
402
402
|
);
|
|
403
403
|
}
|
|
404
404
|
|
|
405
|
-
public getAvmProof(_inputs: AvmCircuitInputs): Promise<RecursiveProof<typeof
|
|
405
|
+
public getAvmProof(_inputs: AvmCircuitInputs): Promise<RecursiveProof<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS>> {
|
|
406
406
|
// We can't simulate the AVM because we don't have enough context to do so (e.g., DBs).
|
|
407
407
|
// We just return an empty proof.
|
|
408
408
|
this.logger.debug('Skipping AVM simulation in TestCircuitProver.');
|
|
409
|
-
return this.applyDelay(ProvingRequestType.PUBLIC_VM, () =>
|
|
410
|
-
makeEmptyRecursiveProof(AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED),
|
|
411
|
-
);
|
|
409
|
+
return this.applyDelay(ProvingRequestType.PUBLIC_VM, () => makeEmptyRecursiveProof(AVM_V2_PROOF_LENGTH_IN_FIELDS));
|
|
412
410
|
}
|
|
413
411
|
|
|
414
412
|
private async applyDelay<F extends () => any>(type: ProvingRequestType, fn: F): Promise<Awaited<ReturnType<F>>> {
|