@aztec/prover-client 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/orchestrator/block-proving-state.d.ts +6 -5
- package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/block-proving-state.js +15 -38
- package/dest/orchestrator/epoch-proving-state.d.ts +2 -2
- package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/epoch-proving-state.js +4 -4
- package/dest/orchestrator/orchestrator.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator.js +9 -9
- package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/tx-proving-state.js +7 -18
- package/dest/proving_broker/broker_prover_facade.d.ts +2 -1
- package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
- package/dest/proving_broker/broker_prover_facade.js +3 -0
- package/dest/proving_broker/proving_broker.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker.js +1 -0
- package/dest/proving_broker/proving_job_controller.d.ts.map +1 -1
- package/dest/proving_broker/proving_job_controller.js +4 -0
- package/dest/test/mock_prover.d.ts +2 -1
- package/dest/test/mock_prover.d.ts.map +1 -1
- package/dest/test/mock_prover.js +3 -0
- package/package.json +15 -15
- package/src/orchestrator/block-proving-state.ts +12 -38
- package/src/orchestrator/epoch-proving-state.ts +4 -2
- package/src/orchestrator/orchestrator.ts +9 -8
- package/src/orchestrator/tx-proving-state.ts +9 -21
- package/src/proving_broker/broker_prover_facade.ts +17 -0
- package/src/proving_broker/proving_broker.ts +1 -0
- package/src/proving_broker/proving_job_controller.ts +4 -0
- package/src/test/mock_prover.ts +17 -0
|
@@ -6,8 +6,8 @@ import { type TreeNodeLocation } from '@aztec/foundation/trees';
|
|
|
6
6
|
import type { L2Block } from '@aztec/stdlib/block';
|
|
7
7
|
import type { PublicInputsAndRecursiveProof } from '@aztec/stdlib/interfaces/server';
|
|
8
8
|
import { type ParityPublicInputs, RootParityInputs } from '@aztec/stdlib/parity';
|
|
9
|
-
import { type BaseOrMergeRollupPublicInputs, type BlockRootOrBlockMergePublicInputs, BlockRootRollupInputs, EmptyBlockRootRollupInputs, MergeRollupInputs, SingleTxBlockRootRollupInputs } from '@aztec/stdlib/rollup';
|
|
10
|
-
import
|
|
9
|
+
import { type BaseOrMergeRollupPublicInputs, type BlockRootOrBlockMergePublicInputs, BlockRootRollupInputs, EmptyBlockRootRollupInputs, MergeRollupInputs, PaddingBlockRootRollupInputs, SingleTxBlockRootRollupInputs } from '@aztec/stdlib/rollup';
|
|
10
|
+
import { AppendOnlyTreeSnapshot, type MerkleTreeId } from '@aztec/stdlib/trees';
|
|
11
11
|
import { type BlockHeader, type GlobalVariables } from '@aztec/stdlib/tx';
|
|
12
12
|
import type { EpochProvingState } from './epoch-proving-state.js';
|
|
13
13
|
import type { TxProvingState } from './tx-proving-state.js';
|
|
@@ -28,6 +28,7 @@ export declare class BlockProvingState {
|
|
|
28
28
|
private readonly lastArchiveSiblingPath;
|
|
29
29
|
private readonly newArchiveSiblingPath;
|
|
30
30
|
private readonly previousBlockHeader;
|
|
31
|
+
private readonly proverId;
|
|
31
32
|
private readonly parentEpoch;
|
|
32
33
|
private baseOrMergeProvingOutputs;
|
|
33
34
|
private baseParityProvingOutputs;
|
|
@@ -42,7 +43,7 @@ export declare class BlockProvingState {
|
|
|
42
43
|
totalNumTxs: number;
|
|
43
44
|
private txs;
|
|
44
45
|
error: string | undefined;
|
|
45
|
-
constructor(index: number, globalVariables: GlobalVariables, newL1ToL2Messages: 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, parentEpoch: EpochProvingState);
|
|
46
|
+
constructor(index: number, globalVariables: GlobalVariables, newL1ToL2Messages: 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: Fr, parentEpoch: EpochProvingState);
|
|
46
47
|
get blockNumber(): number;
|
|
47
48
|
startNewBlock(numTxs: number, numBlobFields: number): void;
|
|
48
49
|
addNewTx(tx: TxProvingState): number;
|
|
@@ -60,7 +61,7 @@ export declare class BlockProvingState {
|
|
|
60
61
|
get epochNumber(): number;
|
|
61
62
|
getParentLocation(location: TreeNodeLocation): TreeNodeLocation;
|
|
62
63
|
getMergeRollupInputs(mergeLocation: TreeNodeLocation): MergeRollupInputs;
|
|
63
|
-
getBlockRootRollupTypeAndInputs(
|
|
64
|
+
getBlockRootRollupTypeAndInputs(): Promise<{
|
|
64
65
|
rollupType: string;
|
|
65
66
|
inputs: EmptyBlockRootRollupInputs;
|
|
66
67
|
} | {
|
|
@@ -70,7 +71,7 @@ export declare class BlockProvingState {
|
|
|
70
71
|
rollupType: string;
|
|
71
72
|
inputs: BlockRootRollupInputs;
|
|
72
73
|
}>;
|
|
73
|
-
getPaddingBlockRootInputs(
|
|
74
|
+
getPaddingBlockRootInputs(): PaddingBlockRootRollupInputs;
|
|
74
75
|
getRootParityInputs(): RootParityInputs;
|
|
75
76
|
getTxProvingState(txIndex: number): TxProvingState;
|
|
76
77
|
buildHeaderFromProvingOutputs(): Promise<BlockHeader>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-proving-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAA+B,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClG,OAAO,EACL,KAAK,cAAc,EAGnB,KAAK,wCAAwC,EAC7C,KAAK,yCAAyC,EAG/C,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAc,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,KAAK,gBAAgB,EAAuB,MAAM,yBAAyB,CAAC;AAGrF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AACrF,OAAO,EAAE,KAAK,kBAAkB,EAAmB,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EACL,KAAK,6BAA6B,EAElC,KAAK,iCAAiC,EAGtC,qBAAqB,EACrB,0BAA0B,
|
|
1
|
+
{"version":3,"file":"block-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-proving-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { UnbalancedTreeStore } from '@aztec/foundation/trees';
|
|
|
6
6
|
import { getVKIndex, getVKSiblingPath, getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
7
7
|
import { protocolContractTreeRoot } from '@aztec/protocol-contracts';
|
|
8
8
|
import { RootParityInput, RootParityInputs } from '@aztec/stdlib/parity';
|
|
9
|
-
import { BlockConstantData, BlockRootRollupBlobData, BlockRootRollupData, BlockRootRollupInputs, EmptyBlockRootRollupInputs, MergeRollupInputs, PreviousRollupData, SingleTxBlockRootRollupInputs } from '@aztec/stdlib/rollup';
|
|
9
|
+
import { BlockConstantData, BlockRootRollupBlobData, BlockRootRollupData, BlockRootRollupInputs, EmptyBlockRootRollupInputs, EpochConstantData, MergeRollupInputs, PaddingBlockRootRollupInputs, PreviousRollupData, SingleTxBlockRootRollupInputs } from '@aztec/stdlib/rollup';
|
|
10
10
|
import { StateReference } from '@aztec/stdlib/tx';
|
|
11
11
|
import { VkData } from '@aztec/stdlib/vks';
|
|
12
12
|
import { accumulateBlobs, buildBlobHints, buildHeaderFromCircuitOutputs, getEmptyBlockBlobsHash } from './block-building-helpers.js';
|
|
@@ -24,6 +24,7 @@ import { accumulateBlobs, buildBlobHints, buildHeaderFromCircuitOutputs, getEmpt
|
|
|
24
24
|
lastArchiveSiblingPath;
|
|
25
25
|
newArchiveSiblingPath;
|
|
26
26
|
previousBlockHeader;
|
|
27
|
+
proverId;
|
|
27
28
|
parentEpoch;
|
|
28
29
|
baseOrMergeProvingOutputs;
|
|
29
30
|
baseParityProvingOutputs;
|
|
@@ -38,7 +39,7 @@ import { accumulateBlobs, buildBlobHints, buildHeaderFromCircuitOutputs, getEmpt
|
|
|
38
39
|
totalNumTxs;
|
|
39
40
|
txs;
|
|
40
41
|
error;
|
|
41
|
-
constructor(index, globalVariables, newL1ToL2Messages, l1ToL2MessageTreeSnapshot, l1ToL2MessageSubtreeSiblingPath, l1ToL2MessageTreeSnapshotAfterInsertion, lastArchiveSnapshot, lastArchiveSiblingPath, newArchiveSiblingPath, previousBlockHeader, parentEpoch){
|
|
42
|
+
constructor(index, globalVariables, newL1ToL2Messages, l1ToL2MessageTreeSnapshot, l1ToL2MessageSubtreeSiblingPath, l1ToL2MessageTreeSnapshotAfterInsertion, lastArchiveSnapshot, lastArchiveSiblingPath, newArchiveSiblingPath, previousBlockHeader, proverId, parentEpoch){
|
|
42
43
|
this.index = index;
|
|
43
44
|
this.globalVariables = globalVariables;
|
|
44
45
|
this.newL1ToL2Messages = newL1ToL2Messages;
|
|
@@ -49,6 +50,7 @@ import { accumulateBlobs, buildBlobHints, buildHeaderFromCircuitOutputs, getEmpt
|
|
|
49
50
|
this.lastArchiveSiblingPath = lastArchiveSiblingPath;
|
|
50
51
|
this.newArchiveSiblingPath = newArchiveSiblingPath;
|
|
51
52
|
this.previousBlockHeader = previousBlockHeader;
|
|
53
|
+
this.proverId = proverId;
|
|
52
54
|
this.parentEpoch = parentEpoch;
|
|
53
55
|
this.baseOrMergeProvingOutputs = new UnbalancedTreeStore(0);
|
|
54
56
|
this.blockRootRollupStarted = false;
|
|
@@ -139,7 +141,7 @@ import { accumulateBlobs, buildBlobHints, buildHeaderFromCircuitOutputs, getEmpt
|
|
|
139
141
|
this.#getPreviousRollupData(right)
|
|
140
142
|
]);
|
|
141
143
|
}
|
|
142
|
-
async getBlockRootRollupTypeAndInputs(
|
|
144
|
+
async getBlockRootRollupTypeAndInputs() {
|
|
143
145
|
if (!this.rootParityProvingOutput) {
|
|
144
146
|
throw new Error('Root parity is not ready.');
|
|
145
147
|
}
|
|
@@ -148,7 +150,7 @@ import { accumulateBlobs, buildBlobHints, buildHeaderFromCircuitOutputs, getEmpt
|
|
|
148
150
|
if (proofs.length !== nonEmptyProofs.length) {
|
|
149
151
|
throw new Error('At lease one child is not ready for the block root.');
|
|
150
152
|
}
|
|
151
|
-
const data = this.#getBlockRootRollupData(
|
|
153
|
+
const data = this.#getBlockRootRollupData();
|
|
152
154
|
if (this.totalNumTxs === 0) {
|
|
153
155
|
const constants = BlockConstantData.from({
|
|
154
156
|
lastArchive: this.lastArchiveSnapshot,
|
|
@@ -162,8 +164,7 @@ import { accumulateBlobs, buildBlobHints, buildHeaderFromCircuitOutputs, getEmpt
|
|
|
162
164
|
rollupType: 'empty-block-root-rollup',
|
|
163
165
|
inputs: EmptyBlockRootRollupInputs.from({
|
|
164
166
|
data,
|
|
165
|
-
constants
|
|
166
|
-
isPadding: false
|
|
167
|
+
constants
|
|
167
168
|
})
|
|
168
169
|
};
|
|
169
170
|
}
|
|
@@ -182,38 +183,14 @@ import { accumulateBlobs, buildBlobHints, buildHeaderFromCircuitOutputs, getEmpt
|
|
|
182
183
|
};
|
|
183
184
|
}
|
|
184
185
|
}
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
throw new Error('Root parity is not ready.');
|
|
188
|
-
}
|
|
189
|
-
if (!this.blockRootProvingOutput || !this.endBlobAccumulator) {
|
|
190
|
-
throw new Error('Block root not ready for padding.');
|
|
191
|
-
}
|
|
192
|
-
// Use the new block header, archive and l1toL2 of the current block as the previous header, archive and l1toL2 of the next padding block.
|
|
193
|
-
const previousBlockHeader = await this.buildHeaderFromProvingOutputs();
|
|
194
|
-
const lastArchive = this.blockRootProvingOutput.inputs.newArchive;
|
|
195
|
-
const lastL1ToL2 = this.l1ToL2MessageTreeSnapshotAfterInsertion;
|
|
196
|
-
const data = BlockRootRollupData.from({
|
|
197
|
-
l1ToL2Roots: this.#getRootParityData(this.rootParityProvingOutput),
|
|
198
|
-
l1ToL2MessageSubtreeSiblingPath: this.l1ToL2MessageSubtreeSiblingPath,
|
|
199
|
-
previousArchiveSiblingPath: this.lastArchiveSiblingPath,
|
|
200
|
-
newArchiveSiblingPath: this.newArchiveSiblingPath,
|
|
201
|
-
previousBlockHeader,
|
|
202
|
-
startBlobAccumulator: BlobAccumulatorPublicInputs.fromBatchedBlobAccumulator(this.endBlobAccumulator),
|
|
203
|
-
finalBlobChallenges: this.endBlobAccumulator.finalBlobChallenges,
|
|
204
|
-
proverId
|
|
205
|
-
});
|
|
206
|
-
const constants = BlockConstantData.from({
|
|
207
|
-
lastArchive,
|
|
208
|
-
lastL1ToL2,
|
|
209
|
-
globalVariables: this.globalVariables,
|
|
186
|
+
getPaddingBlockRootInputs() {
|
|
187
|
+
const constants = EpochConstantData.from({
|
|
210
188
|
vkTreeRoot: getVKTreeRoot(),
|
|
211
|
-
protocolContractTreeRoot
|
|
189
|
+
protocolContractTreeRoot,
|
|
190
|
+
proverId: this.proverId
|
|
212
191
|
});
|
|
213
|
-
return
|
|
214
|
-
|
|
215
|
-
constants,
|
|
216
|
-
isPadding: true
|
|
192
|
+
return PaddingBlockRootRollupInputs.from({
|
|
193
|
+
constants
|
|
217
194
|
});
|
|
218
195
|
}
|
|
219
196
|
getRootParityInputs() {
|
|
@@ -264,7 +241,7 @@ import { accumulateBlobs, buildBlobHints, buildHeaderFromCircuitOutputs, getEmpt
|
|
|
264
241
|
this.error = reason;
|
|
265
242
|
this.parentEpoch.reject(reason);
|
|
266
243
|
}
|
|
267
|
-
#getBlockRootRollupData(
|
|
244
|
+
#getBlockRootRollupData() {
|
|
268
245
|
return BlockRootRollupData.from({
|
|
269
246
|
l1ToL2Roots: this.#getRootParityData(this.rootParityProvingOutput),
|
|
270
247
|
l1ToL2MessageSubtreeSiblingPath: this.l1ToL2MessageSubtreeSiblingPath,
|
|
@@ -273,7 +250,7 @@ import { accumulateBlobs, buildBlobHints, buildHeaderFromCircuitOutputs, getEmpt
|
|
|
273
250
|
previousBlockHeader: this.previousBlockHeader,
|
|
274
251
|
startBlobAccumulator: BlobAccumulatorPublicInputs.fromBatchedBlobAccumulator(this.startBlobAccumulator),
|
|
275
252
|
finalBlobChallenges: this.startBlobAccumulator.finalBlobChallenges,
|
|
276
|
-
proverId
|
|
253
|
+
proverId: this.proverId
|
|
277
254
|
});
|
|
278
255
|
}
|
|
279
256
|
async #getBlockRootRollupBlobData() {
|
|
@@ -38,7 +38,7 @@ export declare class EpochProvingState {
|
|
|
38
38
|
readonly cachedTubeProofs: Map<string, Promise<ProofAndVerificationKey<535>>>;
|
|
39
39
|
blocks: (BlockProvingState | undefined)[];
|
|
40
40
|
constructor(epochNumber: number, firstBlockNumber: number, totalNumBlocks: number, finalBlobBatchingChallenges: FinalBlobBatchingChallenges, completionCallback: (result: ProvingResult) => void, rejectionCallback: (reason: string) => void);
|
|
41
|
-
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): BlockProvingState;
|
|
41
|
+
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: Fr): BlockProvingState;
|
|
42
42
|
verifyState(): boolean;
|
|
43
43
|
isAcceptingBlocks(): boolean;
|
|
44
44
|
setBlockRootRollupProof(blockIndex: number, proof: PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>): TreeNodeLocation;
|
|
@@ -50,7 +50,7 @@ export declare class EpochProvingState {
|
|
|
50
50
|
getParentLocation(location: TreeNodeLocation): TreeNodeLocation;
|
|
51
51
|
getBlockMergeRollupInputs(mergeLocation: TreeNodeLocation): BlockMergeRollupInputs;
|
|
52
52
|
getRootRollupInputs(): RootRollupInputs;
|
|
53
|
-
getPaddingBlockRootInputs(
|
|
53
|
+
getPaddingBlockRootInputs(): import("@aztec/stdlib/rollup").PaddingBlockRootRollupInputs;
|
|
54
54
|
getBlockProvingStateByBlockNumber(blockNumber: number): BlockProvingState | undefined;
|
|
55
55
|
getEpochProofResult(): {
|
|
56
56
|
proof: Proof;
|
|
@@ -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,EAE1C,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,KAAK,gBAAgB,EAAuB,MAAM,yBAAyB,CAAC;AAErF,OAAO,KAAK,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAC9G,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EACL,sBAAsB,EACtB,KAAK,iCAAiC,EAEtC,gBAAgB,EAChB,KAAK,sBAAsB,EAC5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;AAStE,MAAM,MAAM,aAAa,GAAG;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1F;;;;;GAKG;AACH,qBAAa,iBAAiB;;aAiBV,WAAW,EAAE,MAAM;aACnB,gBAAgB,EAAE,MAAM;aACxB,cAAc,EAAE,MAAM;aACtB,2BAA2B,EAAE,2BAA2B;IACxE,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,iBAAiB;IArB3B,OAAO,CAAC,8BAA8B,CAEpC;IACF,OAAO,CAAC,6BAA6B,CAEvB;IACd,OAAO,CAAC,uBAAuB,CAAoE;IACnG,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,qBAAqB,CAAiD;IAG9E,SAAgB,gBAAgB,qDAAiF;IAE1G,MAAM,EAAE,CAAC,iBAAiB,GAAG,SAAS,CAAC,EAAE,CAAM;gBAGpC,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,EACtB,2BAA2B,EAAE,2BAA2B,EAChE,kBAAkB,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,EACnD,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;IAO9C,aAAa,CAClB,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,EAAE,EAAE,EACpB,yBAAyB,EAAE,sBAAsB,EACjD,+BAA+B,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wCAAwC,CAAC,EAC3F,uCAAuC,EAAE,sBAAsB,EAC/D,mBAAmB,EAAE,sBAAsB,EAC3C,sBAAsB,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,cAAc,CAAC,EACxD,qBAAqB,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,cAAc,CAAC,EACvD,mBAAmB,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"epoch-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/epoch-proving-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,9 +44,9 @@ var PROVING_STATE_LIFECYCLE = /*#__PURE__*/ function(PROVING_STATE_LIFECYCLE) {
|
|
|
44
44
|
}
|
|
45
45
|
// Adds a block to the proving state, returns its index
|
|
46
46
|
// Will update the proving life cycle if this is the last block
|
|
47
|
-
startNewBlock(globalVariables, l1ToL2Messages, l1ToL2MessageTreeSnapshot, l1ToL2MessageSubtreeSiblingPath, l1ToL2MessageTreeSnapshotAfterInsertion, lastArchiveSnapshot, lastArchiveSiblingPath, newArchiveSiblingPath, previousBlockHeader) {
|
|
47
|
+
startNewBlock(globalVariables, l1ToL2Messages, l1ToL2MessageTreeSnapshot, l1ToL2MessageSubtreeSiblingPath, l1ToL2MessageTreeSnapshotAfterInsertion, lastArchiveSnapshot, lastArchiveSiblingPath, newArchiveSiblingPath, previousBlockHeader, proverId) {
|
|
48
48
|
const index = globalVariables.blockNumber - this.firstBlockNumber;
|
|
49
|
-
const block = new BlockProvingState(index, globalVariables, l1ToL2Messages, l1ToL2MessageTreeSnapshot, l1ToL2MessageSubtreeSiblingPath, l1ToL2MessageTreeSnapshotAfterInsertion, lastArchiveSnapshot, lastArchiveSiblingPath, newArchiveSiblingPath, previousBlockHeader, this);
|
|
49
|
+
const block = new BlockProvingState(index, globalVariables, l1ToL2Messages, l1ToL2MessageTreeSnapshot, l1ToL2MessageSubtreeSiblingPath, l1ToL2MessageTreeSnapshotAfterInsertion, lastArchiveSnapshot, lastArchiveSiblingPath, newArchiveSiblingPath, previousBlockHeader, proverId, this);
|
|
50
50
|
this.blocks[index] = block;
|
|
51
51
|
if (this.blocks.filter((b)=>!!b).length === this.totalNumBlocks) {
|
|
52
52
|
this.provingStateLifecycle = 1;
|
|
@@ -120,11 +120,11 @@ var PROVING_STATE_LIFECYCLE = /*#__PURE__*/ function(PROVING_STATE_LIFECYCLE) {
|
|
|
120
120
|
]
|
|
121
121
|
});
|
|
122
122
|
}
|
|
123
|
-
getPaddingBlockRootInputs(
|
|
123
|
+
getPaddingBlockRootInputs() {
|
|
124
124
|
if (!this.blocks[0]?.isComplete()) {
|
|
125
125
|
throw new Error('Epoch needs one completed block in order to be padded.');
|
|
126
126
|
}
|
|
127
|
-
return this.blocks[0].getPaddingBlockRootInputs(
|
|
127
|
+
return this.blocks[0].getPaddingBlockRootInputs();
|
|
128
128
|
}
|
|
129
129
|
// Returns a specific transaction proving state
|
|
130
130
|
getBlockProvingStateByBlockNumber(blockNumber) {
|
|
@@ -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,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,EACV,WAAW,EACX,wBAAwB,EAGxB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAUzC,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;AAqBjC;;;;;;;;;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,EAAE,EAC7B,eAAe,GAAE,eAAsC;IAKzD,IAAI,MAAM,IAAI,MAAM,CAEnB;IAEM,WAAW,IAAI,EAAE;IAIjB,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;
|
|
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,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,EACV,WAAW,EACX,wBAAwB,EAGxB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAUzC,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;AAqBjC;;;;;;;;;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,EAAE,EAC7B,eAAe,GAAE,eAAsC;IAKzD,IAAI,MAAM,IAAI,MAAM,CAEnB;IAEM,WAAW,IAAI,EAAE;IAIjB,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;IAiDtD;;;OAGG;IAEU,iBAAiB,CAAC,GAAG,EAAE,EAAE,EAAE;IAcxC;;;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;IAyCrC,OAAO,CAAC,iBAAiB;IA8CzB,OAAO,CAAC,gBAAgB;IA0BxB,OAAO,CAAC,aAAa;IA4BrB,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;IAmDjB,OAAO,CAAC,4BAA4B;CAWrC"}
|
|
@@ -103,7 +103,7 @@ const logger = createLogger('prover-client:orchestrator');
|
|
|
103
103
|
const lastArchive = await getTreeSnapshot(MerkleTreeId.ARCHIVE, db);
|
|
104
104
|
const lastArchiveSiblingPath = await getLastSiblingPath(MerkleTreeId.ARCHIVE, db);
|
|
105
105
|
const newArchiveSiblingPath = await getRootTreeSiblingPath(MerkleTreeId.ARCHIVE, db);
|
|
106
|
-
const blockProvingState = this.provingState.startNewBlock(globalVariables, l1ToL2Messages, l1ToL2MessageTreeSnapshot, l1ToL2MessageSubtreeSiblingPath, l1ToL2MessageTreeSnapshotAfterInsertion, lastArchive, lastArchiveSiblingPath, newArchiveSiblingPath, previousBlockHeader);
|
|
106
|
+
const blockProvingState = this.provingState.startNewBlock(globalVariables, l1ToL2Messages, l1ToL2MessageTreeSnapshot, l1ToL2MessageSubtreeSiblingPath, l1ToL2MessageTreeSnapshotAfterInsertion, lastArchive, lastArchiveSiblingPath, newArchiveSiblingPath, previousBlockHeader, this.proverId);
|
|
107
107
|
// Enqueue base parity circuits for the block
|
|
108
108
|
for(let i = 0; i < baseParityInputs.length; i++){
|
|
109
109
|
this.enqueueBaseParityCircuit(blockProvingState, baseParityInputs[i], i);
|
|
@@ -461,7 +461,7 @@ const logger = createLogger('prover-client:orchestrator');
|
|
|
461
461
|
return;
|
|
462
462
|
}
|
|
463
463
|
provingState.blockRootRollupStarted = true;
|
|
464
|
-
const { rollupType, inputs } = await provingState.getBlockRootRollupTypeAndInputs(
|
|
464
|
+
const { rollupType, inputs } = await provingState.getBlockRootRollupTypeAndInputs();
|
|
465
465
|
logger.debug(`Enqueuing ${rollupType} for block ${provingState.blockNumber} with ${provingState.newL1ToL2Messages.length} l1 to l2 msgs.`);
|
|
466
466
|
this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, 'ProvingOrchestrator.prover.getBlockRootRollupProof', {
|
|
467
467
|
[Attributes.PROTOCOL_CIRCUIT_NAME]: rollupType
|
|
@@ -497,7 +497,7 @@ const logger = createLogger('prover-client:orchestrator');
|
|
|
497
497
|
const epochProvingState = this.provingState;
|
|
498
498
|
const leafLocation = epochProvingState.setBlockRootRollupProof(provingState.index, result);
|
|
499
499
|
if (epochProvingState.totalNumBlocks === 1) {
|
|
500
|
-
|
|
500
|
+
this.enqueueEpochPadding(epochProvingState);
|
|
501
501
|
} else {
|
|
502
502
|
this.checkAndEnqueueNextBlockMergeRollup(epochProvingState, leafLocation);
|
|
503
503
|
}
|
|
@@ -553,16 +553,16 @@ const logger = createLogger('prover-client:orchestrator');
|
|
|
553
553
|
this.checkAndEnqueueNextBlockMergeRollup(provingState, location);
|
|
554
554
|
});
|
|
555
555
|
}
|
|
556
|
-
|
|
556
|
+
enqueueEpochPadding(provingState) {
|
|
557
557
|
if (!provingState.verifyState()) {
|
|
558
558
|
logger.debug('Not running epoch padding. State no longer valid.');
|
|
559
559
|
return;
|
|
560
560
|
}
|
|
561
|
-
logger.debug('Padding epoch proof with
|
|
562
|
-
const inputs =
|
|
563
|
-
this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, 'ProvingOrchestrator.prover.
|
|
564
|
-
[Attributes.PROTOCOL_CIRCUIT_NAME]: '
|
|
565
|
-
}, (signal)=>this.prover.
|
|
561
|
+
logger.debug('Padding epoch proof with a padding block root proof.');
|
|
562
|
+
const inputs = provingState.getPaddingBlockRootInputs();
|
|
563
|
+
this.deferredProving(provingState, wrapCallbackInSpan(this.tracer, 'ProvingOrchestrator.prover.getPaddingBlockRootRollupProof', {
|
|
564
|
+
[Attributes.PROTOCOL_CIRCUIT_NAME]: 'padding-block-root-rollup'
|
|
565
|
+
}, (signal)=>this.prover.getPaddingBlockRootRollupProof(inputs, signal, provingState.epochNumber)), (result)=>{
|
|
566
566
|
logger.debug('Completed proof for padding block root.');
|
|
567
567
|
provingState.setPaddingBlockRootProof(result);
|
|
568
568
|
this.checkAndEnqueueRootRollup(provingState);
|
|
@@ -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,EAIpC,KAAK,iBAAiB,EACvB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAEL,KAAK,eAAe,EAEpB,uBAAuB,EAGvB,sBAAsB,EAEtB,UAAU,EACX,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD;;;;GAIG;AACH,qBAAa,cAAc;;aAKP,WAAW,EAAE,WAAW;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe;aAChB,aAAa,EAAE,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC;IAN1E,OAAO,CAAC,IAAI,CAAC,CAAoD;IACjE,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,aAAa;IAIb,YAAY,IAAI,gBAAgB;IAIhC,0BAA0B;;;;;;;IAc1B,YAAY,CAAC,cAAc,EAAE,uBAAuB,CAAC,OAAO,iBAAiB,CAAC;IAI9E,WAAW,CAAC,aAAa,EAAE,uBAAuB,CAAC,OAAO,oCAAoC,CAAC;CAwDvG"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AVM_VK_INDEX,
|
|
2
|
-
import {
|
|
1
|
+
import { AVM_VK_INDEX, PRIVATE_TUBE_VK_INDEX, PUBLIC_TUBE_VK_INDEX } from '@aztec/constants';
|
|
2
|
+
import { getVKSiblingPath } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
3
3
|
import { AvmProofData, PrivateBaseRollupHints, PrivateBaseRollupInputs, PrivateTubeData, PublicBaseRollupHints, PublicBaseRollupInputs, PublicTubeData, TubeInputs } from '@aztec/stdlib/rollup';
|
|
4
4
|
import { VkData } from '@aztec/stdlib/vks';
|
|
5
5
|
/**
|
|
@@ -52,7 +52,7 @@ import { VkData } from '@aztec/stdlib/vks';
|
|
|
52
52
|
if (!this.tube) {
|
|
53
53
|
throw new Error('Tx not ready for proving base rollup.');
|
|
54
54
|
}
|
|
55
|
-
const vkData = this.#
|
|
55
|
+
const vkData = this.#getVkData(this.tube.verificationKey, PRIVATE_TUBE_VK_INDEX);
|
|
56
56
|
const tubeData = new PrivateTubeData(this.processedTx.data.toPrivateToRollupKernelCircuitPublicInputs(), this.tube.proof, vkData);
|
|
57
57
|
if (!(this.baseRollupHints instanceof PrivateBaseRollupHints)) {
|
|
58
58
|
throw new Error('Mismatched base rollup hints, expected private base rollup hints');
|
|
@@ -69,26 +69,15 @@ import { VkData } from '@aztec/stdlib/vks';
|
|
|
69
69
|
if (!this.avm) {
|
|
70
70
|
throw new Error('Tx not ready for proving base rollup: avm proof undefined');
|
|
71
71
|
}
|
|
72
|
-
const tubeData = new PublicTubeData(this.processedTx.data.toPrivateToPublicKernelCircuitPublicInputs(), this.tube.proof, this.#
|
|
73
|
-
const avmProofData = new AvmProofData(this.processedTx.avmProvingRequest.inputs.publicInputs, this.avm.proof, this.#
|
|
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
74
|
if (!(this.baseRollupHints instanceof PublicBaseRollupHints)) {
|
|
75
75
|
throw new Error('Mismatched base rollup hints, expected public base rollup hints');
|
|
76
76
|
}
|
|
77
77
|
return new PublicBaseRollupInputs(tubeData, avmProofData, this.baseRollupHints);
|
|
78
78
|
}
|
|
79
|
-
#
|
|
80
|
-
let vkIndex = TUBE_VK_INDEX;
|
|
81
|
-
try {
|
|
82
|
-
vkIndex = getVKIndex(this.tube.verificationKey);
|
|
83
|
-
} catch {
|
|
84
|
-
// TODO(#7410) The VK for the tube won't be in the tree for now, so we manually set it to the tube vk index
|
|
85
|
-
}
|
|
86
|
-
const vkPath = getVKSiblingPath(vkIndex);
|
|
87
|
-
return new VkData(this.tube.verificationKey, vkIndex, vkPath);
|
|
88
|
-
}
|
|
89
|
-
#getAvmVkData() {
|
|
90
|
-
const vkIndex = AVM_VK_INDEX;
|
|
79
|
+
#getVkData(verificationKey, vkIndex) {
|
|
91
80
|
const vkPath = getVKSiblingPath(vkIndex);
|
|
92
|
-
return new VkData(
|
|
81
|
+
return new VkData(verificationKey, vkIndex, vkPath);
|
|
93
82
|
}
|
|
94
83
|
}
|
|
@@ -2,7 +2,7 @@ import type { AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, NESTED_RECURSIVE_PROOF_LENGT
|
|
|
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
4
|
import type { BaseParityInputs, ParityPublicInputs, RootParityInputs } from '@aztec/stdlib/parity';
|
|
5
|
-
import type { BaseOrMergeRollupPublicInputs, BlockMergeRollupInputs, BlockRootOrBlockMergePublicInputs, BlockRootRollupInputs, EmptyBlockRootRollupInputs, MergeRollupInputs, PrivateBaseRollupInputs, PublicBaseRollupInputs, RootRollupInputs, RootRollupPublicInputs, SingleTxBlockRootRollupInputs, TubeInputs } from '@aztec/stdlib/rollup';
|
|
5
|
+
import type { BaseOrMergeRollupPublicInputs, BlockMergeRollupInputs, BlockRootOrBlockMergePublicInputs, BlockRootRollupInputs, EmptyBlockRootRollupInputs, MergeRollupInputs, PaddingBlockRootRollupInputs, PrivateBaseRollupInputs, PublicBaseRollupInputs, RootRollupInputs, RootRollupPublicInputs, SingleTxBlockRootRollupInputs, TubeInputs } from '@aztec/stdlib/rollup';
|
|
6
6
|
import { type ProofStore } from './proof_store/index.js';
|
|
7
7
|
export declare class BrokerCircuitProverFacade implements ServerCircuitProver {
|
|
8
8
|
private broker;
|
|
@@ -36,6 +36,7 @@ export declare class BrokerCircuitProverFacade implements ServerCircuitProver {
|
|
|
36
36
|
getBlockRootRollupProof(input: BlockRootRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
37
37
|
getSingleTxBlockRootRollupProof(input: SingleTxBlockRootRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
38
38
|
getEmptyBlockRootRollupProof(input: EmptyBlockRootRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
39
|
+
getPaddingBlockRootRollupProof(input: PaddingBlockRootRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
39
40
|
getMergeRollupProof(input: MergeRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
40
41
|
getPrivateBaseRollupProof(baseRollupInput: PrivateBaseRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
41
42
|
getPublicBaseRollupProof(inputs: PublicBaseRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broker_prover_facade.d.ts","sourceRoot":"","sources":["../../src/proving_broker/broker_prover_facade.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"broker_prover_facade.d.ts","sourceRoot":"","sources":["../../src/proving_broker/broker_prover_facade.ts"],"names":[],"mappings":"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"}
|
|
@@ -326,6 +326,9 @@ export class BrokerCircuitProverFacade {
|
|
|
326
326
|
getEmptyBlockRootRollupProof(input, signal, epochNumber) {
|
|
327
327
|
return this.enqueueJob(this.generateId(ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP, input, epochNumber), ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP, input, epochNumber, signal);
|
|
328
328
|
}
|
|
329
|
+
getPaddingBlockRootRollupProof(input, signal, epochNumber) {
|
|
330
|
+
return this.enqueueJob(this.generateId(ProvingRequestType.PADDING_BLOCK_ROOT_ROLLUP, input, epochNumber), ProvingRequestType.PADDING_BLOCK_ROOT_ROLLUP, input, epochNumber, signal);
|
|
331
|
+
}
|
|
329
332
|
getMergeRollupProof(input, signal, epochNumber) {
|
|
330
333
|
return this.enqueueJob(this.generateId(ProvingRequestType.MERGE_ROLLUP, input, epochNumber), ProvingRequestType.MERGE_ROLLUP, input, epochNumber, signal);
|
|
331
334
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proving_broker.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_broker.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EAEvB,KAAK,gBAAgB,EAEtB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAAE,KAAK,kBAAkB,EAA6B,MAAM,aAAa,CAAC;AACjF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAW1E;;;GAGG;AACH,qBAAa,aAAc,YAAW,kBAAkB,EAAE,kBAAkB,EAAE,SAAS;;
|
|
1
|
+
{"version":3,"file":"proving_broker.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_broker.ts"],"names":[],"mappings":"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"}
|
|
@@ -70,6 +70,7 @@ import { ProvingBrokerInstrumentation } from './proving_broker_instrumentation.j
|
|
|
70
70
|
[ProvingRequestType.BLOCK_ROOT_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
|
|
71
71
|
[ProvingRequestType.SINGLE_TX_BLOCK_ROOT_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
|
|
72
72
|
[ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
|
|
73
|
+
[ProvingRequestType.PADDING_BLOCK_ROOT_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
|
|
73
74
|
[ProvingRequestType.BASE_PARITY]: new PriorityMemoryQueue(provingJobComparator),
|
|
74
75
|
[ProvingRequestType.ROOT_PARITY]: new PriorityMemoryQueue(provingJobComparator)
|
|
75
76
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proving_job_controller.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_job_controller.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,oBAAY,0BAA0B;IACpC,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAED,qBAAa,oBAAoB;IAO7B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,GAAG;IAZb,OAAO,CAAC,MAAM,CAA+D;IAC7E,OAAO,CAAC,OAAO,CAAC,CAAgB;IAChC,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,MAAM,CAAC,CAAmD;gBAGxD,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,mBAAmB,EAClC,UAAU,EAAE,MAAM,IAAI,EACtB,GAAG,yCAA+F;IAGrG,KAAK,IAAI,IAAI;IAmBb,SAAS,IAAI,0BAA0B;IAIvC,SAAS,IAAI,oBAAoB,CAAC,kBAAkB,CAAC,GAAG,KAAK,GAAG,SAAS;IAIzE,KAAK,IAAI,IAAI;IAeb,QAAQ,IAAI,YAAY;IAIxB,YAAY,IAAI,kBAAkB;IAIlC,YAAY,IAAI,MAAM;IAItB,gBAAgB,IAAI,MAAM;IAIjC,OAAO,CAAC,GAAG,CA4BT;YAEY,aAAa;
|
|
1
|
+
{"version":3,"file":"proving_job_controller.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_job_controller.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,oBAAY,0BAA0B;IACpC,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAED,qBAAa,oBAAoB;IAO7B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,GAAG;IAZb,OAAO,CAAC,MAAM,CAA+D;IAC7E,OAAO,CAAC,OAAO,CAAC,CAAgB;IAChC,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,MAAM,CAAC,CAAmD;gBAGxD,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,mBAAmB,EAClC,UAAU,EAAE,MAAM,IAAI,EACtB,GAAG,yCAA+F;IAGrG,KAAK,IAAI,IAAI;IAmBb,SAAS,IAAI,0BAA0B;IAIvC,SAAS,IAAI,oBAAoB,CAAC,kBAAkB,CAAC,GAAG,KAAK,GAAG,SAAS;IAIzE,KAAK,IAAI,IAAI;IAeb,QAAQ,IAAI,YAAY;IAIxB,YAAY,IAAI,kBAAkB;IAIlC,YAAY,IAAI,MAAM;IAItB,gBAAgB,IAAI,MAAM;IAIjC,OAAO,CAAC,GAAG,CA4BT;YAEY,aAAa;CA+D5B"}
|
|
@@ -132,6 +132,10 @@ export class ProvingJobController {
|
|
|
132
132
|
{
|
|
133
133
|
return await this.circuitProver.getEmptyBlockRootRollupProof(inputs, signal, this.epochNumber);
|
|
134
134
|
}
|
|
135
|
+
case ProvingRequestType.PADDING_BLOCK_ROOT_ROLLUP:
|
|
136
|
+
{
|
|
137
|
+
return await this.circuitProver.getPaddingBlockRootRollupProof(inputs, signal, this.epochNumber);
|
|
138
|
+
}
|
|
135
139
|
case ProvingRequestType.BLOCK_ROOT_ROLLUP:
|
|
136
140
|
{
|
|
137
141
|
return await this.circuitProver.getBlockRootRollupProof(inputs, signal, this.epochNumber);
|
|
@@ -2,7 +2,7 @@ import { NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, TUBE_PROOF_LENGTH } from '@a
|
|
|
2
2
|
import type { AvmCircuitInputs } from '@aztec/stdlib/avm';
|
|
3
3
|
import { type ProofAndVerificationKey, type ProvingJob, type ProvingJobId, type ProvingJobProducer, type ProvingJobStatus, type PublicInputsAndRecursiveProof, type ServerCircuitProver } from '@aztec/stdlib/interfaces/server';
|
|
4
4
|
import type { BaseParityInputs, RootParityInputs } from '@aztec/stdlib/parity';
|
|
5
|
-
import type { BaseOrMergeRollupPublicInputs, BlockMergeRollupInputs, BlockRootOrBlockMergePublicInputs, BlockRootRollupInputs, EmptyBlockRootRollupInputs, MergeRollupInputs, PrivateBaseRollupInputs, PublicBaseRollupInputs, RootRollupInputs, RootRollupPublicInputs, SingleTxBlockRootRollupInputs } from '@aztec/stdlib/rollup';
|
|
5
|
+
import type { BaseOrMergeRollupPublicInputs, BlockMergeRollupInputs, BlockRootOrBlockMergePublicInputs, BlockRootRollupInputs, EmptyBlockRootRollupInputs, MergeRollupInputs, PaddingBlockRootRollupInputs, PrivateBaseRollupInputs, PublicBaseRollupInputs, RootRollupInputs, RootRollupPublicInputs, SingleTxBlockRootRollupInputs } from '@aztec/stdlib/rollup';
|
|
6
6
|
import { type ProofStore } from '../proving_broker/proof_store/index.js';
|
|
7
7
|
export declare class TestBroker implements ProvingJobProducer {
|
|
8
8
|
private proofStore;
|
|
@@ -28,6 +28,7 @@ export declare class MockProver implements ServerCircuitProver {
|
|
|
28
28
|
getMergeRollupProof(_input: MergeRollupInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
29
29
|
getBlockMergeRollupProof(_input: BlockMergeRollupInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, 535>>;
|
|
30
30
|
getEmptyBlockRootRollupProof(_input: EmptyBlockRootRollupInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
31
|
+
getPaddingBlockRootRollupProof(_input: PaddingBlockRootRollupInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
31
32
|
getBlockRootRollupProof(_input: BlockRootRollupInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
32
33
|
getSingleTxBlockRootRollupProof(_input: SingleTxBlockRootRollupInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
33
34
|
getRootRollupProof(_input: RootRollupInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<RootRollupPublicInputs>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock_prover.d.ts","sourceRoot":"","sources":["../../src/test/mock_prover.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mock_prover.d.ts","sourceRoot":"","sources":["../../src/test/mock_prover.ts"],"names":[],"mappings":"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"}
|
package/dest/test/mock_prover.js
CHANGED
|
@@ -67,6 +67,9 @@ export class MockProver {
|
|
|
67
67
|
getEmptyBlockRootRollupProof(_input, _signal, _epochNumber) {
|
|
68
68
|
return Promise.resolve(makePublicInputsAndRecursiveProof(makeBlockRootOrBlockMergeRollupPublicInputs(), makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH), VerificationKeyData.makeFakeRollupHonk()));
|
|
69
69
|
}
|
|
70
|
+
getPaddingBlockRootRollupProof(_input, _signal, _epochNumber) {
|
|
71
|
+
return Promise.resolve(makePublicInputsAndRecursiveProof(makeBlockRootOrBlockMergeRollupPublicInputs(), makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH), VerificationKeyData.makeFakeRollupHonk()));
|
|
72
|
+
}
|
|
70
73
|
getBlockRootRollupProof(_input, _signal, _epochNumber) {
|
|
71
74
|
return Promise.resolve(makePublicInputsAndRecursiveProof(makeBlockRootOrBlockMergeRollupPublicInputs(), makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH), VerificationKeyData.makeFakeRollupHonk()));
|
|
72
75
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/prover-client",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -68,19 +68,19 @@
|
|
|
68
68
|
]
|
|
69
69
|
},
|
|
70
70
|
"dependencies": {
|
|
71
|
-
"@aztec/bb-prover": "1.
|
|
72
|
-
"@aztec/blob-lib": "1.
|
|
73
|
-
"@aztec/constants": "1.
|
|
74
|
-
"@aztec/ethereum": "1.
|
|
75
|
-
"@aztec/foundation": "1.
|
|
76
|
-
"@aztec/kv-store": "1.
|
|
77
|
-
"@aztec/noir-protocol-circuits-types": "1.
|
|
78
|
-
"@aztec/noir-types": "1.
|
|
79
|
-
"@aztec/protocol-contracts": "1.
|
|
80
|
-
"@aztec/simulator": "1.
|
|
81
|
-
"@aztec/stdlib": "1.
|
|
82
|
-
"@aztec/telemetry-client": "1.
|
|
83
|
-
"@aztec/world-state": "1.
|
|
71
|
+
"@aztec/bb-prover": "1.1.0",
|
|
72
|
+
"@aztec/blob-lib": "1.1.0",
|
|
73
|
+
"@aztec/constants": "1.1.0",
|
|
74
|
+
"@aztec/ethereum": "1.1.0",
|
|
75
|
+
"@aztec/foundation": "1.1.0",
|
|
76
|
+
"@aztec/kv-store": "1.1.0",
|
|
77
|
+
"@aztec/noir-protocol-circuits-types": "1.1.0",
|
|
78
|
+
"@aztec/noir-types": "1.1.0",
|
|
79
|
+
"@aztec/protocol-contracts": "1.1.0",
|
|
80
|
+
"@aztec/simulator": "1.1.0",
|
|
81
|
+
"@aztec/stdlib": "1.1.0",
|
|
82
|
+
"@aztec/telemetry-client": "1.1.0",
|
|
83
|
+
"@aztec/world-state": "1.1.0",
|
|
84
84
|
"@google-cloud/storage": "^7.15.0",
|
|
85
85
|
"@iarna/toml": "^2.2.5",
|
|
86
86
|
"commander": "^12.1.0",
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
"zod": "^3.23.8"
|
|
91
91
|
},
|
|
92
92
|
"devDependencies": {
|
|
93
|
-
"@aztec/noir-contracts.js": "1.
|
|
93
|
+
"@aztec/noir-contracts.js": "1.1.0",
|
|
94
94
|
"@jest/globals": "^30.0.0",
|
|
95
95
|
"@types/jest": "^30.0.0",
|
|
96
96
|
"@types/node": "^22.15.17",
|
|
@@ -25,12 +25,14 @@ import {
|
|
|
25
25
|
BlockRootRollupData,
|
|
26
26
|
BlockRootRollupInputs,
|
|
27
27
|
EmptyBlockRootRollupInputs,
|
|
28
|
+
EpochConstantData,
|
|
28
29
|
MergeRollupInputs,
|
|
30
|
+
PaddingBlockRootRollupInputs,
|
|
29
31
|
PreviousRollupData,
|
|
30
32
|
SingleTxBlockRootRollupInputs,
|
|
31
33
|
} from '@aztec/stdlib/rollup';
|
|
32
34
|
import type { CircuitName } from '@aztec/stdlib/stats';
|
|
33
|
-
import
|
|
35
|
+
import { AppendOnlyTreeSnapshot, type MerkleTreeId } from '@aztec/stdlib/trees';
|
|
34
36
|
import { type BlockHeader, type GlobalVariables, StateReference } from '@aztec/stdlib/tx';
|
|
35
37
|
import { VkData } from '@aztec/stdlib/vks';
|
|
36
38
|
|
|
@@ -79,6 +81,7 @@ export class BlockProvingState {
|
|
|
79
81
|
private readonly lastArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>,
|
|
80
82
|
private readonly newArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>,
|
|
81
83
|
private readonly previousBlockHeader: BlockHeader,
|
|
84
|
+
private readonly proverId: Fr,
|
|
82
85
|
private readonly parentEpoch: EpochProvingState,
|
|
83
86
|
) {
|
|
84
87
|
this.baseParityProvingOutputs = Array.from({ length: NUM_BASE_PARITY_PER_ROOT_PARITY }).map(_ => undefined);
|
|
@@ -204,7 +207,7 @@ export class BlockProvingState {
|
|
|
204
207
|
return new MergeRollupInputs([this.#getPreviousRollupData(left), this.#getPreviousRollupData(right)]);
|
|
205
208
|
}
|
|
206
209
|
|
|
207
|
-
public async getBlockRootRollupTypeAndInputs(
|
|
210
|
+
public async getBlockRootRollupTypeAndInputs() {
|
|
208
211
|
if (!this.rootParityProvingOutput) {
|
|
209
212
|
throw new Error('Root parity is not ready.');
|
|
210
213
|
}
|
|
@@ -215,7 +218,7 @@ export class BlockProvingState {
|
|
|
215
218
|
throw new Error('At lease one child is not ready for the block root.');
|
|
216
219
|
}
|
|
217
220
|
|
|
218
|
-
const data = this.#getBlockRootRollupData(
|
|
221
|
+
const data = this.#getBlockRootRollupData();
|
|
219
222
|
|
|
220
223
|
if (this.totalNumTxs === 0) {
|
|
221
224
|
const constants = BlockConstantData.from({
|
|
@@ -233,7 +236,6 @@ export class BlockProvingState {
|
|
|
233
236
|
inputs: EmptyBlockRootRollupInputs.from({
|
|
234
237
|
data,
|
|
235
238
|
constants,
|
|
236
|
-
isPadding: false,
|
|
237
239
|
}),
|
|
238
240
|
};
|
|
239
241
|
}
|
|
@@ -259,43 +261,15 @@ export class BlockProvingState {
|
|
|
259
261
|
}
|
|
260
262
|
}
|
|
261
263
|
|
|
262
|
-
public
|
|
263
|
-
|
|
264
|
-
throw new Error('Root parity is not ready.');
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
if (!this.blockRootProvingOutput || !this.endBlobAccumulator) {
|
|
268
|
-
throw new Error('Block root not ready for padding.');
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
// Use the new block header, archive and l1toL2 of the current block as the previous header, archive and l1toL2 of the next padding block.
|
|
272
|
-
const previousBlockHeader = await this.buildHeaderFromProvingOutputs();
|
|
273
|
-
const lastArchive = this.blockRootProvingOutput!.inputs.newArchive;
|
|
274
|
-
const lastL1ToL2 = this.l1ToL2MessageTreeSnapshotAfterInsertion;
|
|
275
|
-
|
|
276
|
-
const data = BlockRootRollupData.from({
|
|
277
|
-
l1ToL2Roots: this.#getRootParityData(this.rootParityProvingOutput!),
|
|
278
|
-
l1ToL2MessageSubtreeSiblingPath: this.l1ToL2MessageSubtreeSiblingPath,
|
|
279
|
-
previousArchiveSiblingPath: this.lastArchiveSiblingPath,
|
|
280
|
-
newArchiveSiblingPath: this.newArchiveSiblingPath,
|
|
281
|
-
previousBlockHeader,
|
|
282
|
-
startBlobAccumulator: BlobAccumulatorPublicInputs.fromBatchedBlobAccumulator(this.endBlobAccumulator),
|
|
283
|
-
finalBlobChallenges: this.endBlobAccumulator.finalBlobChallenges,
|
|
284
|
-
proverId,
|
|
285
|
-
});
|
|
286
|
-
|
|
287
|
-
const constants = BlockConstantData.from({
|
|
288
|
-
lastArchive,
|
|
289
|
-
lastL1ToL2,
|
|
290
|
-
globalVariables: this.globalVariables,
|
|
264
|
+
public getPaddingBlockRootInputs() {
|
|
265
|
+
const constants = EpochConstantData.from({
|
|
291
266
|
vkTreeRoot: getVKTreeRoot(),
|
|
292
267
|
protocolContractTreeRoot,
|
|
268
|
+
proverId: this.proverId,
|
|
293
269
|
});
|
|
294
270
|
|
|
295
|
-
return
|
|
296
|
-
data,
|
|
271
|
+
return PaddingBlockRootRollupInputs.from({
|
|
297
272
|
constants,
|
|
298
|
-
isPadding: true,
|
|
299
273
|
});
|
|
300
274
|
}
|
|
301
275
|
|
|
@@ -375,7 +349,7 @@ export class BlockProvingState {
|
|
|
375
349
|
this.parentEpoch.reject(reason);
|
|
376
350
|
}
|
|
377
351
|
|
|
378
|
-
#getBlockRootRollupData(
|
|
352
|
+
#getBlockRootRollupData() {
|
|
379
353
|
return BlockRootRollupData.from({
|
|
380
354
|
l1ToL2Roots: this.#getRootParityData(this.rootParityProvingOutput!),
|
|
381
355
|
l1ToL2MessageSubtreeSiblingPath: this.l1ToL2MessageSubtreeSiblingPath,
|
|
@@ -384,7 +358,7 @@ export class BlockProvingState {
|
|
|
384
358
|
previousBlockHeader: this.previousBlockHeader,
|
|
385
359
|
startBlobAccumulator: BlobAccumulatorPublicInputs.fromBatchedBlobAccumulator(this.startBlobAccumulator!),
|
|
386
360
|
finalBlobChallenges: this.startBlobAccumulator!.finalBlobChallenges,
|
|
387
|
-
proverId,
|
|
361
|
+
proverId: this.proverId,
|
|
388
362
|
});
|
|
389
363
|
}
|
|
390
364
|
|
|
@@ -80,6 +80,7 @@ export class EpochProvingState {
|
|
|
80
80
|
lastArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>,
|
|
81
81
|
newArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>,
|
|
82
82
|
previousBlockHeader: BlockHeader,
|
|
83
|
+
proverId: Fr,
|
|
83
84
|
): BlockProvingState {
|
|
84
85
|
const index = globalVariables.blockNumber - this.firstBlockNumber;
|
|
85
86
|
const block = new BlockProvingState(
|
|
@@ -93,6 +94,7 @@ export class EpochProvingState {
|
|
|
93
94
|
lastArchiveSiblingPath,
|
|
94
95
|
newArchiveSiblingPath,
|
|
95
96
|
previousBlockHeader,
|
|
97
|
+
proverId,
|
|
96
98
|
this,
|
|
97
99
|
);
|
|
98
100
|
this.blocks[index] = block;
|
|
@@ -197,12 +199,12 @@ export class EpochProvingState {
|
|
|
197
199
|
});
|
|
198
200
|
}
|
|
199
201
|
|
|
200
|
-
public getPaddingBlockRootInputs(
|
|
202
|
+
public getPaddingBlockRootInputs() {
|
|
201
203
|
if (!this.blocks[0]?.isComplete()) {
|
|
202
204
|
throw new Error('Epoch needs one completed block in order to be padded.');
|
|
203
205
|
}
|
|
204
206
|
|
|
205
|
-
return this.blocks[0].getPaddingBlockRootInputs(
|
|
207
|
+
return this.blocks[0].getPaddingBlockRootInputs();
|
|
206
208
|
}
|
|
207
209
|
|
|
208
210
|
// Returns a specific transaction proving state
|
|
@@ -178,6 +178,7 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
178
178
|
lastArchiveSiblingPath,
|
|
179
179
|
newArchiveSiblingPath,
|
|
180
180
|
previousBlockHeader,
|
|
181
|
+
this.proverId,
|
|
181
182
|
);
|
|
182
183
|
|
|
183
184
|
// Enqueue base parity circuits for the block
|
|
@@ -681,7 +682,7 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
681
682
|
|
|
682
683
|
provingState.blockRootRollupStarted = true;
|
|
683
684
|
|
|
684
|
-
const { rollupType, inputs } = await provingState.getBlockRootRollupTypeAndInputs(
|
|
685
|
+
const { rollupType, inputs } = await provingState.getBlockRootRollupTypeAndInputs();
|
|
685
686
|
|
|
686
687
|
logger.debug(
|
|
687
688
|
`Enqueuing ${rollupType} for block ${provingState.blockNumber} with ${provingState.newL1ToL2Messages.length} l1 to l2 msgs.`,
|
|
@@ -743,7 +744,7 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
743
744
|
const epochProvingState = this.provingState!;
|
|
744
745
|
const leafLocation = epochProvingState.setBlockRootRollupProof(provingState.index, result);
|
|
745
746
|
if (epochProvingState.totalNumBlocks === 1) {
|
|
746
|
-
|
|
747
|
+
this.enqueueEpochPadding(epochProvingState);
|
|
747
748
|
} else {
|
|
748
749
|
this.checkAndEnqueueNextBlockMergeRollup(epochProvingState, leafLocation);
|
|
749
750
|
}
|
|
@@ -837,25 +838,25 @@ export class ProvingOrchestrator implements EpochProver {
|
|
|
837
838
|
);
|
|
838
839
|
}
|
|
839
840
|
|
|
840
|
-
private
|
|
841
|
+
private enqueueEpochPadding(provingState: EpochProvingState) {
|
|
841
842
|
if (!provingState.verifyState()) {
|
|
842
843
|
logger.debug('Not running epoch padding. State no longer valid.');
|
|
843
844
|
return;
|
|
844
845
|
}
|
|
845
846
|
|
|
846
|
-
logger.debug('Padding epoch proof with
|
|
847
|
+
logger.debug('Padding epoch proof with a padding block root proof.');
|
|
847
848
|
|
|
848
|
-
const inputs =
|
|
849
|
+
const inputs = provingState.getPaddingBlockRootInputs();
|
|
849
850
|
|
|
850
851
|
this.deferredProving(
|
|
851
852
|
provingState,
|
|
852
853
|
wrapCallbackInSpan(
|
|
853
854
|
this.tracer,
|
|
854
|
-
'ProvingOrchestrator.prover.
|
|
855
|
+
'ProvingOrchestrator.prover.getPaddingBlockRootRollupProof',
|
|
855
856
|
{
|
|
856
|
-
[Attributes.PROTOCOL_CIRCUIT_NAME]: '
|
|
857
|
+
[Attributes.PROTOCOL_CIRCUIT_NAME]: 'padding-block-root-rollup' satisfies CircuitName,
|
|
857
858
|
},
|
|
858
|
-
signal => this.prover.
|
|
859
|
+
signal => this.prover.getPaddingBlockRootRollupProof(inputs, signal, provingState.epochNumber),
|
|
859
860
|
),
|
|
860
861
|
result => {
|
|
861
862
|
logger.debug('Completed proof for padding block root.');
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED,
|
|
3
3
|
AVM_VK_INDEX,
|
|
4
|
+
PRIVATE_TUBE_VK_INDEX,
|
|
5
|
+
PUBLIC_TUBE_VK_INDEX,
|
|
4
6
|
type TUBE_PROOF_LENGTH,
|
|
5
|
-
TUBE_VK_INDEX,
|
|
6
7
|
} from '@aztec/constants';
|
|
7
|
-
import {
|
|
8
|
+
import { getVKSiblingPath } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
8
9
|
import type { AvmCircuitInputs } from '@aztec/stdlib/avm';
|
|
9
10
|
import type { ProofAndVerificationKey } from '@aztec/stdlib/interfaces/server';
|
|
10
11
|
import {
|
|
@@ -21,7 +22,7 @@ import {
|
|
|
21
22
|
import type { CircuitName } from '@aztec/stdlib/stats';
|
|
22
23
|
import type { AppendOnlyTreeSnapshot, MerkleTreeId } from '@aztec/stdlib/trees';
|
|
23
24
|
import type { ProcessedTx } from '@aztec/stdlib/tx';
|
|
24
|
-
import { VkData } from '@aztec/stdlib/vks';
|
|
25
|
+
import { VerificationKeyData, VkData } from '@aztec/stdlib/vks';
|
|
25
26
|
|
|
26
27
|
/**
|
|
27
28
|
* Helper class to manage the proving cycle of a transaction
|
|
@@ -81,7 +82,7 @@ export class TxProvingState {
|
|
|
81
82
|
throw new Error('Tx not ready for proving base rollup.');
|
|
82
83
|
}
|
|
83
84
|
|
|
84
|
-
const vkData = this.#
|
|
85
|
+
const vkData = this.#getVkData(this.tube!.verificationKey, PRIVATE_TUBE_VK_INDEX);
|
|
85
86
|
const tubeData = new PrivateTubeData(
|
|
86
87
|
this.processedTx.data.toPrivateToRollupKernelCircuitPublicInputs(),
|
|
87
88
|
this.tube.proof,
|
|
@@ -108,13 +109,13 @@ export class TxProvingState {
|
|
|
108
109
|
const tubeData = new PublicTubeData(
|
|
109
110
|
this.processedTx.data.toPrivateToPublicKernelCircuitPublicInputs(),
|
|
110
111
|
this.tube.proof,
|
|
111
|
-
this.#
|
|
112
|
+
this.#getVkData(this.tube!.verificationKey, PUBLIC_TUBE_VK_INDEX),
|
|
112
113
|
);
|
|
113
114
|
|
|
114
115
|
const avmProofData = new AvmProofData(
|
|
115
116
|
this.processedTx.avmProvingRequest.inputs.publicInputs,
|
|
116
117
|
this.avm.proof,
|
|
117
|
-
this.#
|
|
118
|
+
this.#getVkData(this.avm!.verificationKey, AVM_VK_INDEX),
|
|
118
119
|
);
|
|
119
120
|
|
|
120
121
|
if (!(this.baseRollupHints instanceof PublicBaseRollupHints)) {
|
|
@@ -124,21 +125,8 @@ export class TxProvingState {
|
|
|
124
125
|
return new PublicBaseRollupInputs(tubeData, avmProofData, this.baseRollupHints);
|
|
125
126
|
}
|
|
126
127
|
|
|
127
|
-
#
|
|
128
|
-
let vkIndex = TUBE_VK_INDEX;
|
|
129
|
-
try {
|
|
130
|
-
vkIndex = getVKIndex(this.tube!.verificationKey);
|
|
131
|
-
} catch {
|
|
132
|
-
// TODO(#7410) The VK for the tube won't be in the tree for now, so we manually set it to the tube vk index
|
|
133
|
-
}
|
|
134
|
-
const vkPath = getVKSiblingPath(vkIndex);
|
|
135
|
-
|
|
136
|
-
return new VkData(this.tube!.verificationKey, vkIndex, vkPath);
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
#getAvmVkData() {
|
|
140
|
-
const vkIndex = AVM_VK_INDEX;
|
|
128
|
+
#getVkData(verificationKey: VerificationKeyData, vkIndex: number) {
|
|
141
129
|
const vkPath = getVKSiblingPath(vkIndex);
|
|
142
|
-
return new VkData(
|
|
130
|
+
return new VkData(verificationKey, vkIndex, vkPath);
|
|
143
131
|
}
|
|
144
132
|
}
|
|
@@ -32,6 +32,7 @@ import type {
|
|
|
32
32
|
BlockRootRollupInputs,
|
|
33
33
|
EmptyBlockRootRollupInputs,
|
|
34
34
|
MergeRollupInputs,
|
|
35
|
+
PaddingBlockRootRollupInputs,
|
|
35
36
|
PrivateBaseRollupInputs,
|
|
36
37
|
PublicBaseRollupInputs,
|
|
37
38
|
RootRollupInputs,
|
|
@@ -488,6 +489,22 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
|
|
|
488
489
|
);
|
|
489
490
|
}
|
|
490
491
|
|
|
492
|
+
getPaddingBlockRootRollupProof(
|
|
493
|
+
input: PaddingBlockRootRollupInputs,
|
|
494
|
+
signal?: AbortSignal,
|
|
495
|
+
epochNumber?: number,
|
|
496
|
+
): Promise<
|
|
497
|
+
PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
|
|
498
|
+
> {
|
|
499
|
+
return this.enqueueJob(
|
|
500
|
+
this.generateId(ProvingRequestType.PADDING_BLOCK_ROOT_ROLLUP, input, epochNumber),
|
|
501
|
+
ProvingRequestType.PADDING_BLOCK_ROOT_ROLLUP,
|
|
502
|
+
input,
|
|
503
|
+
epochNumber,
|
|
504
|
+
signal,
|
|
505
|
+
);
|
|
506
|
+
}
|
|
507
|
+
|
|
491
508
|
getMergeRollupProof(
|
|
492
509
|
input: MergeRollupInputs,
|
|
493
510
|
signal?: AbortSignal,
|
|
@@ -55,6 +55,7 @@ export class ProvingBroker implements ProvingJobProducer, ProvingJobConsumer, Tr
|
|
|
55
55
|
[ProvingRequestType.BLOCK_ROOT_ROLLUP]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
|
|
56
56
|
[ProvingRequestType.SINGLE_TX_BLOCK_ROOT_ROLLUP]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
|
|
57
57
|
[ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
|
|
58
|
+
[ProvingRequestType.PADDING_BLOCK_ROOT_ROLLUP]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
|
|
58
59
|
|
|
59
60
|
[ProvingRequestType.BASE_PARITY]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
|
|
60
61
|
[ProvingRequestType.ROOT_PARITY]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
|
|
@@ -144,6 +144,10 @@ export class ProvingJobController {
|
|
|
144
144
|
return await this.circuitProver.getEmptyBlockRootRollupProof(inputs, signal, this.epochNumber);
|
|
145
145
|
}
|
|
146
146
|
|
|
147
|
+
case ProvingRequestType.PADDING_BLOCK_ROOT_ROLLUP: {
|
|
148
|
+
return await this.circuitProver.getPaddingBlockRootRollupProof(inputs, signal, this.epochNumber);
|
|
149
|
+
}
|
|
150
|
+
|
|
147
151
|
case ProvingRequestType.BLOCK_ROOT_ROLLUP: {
|
|
148
152
|
return await this.circuitProver.getBlockRootRollupProof(inputs, signal, this.epochNumber);
|
|
149
153
|
}
|
package/src/test/mock_prover.ts
CHANGED
|
@@ -28,6 +28,7 @@ import type {
|
|
|
28
28
|
BlockRootRollupInputs,
|
|
29
29
|
EmptyBlockRootRollupInputs,
|
|
30
30
|
MergeRollupInputs,
|
|
31
|
+
PaddingBlockRootRollupInputs,
|
|
31
32
|
PrivateBaseRollupInputs,
|
|
32
33
|
PublicBaseRollupInputs,
|
|
33
34
|
RootRollupInputs,
|
|
@@ -204,6 +205,22 @@ export class MockProver implements ServerCircuitProver {
|
|
|
204
205
|
);
|
|
205
206
|
}
|
|
206
207
|
|
|
208
|
+
getPaddingBlockRootRollupProof(
|
|
209
|
+
_input: PaddingBlockRootRollupInputs,
|
|
210
|
+
_signal?: AbortSignal,
|
|
211
|
+
_epochNumber?: number,
|
|
212
|
+
): Promise<
|
|
213
|
+
PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
|
|
214
|
+
> {
|
|
215
|
+
return Promise.resolve(
|
|
216
|
+
makePublicInputsAndRecursiveProof(
|
|
217
|
+
makeBlockRootOrBlockMergeRollupPublicInputs(),
|
|
218
|
+
makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
|
|
219
|
+
VerificationKeyData.makeFakeRollupHonk(),
|
|
220
|
+
),
|
|
221
|
+
);
|
|
222
|
+
}
|
|
223
|
+
|
|
207
224
|
getBlockRootRollupProof(
|
|
208
225
|
_input: BlockRootRollupInputs,
|
|
209
226
|
_signal?: AbortSignal,
|