@aztec/bb-prover 3.0.0-nightly.20250918 → 3.0.0-nightly.20250919
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/bb/execute.js +2 -2
- package/dest/honk.d.ts +1 -1
- package/dest/honk.js +2 -2
- package/dest/prover/client/bb_private_kernel_prover.d.ts +1 -1
- package/dest/prover/client/bb_private_kernel_prover.d.ts.map +1 -1
- package/dest/prover/client/bb_private_kernel_prover.js +1 -1
- package/dest/prover/server/bb_prover.d.ts +7 -7
- package/dest/prover/server/bb_prover.d.ts.map +1 -1
- package/dest/prover/server/bb_prover.js +12 -12
- package/dest/test/delay_values.js +10 -10
- package/dest/test/test_circuit_prover.d.ts +7 -7
- package/dest/test/test_circuit_prover.d.ts.map +1 -1
- package/dest/test/test_circuit_prover.js +16 -16
- package/dest/verifier/bb_verifier.d.ts +1 -1
- package/dest/verifier/bb_verifier.d.ts.map +1 -1
- package/dest/verifier/bb_verifier.js +1 -1
- package/package.json +16 -16
- package/src/bb/execute.ts +2 -2
- package/src/honk.ts +1 -1
- package/src/prover/client/bb_private_kernel_prover.ts +5 -3
- package/src/prover/server/bb_prover.ts +44 -50
- package/src/test/delay_values.ts +10 -10
- package/src/test/test_circuit_prover.ts +50 -56
- package/src/verifier/bb_verifier.ts +5 -5
- package/dest/stats.d.ts +0 -4
- package/dest/stats.d.ts.map +0 -1
- package/dest/stats.js +0 -57
- package/src/stats.ts +0 -59
package/dest/bb/execute.js
CHANGED
|
@@ -212,7 +212,7 @@ function getArgs(flavor) {
|
|
|
212
212
|
reason: `Working directory ${workingDirectory} does not exist`
|
|
213
213
|
};
|
|
214
214
|
}
|
|
215
|
-
// The bytecode is written to e.g. /workingDirectory/
|
|
215
|
+
// The bytecode is written to e.g. /workingDirectory/ParityBaseArtifact-bytecode
|
|
216
216
|
const bytecodePath = `${workingDirectory}/${circuitName}-bytecode`;
|
|
217
217
|
const vkPath = `${workingDirectory}/${circuitName}-vk`;
|
|
218
218
|
// The proof is written to e.g. /workingDirectory/ultra_honk/proof
|
|
@@ -583,7 +583,7 @@ export async function generateContractForVerificationKey(pathToBB, vkFilePath, c
|
|
|
583
583
|
reason: `Working directory ${workingDirectory} does not exist`
|
|
584
584
|
};
|
|
585
585
|
}
|
|
586
|
-
// The bytecode is written to e.g. /workingDirectory/
|
|
586
|
+
// The bytecode is written to e.g. /workingDirectory/ParityBaseArtifact-bytecode
|
|
587
587
|
const bytecodePath = `${workingDirectory}/${circuitName}-bytecode`;
|
|
588
588
|
const binaryPresent = await fs.access(pathToBB, fs.constants.R_OK).then((_)=>true).catch((_)=>false);
|
|
589
589
|
if (!binaryPresent) {
|
package/dest/honk.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ServerProtocolArtifact } from '@aztec/noir-protocol-circuits-types/server';
|
|
2
2
|
export type UltraHonkFlavor = 'ultra_honk' | 'ultra_keccak_honk' | 'ultra_starknet_honk' | 'ultra_rollup_honk';
|
|
3
3
|
declare const UltraKeccakHonkCircuits: ["RootRollupArtifact"];
|
|
4
|
-
declare const UltraHonkCircuits: ["
|
|
4
|
+
declare const UltraHonkCircuits: ["ParityBaseArtifact", "ParityRootArtifact"];
|
|
5
5
|
export type UltraKeccakHonkServerProtocolArtifact = (typeof UltraKeccakHonkCircuits)[number];
|
|
6
6
|
export type UltraHonkServerProtocolArtifact = (typeof UltraHonkCircuits)[number];
|
|
7
7
|
export type UltraRollupHonkServerProtocolArtifact = Exclude<Exclude<ServerProtocolArtifact, UltraKeccakHonkServerProtocolArtifact>, UltraHonkServerProtocolArtifact>;
|
package/dest/honk.js
CHANGED
|
@@ -2,8 +2,8 @@ const UltraKeccakHonkCircuits = [
|
|
|
2
2
|
'RootRollupArtifact'
|
|
3
3
|
];
|
|
4
4
|
const UltraHonkCircuits = [
|
|
5
|
-
'
|
|
6
|
-
'
|
|
5
|
+
'ParityBaseArtifact',
|
|
6
|
+
'ParityRootArtifact'
|
|
7
7
|
];
|
|
8
8
|
export function getUltraHonkFlavorForCircuit(artifact) {
|
|
9
9
|
// STARKNET: how to allow for the distinction between keccak/starknet? ultra_keccak_honk is returned in both cases
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ArtifactProvider, type ClientProtocolArtifact } from '@aztec/noir-protocol-circuits-types/types';
|
|
2
2
|
import type { Abi, WitnessMap } from '@aztec/noir-types';
|
|
3
3
|
import type { CircuitSimulator } from '@aztec/simulator/client';
|
|
4
4
|
import type { PrivateKernelProver } from '@aztec/stdlib/interfaces/client';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bb_private_kernel_prover.d.ts","sourceRoot":"","sources":["../../../src/prover/client/bb_private_kernel_prover.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,
|
|
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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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createLogger } from '@aztec/foundation/log';
|
|
2
2
|
import { convertHidingKernelPublicInputsToWitnessMapWithAbi, convertHidingKernelToRollupInputsToWitnessMapWithAbi, convertPrivateKernelInitInputsToWitnessMapWithAbi, convertPrivateKernelInitOutputsFromWitnessMapWithAbi, convertPrivateKernelInnerInputsToWitnessMapWithAbi, convertPrivateKernelInnerOutputsFromWitnessMapWithAbi, convertPrivateKernelResetInputsToWitnessMapWithAbi, convertPrivateKernelResetOutputsFromWitnessMapWithAbi, convertPrivateKernelTailForPublicOutputsFromWitnessMapWithAbi, convertPrivateKernelTailInputsToWitnessMapWithAbi, convertPrivateKernelTailOutputsFromWitnessMapWithAbi, convertPrivateKernelTailToPublicInputsToWitnessMapWithAbi, foreignCallHandler, getPrivateKernelResetArtifactName, updateResetCircuitSampleInputs } from '@aztec/noir-protocol-circuits-types/client';
|
|
3
|
-
import { mapProtocolArtifactNameToCircuitName } from '
|
|
3
|
+
import { mapProtocolArtifactNameToCircuitName } from '@aztec/noir-protocol-circuits-types/types';
|
|
4
4
|
export class BBPrivateKernelProver {
|
|
5
5
|
artifactProvider;
|
|
6
6
|
simulator;
|
|
@@ -3,9 +3,9 @@ import { type ServerProtocolArtifact } from '@aztec/noir-protocol-circuits-types
|
|
|
3
3
|
import type { AvmCircuitInputs, AvmCircuitPublicInputs } from '@aztec/stdlib/avm';
|
|
4
4
|
import { type ProofAndVerificationKey, type PublicInputsAndRecursiveProof, type ServerCircuitProver } from '@aztec/stdlib/interfaces/server';
|
|
5
5
|
import type { PrivateToPublicKernelCircuitPublicInputs } from '@aztec/stdlib/kernel';
|
|
6
|
-
import type {
|
|
6
|
+
import type { ParityBasePrivateInputs, ParityPublicInputs, ParityRootPrivateInputs } from '@aztec/stdlib/parity';
|
|
7
7
|
import { Proof } from '@aztec/stdlib/proofs';
|
|
8
|
-
import {
|
|
8
|
+
import { BlockMergeRollupPrivateInputs, BlockRollupPublicInputs, BlockRootEmptyTxFirstRollupPrivateInputs, BlockRootFirstRollupPrivateInputs, BlockRootRollupPrivateInputs, BlockRootSingleTxFirstRollupPrivateInputs, BlockRootSingleTxRollupPrivateInputs, CheckpointMergeRollupPrivateInputs, CheckpointPaddingRollupPrivateInputs, CheckpointRollupPublicInputs, CheckpointRootRollupPrivateInputs, CheckpointRootSingleBlockRollupPrivateInputs, type PrivateTxBaseRollupPrivateInputs, PublicTubePrivateInputs, PublicTxBaseRollupPrivateInputs, type RootRollupPrivateInputs, type RootRollupPublicInputs, type TxMergeRollupPrivateInputs, type TxRollupPublicInputs } from '@aztec/stdlib/rollup';
|
|
9
9
|
import type { VerificationKeyData } from '@aztec/stdlib/vks';
|
|
10
10
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
11
11
|
import type { ACVMConfig, BBConfig } from '../../config.js';
|
|
@@ -27,13 +27,13 @@ export declare class BBNativeRollupProver implements ServerCircuitProver {
|
|
|
27
27
|
* @param inputs - Inputs to the circuit.
|
|
28
28
|
* @returns The public inputs of the parity circuit.
|
|
29
29
|
*/
|
|
30
|
-
getBaseParityProof(inputs:
|
|
30
|
+
getBaseParityProof(inputs: ParityBasePrivateInputs): Promise<PublicInputsAndRecursiveProof<ParityPublicInputs, typeof RECURSIVE_PROOF_LENGTH>>;
|
|
31
31
|
/**
|
|
32
32
|
* Simulates the root parity circuit from its inputs.
|
|
33
33
|
* @param inputs - Inputs to the circuit.
|
|
34
34
|
* @returns The public inputs of the parity circuit.
|
|
35
35
|
*/
|
|
36
|
-
getRootParityProof(inputs:
|
|
36
|
+
getRootParityProof(inputs: ParityRootPrivateInputs): Promise<PublicInputsAndRecursiveProof<ParityPublicInputs, typeof NESTED_RECURSIVE_PROOF_LENGTH>>;
|
|
37
37
|
/**
|
|
38
38
|
* Creates an AVM proof and verifies it.
|
|
39
39
|
* @param inputs - The inputs to the AVM circuit.
|
|
@@ -46,19 +46,19 @@ export declare class BBNativeRollupProver implements ServerCircuitProver {
|
|
|
46
46
|
* @param inputs - Inputs to the circuit.
|
|
47
47
|
* @returns The public inputs as outputs of the simulation.
|
|
48
48
|
*/
|
|
49
|
-
|
|
49
|
+
getPrivateTxBaseRollupProof(inputs: PrivateTxBaseRollupPrivateInputs): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
50
50
|
/**
|
|
51
51
|
* Requests that the public kernel tail circuit be executed and the proof generated
|
|
52
52
|
* @param kernelRequest - The object encapsulating the request for a proof
|
|
53
53
|
* @returns The requested circuit's public inputs and proof
|
|
54
54
|
*/
|
|
55
|
-
|
|
55
|
+
getPublicTxBaseRollupProof(inputs: PublicTxBaseRollupPrivateInputs): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
56
56
|
/**
|
|
57
57
|
* Simulates the merge rollup circuit from its inputs.
|
|
58
58
|
* @param input - Inputs to the circuit.
|
|
59
59
|
* @returns The public inputs as outputs of the simulation.
|
|
60
60
|
*/
|
|
61
|
-
|
|
61
|
+
getTxMergeRollupProof(input: TxMergeRollupPrivateInputs): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
62
62
|
getBlockRootFirstRollupProof(input: BlockRootFirstRollupPrivateInputs): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
63
63
|
getBlockRootSingleTxFirstRollupProof(input: BlockRootSingleTxFirstRollupPrivateInputs): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
64
64
|
getBlockRootEmptyTxFirstRollupProof(input: BlockRootEmptyTxFirstRollupPrivateInputs): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bb_prover.d.ts","sourceRoot":"","sources":["../../../src/prover/server/bb_prover.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,EACpC,6BAA6B,EAC7B,yCAAyC,EAEzC,sBAAsB,EAEvB,MAAM,kBAAkB,CAAC;AAK1B,OAAO,EACL,KAAK,sBAAsB,EAoC5B,MAAM,4CAA4C,CAAC;
|
|
1
|
+
{"version":3,"file":"bb_prover.d.ts","sourceRoot":"","sources":["../../../src/prover/server/bb_prover.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,8 +9,9 @@ import { Fr } from '@aztec/foundation/fields';
|
|
|
9
9
|
import { runInDirectory } from '@aztec/foundation/fs';
|
|
10
10
|
import { createLogger } from '@aztec/foundation/log';
|
|
11
11
|
import { BufferReader } from '@aztec/foundation/serialize';
|
|
12
|
-
import {
|
|
12
|
+
import { convertBlockMergeRollupOutputsFromWitnessMap, convertBlockMergeRollupPrivateInputsToWitnessMap, convertBlockRootEmptyTxFirstRollupOutputsFromWitnessMap, convertBlockRootEmptyTxFirstRollupPrivateInputsToWitnessMap, convertBlockRootFirstRollupOutputsFromWitnessMap, convertBlockRootFirstRollupPrivateInputsToWitnessMap, convertBlockRootRollupOutputsFromWitnessMap, convertBlockRootRollupPrivateInputsToWitnessMap, convertBlockRootSingleTxFirstRollupOutputsFromWitnessMap, convertBlockRootSingleTxFirstRollupPrivateInputsToWitnessMap, convertBlockRootSingleTxRollupOutputsFromWitnessMap, convertBlockRootSingleTxRollupPrivateInputsToWitnessMap, convertCheckpointMergeRollupOutputsFromWitnessMap, convertCheckpointMergeRollupPrivateInputsToWitnessMap, convertCheckpointPaddingRollupOutputsFromWitnessMap, convertCheckpointPaddingRollupPrivateInputsToWitnessMap, convertCheckpointRootRollupOutputsFromWitnessMap, convertCheckpointRootRollupPrivateInputsToWitnessMap, convertCheckpointRootSingleBlockRollupOutputsFromWitnessMap, convertCheckpointRootSingleBlockRollupPrivateInputsToWitnessMap, convertParityBaseOutputsFromWitnessMap, convertParityBasePrivateInputsToWitnessMap, convertParityRootOutputsFromWitnessMap, convertParityRootPrivateInputsToWitnessMap, convertPrivateTxBaseRollupOutputsFromWitnessMap, convertPrivateTxBaseRollupPrivateInputsToWitnessMap, convertPublicTubeOutputsFromWitnessMap, convertPublicTubePrivateInputsToWitnessMap, convertPublicTxBaseRollupOutputsFromWitnessMap, convertPublicTxBaseRollupPrivateInputsToWitnessMap, convertRootRollupOutputsFromWitnessMap, convertRootRollupPrivateInputsToWitnessMap, convertTxMergeRollupOutputsFromWitnessMap, convertTxMergeRollupPrivateInputsToWitnessMap, getServerCircuitArtifact } from '@aztec/noir-protocol-circuits-types/server';
|
|
13
13
|
import { ServerCircuitVks } from '@aztec/noir-protocol-circuits-types/server/vks';
|
|
14
|
+
import { mapProtocolArtifactNameToCircuitName } from '@aztec/noir-protocol-circuits-types/types';
|
|
14
15
|
import { NativeACVMSimulator } from '@aztec/simulator/server';
|
|
15
16
|
import { ProvingError } from '@aztec/stdlib/errors';
|
|
16
17
|
import { makeProofAndVerificationKey, makePublicInputsAndRecursiveProof } from '@aztec/stdlib/interfaces/server';
|
|
@@ -22,7 +23,6 @@ import * as path from 'path';
|
|
|
22
23
|
import { BB_RESULT, PROOF_FILENAME, PUBLIC_INPUTS_FILENAME, VK_FILENAME, generateAvmProof, generateProof, verifyAvmProof, verifyProof } from '../../bb/execute.js';
|
|
23
24
|
import { getUltraHonkFlavorForCircuit } from '../../honk.js';
|
|
24
25
|
import { ProverInstrumentation } from '../../instrumentation.js';
|
|
25
|
-
import { mapProtocolArtifactNameToCircuitName } from '../../stats.js';
|
|
26
26
|
import { extractAvmVkData } from '../../verification_key/verification_key_data.js';
|
|
27
27
|
import { readProofsFromOutputDirectory } from '../proof_utils.js';
|
|
28
28
|
const logger = createLogger('bb-prover');
|
|
@@ -56,14 +56,14 @@ const logger = createLogger('bb-prover');
|
|
|
56
56
|
* @param inputs - Inputs to the circuit.
|
|
57
57
|
* @returns The public inputs of the parity circuit.
|
|
58
58
|
*/ getBaseParityProof(inputs) {
|
|
59
|
-
return this.createRecursiveProofAndVerify(inputs, '
|
|
59
|
+
return this.createRecursiveProofAndVerify(inputs, 'ParityBaseArtifact', RECURSIVE_PROOF_LENGTH, convertParityBasePrivateInputsToWitnessMap, convertParityBaseOutputsFromWitnessMap);
|
|
60
60
|
}
|
|
61
61
|
/**
|
|
62
62
|
* Simulates the root parity circuit from its inputs.
|
|
63
63
|
* @param inputs - Inputs to the circuit.
|
|
64
64
|
* @returns The public inputs of the parity circuit.
|
|
65
65
|
*/ getRootParityProof(inputs) {
|
|
66
|
-
return this.createRecursiveProofAndVerify(inputs, '
|
|
66
|
+
return this.createRecursiveProofAndVerify(inputs, 'ParityRootArtifact', NESTED_RECURSIVE_PROOF_LENGTH, convertParityRootPrivateInputsToWitnessMap, convertParityRootOutputsFromWitnessMap);
|
|
67
67
|
}
|
|
68
68
|
/**
|
|
69
69
|
* Creates an AVM proof and verifies it.
|
|
@@ -87,22 +87,22 @@ const logger = createLogger('bb-prover');
|
|
|
87
87
|
* Simulates the base rollup circuit from its inputs.
|
|
88
88
|
* @param inputs - Inputs to the circuit.
|
|
89
89
|
* @returns The public inputs as outputs of the simulation.
|
|
90
|
-
*/
|
|
91
|
-
return this.createRecursiveProofAndVerify(inputs, '
|
|
90
|
+
*/ getPrivateTxBaseRollupProof(inputs) {
|
|
91
|
+
return this.createRecursiveProofAndVerify(inputs, 'PrivateTxBaseRollupArtifact', NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, convertPrivateTxBaseRollupPrivateInputsToWitnessMap, convertPrivateTxBaseRollupOutputsFromWitnessMap);
|
|
92
92
|
}
|
|
93
93
|
/**
|
|
94
94
|
* Requests that the public kernel tail circuit be executed and the proof generated
|
|
95
95
|
* @param kernelRequest - The object encapsulating the request for a proof
|
|
96
96
|
* @returns The requested circuit's public inputs and proof
|
|
97
|
-
*/
|
|
98
|
-
return this.createRecursiveProofAndVerify(inputs, '
|
|
97
|
+
*/ getPublicTxBaseRollupProof(inputs) {
|
|
98
|
+
return this.createRecursiveProofAndVerify(inputs, 'PublicTxBaseRollupArtifact', NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, convertPublicTxBaseRollupPrivateInputsToWitnessMap, convertPublicTxBaseRollupOutputsFromWitnessMap);
|
|
99
99
|
}
|
|
100
100
|
/**
|
|
101
101
|
* Simulates the merge rollup circuit from its inputs.
|
|
102
102
|
* @param input - Inputs to the circuit.
|
|
103
103
|
* @returns The public inputs as outputs of the simulation.
|
|
104
|
-
*/
|
|
105
|
-
return this.createRecursiveProofAndVerify(input, '
|
|
104
|
+
*/ getTxMergeRollupProof(input) {
|
|
105
|
+
return this.createRecursiveProofAndVerify(input, 'TxMergeRollupArtifact', NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, convertTxMergeRollupPrivateInputsToWitnessMap, convertTxMergeRollupOutputsFromWitnessMap);
|
|
106
106
|
}
|
|
107
107
|
getBlockRootFirstRollupProof(input) {
|
|
108
108
|
return this.createRecursiveProofAndVerify(input, 'BlockRootFirstRollupArtifact', NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, convertBlockRootFirstRollupPrivateInputsToWitnessMap, convertBlockRootFirstRollupOutputsFromWitnessMap);
|
|
@@ -324,12 +324,12 @@ const logger = createLogger('bb-prover');
|
|
|
324
324
|
}
|
|
325
325
|
_ts_decorate([
|
|
326
326
|
trackSpan('BBNativeRollupProver.getBaseParityProof', {
|
|
327
|
-
[Attributes.PROTOCOL_CIRCUIT_NAME]: 'base
|
|
327
|
+
[Attributes.PROTOCOL_CIRCUIT_NAME]: 'parity-base'
|
|
328
328
|
})
|
|
329
329
|
], BBNativeRollupProver.prototype, "getBaseParityProof", null);
|
|
330
330
|
_ts_decorate([
|
|
331
331
|
trackSpan('BBNativeRollupProver.getRootParityProof', {
|
|
332
|
-
[Attributes.PROTOCOL_CIRCUIT_NAME]: 'root
|
|
332
|
+
[Attributes.PROTOCOL_CIRCUIT_NAME]: 'parity-root'
|
|
333
333
|
})
|
|
334
334
|
], BBNativeRollupProver.prototype, "getRootParityProof", null);
|
|
335
335
|
_ts_decorate([
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ProvingRequestType } from '@aztec/stdlib/proofs';
|
|
2
2
|
export const WITGEN_DELAY_MS = {
|
|
3
|
-
[ProvingRequestType.
|
|
3
|
+
[ProvingRequestType.PARITY_BASE]: 60,
|
|
4
4
|
[ProvingRequestType.BLOCK_MERGE_ROLLUP]: 650,
|
|
5
5
|
[ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP]: 60_000,
|
|
6
6
|
[ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP]: 40_000,
|
|
@@ -11,16 +11,16 @@ export const WITGEN_DELAY_MS = {
|
|
|
11
11
|
[ProvingRequestType.CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP]: 20_000,
|
|
12
12
|
[ProvingRequestType.CHECKPOINT_PADDING_ROLLUP]: 0,
|
|
13
13
|
[ProvingRequestType.CHECKPOINT_MERGE_ROLLUP]: 650,
|
|
14
|
-
[ProvingRequestType.
|
|
15
|
-
[ProvingRequestType.
|
|
16
|
-
[ProvingRequestType.
|
|
17
|
-
[ProvingRequestType.
|
|
14
|
+
[ProvingRequestType.TX_MERGE_ROLLUP]: 0,
|
|
15
|
+
[ProvingRequestType.PRIVATE_TX_BASE_ROLLUP]: 400_000,
|
|
16
|
+
[ProvingRequestType.PUBLIC_TX_BASE_ROLLUP]: 470_000,
|
|
17
|
+
[ProvingRequestType.PARITY_ROOT]: 100,
|
|
18
18
|
[ProvingRequestType.ROOT_ROLLUP]: 650,
|
|
19
19
|
[ProvingRequestType.PUBLIC_TUBE]: 0,
|
|
20
20
|
[ProvingRequestType.PUBLIC_VM]: 0
|
|
21
21
|
};
|
|
22
22
|
export const PROOF_DELAY_MS = {
|
|
23
|
-
[ProvingRequestType.
|
|
23
|
+
[ProvingRequestType.PARITY_BASE]: 3_000,
|
|
24
24
|
[ProvingRequestType.BLOCK_MERGE_ROLLUP]: 15_000,
|
|
25
25
|
[ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP]: 55_000,
|
|
26
26
|
[ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP]: 35_000,
|
|
@@ -31,10 +31,10 @@ export const PROOF_DELAY_MS = {
|
|
|
31
31
|
[ProvingRequestType.CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP]: 15_000,
|
|
32
32
|
[ProvingRequestType.CHECKPOINT_PADDING_ROLLUP]: 0,
|
|
33
33
|
[ProvingRequestType.CHECKPOINT_MERGE_ROLLUP]: 15_000,
|
|
34
|
-
[ProvingRequestType.
|
|
35
|
-
[ProvingRequestType.
|
|
36
|
-
[ProvingRequestType.
|
|
37
|
-
[ProvingRequestType.
|
|
34
|
+
[ProvingRequestType.TX_MERGE_ROLLUP]: 0,
|
|
35
|
+
[ProvingRequestType.PRIVATE_TX_BASE_ROLLUP]: 145_000,
|
|
36
|
+
[ProvingRequestType.PUBLIC_TX_BASE_ROLLUP]: 160_000,
|
|
37
|
+
[ProvingRequestType.PARITY_ROOT]: 30_000,
|
|
38
38
|
[ProvingRequestType.ROOT_ROLLUP]: 15_000,
|
|
39
39
|
[ProvingRequestType.PUBLIC_TUBE]: 30_000,
|
|
40
40
|
[ProvingRequestType.PUBLIC_VM]: 0
|
|
@@ -4,9 +4,9 @@ import { type CircuitSimulator } from '@aztec/simulator/server';
|
|
|
4
4
|
import type { AvmCircuitInputs } from '@aztec/stdlib/avm';
|
|
5
5
|
import { type ProofAndVerificationKey, type PublicInputsAndRecursiveProof, type ServerCircuitProver } from '@aztec/stdlib/interfaces/server';
|
|
6
6
|
import type { PrivateToPublicKernelCircuitPublicInputs } from '@aztec/stdlib/kernel';
|
|
7
|
-
import type {
|
|
7
|
+
import type { ParityBasePrivateInputs, ParityPublicInputs, ParityRootPrivateInputs } from '@aztec/stdlib/parity';
|
|
8
8
|
import { type Proof } from '@aztec/stdlib/proofs';
|
|
9
|
-
import type {
|
|
9
|
+
import type { BlockMergeRollupPrivateInputs, BlockRollupPublicInputs, BlockRootEmptyTxFirstRollupPrivateInputs, BlockRootFirstRollupPrivateInputs, BlockRootRollupPrivateInputs, BlockRootSingleTxFirstRollupPrivateInputs, BlockRootSingleTxRollupPrivateInputs, CheckpointMergeRollupPrivateInputs, CheckpointPaddingRollupPrivateInputs, CheckpointRollupPublicInputs, CheckpointRootRollupPrivateInputs, CheckpointRootSingleBlockRollupPrivateInputs, PrivateTxBaseRollupPrivateInputs, PublicTubePrivateInputs, PublicTxBaseRollupPrivateInputs, RootRollupPrivateInputs, RootRollupPublicInputs, TxMergeRollupPrivateInputs, TxRollupPublicInputs } from '@aztec/stdlib/rollup';
|
|
10
10
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
11
11
|
type TestDelay = {
|
|
12
12
|
proverTestDelayType: 'fixed';
|
|
@@ -32,22 +32,22 @@ export declare class TestCircuitProver implements ServerCircuitProver {
|
|
|
32
32
|
* @param inputs - Inputs to the circuit.
|
|
33
33
|
* @returns The public inputs of the parity circuit.
|
|
34
34
|
*/
|
|
35
|
-
getBaseParityProof(inputs:
|
|
35
|
+
getBaseParityProof(inputs: ParityBasePrivateInputs): Promise<PublicInputsAndRecursiveProof<ParityPublicInputs, typeof RECURSIVE_PROOF_LENGTH>>;
|
|
36
36
|
/**
|
|
37
37
|
* Simulates the root parity circuit from its inputs.
|
|
38
38
|
* @param inputs - Inputs to the circuit.
|
|
39
39
|
* @returns The public inputs of the parity circuit.
|
|
40
40
|
*/
|
|
41
|
-
getRootParityProof(inputs:
|
|
41
|
+
getRootParityProof(inputs: ParityRootPrivateInputs): Promise<PublicInputsAndRecursiveProof<ParityPublicInputs, typeof NESTED_RECURSIVE_PROOF_LENGTH>>;
|
|
42
42
|
getPublicTubeProof(inputs: PublicTubePrivateInputs): Promise<PublicInputsAndRecursiveProof<PrivateToPublicKernelCircuitPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
getPrivateTxBaseRollupProof(inputs: PrivateTxBaseRollupPrivateInputs): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
44
|
+
getPublicTxBaseRollupProof(inputs: PublicTxBaseRollupPrivateInputs): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
45
45
|
/**
|
|
46
46
|
* Simulates the merge rollup circuit from its inputs.
|
|
47
47
|
* @param input - Inputs to the circuit.
|
|
48
48
|
* @returns The public inputs as outputs of the simulation.
|
|
49
49
|
*/
|
|
50
|
-
|
|
50
|
+
getTxMergeRollupProof(input: TxMergeRollupPrivateInputs): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
51
51
|
getBlockRootFirstRollupProof(input: BlockRootFirstRollupPrivateInputs): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
52
52
|
getBlockRootSingleTxFirstRollupProof(input: BlockRootSingleTxFirstRollupPrivateInputs): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
53
53
|
getBlockRootEmptyTxFirstRollupProof(input: BlockRootEmptyTxFirstRollupPrivateInputs): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test_circuit_prover.d.ts","sourceRoot":"","sources":["../../src/test/test_circuit_prover.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,EAEpC,6BAA6B,EAC7B,yCAAyC,EACzC,sBAAsB,EACvB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EACL,KAAK,sBAAsB,EAmC5B,MAAM,4CAA4C,CAAC;
|
|
1
|
+
{"version":3,"file":"test_circuit_prover.d.ts","sourceRoot":"","sources":["../../src/test/test_circuit_prover.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,15 +8,15 @@ import { AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, AVM_V2_VERIFICATION_KEY_LENGTH_IN
|
|
|
8
8
|
import { createLogger } from '@aztec/foundation/log';
|
|
9
9
|
import { sleep } from '@aztec/foundation/sleep';
|
|
10
10
|
import { Timer } from '@aztec/foundation/timer';
|
|
11
|
-
import {
|
|
11
|
+
import { convertBlockMergeRollupOutputsFromWitnessMap, convertBlockMergeRollupPrivateInputsToWitnessMap, convertBlockRootEmptyTxFirstRollupOutputsFromWitnessMap, convertBlockRootEmptyTxFirstRollupPrivateInputsToWitnessMap, convertBlockRootFirstRollupOutputsFromWitnessMap, convertBlockRootFirstRollupPrivateInputsToWitnessMap, convertBlockRootRollupOutputsFromWitnessMap, convertBlockRootRollupPrivateInputsToWitnessMap, convertBlockRootSingleTxFirstRollupOutputsFromWitnessMap, convertBlockRootSingleTxFirstRollupPrivateInputsToWitnessMap, convertBlockRootSingleTxRollupOutputsFromWitnessMap, convertBlockRootSingleTxRollupPrivateInputsToWitnessMap, convertCheckpointMergeRollupOutputsFromWitnessMap, convertCheckpointMergeRollupPrivateInputsToWitnessMap, convertCheckpointPaddingRollupOutputsFromWitnessMap, convertCheckpointPaddingRollupPrivateInputsToWitnessMap, convertCheckpointRootRollupOutputsFromWitnessMap, convertCheckpointRootRollupPrivateInputsToWitnessMap, convertCheckpointRootSingleBlockRollupOutputsFromWitnessMap, convertCheckpointRootSingleBlockRollupPrivateInputsToWitnessMap, convertParityBaseOutputsFromWitnessMap, convertParityBasePrivateInputsToWitnessMap, convertParityRootOutputsFromWitnessMap, convertParityRootPrivateInputsToWitnessMap, convertPrivateTxBaseRollupOutputsFromWitnessMap, convertPrivateTxBaseRollupPrivateInputsToWitnessMap, convertPublicTxBaseRollupOutputsFromWitnessMap, convertPublicTxBaseRollupPrivateInputsToWitnessMap, convertRootRollupOutputsFromWitnessMap, convertRootRollupPrivateInputsToWitnessMap, convertTxMergeRollupOutputsFromWitnessMap, convertTxMergeRollupPrivateInputsToWitnessMap, foreignCallHandler, getSimulatedServerCircuitArtifact } from '@aztec/noir-protocol-circuits-types/server';
|
|
12
12
|
import { ProtocolCircuitVks } from '@aztec/noir-protocol-circuits-types/server/vks';
|
|
13
|
+
import { mapProtocolArtifactNameToCircuitName } from '@aztec/noir-protocol-circuits-types/types';
|
|
13
14
|
import { WASMSimulatorWithBlobs, emitCircuitSimulationStats } from '@aztec/simulator/server';
|
|
14
15
|
import { makeProofAndVerificationKey, makePublicInputsAndRecursiveProof } from '@aztec/stdlib/interfaces/server';
|
|
15
16
|
import { ProvingRequestType, makeEmptyRecursiveProof, makeRecursiveProof } from '@aztec/stdlib/proofs';
|
|
16
17
|
import { VerificationKeyData } from '@aztec/stdlib/vks';
|
|
17
18
|
import { getTelemetryClient, trackSpan } from '@aztec/telemetry-client';
|
|
18
19
|
import { ProverInstrumentation } from '../instrumentation.js';
|
|
19
|
-
import { mapProtocolArtifactNameToCircuitName } from '../stats.js';
|
|
20
20
|
import { PROOF_DELAY_MS, WITGEN_DELAY_MS } from './delay_values.js';
|
|
21
21
|
/**
|
|
22
22
|
* A class for use in testing situations (e2e, unit test, etc) and temporarily for assembling a block in the sequencer.
|
|
@@ -45,30 +45,30 @@ import { PROOF_DELAY_MS, WITGEN_DELAY_MS } from './delay_values.js';
|
|
|
45
45
|
* @param inputs - Inputs to the circuit.
|
|
46
46
|
* @returns The public inputs of the parity circuit.
|
|
47
47
|
*/ getBaseParityProof(inputs) {
|
|
48
|
-
return this.applyDelay(ProvingRequestType.
|
|
48
|
+
return this.applyDelay(ProvingRequestType.PARITY_BASE, ()=>this.simulate(inputs, 'ParityBaseArtifact', RECURSIVE_PROOF_LENGTH, convertParityBasePrivateInputsToWitnessMap, convertParityBaseOutputsFromWitnessMap));
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
51
51
|
* Simulates the root parity circuit from its inputs.
|
|
52
52
|
* @param inputs - Inputs to the circuit.
|
|
53
53
|
* @returns The public inputs of the parity circuit.
|
|
54
54
|
*/ getRootParityProof(inputs) {
|
|
55
|
-
return this.applyDelay(ProvingRequestType.
|
|
55
|
+
return this.applyDelay(ProvingRequestType.PARITY_ROOT, ()=>this.simulate(inputs, 'ParityRootArtifact', NESTED_RECURSIVE_PROOF_LENGTH, convertParityRootPrivateInputsToWitnessMap, convertParityRootOutputsFromWitnessMap));
|
|
56
56
|
}
|
|
57
57
|
getPublicTubeProof(inputs) {
|
|
58
58
|
return this.applyDelay(ProvingRequestType.PUBLIC_TUBE, ()=>makePublicInputsAndRecursiveProof(inputs.hidingKernelProofData.publicInputs, makeEmptyRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH), ProtocolCircuitVks.PublicTube));
|
|
59
59
|
}
|
|
60
|
-
|
|
61
|
-
return this.applyDelay(ProvingRequestType.
|
|
60
|
+
getPrivateTxBaseRollupProof(inputs) {
|
|
61
|
+
return this.applyDelay(ProvingRequestType.PRIVATE_TX_BASE_ROLLUP, ()=>this.simulate(inputs, 'PrivateTxBaseRollupArtifact', NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, convertPrivateTxBaseRollupPrivateInputsToWitnessMap, convertPrivateTxBaseRollupOutputsFromWitnessMap));
|
|
62
62
|
}
|
|
63
|
-
|
|
64
|
-
return this.applyDelay(ProvingRequestType.
|
|
63
|
+
getPublicTxBaseRollupProof(inputs) {
|
|
64
|
+
return this.applyDelay(ProvingRequestType.PUBLIC_TX_BASE_ROLLUP, ()=>this.simulate(inputs, 'PublicTxBaseRollupArtifact', NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, convertPublicTxBaseRollupPrivateInputsToWitnessMap, convertPublicTxBaseRollupOutputsFromWitnessMap));
|
|
65
65
|
}
|
|
66
66
|
/**
|
|
67
67
|
* Simulates the merge rollup circuit from its inputs.
|
|
68
68
|
* @param input - Inputs to the circuit.
|
|
69
69
|
* @returns The public inputs as outputs of the simulation.
|
|
70
|
-
*/
|
|
71
|
-
return this.applyDelay(ProvingRequestType.
|
|
70
|
+
*/ getTxMergeRollupProof(input) {
|
|
71
|
+
return this.applyDelay(ProvingRequestType.TX_MERGE_ROLLUP, ()=>this.simulate(input, 'TxMergeRollupArtifact', NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, convertTxMergeRollupPrivateInputsToWitnessMap, convertTxMergeRollupOutputsFromWitnessMap));
|
|
72
72
|
}
|
|
73
73
|
getBlockRootFirstRollupProof(input) {
|
|
74
74
|
return this.applyDelay(ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP, ()=>this.simulate(input, 'BlockRootFirstRollupArtifact', NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, convertBlockRootFirstRollupPrivateInputsToWitnessMap, convertBlockRootFirstRollupOutputsFromWitnessMap));
|
|
@@ -157,14 +157,14 @@ _ts_decorate([
|
|
|
157
157
|
trackSpan('TestCircuitProver.getRootParityProof')
|
|
158
158
|
], TestCircuitProver.prototype, "getRootParityProof", null);
|
|
159
159
|
_ts_decorate([
|
|
160
|
-
trackSpan('TestCircuitProver.
|
|
161
|
-
], TestCircuitProver.prototype, "
|
|
160
|
+
trackSpan('TestCircuitProver.getPrivateTxBaseRollupProof')
|
|
161
|
+
], TestCircuitProver.prototype, "getPrivateTxBaseRollupProof", null);
|
|
162
162
|
_ts_decorate([
|
|
163
|
-
trackSpan('TestCircuitProver.
|
|
164
|
-
], TestCircuitProver.prototype, "
|
|
163
|
+
trackSpan('TestCircuitProver.getPublicTxBaseRollupProof')
|
|
164
|
+
], TestCircuitProver.prototype, "getPublicTxBaseRollupProof", null);
|
|
165
165
|
_ts_decorate([
|
|
166
|
-
trackSpan('TestCircuitProver.
|
|
167
|
-
], TestCircuitProver.prototype, "
|
|
166
|
+
trackSpan('TestCircuitProver.getTxMergeRollupProof')
|
|
167
|
+
], TestCircuitProver.prototype, "getTxMergeRollupProof", null);
|
|
168
168
|
_ts_decorate([
|
|
169
169
|
trackSpan('TestCircuitProver.getBlockRootFirstRollupProof')
|
|
170
170
|
], TestCircuitProver.prototype, "getBlockRootFirstRollupProof", null);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Logger } from '@aztec/foundation/log';
|
|
2
|
-
import type
|
|
2
|
+
import { type ProtocolArtifact, type ServerProtocolArtifact } from '@aztec/noir-protocol-circuits-types/types';
|
|
3
3
|
import type { ClientProtocolCircuitVerifier, IVCProofVerificationResult } from '@aztec/stdlib/interfaces/server';
|
|
4
4
|
import type { Proof } from '@aztec/stdlib/proofs';
|
|
5
5
|
import { Tx } from '@aztec/stdlib/tx';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bb_verifier.d.ts","sourceRoot":"","sources":["../../src/verifier/bb_verifier.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAGlE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"bb_verifier.d.ts","sourceRoot":"","sources":["../../src/verifier/bb_verifier.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAGlE,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAE5B,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAAE,6BAA6B,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AACjH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAa7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAI7C,qBAAa,iBAAkB,YAAW,6BAA6B;IAEnE,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IAFhB,OAAO;IAKA,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;WAIR,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,SAAqC;IAK9E,sBAAsB,CAAC,OAAO,EAAE,gBAAgB,GAAG,mBAAmB;IAQhE,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,EAAE,KAAK,EAAE,KAAK;IAqCnE,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,0BAA0B,CAAC;CAkDtE"}
|
|
@@ -2,12 +2,12 @@ import { runInDirectory } from '@aztec/foundation/fs';
|
|
|
2
2
|
import { createLogger } from '@aztec/foundation/log';
|
|
3
3
|
import { Timer } from '@aztec/foundation/timer';
|
|
4
4
|
import { ProtocolCircuitVks } from '@aztec/noir-protocol-circuits-types/server/vks';
|
|
5
|
+
import { mapProtocolArtifactNameToCircuitName } from '@aztec/noir-protocol-circuits-types/types';
|
|
5
6
|
import { promises as fs } from 'fs';
|
|
6
7
|
import * as path from 'path';
|
|
7
8
|
import { BB_RESULT, PROOF_FILENAME, PUBLIC_INPUTS_FILENAME, VK_FILENAME, verifyClientIvcProof, verifyProof } from '../bb/execute.js';
|
|
8
9
|
import { getUltraHonkFlavorForCircuit } from '../honk.js';
|
|
9
10
|
import { writeClientIVCProofToPath } from '../prover/proof_utils.js';
|
|
10
|
-
import { mapProtocolArtifactNameToCircuitName } from '../stats.js';
|
|
11
11
|
export class BBCircuitVerifier {
|
|
12
12
|
config;
|
|
13
13
|
logger;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/bb-prover",
|
|
3
|
-
"version": "3.0.0-nightly.
|
|
3
|
+
"version": "3.0.0-nightly.20250919",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -69,27 +69,27 @@
|
|
|
69
69
|
]
|
|
70
70
|
},
|
|
71
71
|
"dependencies": {
|
|
72
|
-
"@aztec/bb.js": "3.0.0-nightly.
|
|
73
|
-
"@aztec/constants": "3.0.0-nightly.
|
|
74
|
-
"@aztec/foundation": "3.0.0-nightly.
|
|
75
|
-
"@aztec/noir-noirc_abi": "3.0.0-nightly.
|
|
76
|
-
"@aztec/noir-protocol-circuits-types": "3.0.0-nightly.
|
|
77
|
-
"@aztec/noir-types": "3.0.0-nightly.
|
|
78
|
-
"@aztec/simulator": "3.0.0-nightly.
|
|
79
|
-
"@aztec/stdlib": "3.0.0-nightly.
|
|
80
|
-
"@aztec/telemetry-client": "3.0.0-nightly.
|
|
81
|
-
"@aztec/world-state": "3.0.0-nightly.
|
|
72
|
+
"@aztec/bb.js": "3.0.0-nightly.20250919",
|
|
73
|
+
"@aztec/constants": "3.0.0-nightly.20250919",
|
|
74
|
+
"@aztec/foundation": "3.0.0-nightly.20250919",
|
|
75
|
+
"@aztec/noir-noirc_abi": "3.0.0-nightly.20250919",
|
|
76
|
+
"@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20250919",
|
|
77
|
+
"@aztec/noir-types": "3.0.0-nightly.20250919",
|
|
78
|
+
"@aztec/simulator": "3.0.0-nightly.20250919",
|
|
79
|
+
"@aztec/stdlib": "3.0.0-nightly.20250919",
|
|
80
|
+
"@aztec/telemetry-client": "3.0.0-nightly.20250919",
|
|
81
|
+
"@aztec/world-state": "3.0.0-nightly.20250919",
|
|
82
82
|
"commander": "^12.1.0",
|
|
83
83
|
"pako": "^2.1.0",
|
|
84
84
|
"source-map-support": "^0.5.21",
|
|
85
85
|
"tslib": "^2.4.0"
|
|
86
86
|
},
|
|
87
87
|
"devDependencies": {
|
|
88
|
-
"@aztec/ethereum": "3.0.0-nightly.
|
|
89
|
-
"@aztec/kv-store": "3.0.0-nightly.
|
|
90
|
-
"@aztec/noir-contracts.js": "3.0.0-nightly.
|
|
91
|
-
"@aztec/noir-test-contracts.js": "3.0.0-nightly.
|
|
92
|
-
"@aztec/protocol-contracts": "3.0.0-nightly.
|
|
88
|
+
"@aztec/ethereum": "3.0.0-nightly.20250919",
|
|
89
|
+
"@aztec/kv-store": "3.0.0-nightly.20250919",
|
|
90
|
+
"@aztec/noir-contracts.js": "3.0.0-nightly.20250919",
|
|
91
|
+
"@aztec/noir-test-contracts.js": "3.0.0-nightly.20250919",
|
|
92
|
+
"@aztec/protocol-contracts": "3.0.0-nightly.20250919",
|
|
93
93
|
"@jest/globals": "^30.0.0",
|
|
94
94
|
"@types/jest": "^30.0.0",
|
|
95
95
|
"@types/node": "^22.15.17",
|
package/src/bb/execute.ts
CHANGED
|
@@ -225,7 +225,7 @@ export async function generateProof(
|
|
|
225
225
|
return { status: BB_RESULT.FAILURE, reason: `Working directory ${workingDirectory} does not exist` };
|
|
226
226
|
}
|
|
227
227
|
|
|
228
|
-
// The bytecode is written to e.g. /workingDirectory/
|
|
228
|
+
// The bytecode is written to e.g. /workingDirectory/ParityBaseArtifact-bytecode
|
|
229
229
|
const bytecodePath = `${workingDirectory}/${circuitName}-bytecode`;
|
|
230
230
|
const vkPath = `${workingDirectory}/${circuitName}-vk`;
|
|
231
231
|
|
|
@@ -612,7 +612,7 @@ export async function computeGateCountForCircuit(
|
|
|
612
612
|
return { status: BB_RESULT.FAILURE, reason: `Working directory ${workingDirectory} does not exist` };
|
|
613
613
|
}
|
|
614
614
|
|
|
615
|
-
// The bytecode is written to e.g. /workingDirectory/
|
|
615
|
+
// The bytecode is written to e.g. /workingDirectory/ParityBaseArtifact-bytecode
|
|
616
616
|
const bytecodePath = `${workingDirectory}/${circuitName}-bytecode`;
|
|
617
617
|
|
|
618
618
|
const binaryPresent = await fs
|
package/src/honk.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { ServerProtocolArtifact } from '@aztec/noir-protocol-circuits-types
|
|
|
3
3
|
export type UltraHonkFlavor = 'ultra_honk' | 'ultra_keccak_honk' | 'ultra_starknet_honk' | 'ultra_rollup_honk';
|
|
4
4
|
|
|
5
5
|
const UltraKeccakHonkCircuits = ['RootRollupArtifact'] as const satisfies ServerProtocolArtifact[];
|
|
6
|
-
const UltraHonkCircuits = ['
|
|
6
|
+
const UltraHonkCircuits = ['ParityBaseArtifact', 'ParityRootArtifact'] as const satisfies ServerProtocolArtifact[];
|
|
7
7
|
|
|
8
8
|
export type UltraKeccakHonkServerProtocolArtifact = (typeof UltraKeccakHonkCircuits)[number];
|
|
9
9
|
export type UltraHonkServerProtocolArtifact = (typeof UltraHonkCircuits)[number];
|
|
@@ -16,7 +16,11 @@ import {
|
|
|
16
16
|
getPrivateKernelResetArtifactName,
|
|
17
17
|
updateResetCircuitSampleInputs,
|
|
18
18
|
} from '@aztec/noir-protocol-circuits-types/client';
|
|
19
|
-
import
|
|
19
|
+
import {
|
|
20
|
+
type ArtifactProvider,
|
|
21
|
+
type ClientProtocolArtifact,
|
|
22
|
+
mapProtocolArtifactNameToCircuitName,
|
|
23
|
+
} from '@aztec/noir-protocol-circuits-types/types';
|
|
20
24
|
import type { Abi, WitnessMap } from '@aztec/noir-types';
|
|
21
25
|
import type { CircuitSimulator } from '@aztec/simulator/client';
|
|
22
26
|
import type { PrivateKernelProver } from '@aztec/stdlib/interfaces/client';
|
|
@@ -36,8 +40,6 @@ import type { NoirCompiledCircuitWithName } from '@aztec/stdlib/noir';
|
|
|
36
40
|
import type { ClientIvcProof } from '@aztec/stdlib/proofs';
|
|
37
41
|
import type { CircuitSimulationStats, CircuitWitnessGenerationStats } from '@aztec/stdlib/stats';
|
|
38
42
|
|
|
39
|
-
import { mapProtocolArtifactNameToCircuitName } from '../../stats.js';
|
|
40
|
-
|
|
41
43
|
export abstract class BBPrivateKernelProver implements PrivateKernelProver {
|
|
42
44
|
constructor(
|
|
43
45
|
protected artifactProvider: ArtifactProvider,
|
|
@@ -12,8 +12,6 @@ import { createLogger } from '@aztec/foundation/log';
|
|
|
12
12
|
import { BufferReader } from '@aztec/foundation/serialize';
|
|
13
13
|
import {
|
|
14
14
|
type ServerProtocolArtifact,
|
|
15
|
-
convertBaseParityInputsToWitnessMap,
|
|
16
|
-
convertBaseParityOutputsFromWitnessMap,
|
|
17
15
|
convertBlockMergeRollupOutputsFromWitnessMap,
|
|
18
16
|
convertBlockMergeRollupPrivateInputsToWitnessMap,
|
|
19
17
|
convertBlockRootEmptyTxFirstRollupOutputsFromWitnessMap,
|
|
@@ -34,21 +32,24 @@ import {
|
|
|
34
32
|
convertCheckpointRootRollupPrivateInputsToWitnessMap,
|
|
35
33
|
convertCheckpointRootSingleBlockRollupOutputsFromWitnessMap,
|
|
36
34
|
convertCheckpointRootSingleBlockRollupPrivateInputsToWitnessMap,
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
35
|
+
convertParityBaseOutputsFromWitnessMap,
|
|
36
|
+
convertParityBasePrivateInputsToWitnessMap,
|
|
37
|
+
convertParityRootOutputsFromWitnessMap,
|
|
38
|
+
convertParityRootPrivateInputsToWitnessMap,
|
|
39
|
+
convertPrivateTxBaseRollupOutputsFromWitnessMap,
|
|
40
|
+
convertPrivateTxBaseRollupPrivateInputsToWitnessMap,
|
|
43
41
|
convertPublicTubeOutputsFromWitnessMap,
|
|
44
42
|
convertPublicTubePrivateInputsToWitnessMap,
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
convertPublicTxBaseRollupOutputsFromWitnessMap,
|
|
44
|
+
convertPublicTxBaseRollupPrivateInputsToWitnessMap,
|
|
47
45
|
convertRootRollupOutputsFromWitnessMap,
|
|
48
46
|
convertRootRollupPrivateInputsToWitnessMap,
|
|
47
|
+
convertTxMergeRollupOutputsFromWitnessMap,
|
|
48
|
+
convertTxMergeRollupPrivateInputsToWitnessMap,
|
|
49
49
|
getServerCircuitArtifact,
|
|
50
50
|
} from '@aztec/noir-protocol-circuits-types/server';
|
|
51
51
|
import { ServerCircuitVks } from '@aztec/noir-protocol-circuits-types/server/vks';
|
|
52
|
+
import { mapProtocolArtifactNameToCircuitName } from '@aztec/noir-protocol-circuits-types/types';
|
|
52
53
|
import type { WitnessMap } from '@aztec/noir-types';
|
|
53
54
|
import { NativeACVMSimulator } from '@aztec/simulator/server';
|
|
54
55
|
import type { AvmCircuitInputs, AvmCircuitPublicInputs } from '@aztec/stdlib/avm';
|
|
@@ -61,10 +62,9 @@ import {
|
|
|
61
62
|
makePublicInputsAndRecursiveProof,
|
|
62
63
|
} from '@aztec/stdlib/interfaces/server';
|
|
63
64
|
import type { PrivateToPublicKernelCircuitPublicInputs } from '@aztec/stdlib/kernel';
|
|
64
|
-
import type {
|
|
65
|
+
import type { ParityBasePrivateInputs, ParityPublicInputs, ParityRootPrivateInputs } from '@aztec/stdlib/parity';
|
|
65
66
|
import { Proof, RecursiveProof, makeRecursiveProofFromBinary } from '@aztec/stdlib/proofs';
|
|
66
67
|
import {
|
|
67
|
-
type BaseOrMergeRollupPublicInputs,
|
|
68
68
|
BlockMergeRollupPrivateInputs,
|
|
69
69
|
BlockRollupPublicInputs,
|
|
70
70
|
BlockRootEmptyTxFirstRollupPrivateInputs,
|
|
@@ -77,12 +77,13 @@ import {
|
|
|
77
77
|
CheckpointRollupPublicInputs,
|
|
78
78
|
CheckpointRootRollupPrivateInputs,
|
|
79
79
|
CheckpointRootSingleBlockRollupPrivateInputs,
|
|
80
|
-
type
|
|
81
|
-
type PrivateBaseRollupInputs,
|
|
82
|
-
PublicBaseRollupInputs,
|
|
80
|
+
type PrivateTxBaseRollupPrivateInputs,
|
|
83
81
|
PublicTubePrivateInputs,
|
|
82
|
+
PublicTxBaseRollupPrivateInputs,
|
|
84
83
|
type RootRollupPrivateInputs,
|
|
85
84
|
type RootRollupPublicInputs,
|
|
85
|
+
type TxMergeRollupPrivateInputs,
|
|
86
|
+
type TxRollupPublicInputs,
|
|
86
87
|
enhanceProofWithPiValidationFlag,
|
|
87
88
|
} from '@aztec/stdlib/rollup';
|
|
88
89
|
import type { CircuitProvingStats, CircuitWitnessGenerationStats } from '@aztec/stdlib/stats';
|
|
@@ -107,7 +108,6 @@ import {
|
|
|
107
108
|
import type { ACVMConfig, BBConfig } from '../../config.js';
|
|
108
109
|
import { type UltraHonkFlavor, getUltraHonkFlavorForCircuit } from '../../honk.js';
|
|
109
110
|
import { ProverInstrumentation } from '../../instrumentation.js';
|
|
110
|
-
import { mapProtocolArtifactNameToCircuitName } from '../../stats.js';
|
|
111
111
|
import { extractAvmVkData } from '../../verification_key/verification_key_data.js';
|
|
112
112
|
import { readProofsFromOutputDirectory } from '../proof_utils.js';
|
|
113
113
|
|
|
@@ -151,16 +151,16 @@ export class BBNativeRollupProver implements ServerCircuitProver {
|
|
|
151
151
|
* @param inputs - Inputs to the circuit.
|
|
152
152
|
* @returns The public inputs of the parity circuit.
|
|
153
153
|
*/
|
|
154
|
-
@trackSpan('BBNativeRollupProver.getBaseParityProof', { [Attributes.PROTOCOL_CIRCUIT_NAME]: 'base
|
|
154
|
+
@trackSpan('BBNativeRollupProver.getBaseParityProof', { [Attributes.PROTOCOL_CIRCUIT_NAME]: 'parity-base' })
|
|
155
155
|
public getBaseParityProof(
|
|
156
|
-
inputs:
|
|
156
|
+
inputs: ParityBasePrivateInputs,
|
|
157
157
|
): Promise<PublicInputsAndRecursiveProof<ParityPublicInputs, typeof RECURSIVE_PROOF_LENGTH>> {
|
|
158
158
|
return this.createRecursiveProofAndVerify(
|
|
159
159
|
inputs,
|
|
160
|
-
'
|
|
160
|
+
'ParityBaseArtifact',
|
|
161
161
|
RECURSIVE_PROOF_LENGTH,
|
|
162
|
-
|
|
163
|
-
|
|
162
|
+
convertParityBasePrivateInputsToWitnessMap,
|
|
163
|
+
convertParityBaseOutputsFromWitnessMap,
|
|
164
164
|
);
|
|
165
165
|
}
|
|
166
166
|
|
|
@@ -169,16 +169,16 @@ export class BBNativeRollupProver implements ServerCircuitProver {
|
|
|
169
169
|
* @param inputs - Inputs to the circuit.
|
|
170
170
|
* @returns The public inputs of the parity circuit.
|
|
171
171
|
*/
|
|
172
|
-
@trackSpan('BBNativeRollupProver.getRootParityProof', { [Attributes.PROTOCOL_CIRCUIT_NAME]: 'root
|
|
172
|
+
@trackSpan('BBNativeRollupProver.getRootParityProof', { [Attributes.PROTOCOL_CIRCUIT_NAME]: 'parity-root' })
|
|
173
173
|
public getRootParityProof(
|
|
174
|
-
inputs:
|
|
174
|
+
inputs: ParityRootPrivateInputs,
|
|
175
175
|
): Promise<PublicInputsAndRecursiveProof<ParityPublicInputs, typeof NESTED_RECURSIVE_PROOF_LENGTH>> {
|
|
176
176
|
return this.createRecursiveProofAndVerify(
|
|
177
177
|
inputs,
|
|
178
|
-
'
|
|
178
|
+
'ParityRootArtifact',
|
|
179
179
|
NESTED_RECURSIVE_PROOF_LENGTH,
|
|
180
|
-
|
|
181
|
-
|
|
180
|
+
convertParityRootPrivateInputsToWitnessMap,
|
|
181
|
+
convertParityRootOutputsFromWitnessMap,
|
|
182
182
|
);
|
|
183
183
|
}
|
|
184
184
|
|
|
@@ -232,17 +232,15 @@ export class BBNativeRollupProver implements ServerCircuitProver {
|
|
|
232
232
|
* @param inputs - Inputs to the circuit.
|
|
233
233
|
* @returns The public inputs as outputs of the simulation.
|
|
234
234
|
*/
|
|
235
|
-
public
|
|
236
|
-
inputs:
|
|
237
|
-
): Promise<
|
|
238
|
-
PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
|
|
239
|
-
> {
|
|
235
|
+
public getPrivateTxBaseRollupProof(
|
|
236
|
+
inputs: PrivateTxBaseRollupPrivateInputs,
|
|
237
|
+
): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
|
|
240
238
|
return this.createRecursiveProofAndVerify(
|
|
241
239
|
inputs,
|
|
242
|
-
'
|
|
240
|
+
'PrivateTxBaseRollupArtifact',
|
|
243
241
|
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
244
|
-
|
|
245
|
-
|
|
242
|
+
convertPrivateTxBaseRollupPrivateInputsToWitnessMap,
|
|
243
|
+
convertPrivateTxBaseRollupOutputsFromWitnessMap,
|
|
246
244
|
);
|
|
247
245
|
}
|
|
248
246
|
|
|
@@ -251,17 +249,15 @@ export class BBNativeRollupProver implements ServerCircuitProver {
|
|
|
251
249
|
* @param kernelRequest - The object encapsulating the request for a proof
|
|
252
250
|
* @returns The requested circuit's public inputs and proof
|
|
253
251
|
*/
|
|
254
|
-
public
|
|
255
|
-
inputs:
|
|
256
|
-
): Promise<
|
|
257
|
-
PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
|
|
258
|
-
> {
|
|
252
|
+
public getPublicTxBaseRollupProof(
|
|
253
|
+
inputs: PublicTxBaseRollupPrivateInputs,
|
|
254
|
+
): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
|
|
259
255
|
return this.createRecursiveProofAndVerify(
|
|
260
256
|
inputs,
|
|
261
|
-
'
|
|
257
|
+
'PublicTxBaseRollupArtifact',
|
|
262
258
|
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
263
|
-
|
|
264
|
-
|
|
259
|
+
convertPublicTxBaseRollupPrivateInputsToWitnessMap,
|
|
260
|
+
convertPublicTxBaseRollupOutputsFromWitnessMap,
|
|
265
261
|
);
|
|
266
262
|
}
|
|
267
263
|
|
|
@@ -270,17 +266,15 @@ export class BBNativeRollupProver implements ServerCircuitProver {
|
|
|
270
266
|
* @param input - Inputs to the circuit.
|
|
271
267
|
* @returns The public inputs as outputs of the simulation.
|
|
272
268
|
*/
|
|
273
|
-
public
|
|
274
|
-
input:
|
|
275
|
-
): Promise<
|
|
276
|
-
PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
|
|
277
|
-
> {
|
|
269
|
+
public getTxMergeRollupProof(
|
|
270
|
+
input: TxMergeRollupPrivateInputs,
|
|
271
|
+
): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
|
|
278
272
|
return this.createRecursiveProofAndVerify(
|
|
279
273
|
input,
|
|
280
|
-
'
|
|
274
|
+
'TxMergeRollupArtifact',
|
|
281
275
|
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
282
|
-
|
|
283
|
-
|
|
276
|
+
convertTxMergeRollupPrivateInputsToWitnessMap,
|
|
277
|
+
convertTxMergeRollupOutputsFromWitnessMap,
|
|
284
278
|
);
|
|
285
279
|
}
|
|
286
280
|
|
package/src/test/delay_values.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ProvingRequestType } from '@aztec/stdlib/proofs';
|
|
2
2
|
|
|
3
3
|
export const WITGEN_DELAY_MS: Record<ProvingRequestType, number> = {
|
|
4
|
-
[ProvingRequestType.
|
|
4
|
+
[ProvingRequestType.PARITY_BASE]: 60,
|
|
5
5
|
[ProvingRequestType.BLOCK_MERGE_ROLLUP]: 650,
|
|
6
6
|
[ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP]: 60_000,
|
|
7
7
|
[ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP]: 40_000,
|
|
@@ -12,17 +12,17 @@ export const WITGEN_DELAY_MS: Record<ProvingRequestType, number> = {
|
|
|
12
12
|
[ProvingRequestType.CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP]: 20_000,
|
|
13
13
|
[ProvingRequestType.CHECKPOINT_PADDING_ROLLUP]: 0,
|
|
14
14
|
[ProvingRequestType.CHECKPOINT_MERGE_ROLLUP]: 650,
|
|
15
|
-
[ProvingRequestType.
|
|
16
|
-
[ProvingRequestType.
|
|
17
|
-
[ProvingRequestType.
|
|
18
|
-
[ProvingRequestType.
|
|
15
|
+
[ProvingRequestType.TX_MERGE_ROLLUP]: 0,
|
|
16
|
+
[ProvingRequestType.PRIVATE_TX_BASE_ROLLUP]: 400_000,
|
|
17
|
+
[ProvingRequestType.PUBLIC_TX_BASE_ROLLUP]: 470_000,
|
|
18
|
+
[ProvingRequestType.PARITY_ROOT]: 100,
|
|
19
19
|
[ProvingRequestType.ROOT_ROLLUP]: 650,
|
|
20
20
|
[ProvingRequestType.PUBLIC_TUBE]: 0,
|
|
21
21
|
[ProvingRequestType.PUBLIC_VM]: 0,
|
|
22
22
|
};
|
|
23
23
|
|
|
24
24
|
export const PROOF_DELAY_MS: Record<ProvingRequestType, number> = {
|
|
25
|
-
[ProvingRequestType.
|
|
25
|
+
[ProvingRequestType.PARITY_BASE]: 3_000,
|
|
26
26
|
[ProvingRequestType.BLOCK_MERGE_ROLLUP]: 15_000,
|
|
27
27
|
[ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP]: 55_000,
|
|
28
28
|
[ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP]: 35_000,
|
|
@@ -33,10 +33,10 @@ export const PROOF_DELAY_MS: Record<ProvingRequestType, number> = {
|
|
|
33
33
|
[ProvingRequestType.CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP]: 15_000,
|
|
34
34
|
[ProvingRequestType.CHECKPOINT_PADDING_ROLLUP]: 0,
|
|
35
35
|
[ProvingRequestType.CHECKPOINT_MERGE_ROLLUP]: 15_000,
|
|
36
|
-
[ProvingRequestType.
|
|
37
|
-
[ProvingRequestType.
|
|
38
|
-
[ProvingRequestType.
|
|
39
|
-
[ProvingRequestType.
|
|
36
|
+
[ProvingRequestType.TX_MERGE_ROLLUP]: 0,
|
|
37
|
+
[ProvingRequestType.PRIVATE_TX_BASE_ROLLUP]: 145_000,
|
|
38
|
+
[ProvingRequestType.PUBLIC_TX_BASE_ROLLUP]: 160_000,
|
|
39
|
+
[ProvingRequestType.PARITY_ROOT]: 30_000,
|
|
40
40
|
[ProvingRequestType.ROOT_ROLLUP]: 15_000,
|
|
41
41
|
[ProvingRequestType.PUBLIC_TUBE]: 30_000,
|
|
42
42
|
[ProvingRequestType.PUBLIC_VM]: 0,
|
|
@@ -10,8 +10,6 @@ import { sleep } from '@aztec/foundation/sleep';
|
|
|
10
10
|
import { Timer } from '@aztec/foundation/timer';
|
|
11
11
|
import {
|
|
12
12
|
type ServerProtocolArtifact,
|
|
13
|
-
convertBaseParityInputsToWitnessMap,
|
|
14
|
-
convertBaseParityOutputsFromWitnessMap,
|
|
15
13
|
convertBlockMergeRollupOutputsFromWitnessMap,
|
|
16
14
|
convertBlockMergeRollupPrivateInputsToWitnessMap,
|
|
17
15
|
convertBlockRootEmptyTxFirstRollupOutputsFromWitnessMap,
|
|
@@ -32,20 +30,23 @@ import {
|
|
|
32
30
|
convertCheckpointRootRollupPrivateInputsToWitnessMap,
|
|
33
31
|
convertCheckpointRootSingleBlockRollupOutputsFromWitnessMap,
|
|
34
32
|
convertCheckpointRootSingleBlockRollupPrivateInputsToWitnessMap,
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
33
|
+
convertParityBaseOutputsFromWitnessMap,
|
|
34
|
+
convertParityBasePrivateInputsToWitnessMap,
|
|
35
|
+
convertParityRootOutputsFromWitnessMap,
|
|
36
|
+
convertParityRootPrivateInputsToWitnessMap,
|
|
37
|
+
convertPrivateTxBaseRollupOutputsFromWitnessMap,
|
|
38
|
+
convertPrivateTxBaseRollupPrivateInputsToWitnessMap,
|
|
39
|
+
convertPublicTxBaseRollupOutputsFromWitnessMap,
|
|
40
|
+
convertPublicTxBaseRollupPrivateInputsToWitnessMap,
|
|
39
41
|
convertRootRollupOutputsFromWitnessMap,
|
|
40
42
|
convertRootRollupPrivateInputsToWitnessMap,
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
convertSimulatedPublicBaseRollupInputsToWitnessMap,
|
|
44
|
-
convertSimulatedPublicBaseRollupOutputsFromWitnessMap,
|
|
43
|
+
convertTxMergeRollupOutputsFromWitnessMap,
|
|
44
|
+
convertTxMergeRollupPrivateInputsToWitnessMap,
|
|
45
45
|
foreignCallHandler,
|
|
46
46
|
getSimulatedServerCircuitArtifact,
|
|
47
47
|
} from '@aztec/noir-protocol-circuits-types/server';
|
|
48
48
|
import { ProtocolCircuitVks } from '@aztec/noir-protocol-circuits-types/server/vks';
|
|
49
|
+
import { mapProtocolArtifactNameToCircuitName } from '@aztec/noir-protocol-circuits-types/types';
|
|
49
50
|
import type { WitnessMap } from '@aztec/noir-types';
|
|
50
51
|
import { type CircuitSimulator, WASMSimulatorWithBlobs, emitCircuitSimulationStats } from '@aztec/simulator/server';
|
|
51
52
|
import type { AvmCircuitInputs } from '@aztec/stdlib/avm';
|
|
@@ -57,10 +58,9 @@ import {
|
|
|
57
58
|
makePublicInputsAndRecursiveProof,
|
|
58
59
|
} from '@aztec/stdlib/interfaces/server';
|
|
59
60
|
import type { PrivateToPublicKernelCircuitPublicInputs } from '@aztec/stdlib/kernel';
|
|
60
|
-
import type {
|
|
61
|
+
import type { ParityBasePrivateInputs, ParityPublicInputs, ParityRootPrivateInputs } from '@aztec/stdlib/parity';
|
|
61
62
|
import { type Proof, ProvingRequestType, makeEmptyRecursiveProof, makeRecursiveProof } from '@aztec/stdlib/proofs';
|
|
62
63
|
import type {
|
|
63
|
-
BaseOrMergeRollupPublicInputs,
|
|
64
64
|
BlockMergeRollupPrivateInputs,
|
|
65
65
|
BlockRollupPublicInputs,
|
|
66
66
|
BlockRootEmptyTxFirstRollupPrivateInputs,
|
|
@@ -73,18 +73,18 @@ import type {
|
|
|
73
73
|
CheckpointRollupPublicInputs,
|
|
74
74
|
CheckpointRootRollupPrivateInputs,
|
|
75
75
|
CheckpointRootSingleBlockRollupPrivateInputs,
|
|
76
|
-
|
|
77
|
-
PrivateBaseRollupInputs,
|
|
78
|
-
PublicBaseRollupInputs,
|
|
76
|
+
PrivateTxBaseRollupPrivateInputs,
|
|
79
77
|
PublicTubePrivateInputs,
|
|
78
|
+
PublicTxBaseRollupPrivateInputs,
|
|
80
79
|
RootRollupPrivateInputs,
|
|
81
80
|
RootRollupPublicInputs,
|
|
81
|
+
TxMergeRollupPrivateInputs,
|
|
82
|
+
TxRollupPublicInputs,
|
|
82
83
|
} from '@aztec/stdlib/rollup';
|
|
83
84
|
import { VerificationKeyData } from '@aztec/stdlib/vks';
|
|
84
85
|
import { type TelemetryClient, getTelemetryClient, trackSpan } from '@aztec/telemetry-client';
|
|
85
86
|
|
|
86
87
|
import { ProverInstrumentation } from '../instrumentation.js';
|
|
87
|
-
import { mapProtocolArtifactNameToCircuitName } from '../stats.js';
|
|
88
88
|
import { PROOF_DELAY_MS, WITGEN_DELAY_MS } from './delay_values.js';
|
|
89
89
|
|
|
90
90
|
type TestDelay =
|
|
@@ -125,15 +125,15 @@ export class TestCircuitProver implements ServerCircuitProver {
|
|
|
125
125
|
*/
|
|
126
126
|
@trackSpan('TestCircuitProver.getBaseParityProof')
|
|
127
127
|
public getBaseParityProof(
|
|
128
|
-
inputs:
|
|
128
|
+
inputs: ParityBasePrivateInputs,
|
|
129
129
|
): Promise<PublicInputsAndRecursiveProof<ParityPublicInputs, typeof RECURSIVE_PROOF_LENGTH>> {
|
|
130
|
-
return this.applyDelay(ProvingRequestType.
|
|
130
|
+
return this.applyDelay(ProvingRequestType.PARITY_BASE, () =>
|
|
131
131
|
this.simulate(
|
|
132
132
|
inputs,
|
|
133
|
-
'
|
|
133
|
+
'ParityBaseArtifact',
|
|
134
134
|
RECURSIVE_PROOF_LENGTH,
|
|
135
|
-
|
|
136
|
-
|
|
135
|
+
convertParityBasePrivateInputsToWitnessMap,
|
|
136
|
+
convertParityBaseOutputsFromWitnessMap,
|
|
137
137
|
),
|
|
138
138
|
);
|
|
139
139
|
}
|
|
@@ -145,15 +145,15 @@ export class TestCircuitProver implements ServerCircuitProver {
|
|
|
145
145
|
*/
|
|
146
146
|
@trackSpan('TestCircuitProver.getRootParityProof')
|
|
147
147
|
public getRootParityProof(
|
|
148
|
-
inputs:
|
|
148
|
+
inputs: ParityRootPrivateInputs,
|
|
149
149
|
): Promise<PublicInputsAndRecursiveProof<ParityPublicInputs, typeof NESTED_RECURSIVE_PROOF_LENGTH>> {
|
|
150
|
-
return this.applyDelay(ProvingRequestType.
|
|
150
|
+
return this.applyDelay(ProvingRequestType.PARITY_ROOT, () =>
|
|
151
151
|
this.simulate(
|
|
152
152
|
inputs,
|
|
153
|
-
'
|
|
153
|
+
'ParityRootArtifact',
|
|
154
154
|
NESTED_RECURSIVE_PROOF_LENGTH,
|
|
155
|
-
|
|
156
|
-
|
|
155
|
+
convertParityRootPrivateInputsToWitnessMap,
|
|
156
|
+
convertParityRootOutputsFromWitnessMap,
|
|
157
157
|
),
|
|
158
158
|
);
|
|
159
159
|
}
|
|
@@ -175,36 +175,32 @@ export class TestCircuitProver implements ServerCircuitProver {
|
|
|
175
175
|
);
|
|
176
176
|
}
|
|
177
177
|
|
|
178
|
-
@trackSpan('TestCircuitProver.
|
|
179
|
-
public
|
|
180
|
-
inputs:
|
|
181
|
-
): Promise<
|
|
182
|
-
|
|
183
|
-
> {
|
|
184
|
-
return this.applyDelay(ProvingRequestType.PRIVATE_BASE_ROLLUP, () =>
|
|
178
|
+
@trackSpan('TestCircuitProver.getPrivateTxBaseRollupProof')
|
|
179
|
+
public getPrivateTxBaseRollupProof(
|
|
180
|
+
inputs: PrivateTxBaseRollupPrivateInputs,
|
|
181
|
+
): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
|
|
182
|
+
return this.applyDelay(ProvingRequestType.PRIVATE_TX_BASE_ROLLUP, () =>
|
|
185
183
|
this.simulate(
|
|
186
184
|
inputs,
|
|
187
|
-
'
|
|
185
|
+
'PrivateTxBaseRollupArtifact',
|
|
188
186
|
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
189
|
-
|
|
190
|
-
|
|
187
|
+
convertPrivateTxBaseRollupPrivateInputsToWitnessMap,
|
|
188
|
+
convertPrivateTxBaseRollupOutputsFromWitnessMap,
|
|
191
189
|
),
|
|
192
190
|
);
|
|
193
191
|
}
|
|
194
192
|
|
|
195
|
-
@trackSpan('TestCircuitProver.
|
|
196
|
-
public
|
|
197
|
-
inputs:
|
|
198
|
-
): Promise<
|
|
199
|
-
|
|
200
|
-
> {
|
|
201
|
-
return this.applyDelay(ProvingRequestType.PUBLIC_BASE_ROLLUP, () =>
|
|
193
|
+
@trackSpan('TestCircuitProver.getPublicTxBaseRollupProof')
|
|
194
|
+
public getPublicTxBaseRollupProof(
|
|
195
|
+
inputs: PublicTxBaseRollupPrivateInputs,
|
|
196
|
+
): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
|
|
197
|
+
return this.applyDelay(ProvingRequestType.PUBLIC_TX_BASE_ROLLUP, () =>
|
|
202
198
|
this.simulate(
|
|
203
199
|
inputs,
|
|
204
|
-
'
|
|
200
|
+
'PublicTxBaseRollupArtifact',
|
|
205
201
|
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
206
|
-
|
|
207
|
-
|
|
202
|
+
convertPublicTxBaseRollupPrivateInputsToWitnessMap,
|
|
203
|
+
convertPublicTxBaseRollupOutputsFromWitnessMap,
|
|
208
204
|
),
|
|
209
205
|
);
|
|
210
206
|
}
|
|
@@ -214,19 +210,17 @@ export class TestCircuitProver implements ServerCircuitProver {
|
|
|
214
210
|
* @param input - Inputs to the circuit.
|
|
215
211
|
* @returns The public inputs as outputs of the simulation.
|
|
216
212
|
*/
|
|
217
|
-
@trackSpan('TestCircuitProver.
|
|
218
|
-
public
|
|
219
|
-
input:
|
|
220
|
-
): Promise<
|
|
221
|
-
|
|
222
|
-
> {
|
|
223
|
-
return this.applyDelay(ProvingRequestType.MERGE_ROLLUP, () =>
|
|
213
|
+
@trackSpan('TestCircuitProver.getTxMergeRollupProof')
|
|
214
|
+
public getTxMergeRollupProof(
|
|
215
|
+
input: TxMergeRollupPrivateInputs,
|
|
216
|
+
): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
|
|
217
|
+
return this.applyDelay(ProvingRequestType.TX_MERGE_ROLLUP, () =>
|
|
224
218
|
this.simulate(
|
|
225
219
|
input,
|
|
226
|
-
'
|
|
220
|
+
'TxMergeRollupArtifact',
|
|
227
221
|
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
228
|
-
|
|
229
|
-
|
|
222
|
+
convertTxMergeRollupPrivateInputsToWitnessMap,
|
|
223
|
+
convertTxMergeRollupOutputsFromWitnessMap,
|
|
230
224
|
),
|
|
231
225
|
);
|
|
232
226
|
}
|
|
@@ -2,10 +2,11 @@ import { runInDirectory } from '@aztec/foundation/fs';
|
|
|
2
2
|
import { type Logger, createLogger } from '@aztec/foundation/log';
|
|
3
3
|
import { Timer } from '@aztec/foundation/timer';
|
|
4
4
|
import { ProtocolCircuitVks } from '@aztec/noir-protocol-circuits-types/server/vks';
|
|
5
|
-
import
|
|
6
|
-
ClientProtocolArtifact,
|
|
7
|
-
ProtocolArtifact,
|
|
8
|
-
ServerProtocolArtifact,
|
|
5
|
+
import {
|
|
6
|
+
type ClientProtocolArtifact,
|
|
7
|
+
type ProtocolArtifact,
|
|
8
|
+
type ServerProtocolArtifact,
|
|
9
|
+
mapProtocolArtifactNameToCircuitName,
|
|
9
10
|
} from '@aztec/noir-protocol-circuits-types/types';
|
|
10
11
|
import type { ClientProtocolCircuitVerifier, IVCProofVerificationResult } from '@aztec/stdlib/interfaces/server';
|
|
11
12
|
import type { Proof } from '@aztec/stdlib/proofs';
|
|
@@ -27,7 +28,6 @@ import {
|
|
|
27
28
|
import type { BBConfig } from '../config.js';
|
|
28
29
|
import { getUltraHonkFlavorForCircuit } from '../honk.js';
|
|
29
30
|
import { writeClientIVCProofToPath } from '../prover/proof_utils.js';
|
|
30
|
-
import { mapProtocolArtifactNameToCircuitName } from '../stats.js';
|
|
31
31
|
|
|
32
32
|
export class BBCircuitVerifier implements ClientProtocolCircuitVerifier {
|
|
33
33
|
private constructor(
|
package/dest/stats.d.ts
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { ProtocolArtifact } from '@aztec/noir-protocol-circuits-types/types';
|
|
2
|
-
import type { CircuitName } from '@aztec/stdlib/stats';
|
|
3
|
-
export declare function mapProtocolArtifactNameToCircuitName(artifact: ProtocolArtifact): CircuitName;
|
|
4
|
-
//# sourceMappingURL=stats.d.ts.map
|
package/dest/stats.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../src/stats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,wBAAgB,oCAAoC,CAAC,QAAQ,EAAE,gBAAgB,GAAG,WAAW,CAuD5F"}
|
package/dest/stats.js
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
export function mapProtocolArtifactNameToCircuitName(artifact) {
|
|
2
|
-
switch(artifact){
|
|
3
|
-
case 'BaseParityArtifact':
|
|
4
|
-
return 'base-parity';
|
|
5
|
-
case 'RootParityArtifact':
|
|
6
|
-
return 'root-parity';
|
|
7
|
-
case 'PublicTube':
|
|
8
|
-
return 'public-tube';
|
|
9
|
-
case 'PrivateBaseRollupArtifact':
|
|
10
|
-
return 'private-base-rollup';
|
|
11
|
-
case 'PublicBaseRollupArtifact':
|
|
12
|
-
return 'public-base-rollup';
|
|
13
|
-
case 'MergeRollupArtifact':
|
|
14
|
-
return 'merge-rollup';
|
|
15
|
-
case 'BlockRootFirstRollupArtifact':
|
|
16
|
-
return 'block-root-first-rollup';
|
|
17
|
-
case 'BlockRootSingleTxFirstRollupArtifact':
|
|
18
|
-
return 'block-root-single-tx-first-rollup';
|
|
19
|
-
case 'BlockRootEmptyTxFirstRollupArtifact':
|
|
20
|
-
return 'block-root-empty-tx-first-rollup';
|
|
21
|
-
case 'BlockRootRollupArtifact':
|
|
22
|
-
return 'block-root-rollup';
|
|
23
|
-
case 'BlockRootSingleTxRollupArtifact':
|
|
24
|
-
return 'block-root-single-tx-rollup';
|
|
25
|
-
case 'BlockMergeRollupArtifact':
|
|
26
|
-
return 'block-merge-rollup';
|
|
27
|
-
case 'CheckpointRootRollupArtifact':
|
|
28
|
-
return 'checkpoint-root-rollup';
|
|
29
|
-
case 'CheckpointRootSingleBlockRollupArtifact':
|
|
30
|
-
return 'checkpoint-root-single-block-rollup';
|
|
31
|
-
case 'CheckpointPaddingRollupArtifact':
|
|
32
|
-
return 'checkpoint-padding-rollup';
|
|
33
|
-
case 'CheckpointMergeRollupArtifact':
|
|
34
|
-
return 'checkpoint-merge-rollup';
|
|
35
|
-
case 'RootRollupArtifact':
|
|
36
|
-
return 'root-rollup';
|
|
37
|
-
case 'PrivateKernelInitArtifact':
|
|
38
|
-
return 'private-kernel-init';
|
|
39
|
-
case 'PrivateKernelInnerArtifact':
|
|
40
|
-
return 'private-kernel-inner';
|
|
41
|
-
case 'PrivateKernelTailArtifact':
|
|
42
|
-
return 'private-kernel-tail';
|
|
43
|
-
case 'PrivateKernelTailToPublicArtifact':
|
|
44
|
-
return 'private-kernel-tail-to-public';
|
|
45
|
-
case 'HidingKernelToRollup':
|
|
46
|
-
return 'hiding-kernel-to-rollup';
|
|
47
|
-
case 'HidingKernelToPublic':
|
|
48
|
-
return 'hiding-kernel-to-public';
|
|
49
|
-
default:
|
|
50
|
-
{
|
|
51
|
-
if (artifact.startsWith('PrivateKernelReset')) {
|
|
52
|
-
return 'private-kernel-reset';
|
|
53
|
-
}
|
|
54
|
-
throw new Error(`Unknown circuit type: ${artifact}`);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
package/src/stats.ts
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import type { ProtocolArtifact } from '@aztec/noir-protocol-circuits-types/types';
|
|
2
|
-
import type { CircuitName } from '@aztec/stdlib/stats';
|
|
3
|
-
|
|
4
|
-
export function mapProtocolArtifactNameToCircuitName(artifact: ProtocolArtifact): CircuitName {
|
|
5
|
-
switch (artifact) {
|
|
6
|
-
case 'BaseParityArtifact':
|
|
7
|
-
return 'base-parity';
|
|
8
|
-
case 'RootParityArtifact':
|
|
9
|
-
return 'root-parity';
|
|
10
|
-
case 'PublicTube':
|
|
11
|
-
return 'public-tube';
|
|
12
|
-
case 'PrivateBaseRollupArtifact':
|
|
13
|
-
return 'private-base-rollup';
|
|
14
|
-
case 'PublicBaseRollupArtifact':
|
|
15
|
-
return 'public-base-rollup';
|
|
16
|
-
case 'MergeRollupArtifact':
|
|
17
|
-
return 'merge-rollup';
|
|
18
|
-
case 'BlockRootFirstRollupArtifact':
|
|
19
|
-
return 'block-root-first-rollup';
|
|
20
|
-
case 'BlockRootSingleTxFirstRollupArtifact':
|
|
21
|
-
return 'block-root-single-tx-first-rollup';
|
|
22
|
-
case 'BlockRootEmptyTxFirstRollupArtifact':
|
|
23
|
-
return 'block-root-empty-tx-first-rollup';
|
|
24
|
-
case 'BlockRootRollupArtifact':
|
|
25
|
-
return 'block-root-rollup';
|
|
26
|
-
case 'BlockRootSingleTxRollupArtifact':
|
|
27
|
-
return 'block-root-single-tx-rollup';
|
|
28
|
-
case 'BlockMergeRollupArtifact':
|
|
29
|
-
return 'block-merge-rollup';
|
|
30
|
-
case 'CheckpointRootRollupArtifact':
|
|
31
|
-
return 'checkpoint-root-rollup';
|
|
32
|
-
case 'CheckpointRootSingleBlockRollupArtifact':
|
|
33
|
-
return 'checkpoint-root-single-block-rollup';
|
|
34
|
-
case 'CheckpointPaddingRollupArtifact':
|
|
35
|
-
return 'checkpoint-padding-rollup';
|
|
36
|
-
case 'CheckpointMergeRollupArtifact':
|
|
37
|
-
return 'checkpoint-merge-rollup';
|
|
38
|
-
case 'RootRollupArtifact':
|
|
39
|
-
return 'root-rollup';
|
|
40
|
-
case 'PrivateKernelInitArtifact':
|
|
41
|
-
return 'private-kernel-init';
|
|
42
|
-
case 'PrivateKernelInnerArtifact':
|
|
43
|
-
return 'private-kernel-inner';
|
|
44
|
-
case 'PrivateKernelTailArtifact':
|
|
45
|
-
return 'private-kernel-tail';
|
|
46
|
-
case 'PrivateKernelTailToPublicArtifact':
|
|
47
|
-
return 'private-kernel-tail-to-public';
|
|
48
|
-
case 'HidingKernelToRollup':
|
|
49
|
-
return 'hiding-kernel-to-rollup';
|
|
50
|
-
case 'HidingKernelToPublic':
|
|
51
|
-
return 'hiding-kernel-to-public';
|
|
52
|
-
default: {
|
|
53
|
-
if (artifact.startsWith('PrivateKernelReset')) {
|
|
54
|
-
return 'private-kernel-reset';
|
|
55
|
-
}
|
|
56
|
-
throw new Error(`Unknown circuit type: ${artifact}`);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|