@aztec/prover-client 3.0.0-nightly.20250906 → 3.0.0-nightly.20250910
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/orchestrator/block-building-helpers.d.ts +8 -4
- package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
- package/dest/orchestrator/block-building-helpers.js +22 -3
- package/dest/orchestrator/epoch-proving-state.d.ts +3 -2
- package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator.d.ts +1 -1
- package/dest/orchestrator/orchestrator.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator.js +24 -19
- package/dest/orchestrator/tx-proving-state.d.ts +7 -6
- package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/tx-proving-state.js +19 -20
- package/dest/proving_broker/broker_prover_facade.d.ts +4 -3
- package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
- package/dest/proving_broker/broker_prover_facade.js +3 -3
- package/dest/proving_broker/proving_broker.js +2 -2
- package/dest/proving_broker/proving_job_controller.js +4 -4
- package/dest/test/mock_prover.d.ts +6 -5
- package/dest/test/mock_prover.d.ts.map +1 -1
- package/dest/test/mock_prover.js +5 -5
- package/package.json +15 -15
- package/src/orchestrator/block-building-helpers.ts +35 -3
- package/src/orchestrator/epoch-proving-state.ts +11 -3
- package/src/orchestrator/orchestrator.ts +46 -24
- package/src/orchestrator/tx-proving-state.ts +36 -37
- package/src/proving_broker/broker_prover_facade.ts +22 -16
- package/src/proving_broker/proving_broker.ts +2 -2
- package/src/proving_broker/proving_job_controller.ts +4 -4
- package/src/test/mock_prover.ts +22 -8
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { BatchedBlobAccumulator, Blob, type SpongeBlob } from '@aztec/blob-lib';
|
|
2
2
|
import { BLS12Point, Fr } from '@aztec/foundation/fields';
|
|
3
|
-
import { type Tuple } from '@aztec/foundation/serialize';
|
|
3
|
+
import { type Bufferable, type Tuple } from '@aztec/foundation/serialize';
|
|
4
4
|
import { MembershipWitness } from '@aztec/foundation/trees';
|
|
5
5
|
import { PublicDataHint } from '@aztec/stdlib/avm';
|
|
6
6
|
import { Body } from '@aztec/stdlib/block';
|
|
7
|
-
import type { MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
|
|
7
|
+
import type { MerkleTreeWriteOperations, PublicInputsAndRecursiveProof } from '@aztec/stdlib/interfaces/server';
|
|
8
8
|
import type { ParityPublicInputs } from '@aztec/stdlib/parity';
|
|
9
|
-
import {
|
|
9
|
+
import { ProofData, RecursiveProof } from '@aztec/stdlib/proofs';
|
|
10
|
+
import { type BaseOrMergeRollupPublicInputs, type BlockRootOrBlockMergePublicInputs, PrivateBaseRollupHints, PublicBaseRollupHints, PublicTubePrivateInputs } from '@aztec/stdlib/rollup';
|
|
10
11
|
import { AppendOnlyTreeSnapshot, MerkleTreeId } from '@aztec/stdlib/trees';
|
|
11
|
-
import { BlockHeader, type GlobalVariables, PartialStateReference, type ProcessedTx, StateReference, TxEffect } from '@aztec/stdlib/tx';
|
|
12
|
+
import { BlockHeader, type GlobalVariables, PartialStateReference, type ProcessedTx, StateReference, Tx, TxEffect } from '@aztec/stdlib/tx';
|
|
12
13
|
import type { MerkleTreeReadOperations } from '@aztec/world-state';
|
|
13
14
|
/**
|
|
14
15
|
* Type representing the names of the trees for the base rollup.
|
|
@@ -20,6 +21,8 @@ type BaseTreeNames = 'NoteHashTree' | 'ContractTree' | 'NullifierTree' | 'Public
|
|
|
20
21
|
export type TreeNames = BaseTreeNames | 'L1ToL2MessageTree' | 'Archive';
|
|
21
22
|
export declare const insertSideEffectsAndBuildBaseRollupHints: (tx: ProcessedTx, globalVariables: GlobalVariables, newL1ToL2MessageTreeSnapshot: AppendOnlyTreeSnapshot, db: MerkleTreeWriteOperations, startSpongeBlob: SpongeBlob) => Promise<PublicBaseRollupHints | PrivateBaseRollupHints>;
|
|
22
23
|
export declare function getPublicDataHint(db: MerkleTreeWriteOperations, leafSlot: bigint): Promise<PublicDataHint>;
|
|
24
|
+
export declare function getCivcProofFromTx(tx: Tx | ProcessedTx): RecursiveProof<2076>;
|
|
25
|
+
export declare function getPublicTubePrivateInputsFromTx(tx: Tx | ProcessedTx): PublicTubePrivateInputs;
|
|
23
26
|
export declare const buildBlobHints: (txEffects: TxEffect[]) => Promise<{
|
|
24
27
|
blobFields: Fr[];
|
|
25
28
|
blobCommitments: BLS12Point[];
|
|
@@ -58,5 +61,6 @@ export declare function getSubtreeSiblingPath(treeId: MerkleTreeId, subtreeHeigh
|
|
|
58
61
|
export declare function getMembershipWitnessFor<N extends number>(value: Fr, treeId: MerkleTreeId, height: N, db: MerkleTreeReadOperations): Promise<MembershipWitness<N>>;
|
|
59
62
|
export declare function validatePartialState(partialState: PartialStateReference, treeSnapshots: Map<MerkleTreeId, AppendOnlyTreeSnapshot>): void;
|
|
60
63
|
export declare function validateTx(tx: ProcessedTx): void;
|
|
64
|
+
export declare function toProofData<T extends Bufferable, PROOF_LENGTH extends number>({ inputs, proof, verificationKey }: PublicInputsAndRecursiveProof<T, PROOF_LENGTH>, vkIndex?: number): ProofData<T, PROOF_LENGTH>;
|
|
61
65
|
export {};
|
|
62
66
|
//# sourceMappingURL=block-building-helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-building-helpers.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-building-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,IAAI,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"block-building-helpers.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-building-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
import { Blob } from '@aztec/blob-lib';
|
|
2
|
-
import { ARCHIVE_HEIGHT, MAX_CONTRACT_CLASS_LOGS_PER_TX, MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, NOTE_HASH_SUBTREE_HEIGHT, NOTE_HASH_SUBTREE_SIBLING_PATH_LENGTH, NULLIFIER_SUBTREE_HEIGHT, NULLIFIER_SUBTREE_SIBLING_PATH_LENGTH, NULLIFIER_TREE_HEIGHT, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, PUBLIC_DATA_TREE_HEIGHT } from '@aztec/constants';
|
|
2
|
+
import { ARCHIVE_HEIGHT, CIVC_PROOF_LENGTH, MAX_CONTRACT_CLASS_LOGS_PER_TX, MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, NOTE_HASH_SUBTREE_HEIGHT, NOTE_HASH_SUBTREE_SIBLING_PATH_LENGTH, NULLIFIER_SUBTREE_HEIGHT, NULLIFIER_SUBTREE_SIBLING_PATH_LENGTH, NULLIFIER_TREE_HEIGHT, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, PUBLIC_DATA_TREE_HEIGHT } from '@aztec/constants';
|
|
3
3
|
import { makeTuple } from '@aztec/foundation/array';
|
|
4
4
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
5
5
|
import { sha256ToField, sha256Trunc } from '@aztec/foundation/crypto';
|
|
6
6
|
import { BLS12Point, Fr } from '@aztec/foundation/fields';
|
|
7
7
|
import { assertLength, toFriendlyJSON } from '@aztec/foundation/serialize';
|
|
8
8
|
import { MembershipWitness, MerkleTreeCalculator, computeUnbalancedMerkleTreeRoot } from '@aztec/foundation/trees';
|
|
9
|
-
import {
|
|
9
|
+
import { getVkData } from '@aztec/noir-protocol-circuits-types/server/vks';
|
|
10
|
+
import { getVKIndex, getVKSiblingPath, getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
10
11
|
import { protocolContractTreeRoot } from '@aztec/protocol-contracts';
|
|
11
12
|
import { computeFeePayerBalanceLeafSlot } from '@aztec/protocol-contracts/fee-juice';
|
|
12
13
|
import { PublicDataHint } from '@aztec/stdlib/avm';
|
|
13
14
|
import { Body } from '@aztec/stdlib/block';
|
|
14
15
|
import { ContractClassLogFields } from '@aztec/stdlib/logs';
|
|
15
|
-
import {
|
|
16
|
+
import { Proof, ProofData, RecursiveProof } from '@aztec/stdlib/proofs';
|
|
17
|
+
import { BlockConstantData, PrivateBaseRollupHints, PrivateBaseStateDiffHints, PublicBaseRollupHints, PublicTubePrivateInputs } from '@aztec/stdlib/rollup';
|
|
16
18
|
import { AppendOnlyTreeSnapshot, MerkleTreeId, NullifierLeafPreimage, PublicDataTreeLeaf, PublicDataTreeLeafPreimage, getTreeHeight } from '@aztec/stdlib/trees';
|
|
17
19
|
import { BlockHeader, ContentCommitment, PartialStateReference, StateReference } from '@aztec/stdlib/tx';
|
|
20
|
+
import { VkData } from '@aztec/stdlib/vks';
|
|
18
21
|
import { Attributes, runInSpan } from '@aztec/telemetry-client';
|
|
19
22
|
// Builds the hints for base rollup. Updating the contract, nullifier, and data trees in the process.
|
|
20
23
|
export const insertSideEffectsAndBuildBaseRollupHints = runInSpan('BlockBuilderHelpers', 'buildBaseRollupHints', async (span, tx, globalVariables, newL1ToL2MessageTreeSnapshot, db, startSpongeBlob)=>{
|
|
@@ -110,6 +113,17 @@ export async function getPublicDataHint(db, leafSlot) {
|
|
|
110
113
|
const value = exists ? leafPreimage.leaf.value : Fr.ZERO;
|
|
111
114
|
return new PublicDataHint(new Fr(leafSlot), value, membershipWitness, leafPreimage);
|
|
112
115
|
}
|
|
116
|
+
export function getCivcProofFromTx(tx) {
|
|
117
|
+
const proofFields = tx.clientIvcProof.proof;
|
|
118
|
+
const numPublicInputs = proofFields.length - CIVC_PROOF_LENGTH;
|
|
119
|
+
const binaryProof = new Proof(Buffer.concat(proofFields.map((field)=>field.toBuffer())), numPublicInputs);
|
|
120
|
+
const proofFieldsWithoutPublicInputs = proofFields.slice(numPublicInputs);
|
|
121
|
+
return new RecursiveProof(proofFieldsWithoutPublicInputs, binaryProof, true, CIVC_PROOF_LENGTH);
|
|
122
|
+
}
|
|
123
|
+
export function getPublicTubePrivateInputsFromTx(tx) {
|
|
124
|
+
const proofData = new ProofData(tx.data.toPrivateToPublicKernelCircuitPublicInputs(), getCivcProofFromTx(tx), getVkData('HidingKernelToPublic'));
|
|
125
|
+
return new PublicTubePrivateInputs(proofData);
|
|
126
|
+
}
|
|
113
127
|
export const buildBlobHints = runInSpan('BlockBuilderHelpers', 'buildBlobHints', async (_span, txEffects)=>{
|
|
114
128
|
const blobFields = txEffects.flatMap((tx)=>tx.toBlobFields());
|
|
115
129
|
const blobs = await Blob.getBlobsPerBlock(blobFields);
|
|
@@ -300,3 +314,8 @@ export function validateTx(tx) {
|
|
|
300
314
|
throw new Error(`Empty public data tree in tx: ${toFriendlyJSON(tx)}`);
|
|
301
315
|
}
|
|
302
316
|
}
|
|
317
|
+
export function toProofData({ inputs, proof, verificationKey }, vkIndex) {
|
|
318
|
+
const leafIndex = vkIndex || getVKIndex(verificationKey.keyAsFields);
|
|
319
|
+
const vkData = new VkData(verificationKey, leafIndex, getVKSiblingPath(leafIndex));
|
|
320
|
+
return new ProofData(inputs, proof, vkData);
|
|
321
|
+
}
|
|
@@ -4,7 +4,8 @@ import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
|
4
4
|
import type { Fr } from '@aztec/foundation/fields';
|
|
5
5
|
import type { Tuple } from '@aztec/foundation/serialize';
|
|
6
6
|
import { type TreeNodeLocation } from '@aztec/foundation/trees';
|
|
7
|
-
import type {
|
|
7
|
+
import type { PublicInputsAndRecursiveProof } from '@aztec/stdlib/interfaces/server';
|
|
8
|
+
import type { PrivateToPublicKernelCircuitPublicInputs } from '@aztec/stdlib/kernel';
|
|
8
9
|
import type { Proof } from '@aztec/stdlib/proofs';
|
|
9
10
|
import { BlockMergeRollupInputs, type BlockRootOrBlockMergePublicInputs, RootRollupInputs, type RootRollupPublicInputs } from '@aztec/stdlib/rollup';
|
|
10
11
|
import type { AppendOnlyTreeSnapshot, MerkleTreeId } from '@aztec/stdlib/trees';
|
|
@@ -36,7 +37,7 @@ export declare class EpochProvingState {
|
|
|
36
37
|
private rootRollupProvingOutput;
|
|
37
38
|
private finalBatchedBlob;
|
|
38
39
|
private provingStateLifecycle;
|
|
39
|
-
readonly cachedTubeProofs: Map<string, Promise<
|
|
40
|
+
readonly cachedTubeProofs: Map<string, Promise<PublicInputsAndRecursiveProof<PrivateToPublicKernelCircuitPublicInputs, 535>>>;
|
|
40
41
|
blocks: (BlockProvingState | undefined)[];
|
|
41
42
|
constructor(epochNumber: number, firstBlockNumber: number, totalNumBlocks: number, finalBlobBatchingChallenges: FinalBlobBatchingChallenges, completionCallback: (result: ProvingResult) => void, rejectionCallback: (reason: string) => void);
|
|
42
43
|
startNewBlock(globalVariables: GlobalVariables, l1ToL2Messages: Fr[], l1ToL2MessageTreeSnapshot: AppendOnlyTreeSnapshot, l1ToL2MessageSubtreeSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH>, l1ToL2MessageTreeSnapshotAfterInsertion: AppendOnlyTreeSnapshot, lastArchiveSnapshot: AppendOnlyTreeSnapshot, lastArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>, newArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>, previousBlockHeader: BlockHeader, proverId: EthAddress): BlockProvingState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"epoch-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/epoch-proving-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,KAAK,EACV,cAAc,EACd,wCAAwC,EACxC,yCAAyC,
|
|
1
|
+
{"version":3,"file":"epoch-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/epoch-proving-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -107,6 +107,6 @@ export declare class ProvingOrchestrator implements EpochProver {
|
|
|
107
107
|
* @param txIndex - The index of the transaction being proven
|
|
108
108
|
*/
|
|
109
109
|
private enqueueVM;
|
|
110
|
-
private
|
|
110
|
+
private checkAndEnqueueBaseRollup;
|
|
111
111
|
}
|
|
112
112
|
//# sourceMappingURL=orchestrator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAU3F,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAS9C,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EACV,WAAW,EACX,wBAAwB,EAGxB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAU3F,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAS9C,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EACV,WAAW,EACX,wBAAwB,EAGxB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAWzC,OAAO,EAAE,KAAK,sBAAsB,EAAgB,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,KAAK,WAAW,EAAE,KAAK,EAAE,EAAmB,MAAM,kBAAkB,CAAC;AACtH,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,MAAM,EAIZ,MAAM,yBAAyB,CAAC;AAsBjC;;;;;;;;;GASG;AAEH;;GAEG;AACH,qBAAa,mBAAoB,YAAW,WAAW;IASnD,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAV3B,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,kBAAkB,CAAyB;IAEnD,OAAO,CAAC,cAAc,CAAiD;IACvE,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,GAAG,CAAqD;gBAGtD,UAAU,EAAE,wBAAwB,EACpC,MAAM,EAAE,mBAAmB,EAClB,QAAQ,EAAE,UAAU,EACrC,eAAe,GAAE,eAAsC;IAKzD,IAAI,MAAM,IAAI,MAAM,CAEnB;IAEM,WAAW,IAAI,UAAU;IAIzB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrB,aAAa,CAClB,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,EACtB,2BAA2B,EAAE,2BAA2B;IAmB1D;;;;;OAKG;IAIU,aAAa,CAAC,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,WAAW;IA+CnH;;;OAGG;IAIU,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoDtD;;;OAGG;IAEI,iBAAiB,CAAC,GAAG,EAAE,EAAE,EAAE;IAwBlC;;;OAGG;IAIU,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IA4BnG,oDAAoD;IAC7C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;YAQzB,UAAU;cAqCR,kCAAkC,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,sBAAsB;IAWvG;;OAEG;IACI,MAAM;IAQb;;OAEG;IACU,aAAa;;;;;IA6B1B;;;;OAIG;YACW,kBAAkB;IAShC;;;;;OAKG;IACH,OAAO,CAAC,eAAe;YAwDT,uBAAuB;YAkCvB,uBAAuB;IAuCrC,OAAO,CAAC,iBAAiB;IA8CzB,OAAO,CAAC,gBAAgB;IA+BxB,OAAO,CAAC,aAAa;IAiCrB,OAAO,CAAC,kBAAkB;YA0BZ,sBAAsB;IAgFpC,OAAO,CAAC,wBAAwB;IAuBhC,OAAO,CAAC,gCAAgC;IAUxC,OAAO,CAAC,wBAAwB;IA2BhC,OAAO,CAAC,uBAAuB;IAwB/B,OAAO,CAAC,mBAAmB;IA6B3B,OAAO,CAAC,iBAAiB;YA4BX,8BAA8B;YAa9B,8BAA8B;IA2B5C,OAAO,CAAC,mCAAmC;IAa3C,OAAO,CAAC,yBAAyB;IASjC;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IAoDjB,OAAO,CAAC,yBAAyB;CAWlC"}
|
|
@@ -5,7 +5,7 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
}
|
|
7
7
|
import { BlobAccumulatorPublicInputs } from '@aztec/blob-lib';
|
|
8
|
-
import { L1_TO_L2_MSG_SUBTREE_HEIGHT, L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, NUM_BASE_PARITY_PER_ROOT_PARITY } from '@aztec/constants';
|
|
8
|
+
import { L1_TO_L2_MSG_SUBTREE_HEIGHT, L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, NUM_BASE_PARITY_PER_ROOT_PARITY } from '@aztec/constants';
|
|
9
9
|
import { padArrayEnd, times } from '@aztec/foundation/collection';
|
|
10
10
|
import { AbortError } from '@aztec/foundation/error';
|
|
11
11
|
import { Fr } from '@aztec/foundation/fields';
|
|
@@ -18,12 +18,12 @@ import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
|
18
18
|
import { readAvmMinimalPublicTxInputsFromFile } from '@aztec/simulator/public/fixtures';
|
|
19
19
|
import { L2Block } from '@aztec/stdlib/block';
|
|
20
20
|
import { BaseParityInputs } from '@aztec/stdlib/parity';
|
|
21
|
-
import { EmptyBlockRootRollupInputs, PrivateBaseRollupInputs, SingleTxBlockRootRollupInputs
|
|
21
|
+
import { EmptyBlockRootRollupInputs, PrivateBaseRollupInputs, SingleTxBlockRootRollupInputs } from '@aztec/stdlib/rollup';
|
|
22
22
|
import { MerkleTreeId } from '@aztec/stdlib/trees';
|
|
23
23
|
import { toNumBlobFields } from '@aztec/stdlib/tx';
|
|
24
24
|
import { Attributes, getTelemetryClient, trackSpan, wrapCallbackInSpan } from '@aztec/telemetry-client';
|
|
25
25
|
import { inspect } from 'util';
|
|
26
|
-
import { buildHeaderAndBodyFromTxs, getLastSiblingPath, getRootTreeSiblingPath, getSubtreeSiblingPath, getTreeSnapshot, insertSideEffectsAndBuildBaseRollupHints, validatePartialState, validateTx } from './block-building-helpers.js';
|
|
26
|
+
import { buildHeaderAndBodyFromTxs, getLastSiblingPath, getPublicTubePrivateInputsFromTx, getRootTreeSiblingPath, getSubtreeSiblingPath, getTreeSnapshot, insertSideEffectsAndBuildBaseRollupHints, validatePartialState, validateTx } from './block-building-helpers.js';
|
|
27
27
|
import { EpochProvingState } from './epoch-proving-state.js';
|
|
28
28
|
import { ProvingOrchestratorMetrics } from './orchestrator_metrics.js';
|
|
29
29
|
import { TxProvingState } from './tx-proving-state.js';
|
|
@@ -140,10 +140,13 @@ const logger = createLogger('prover-client:orchestrator');
|
|
|
140
140
|
const [hints, treeSnapshots] = await this.prepareTransaction(tx, provingState);
|
|
141
141
|
const txProvingState = new TxProvingState(tx, hints, treeSnapshots);
|
|
142
142
|
const txIndex = provingState.addNewTx(txProvingState);
|
|
143
|
-
this.getOrEnqueueTube(provingState, txIndex);
|
|
144
143
|
if (txProvingState.requireAvmProof) {
|
|
144
|
+
this.getOrEnqueueTube(provingState, txIndex);
|
|
145
145
|
logger.debug(`Enqueueing public VM for tx ${txIndex}`);
|
|
146
146
|
this.enqueueVM(provingState, txIndex);
|
|
147
|
+
} else {
|
|
148
|
+
logger.debug(`Enqueueing base rollup for private-only tx ${txIndex}`);
|
|
149
|
+
this.enqueueBaseRollup(provingState, txIndex);
|
|
147
150
|
}
|
|
148
151
|
} catch (err) {
|
|
149
152
|
throw new Error(`Error adding transaction ${tx.hash.toString()} to block ${blockNumber}: ${err.message}`, {
|
|
@@ -159,12 +162,15 @@ const logger = createLogger('prover-client:orchestrator');
|
|
|
159
162
|
if (!this.provingState?.verifyState()) {
|
|
160
163
|
throw new Error(`Invalid proving state, call startNewEpoch before starting tube circuits`);
|
|
161
164
|
}
|
|
162
|
-
|
|
165
|
+
const publicTxs = txs.filter((tx)=>tx.data.forPublic);
|
|
166
|
+
for (const tx of publicTxs){
|
|
163
167
|
const txHash = tx.getTxHash().toString();
|
|
164
|
-
const
|
|
168
|
+
const privateInputs = getPublicTubePrivateInputsFromTx(tx);
|
|
165
169
|
const tubeProof = promiseWithResolvers();
|
|
166
170
|
logger.debug(`Starting tube circuit for tx ${txHash}`);
|
|
167
|
-
this.doEnqueueTube(txHash,
|
|
171
|
+
this.doEnqueueTube(txHash, privateInputs, (proof)=>{
|
|
172
|
+
tubeProof.resolve(proof);
|
|
173
|
+
});
|
|
168
174
|
this.provingState?.cachedTubeProofs.set(txHash, tubeProof.promise);
|
|
169
175
|
}
|
|
170
176
|
return Promise.resolve();
|
|
@@ -345,8 +351,6 @@ const logger = createLogger('prover-client:orchestrator');
|
|
|
345
351
|
return;
|
|
346
352
|
}
|
|
347
353
|
const db = this.dbs.get(provingState.blockNumber);
|
|
348
|
-
// We build the base rollup inputs using a mock proof and verification key.
|
|
349
|
-
// These will be overwritten later once we have proven the tube circuit and any public kernels
|
|
350
354
|
const [ms, hints] = await elapsed(insertSideEffectsAndBuildBaseRollupHints(tx, provingState.globalVariables, provingState.l1ToL2MessageTreeSnapshotAfterInsertion, db, provingState.spongeBlobState));
|
|
351
355
|
this.metrics.recordBaseRollupInputs(ms);
|
|
352
356
|
const promises = [
|
|
@@ -403,8 +407,8 @@ const logger = createLogger('prover-client:orchestrator');
|
|
|
403
407
|
}
|
|
404
408
|
});
|
|
405
409
|
}
|
|
406
|
-
// Enqueues the tube circuit for a given transaction index, or reuses the one already enqueued
|
|
407
|
-
// Once completed, will enqueue the
|
|
410
|
+
// Enqueues the public tube circuit for a given transaction index, or reuses the one already enqueued.
|
|
411
|
+
// Once completed, will enqueue the the public tx base rollup.
|
|
408
412
|
getOrEnqueueTube(provingState, txIndex) {
|
|
409
413
|
if (!provingState.verifyState()) {
|
|
410
414
|
logger.debug('Not running tube circuit, state invalid');
|
|
@@ -412,13 +416,14 @@ const logger = createLogger('prover-client:orchestrator');
|
|
|
412
416
|
}
|
|
413
417
|
const txProvingState = provingState.getTxProvingState(txIndex);
|
|
414
418
|
const txHash = txProvingState.processedTx.hash.toString();
|
|
419
|
+
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH;
|
|
415
420
|
const handleResult = (result)=>{
|
|
416
421
|
logger.debug(`Got tube proof for tx index: ${txIndex}`, {
|
|
417
422
|
txHash
|
|
418
423
|
});
|
|
419
|
-
txProvingState.
|
|
424
|
+
txProvingState.setPublicTubeProof(result);
|
|
420
425
|
this.provingState?.cachedTubeProofs.delete(txHash);
|
|
421
|
-
this.
|
|
426
|
+
this.checkAndEnqueueBaseRollup(provingState, txIndex);
|
|
422
427
|
};
|
|
423
428
|
if (this.provingState?.cachedTubeProofs.has(txHash)) {
|
|
424
429
|
logger.debug(`Tube proof already enqueued for tx index: ${txIndex}`, {
|
|
@@ -428,17 +433,17 @@ const logger = createLogger('prover-client:orchestrator');
|
|
|
428
433
|
return;
|
|
429
434
|
}
|
|
430
435
|
logger.debug(`Enqueuing tube circuit for tx index: ${txIndex}`);
|
|
431
|
-
this.doEnqueueTube(txHash, txProvingState.
|
|
436
|
+
this.doEnqueueTube(txHash, txProvingState.getPublicTubePrivateInputs(), handleResult);
|
|
432
437
|
}
|
|
433
438
|
doEnqueueTube(txHash, inputs, handler, provingState = this.provingState) {
|
|
434
439
|
if (!provingState?.verifyState()) {
|
|
435
440
|
logger.debug('Not running tube circuit, state invalid');
|
|
436
441
|
return;
|
|
437
442
|
}
|
|
438
|
-
this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, 'ProvingOrchestrator.prover.
|
|
443
|
+
this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, 'ProvingOrchestrator.prover.getPublicTubeProof', {
|
|
439
444
|
[Attributes.TX_HASH]: txHash,
|
|
440
|
-
[Attributes.PROTOCOL_CIRCUIT_NAME]: 'tube
|
|
441
|
-
}, (signal)=>this.prover.
|
|
445
|
+
[Attributes.PROTOCOL_CIRCUIT_NAME]: 'public-tube'
|
|
446
|
+
}, (signal)=>this.prover.getPublicTubeProof(inputs, signal, this.provingState.epochNumber)), handler);
|
|
442
447
|
}
|
|
443
448
|
// Executes the merge rollup circuit and stored the output as intermediate state for the parent merge/block root circuit
|
|
444
449
|
// Enqueues the next level of merge if all inputs are available
|
|
@@ -678,10 +683,10 @@ const logger = createLogger('prover-client:orchestrator');
|
|
|
678
683
|
this.deferredProving(provingState, doAvmProving, (proofAndVk)=>{
|
|
679
684
|
logger.debug(`Proven VM for tx index: ${txIndex}`);
|
|
680
685
|
txProvingState.setAvmProof(proofAndVk);
|
|
681
|
-
this.
|
|
686
|
+
this.checkAndEnqueueBaseRollup(provingState, txIndex);
|
|
682
687
|
});
|
|
683
688
|
}
|
|
684
|
-
|
|
689
|
+
checkAndEnqueueBaseRollup(provingState, txIndex) {
|
|
685
690
|
const txProvingState = provingState.getTxProvingState(txIndex);
|
|
686
691
|
if (!txProvingState.ready()) {
|
|
687
692
|
return;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED,
|
|
1
|
+
import { AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH } from '@aztec/constants';
|
|
2
2
|
import type { AvmCircuitInputs } from '@aztec/stdlib/avm';
|
|
3
|
-
import type { ProofAndVerificationKey } from '@aztec/stdlib/interfaces/server';
|
|
4
|
-
import
|
|
3
|
+
import type { ProofAndVerificationKey, PublicInputsAndRecursiveProof } from '@aztec/stdlib/interfaces/server';
|
|
4
|
+
import type { PrivateToPublicKernelCircuitPublicInputs } from '@aztec/stdlib/kernel';
|
|
5
|
+
import { type BaseRollupHints, PrivateBaseRollupInputs, PublicBaseRollupInputs } from '@aztec/stdlib/rollup';
|
|
5
6
|
import type { AppendOnlyTreeSnapshot, MerkleTreeId } from '@aztec/stdlib/trees';
|
|
6
7
|
import type { ProcessedTx } from '@aztec/stdlib/tx';
|
|
7
8
|
/**
|
|
@@ -14,13 +15,13 @@ export declare class TxProvingState {
|
|
|
14
15
|
readonly processedTx: ProcessedTx;
|
|
15
16
|
private readonly baseRollupHints;
|
|
16
17
|
readonly treeSnapshots: Map<MerkleTreeId, AppendOnlyTreeSnapshot>;
|
|
17
|
-
private
|
|
18
|
+
private publicTube?;
|
|
18
19
|
private avm?;
|
|
19
20
|
constructor(processedTx: ProcessedTx, baseRollupHints: BaseRollupHints, treeSnapshots: Map<MerkleTreeId, AppendOnlyTreeSnapshot>);
|
|
20
21
|
get requireAvmProof(): boolean;
|
|
21
22
|
ready(): boolean;
|
|
22
|
-
getTubeInputs(): TubeInputs;
|
|
23
23
|
getAvmInputs(): AvmCircuitInputs;
|
|
24
|
+
getPublicTubePrivateInputs(): import("@aztec/stdlib/rollup").PublicTubePrivateInputs;
|
|
24
25
|
getBaseRollupTypeAndInputs(): {
|
|
25
26
|
rollupType: string;
|
|
26
27
|
inputs: PublicBaseRollupInputs;
|
|
@@ -28,7 +29,7 @@ export declare class TxProvingState {
|
|
|
28
29
|
rollupType: string;
|
|
29
30
|
inputs: PrivateBaseRollupInputs;
|
|
30
31
|
};
|
|
31
|
-
|
|
32
|
+
setPublicTubeProof(publicTubeProofAndVk: PublicInputsAndRecursiveProof<PrivateToPublicKernelCircuitPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>): void;
|
|
32
33
|
setAvmProof(avmProofAndVk: ProofAndVerificationKey<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>): void;
|
|
33
34
|
}
|
|
34
35
|
//# sourceMappingURL=tx-proving-state.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/tx-proving-state.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,
|
|
1
|
+
{"version":3,"file":"tx-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/tx-proving-state.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,EAEpC,yCAAyC,EAC1C,MAAM,kBAAkB,CAAC;AAG1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAC9G,OAAO,KAAK,EAAE,wCAAwC,EAAE,MAAM,sBAAsB,CAAC;AAErF,OAAO,EAEL,KAAK,eAAe,EAEpB,uBAAuB,EAEvB,sBAAsB,EACvB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAKpD;;;;GAIG;AACH,qBAAa,cAAc;;aAQP,WAAW,EAAE,WAAW;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe;aAChB,aAAa,EAAE,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC;IAT1E,OAAO,CAAC,UAAU,CAAC,CAGjB;IACF,OAAO,CAAC,GAAG,CAAC,CAAuE;gBAGjE,WAAW,EAAE,WAAW,EACvB,eAAe,EAAE,eAAe,EACjC,aAAa,EAAE,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC;IAG1E,IAAI,eAAe,YAElB;IAEM,KAAK;IAIL,YAAY,IAAI,gBAAgB;IAIhC,0BAA0B;IAI1B,0BAA0B;;;;;;;IAc1B,kBAAkB,CACvB,oBAAoB,EAAE,6BAA6B,CACjD,wCAAwC,EACxC,OAAO,yCAAyC,CACjD;IAKI,WAAW,CAAC,aAAa,EAAE,uBAAuB,CAAC,OAAO,oCAAoC,CAAC;CA+CvG"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import { AVM_VK_INDEX
|
|
1
|
+
import { AVM_VK_INDEX } from '@aztec/constants';
|
|
2
|
+
import { getVkData } from '@aztec/noir-protocol-circuits-types/server/vks';
|
|
2
3
|
import { getVKSiblingPath } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
3
|
-
import {
|
|
4
|
+
import { ProofData } from '@aztec/stdlib/proofs';
|
|
5
|
+
import { AvmProofData, PrivateBaseRollupHints, PrivateBaseRollupInputs, PublicBaseRollupHints, PublicBaseRollupInputs } from '@aztec/stdlib/rollup';
|
|
4
6
|
import { VkData } from '@aztec/stdlib/vks';
|
|
7
|
+
import { getCivcProofFromTx, getPublicTubePrivateInputsFromTx, toProofData } from './block-building-helpers.js';
|
|
5
8
|
/**
|
|
6
9
|
* Helper class to manage the proving cycle of a transaction
|
|
7
10
|
* This includes the public VMs and the public kernels
|
|
@@ -10,7 +13,7 @@ import { VkData } from '@aztec/stdlib/vks';
|
|
|
10
13
|
processedTx;
|
|
11
14
|
baseRollupHints;
|
|
12
15
|
treeSnapshots;
|
|
13
|
-
|
|
16
|
+
publicTube;
|
|
14
17
|
avm;
|
|
15
18
|
constructor(processedTx, baseRollupHints, treeSnapshots){
|
|
16
19
|
this.processedTx = processedTx;
|
|
@@ -21,14 +24,14 @@ import { VkData } from '@aztec/stdlib/vks';
|
|
|
21
24
|
return !!this.processedTx.avmProvingRequest;
|
|
22
25
|
}
|
|
23
26
|
ready() {
|
|
24
|
-
return
|
|
25
|
-
}
|
|
26
|
-
getTubeInputs() {
|
|
27
|
-
return new TubeInputs(!!this.processedTx.data.forPublic, this.processedTx.clientIvcProof);
|
|
27
|
+
return !this.requireAvmProof || !!this.avm && !!this.publicTube;
|
|
28
28
|
}
|
|
29
29
|
getAvmInputs() {
|
|
30
30
|
return this.processedTx.avmProvingRequest.inputs;
|
|
31
31
|
}
|
|
32
|
+
getPublicTubePrivateInputs() {
|
|
33
|
+
return getPublicTubePrivateInputsFromTx(this.processedTx);
|
|
34
|
+
}
|
|
32
35
|
getBaseRollupTypeAndInputs() {
|
|
33
36
|
if (this.requireAvmProof) {
|
|
34
37
|
return {
|
|
@@ -42,39 +45,35 @@ import { VkData } from '@aztec/stdlib/vks';
|
|
|
42
45
|
};
|
|
43
46
|
}
|
|
44
47
|
}
|
|
45
|
-
|
|
46
|
-
this.
|
|
48
|
+
setPublicTubeProof(publicTubeProofAndVk) {
|
|
49
|
+
this.publicTube = publicTubeProofAndVk;
|
|
47
50
|
}
|
|
48
51
|
setAvmProof(avmProofAndVk) {
|
|
49
52
|
this.avm = avmProofAndVk;
|
|
50
53
|
}
|
|
51
54
|
#getPrivateBaseInputs() {
|
|
52
|
-
if (!this.tube) {
|
|
53
|
-
throw new Error('Tx not ready for proving base rollup.');
|
|
54
|
-
}
|
|
55
|
-
const vkData = this.#getVkData(this.tube.verificationKey, PRIVATE_TUBE_VK_INDEX);
|
|
56
|
-
const tubeData = new PrivateTubeData(this.processedTx.data.toPrivateToRollupKernelCircuitPublicInputs(), this.tube.proof, vkData);
|
|
57
55
|
if (!(this.baseRollupHints instanceof PrivateBaseRollupHints)) {
|
|
58
56
|
throw new Error('Mismatched base rollup hints, expected private base rollup hints');
|
|
59
57
|
}
|
|
60
|
-
|
|
58
|
+
const privateTailProofData = new ProofData(this.processedTx.data.toPrivateToRollupKernelCircuitPublicInputs(), getCivcProofFromTx(this.processedTx), getVkData('HidingKernelToRollup'));
|
|
59
|
+
return new PrivateBaseRollupInputs(privateTailProofData, this.baseRollupHints);
|
|
61
60
|
}
|
|
62
61
|
#getPublicBaseInputs() {
|
|
63
62
|
if (!this.processedTx.avmProvingRequest) {
|
|
64
63
|
throw new Error('Should create private base rollup for a tx not requiring avm proof.');
|
|
65
64
|
}
|
|
66
|
-
if (!this.
|
|
67
|
-
throw new Error('Tx not ready for proving base rollup: tube proof undefined');
|
|
65
|
+
if (!this.publicTube) {
|
|
66
|
+
throw new Error('Tx not ready for proving base rollup: public tube proof undefined');
|
|
68
67
|
}
|
|
69
68
|
if (!this.avm) {
|
|
70
69
|
throw new Error('Tx not ready for proving base rollup: avm proof undefined');
|
|
71
70
|
}
|
|
72
|
-
const tubeData = new PublicTubeData(this.processedTx.data.toPrivateToPublicKernelCircuitPublicInputs(), this.tube.proof, this.#getVkData(this.tube.verificationKey, PUBLIC_TUBE_VK_INDEX));
|
|
73
|
-
const avmProofData = new AvmProofData(this.processedTx.avmProvingRequest.inputs.publicInputs, this.avm.proof, this.#getVkData(this.avm.verificationKey, AVM_VK_INDEX));
|
|
74
71
|
if (!(this.baseRollupHints instanceof PublicBaseRollupHints)) {
|
|
75
72
|
throw new Error('Mismatched base rollup hints, expected public base rollup hints');
|
|
76
73
|
}
|
|
77
|
-
|
|
74
|
+
const publicTubeProofData = toProofData(this.publicTube);
|
|
75
|
+
const avmProofData = new AvmProofData(this.processedTx.avmProvingRequest.inputs.publicInputs, this.avm.proof, this.#getVkData(this.avm.verificationKey, AVM_VK_INDEX));
|
|
76
|
+
return new PublicBaseRollupInputs(publicTubeProofData, avmProofData, this.baseRollupHints);
|
|
78
77
|
}
|
|
79
78
|
#getVkData(verificationKey, vkIndex) {
|
|
80
79
|
const vkPath = getVKSiblingPath(vkIndex);
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import type { AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, NESTED_RECURSIVE_PROOF_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, RECURSIVE_PROOF_LENGTH
|
|
1
|
+
import type { AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, NESTED_RECURSIVE_PROOF_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, RECURSIVE_PROOF_LENGTH } from '@aztec/constants';
|
|
2
2
|
import type { AvmCircuitInputs } from '@aztec/stdlib/avm';
|
|
3
3
|
import { type ProofAndVerificationKey, type ProvingJobProducer, type PublicInputsAndRecursiveProof, type ServerCircuitProver } from '@aztec/stdlib/interfaces/server';
|
|
4
|
+
import type { PrivateToPublicKernelCircuitPublicInputs } from '@aztec/stdlib/kernel';
|
|
4
5
|
import type { BaseParityInputs, ParityPublicInputs, RootParityInputs } from '@aztec/stdlib/parity';
|
|
5
|
-
import type { BaseOrMergeRollupPublicInputs, BlockMergeRollupInputs, BlockRootOrBlockMergePublicInputs, BlockRootRollupInputs, EmptyBlockRootRollupInputs, MergeRollupInputs, PaddingBlockRootRollupInputs, PrivateBaseRollupInputs, PublicBaseRollupInputs, RootRollupInputs, RootRollupPublicInputs, SingleTxBlockRootRollupInputs
|
|
6
|
+
import type { BaseOrMergeRollupPublicInputs, BlockMergeRollupInputs, BlockRootOrBlockMergePublicInputs, BlockRootRollupInputs, EmptyBlockRootRollupInputs, MergeRollupInputs, PaddingBlockRootRollupInputs, PrivateBaseRollupInputs, PublicBaseRollupInputs, PublicTubePrivateInputs, RootRollupInputs, RootRollupPublicInputs, SingleTxBlockRootRollupInputs } from '@aztec/stdlib/rollup';
|
|
6
7
|
import { type ProofStore } from './proof_store/index.js';
|
|
7
8
|
export declare class BrokerCircuitProverFacade implements ServerCircuitProver {
|
|
8
9
|
private broker;
|
|
@@ -38,11 +39,11 @@ export declare class BrokerCircuitProverFacade implements ServerCircuitProver {
|
|
|
38
39
|
getEmptyBlockRootRollupProof(input: EmptyBlockRootRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
39
40
|
getPaddingBlockRootRollupProof(input: PaddingBlockRootRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
40
41
|
getMergeRollupProof(input: MergeRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
42
|
+
getPublicTubeProof(inputs: PublicTubePrivateInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<PrivateToPublicKernelCircuitPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
41
43
|
getPrivateBaseRollupProof(baseRollupInput: PrivateBaseRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
42
44
|
getPublicBaseRollupProof(inputs: PublicBaseRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
43
45
|
getRootParityProof(inputs: RootParityInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<ParityPublicInputs, typeof NESTED_RECURSIVE_PROOF_LENGTH>>;
|
|
44
46
|
getRootRollupProof(input: RootRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<RootRollupPublicInputs, typeof RECURSIVE_PROOF_LENGTH>>;
|
|
45
|
-
getTubeProof(tubeInput: TubeInputs, signal?: AbortSignal, epochNumber?: number): Promise<ProofAndVerificationKey<typeof TUBE_PROOF_LENGTH>>;
|
|
46
47
|
private generateId;
|
|
47
48
|
}
|
|
48
49
|
//# sourceMappingURL=broker_prover_facade.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broker_prover_facade.d.ts","sourceRoot":"","sources":["../../src/proving_broker/broker_prover_facade.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oCAAoC,EACpC,6BAA6B,EAC7B,yCAAyC,EACzC,sBAAsB,
|
|
1
|
+
{"version":3,"file":"broker_prover_facade.d.ts","sourceRoot":"","sources":["../../src/proving_broker/broker_prover_facade.ts"],"names":[],"mappings":"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"}
|
|
@@ -332,6 +332,9 @@ export class BrokerCircuitProverFacade {
|
|
|
332
332
|
getMergeRollupProof(input, signal, epochNumber) {
|
|
333
333
|
return this.enqueueJob(this.generateId(ProvingRequestType.MERGE_ROLLUP, input, epochNumber), ProvingRequestType.MERGE_ROLLUP, input, epochNumber, signal);
|
|
334
334
|
}
|
|
335
|
+
getPublicTubeProof(inputs, signal, epochNumber) {
|
|
336
|
+
return this.enqueueJob(this.generateId(ProvingRequestType.PUBLIC_TUBE, inputs, epochNumber), ProvingRequestType.PUBLIC_TUBE, inputs, epochNumber, signal);
|
|
337
|
+
}
|
|
335
338
|
getPrivateBaseRollupProof(baseRollupInput, signal, epochNumber) {
|
|
336
339
|
return this.enqueueJob(this.generateId(ProvingRequestType.PRIVATE_BASE_ROLLUP, baseRollupInput, epochNumber), ProvingRequestType.PRIVATE_BASE_ROLLUP, baseRollupInput, epochNumber, signal);
|
|
337
340
|
}
|
|
@@ -344,9 +347,6 @@ export class BrokerCircuitProverFacade {
|
|
|
344
347
|
getRootRollupProof(input, signal, epochNumber) {
|
|
345
348
|
return this.enqueueJob(this.generateId(ProvingRequestType.ROOT_ROLLUP, input, epochNumber), ProvingRequestType.ROOT_ROLLUP, input, epochNumber, signal);
|
|
346
349
|
}
|
|
347
|
-
getTubeProof(tubeInput, signal, epochNumber) {
|
|
348
|
-
return this.enqueueJob(this.generateId(ProvingRequestType.TUBE_PROOF, tubeInput, epochNumber), ProvingRequestType.TUBE_PROOF, tubeInput, epochNumber, signal);
|
|
349
|
-
}
|
|
350
350
|
generateId(type, inputs, epochNumber = 0) {
|
|
351
351
|
const inputsHash = sha256(inputs.toBuffer());
|
|
352
352
|
return makeProvingJobId(epochNumber, type, inputsHash.toString('hex'));
|
|
@@ -61,7 +61,7 @@ import { ProvingBrokerInstrumentation } from './proving_broker_instrumentation.j
|
|
|
61
61
|
this.logger = logger;
|
|
62
62
|
this.queues = {
|
|
63
63
|
[ProvingRequestType.PUBLIC_VM]: new PriorityMemoryQueue(provingJobComparator),
|
|
64
|
-
[ProvingRequestType.
|
|
64
|
+
[ProvingRequestType.PUBLIC_TUBE]: new PriorityMemoryQueue(provingJobComparator),
|
|
65
65
|
[ProvingRequestType.PRIVATE_BASE_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
|
|
66
66
|
[ProvingRequestType.PUBLIC_BASE_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
|
|
67
67
|
[ProvingRequestType.MERGE_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
|
|
@@ -564,7 +564,7 @@ _ts_decorate([
|
|
|
564
564
|
ProvingRequestType.PUBLIC_BASE_ROLLUP,
|
|
565
565
|
ProvingRequestType.PRIVATE_BASE_ROLLUP,
|
|
566
566
|
ProvingRequestType.PUBLIC_VM,
|
|
567
|
-
ProvingRequestType.
|
|
567
|
+
ProvingRequestType.PUBLIC_TUBE,
|
|
568
568
|
ProvingRequestType.ROOT_PARITY,
|
|
569
569
|
ProvingRequestType.BASE_PARITY,
|
|
570
570
|
ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP
|
|
@@ -116,6 +116,10 @@ export class ProvingJobController {
|
|
|
116
116
|
// TODO(#14234)[Unconditional PIs validation]: Remove argument "undefined".
|
|
117
117
|
return await this.circuitProver.getAvmProof(inputs, undefined, signal, this.epochNumber);
|
|
118
118
|
}
|
|
119
|
+
case ProvingRequestType.PUBLIC_TUBE:
|
|
120
|
+
{
|
|
121
|
+
return await this.circuitProver.getPublicTubeProof(inputs, signal, this.epochNumber);
|
|
122
|
+
}
|
|
119
123
|
case ProvingRequestType.PRIVATE_BASE_ROLLUP:
|
|
120
124
|
{
|
|
121
125
|
return await this.circuitProver.getPrivateBaseRollupProof(inputs, signal, this.epochNumber);
|
|
@@ -160,10 +164,6 @@ export class ProvingJobController {
|
|
|
160
164
|
{
|
|
161
165
|
return await this.circuitProver.getRootParityProof(inputs, signal, this.epochNumber);
|
|
162
166
|
}
|
|
163
|
-
case ProvingRequestType.TUBE_PROOF:
|
|
164
|
-
{
|
|
165
|
-
return await this.circuitProver.getTubeProof(inputs, signal, this.epochNumber);
|
|
166
|
-
}
|
|
167
167
|
default:
|
|
168
168
|
{
|
|
169
169
|
const _exhaustive = type;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
|
|
1
|
+
import { NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH } from '@aztec/constants';
|
|
2
2
|
import type { AvmCircuitInputs } from '@aztec/stdlib/avm';
|
|
3
|
-
import { type
|
|
3
|
+
import { type ProvingJob, type ProvingJobId, type ProvingJobProducer, type ProvingJobStatus, type PublicInputsAndRecursiveProof, type ServerCircuitProver } from '@aztec/stdlib/interfaces/server';
|
|
4
|
+
import type { PrivateToPublicKernelCircuitPublicInputs } from '@aztec/stdlib/kernel';
|
|
4
5
|
import type { BaseParityInputs, RootParityInputs } from '@aztec/stdlib/parity';
|
|
5
|
-
import type { BaseOrMergeRollupPublicInputs, BlockMergeRollupInputs, BlockRootOrBlockMergePublicInputs, BlockRootRollupInputs, EmptyBlockRootRollupInputs, MergeRollupInputs, PaddingBlockRootRollupInputs, PrivateBaseRollupInputs, PublicBaseRollupInputs, RootRollupInputs, RootRollupPublicInputs, SingleTxBlockRootRollupInputs } from '@aztec/stdlib/rollup';
|
|
6
|
+
import type { BaseOrMergeRollupPublicInputs, BlockMergeRollupInputs, BlockRootOrBlockMergePublicInputs, BlockRootRollupInputs, EmptyBlockRootRollupInputs, MergeRollupInputs, PaddingBlockRootRollupInputs, PrivateBaseRollupInputs, PublicBaseRollupInputs, PublicTubePrivateInputs, RootRollupInputs, RootRollupPublicInputs, SingleTxBlockRootRollupInputs } from '@aztec/stdlib/rollup';
|
|
6
7
|
import { type ProofStore } from '../proving_broker/proof_store/index.js';
|
|
7
8
|
export declare class TestBroker implements ProvingJobProducer {
|
|
8
9
|
private proofStore;
|
|
@@ -20,9 +21,10 @@ export declare class TestBroker implements ProvingJobProducer {
|
|
|
20
21
|
export declare class MockProver implements ServerCircuitProver {
|
|
21
22
|
constructor();
|
|
22
23
|
getAvmProof(_inputs: AvmCircuitInputs, _skipPublicInputsValidation?: boolean, // TODO(#14234)[Unconditional PIs validation]: Remove.
|
|
23
|
-
_signal?: AbortSignal, _epochNumber?: number): Promise<ProofAndVerificationKey<20000>>;
|
|
24
|
+
_signal?: AbortSignal, _epochNumber?: number): Promise<import("@aztec/stdlib/interfaces/server").ProofAndVerificationKey<20000>>;
|
|
24
25
|
getBaseParityProof(_inputs: BaseParityInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<import("@aztec/stdlib/parity").ParityPublicInputs, 457>>;
|
|
25
26
|
getRootParityProof(_inputs: RootParityInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<import("@aztec/stdlib/parity").ParityPublicInputs, 457>>;
|
|
27
|
+
getPublicTubeProof(_inputs: PublicTubePrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<PrivateToPublicKernelCircuitPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
26
28
|
getPrivateBaseRollupProof(_baseRollupInput: PrivateBaseRollupInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
27
29
|
getPublicBaseRollupProof(_inputs: PublicBaseRollupInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
28
30
|
getMergeRollupProof(_input: MergeRollupInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
@@ -32,6 +34,5 @@ export declare class MockProver implements ServerCircuitProver {
|
|
|
32
34
|
getBlockRootRollupProof(_input: BlockRootRollupInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
33
35
|
getSingleTxBlockRootRollupProof(_input: SingleTxBlockRootRollupInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
34
36
|
getRootRollupProof(_input: RootRollupInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<RootRollupPublicInputs>>;
|
|
35
|
-
getTubeProof(): Promise<ProofAndVerificationKey<typeof TUBE_PROOF_LENGTH>>;
|
|
36
37
|
}
|
|
37
38
|
//# sourceMappingURL=mock_prover.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock_prover.d.ts","sourceRoot":"","sources":["../../src/test/mock_prover.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,yCAAyC,
|
|
1
|
+
{"version":3,"file":"mock_prover.d.ts","sourceRoot":"","sources":["../../src/test/mock_prover.ts"],"names":[],"mappings":"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"}
|