@aztec/prover-client 3.0.0-devnet.6 → 3.0.0-devnet.6-patch.1

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.
Files changed (109) hide show
  1. package/dest/block-factory/index.d.ts +1 -1
  2. package/dest/block-factory/light.d.ts +8 -8
  3. package/dest/block-factory/light.d.ts.map +1 -1
  4. package/dest/block-factory/light.js +37 -23
  5. package/dest/config.d.ts +1 -1
  6. package/dest/config.js +1 -1
  7. package/dest/index.d.ts +1 -1
  8. package/dest/light/lightweight_checkpoint_builder.d.ts +29 -0
  9. package/dest/light/lightweight_checkpoint_builder.d.ts.map +1 -0
  10. package/dest/light/lightweight_checkpoint_builder.js +108 -0
  11. package/dest/mocks/fixtures.d.ts +1 -4
  12. package/dest/mocks/fixtures.d.ts.map +1 -1
  13. package/dest/mocks/fixtures.js +7 -17
  14. package/dest/mocks/test_context.d.ts +27 -46
  15. package/dest/mocks/test_context.d.ts.map +1 -1
  16. package/dest/mocks/test_context.js +102 -116
  17. package/dest/orchestrator/block-building-helpers.d.ts +19 -21
  18. package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
  19. package/dest/orchestrator/block-building-helpers.js +93 -118
  20. package/dest/orchestrator/block-proving-state.d.ts +17 -11
  21. package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
  22. package/dest/orchestrator/block-proving-state.js +81 -20
  23. package/dest/orchestrator/checkpoint-proving-state.d.ts +8 -8
  24. package/dest/orchestrator/checkpoint-proving-state.d.ts.map +1 -1
  25. package/dest/orchestrator/checkpoint-proving-state.js +15 -16
  26. package/dest/orchestrator/epoch-proving-state.d.ts +10 -9
  27. package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
  28. package/dest/orchestrator/epoch-proving-state.js +6 -6
  29. package/dest/orchestrator/index.d.ts +1 -1
  30. package/dest/orchestrator/orchestrator.d.ts +13 -13
  31. package/dest/orchestrator/orchestrator.d.ts.map +1 -1
  32. package/dest/orchestrator/orchestrator.js +54 -60
  33. package/dest/orchestrator/orchestrator_metrics.d.ts +1 -1
  34. package/dest/orchestrator/orchestrator_metrics.d.ts.map +1 -1
  35. package/dest/orchestrator/tx-proving-state.d.ts +6 -6
  36. package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
  37. package/dest/orchestrator/tx-proving-state.js +14 -23
  38. package/dest/prover-client/factory.d.ts +1 -1
  39. package/dest/prover-client/index.d.ts +1 -1
  40. package/dest/prover-client/prover-client.d.ts +1 -1
  41. package/dest/prover-client/prover-client.d.ts.map +1 -1
  42. package/dest/prover-client/server-epoch-prover.d.ts +9 -8
  43. package/dest/prover-client/server-epoch-prover.d.ts.map +1 -1
  44. package/dest/prover-client/server-epoch-prover.js +4 -4
  45. package/dest/proving_broker/broker_prover_facade.d.ts +21 -21
  46. package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
  47. package/dest/proving_broker/broker_prover_facade.js +7 -6
  48. package/dest/proving_broker/config.d.ts +12 -8
  49. package/dest/proving_broker/config.d.ts.map +1 -1
  50. package/dest/proving_broker/config.js +8 -2
  51. package/dest/proving_broker/factory.d.ts +1 -1
  52. package/dest/proving_broker/fixtures.d.ts +3 -2
  53. package/dest/proving_broker/fixtures.d.ts.map +1 -1
  54. package/dest/proving_broker/fixtures.js +3 -2
  55. package/dest/proving_broker/index.d.ts +1 -1
  56. package/dest/proving_broker/proof_store/factory.d.ts +2 -2
  57. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts +1 -1
  58. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts.map +1 -1
  59. package/dest/proving_broker/proof_store/index.d.ts +1 -1
  60. package/dest/proving_broker/proof_store/inline_proof_store.d.ts +1 -1
  61. package/dest/proving_broker/proof_store/inline_proof_store.d.ts.map +1 -1
  62. package/dest/proving_broker/proof_store/proof_store.d.ts +1 -1
  63. package/dest/proving_broker/proving_agent.d.ts +1 -1
  64. package/dest/proving_broker/proving_agent.d.ts.map +1 -1
  65. package/dest/proving_broker/proving_agent_instrumentation.d.ts +1 -1
  66. package/dest/proving_broker/proving_agent_instrumentation.d.ts.map +1 -1
  67. package/dest/proving_broker/proving_broker.d.ts +2 -2
  68. package/dest/proving_broker/proving_broker.d.ts.map +1 -1
  69. package/dest/proving_broker/proving_broker.js +4 -3
  70. package/dest/proving_broker/proving_broker_database/memory.d.ts +3 -2
  71. package/dest/proving_broker/proving_broker_database/memory.d.ts.map +1 -1
  72. package/dest/proving_broker/proving_broker_database/persisted.d.ts +3 -2
  73. package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +1 -1
  74. package/dest/proving_broker/proving_broker_database/persisted.js +3 -2
  75. package/dest/proving_broker/proving_broker_database.d.ts +3 -2
  76. package/dest/proving_broker/proving_broker_database.d.ts.map +1 -1
  77. package/dest/proving_broker/proving_broker_instrumentation.d.ts +1 -1
  78. package/dest/proving_broker/proving_broker_instrumentation.d.ts.map +1 -1
  79. package/dest/proving_broker/proving_job_controller.d.ts +3 -2
  80. package/dest/proving_broker/proving_job_controller.d.ts.map +1 -1
  81. package/dest/proving_broker/proving_job_controller.js +3 -3
  82. package/dest/proving_broker/rpc.d.ts +4 -4
  83. package/dest/test/mock_proof_store.d.ts +3 -3
  84. package/dest/test/mock_proof_store.d.ts.map +1 -1
  85. package/dest/test/mock_prover.d.ts +5 -6
  86. package/dest/test/mock_prover.d.ts.map +1 -1
  87. package/dest/test/mock_prover.js +3 -3
  88. package/package.json +18 -17
  89. package/src/block-factory/light.ts +40 -43
  90. package/src/config.ts +1 -1
  91. package/src/light/lightweight_checkpoint_builder.ts +144 -0
  92. package/src/mocks/fixtures.ts +7 -30
  93. package/src/mocks/test_context.ts +145 -177
  94. package/src/orchestrator/block-building-helpers.ts +133 -215
  95. package/src/orchestrator/block-proving-state.ts +103 -25
  96. package/src/orchestrator/checkpoint-proving-state.ts +24 -20
  97. package/src/orchestrator/epoch-proving-state.ts +15 -11
  98. package/src/orchestrator/orchestrator.ts +76 -74
  99. package/src/orchestrator/tx-proving-state.ts +24 -33
  100. package/src/prover-client/server-epoch-prover.ts +8 -9
  101. package/src/proving_broker/broker_prover_facade.ts +32 -29
  102. package/src/proving_broker/config.ts +8 -1
  103. package/src/proving_broker/fixtures.ts +8 -3
  104. package/src/proving_broker/proving_broker.ts +4 -3
  105. package/src/proving_broker/proving_broker_database/memory.ts +2 -1
  106. package/src/proving_broker/proving_broker_database/persisted.ts +5 -4
  107. package/src/proving_broker/proving_broker_database.ts +2 -1
  108. package/src/proving_broker/proving_job_controller.ts +5 -4
  109. package/src/test/mock_prover.ts +9 -7
@@ -1,11 +1,6 @@
1
- import {
2
- AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED,
3
- AVM_VK_INDEX,
4
- NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
5
- } from '@aztec/constants';
6
- import type { Fr } from '@aztec/foundation/fields';
7
- import { getVkData } from '@aztec/noir-protocol-circuits-types/server/vks';
8
- import { getVKSiblingPath } from '@aztec/noir-protocol-circuits-types/vk-tree';
1
+ import { AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH } from '@aztec/constants';
2
+ import type { Fr } from '@aztec/foundation/curves/bn254';
3
+ import { getAvmVkData, getVkData } from '@aztec/noir-protocol-circuits-types/server/vks';
9
4
  import type { AvmCircuitInputs } from '@aztec/stdlib/avm';
10
5
  import type { ProofAndVerificationKey, PublicInputsAndRecursiveProof } from '@aztec/stdlib/interfaces/server';
11
6
  import { ProofData } from '@aztec/stdlib/proofs';
@@ -14,15 +9,18 @@ import {
14
9
  PrivateBaseRollupHints,
15
10
  PrivateTxBaseRollupPrivateInputs,
16
11
  PublicBaseRollupHints,
17
- PublicTubePublicInputs,
12
+ PublicChonkVerifierPublicInputs,
18
13
  PublicTxBaseRollupPrivateInputs,
19
14
  } from '@aztec/stdlib/rollup';
20
15
  import type { CircuitName } from '@aztec/stdlib/stats';
21
16
  import type { AppendOnlyTreeSnapshot, MerkleTreeId } from '@aztec/stdlib/trees';
22
17
  import type { ProcessedTx } from '@aztec/stdlib/tx';
23
- import { VerificationKeyData, VkData } from '@aztec/stdlib/vks';
24
18
 
25
- import { getCivcProofFromTx, getPublicTubePrivateInputsFromTx, toProofData } from './block-building-helpers.js';
19
+ import {
20
+ getChonkProofFromTx,
21
+ getPublicChonkVerifierPrivateInputsFromTx,
22
+ toProofData,
23
+ } from './block-building-helpers.js';
26
24
 
27
25
  /**
28
26
  * Helper class to manage the proving cycle of a transaction
@@ -30,8 +28,8 @@ import { getCivcProofFromTx, getPublicTubePrivateInputsFromTx, toProofData } fro
30
28
  * Also stores the inputs to the base rollup for this transaction and the tree snapshots
31
29
  */
32
30
  export class TxProvingState {
33
- private publicTube?: PublicInputsAndRecursiveProof<
34
- PublicTubePublicInputs,
31
+ private publicChonkVerifier?: PublicInputsAndRecursiveProof<
32
+ PublicChonkVerifierPublicInputs,
35
33
  typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
36
34
  >;
37
35
  private avm?: ProofAndVerificationKey<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>;
@@ -48,15 +46,15 @@ export class TxProvingState {
48
46
  }
49
47
 
50
48
  public ready() {
51
- return !this.requireAvmProof || (!!this.avm && !!this.publicTube);
49
+ return !this.requireAvmProof || (!!this.avm && !!this.publicChonkVerifier);
52
50
  }
53
51
 
54
52
  public getAvmInputs(): AvmCircuitInputs {
55
53
  return this.processedTx.avmProvingRequest!.inputs;
56
54
  }
57
55
 
58
- public getPublicTubePrivateInputs() {
59
- return getPublicTubePrivateInputsFromTx(this.processedTx, this.proverId);
56
+ public getPublicChonkVerifierPrivateInputs() {
57
+ return getPublicChonkVerifierPrivateInputsFromTx(this.processedTx, this.proverId);
60
58
  }
61
59
 
62
60
  public getBaseRollupTypeAndInputs() {
@@ -73,13 +71,13 @@ export class TxProvingState {
73
71
  }
74
72
  }
75
73
 
76
- public setPublicTubeProof(
77
- publicTubeProofAndVk: PublicInputsAndRecursiveProof<
78
- PublicTubePublicInputs,
74
+ public setPublicChonkVerifierProof(
75
+ publicChonkVerifierProofAndVk: PublicInputsAndRecursiveProof<
76
+ PublicChonkVerifierPublicInputs,
79
77
  typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
80
78
  >,
81
79
  ) {
82
- this.publicTube = publicTubeProofAndVk;
80
+ this.publicChonkVerifier = publicChonkVerifierProofAndVk;
83
81
  }
84
82
 
85
83
  public setAvmProof(avmProofAndVk: ProofAndVerificationKey<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>) {
@@ -93,7 +91,7 @@ export class TxProvingState {
93
91
 
94
92
  const privateTailProofData = new ProofData(
95
93
  this.processedTx.data.toPrivateToRollupKernelCircuitPublicInputs(),
96
- getCivcProofFromTx(this.processedTx),
94
+ getChonkProofFromTx(this.processedTx),
97
95
  getVkData('HidingKernelToRollup'),
98
96
  );
99
97
 
@@ -104,8 +102,8 @@ export class TxProvingState {
104
102
  if (!this.processedTx.avmProvingRequest) {
105
103
  throw new Error('Should create private base rollup for a tx not requiring avm proof.');
106
104
  }
107
- if (!this.publicTube) {
108
- throw new Error('Tx not ready for proving base rollup: public tube proof undefined');
105
+ if (!this.publicChonkVerifier) {
106
+ throw new Error('Tx not ready for proving base rollup: public chonk verifier proof undefined');
109
107
  }
110
108
  if (!this.avm) {
111
109
  throw new Error('Tx not ready for proving base rollup: avm proof undefined');
@@ -114,21 +112,14 @@ export class TxProvingState {
114
112
  throw new Error('Mismatched base rollup hints, expected public base rollup hints');
115
113
  }
116
114
 
117
- const publicTubeProofData = toProofData(this.publicTube);
115
+ const publicChonkVerifierProofData = toProofData(this.publicChonkVerifier);
118
116
 
119
117
  const avmProofData = new ProofData(
120
118
  this.processedTx.avmProvingRequest.inputs.publicInputs,
121
119
  this.avm.proof,
122
- this.#getVkData(this.avm!.verificationKey, AVM_VK_INDEX),
120
+ getAvmVkData(),
123
121
  );
124
122
 
125
- return new PublicTxBaseRollupPrivateInputs(publicTubeProofData, avmProofData, this.baseRollupHints);
126
- }
127
-
128
- #getVkData(verificationKey: VerificationKeyData, vkIndex: number) {
129
- // TODO(#17162): Add avm vk hash to the tree and call `getVkData('AVM')` instead.
130
- // Below will return a path to an empty leaf.
131
- const vkPath = getVKSiblingPath(vkIndex);
132
- return new VkData(verificationKey, vkIndex, vkPath);
123
+ return new PublicTxBaseRollupPrivateInputs(publicChonkVerifierProofData, avmProofData, this.baseRollupHints);
133
124
  }
134
125
  }
@@ -1,5 +1,6 @@
1
- import type { BatchedBlob, FinalBlobBatchingChallenges } from '@aztec/blob-lib';
2
- import type { Fr } from '@aztec/foundation/fields';
1
+ import type { BatchedBlob, FinalBlobBatchingChallenges } from '@aztec/blob-lib/types';
2
+ import { BlockNumber, EpochNumber } from '@aztec/foundation/branded-types';
3
+ import type { Fr } from '@aztec/foundation/curves/bn254';
3
4
  import type { EthAddress } from '@aztec/stdlib/block';
4
5
  import type { EpochProver } from '@aztec/stdlib/interfaces/server';
5
6
  import type { Proof } from '@aztec/stdlib/proofs';
@@ -18,7 +19,7 @@ export class ServerEpochProver implements EpochProver {
18
19
  ) {}
19
20
 
20
21
  startNewEpoch(
21
- epochNumber: number,
22
+ epochNumber: EpochNumber,
22
23
  totalNumCheckpoints: number,
23
24
  finalBlobBatchingChallenges: FinalBlobBatchingChallenges,
24
25
  ): void {
@@ -30,7 +31,6 @@ export class ServerEpochProver implements EpochProver {
30
31
  constants: CheckpointConstantData,
31
32
  l1ToL2Messages: Fr[],
32
33
  totalNumBlocks: number,
33
- totalNumBlobFields: number,
34
34
  headerOfLastBlockInPreviousCheckpoint: BlockHeader,
35
35
  ): Promise<void> {
36
36
  return this.orchestrator.startNewCheckpoint(
@@ -38,14 +38,13 @@ export class ServerEpochProver implements EpochProver {
38
38
  constants,
39
39
  l1ToL2Messages,
40
40
  totalNumBlocks,
41
- totalNumBlobFields,
42
41
  headerOfLastBlockInPreviousCheckpoint,
43
42
  );
44
43
  }
45
- startTubeCircuits(txs: Tx[]): Promise<void> {
46
- return this.orchestrator.startTubeCircuits(txs);
44
+ startChonkVerifierCircuits(txs: Tx[]): Promise<void> {
45
+ return this.orchestrator.startChonkVerifierCircuits(txs);
47
46
  }
48
- setBlockCompleted(blockNumber: number, expectedBlockHeader?: BlockHeader): Promise<BlockHeader> {
47
+ setBlockCompleted(blockNumber: BlockNumber, expectedBlockHeader?: BlockHeader): Promise<BlockHeader> {
49
48
  return this.orchestrator.setBlockCompleted(blockNumber, expectedBlockHeader);
50
49
  }
51
50
  finalizeEpoch(): Promise<{ publicInputs: RootRollupPublicInputs; proof: Proof; batchedBlobInputs: BatchedBlob }> {
@@ -61,7 +60,7 @@ export class ServerEpochProver implements EpochProver {
61
60
  await this.facade.stop();
62
61
  await this.orchestrator.stop();
63
62
  }
64
- startNewBlock(blockNumber: number, timestamp: UInt64, totalNumTxs: number): Promise<void> {
63
+ startNewBlock(blockNumber: BlockNumber, timestamp: UInt64, totalNumTxs: number): Promise<void> {
65
64
  return this.orchestrator.startNewBlock(blockNumber, timestamp, totalNumTxs);
66
65
  }
67
66
  addTxs(txs: ProcessedTx[]): Promise<void> {
@@ -4,8 +4,9 @@ import type {
4
4
  NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
5
5
  RECURSIVE_PROOF_LENGTH,
6
6
  } from '@aztec/constants';
7
- import { sha256 } from '@aztec/foundation/crypto';
8
- import { Fr } from '@aztec/foundation/fields';
7
+ import { EpochNumber } from '@aztec/foundation/branded-types';
8
+ import { sha256 } from '@aztec/foundation/crypto/sha256';
9
+ import { Fr } from '@aztec/foundation/curves/bn254';
9
10
  import { createLogger } from '@aztec/foundation/log';
10
11
  import { type PromiseWithResolvers, RunningPromise, promiseWithResolvers } from '@aztec/foundation/promise';
11
12
  import { truncate } from '@aztec/foundation/string';
@@ -38,8 +39,8 @@ import type {
38
39
  CheckpointRootRollupPrivateInputs,
39
40
  CheckpointRootSingleBlockRollupPrivateInputs,
40
41
  PrivateTxBaseRollupPrivateInputs,
41
- PublicTubePrivateInputs,
42
- PublicTubePublicInputs,
42
+ PublicChonkVerifierPrivateInputs,
43
+ PublicChonkVerifierPublicInputs,
43
44
  PublicTxBaseRollupPrivateInputs,
44
45
  RootRollupPrivateInputs,
45
46
  RootRollupPublicInputs,
@@ -130,7 +131,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
130
131
  id: ProvingJobId,
131
132
  type: T,
132
133
  inputs: ProvingJobInputsMap[T],
133
- epochNumber = 0,
134
+ epochNumber = EpochNumber.ZERO,
134
135
  signal?: AbortSignal,
135
136
  ): Promise<ProvingJobResultsMap[T]> {
136
137
  const { job: job, isEnqueued } = this.getOrCreateProvingJob(id, type, signal);
@@ -399,7 +400,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
399
400
  inputs: AvmCircuitInputs,
400
401
  skipPublicInputsValidation?: boolean, // TODO(#14234)[Unconditional PIs validation]: remove this argument
401
402
  signal?: AbortSignal,
402
- epochNumber?: number,
403
+ epochNumber?: EpochNumber,
403
404
  ): Promise<ProofAndVerificationKey<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>> {
404
405
  this.log.info(`getAvmProof() called with skipPublicInputsValidation: ${skipPublicInputsValidation}`);
405
406
 
@@ -420,7 +421,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
420
421
  getBaseParityProof(
421
422
  inputs: ParityBasePrivateInputs,
422
423
  signal?: AbortSignal,
423
- epochNumber?: number,
424
+ epochNumber?: EpochNumber,
424
425
  ): Promise<PublicInputsAndRecursiveProof<ParityPublicInputs, typeof RECURSIVE_PROOF_LENGTH>> {
425
426
  return this.enqueueJob(
426
427
  this.generateId(ProvingRequestType.PARITY_BASE, inputs, epochNumber),
@@ -434,7 +435,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
434
435
  getTxMergeRollupProof(
435
436
  input: TxMergeRollupPrivateInputs,
436
437
  signal?: AbortSignal,
437
- epochNumber?: number,
438
+ epochNumber?: EpochNumber,
438
439
  ): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
439
440
  return this.enqueueJob(
440
441
  this.generateId(ProvingRequestType.TX_MERGE_ROLLUP, input, epochNumber),
@@ -445,14 +446,16 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
445
446
  );
446
447
  }
447
448
 
448
- getPublicTubeProof(
449
- inputs: PublicTubePrivateInputs,
449
+ getPublicChonkVerifierProof(
450
+ inputs: PublicChonkVerifierPrivateInputs,
450
451
  signal?: AbortSignal,
451
- epochNumber?: number,
452
- ): Promise<PublicInputsAndRecursiveProof<PublicTubePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
452
+ epochNumber?: EpochNumber,
453
+ ): Promise<
454
+ PublicInputsAndRecursiveProof<PublicChonkVerifierPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
455
+ > {
453
456
  return this.enqueueJob(
454
- this.generateId(ProvingRequestType.PUBLIC_TUBE, inputs, epochNumber),
455
- ProvingRequestType.PUBLIC_TUBE,
457
+ this.generateId(ProvingRequestType.PUBLIC_CHONK_VERIFIER, inputs, epochNumber),
458
+ ProvingRequestType.PUBLIC_CHONK_VERIFIER,
456
459
  inputs,
457
460
  epochNumber,
458
461
  signal,
@@ -462,7 +465,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
462
465
  getPrivateTxBaseRollupProof(
463
466
  baseRollupInput: PrivateTxBaseRollupPrivateInputs,
464
467
  signal?: AbortSignal,
465
- epochNumber?: number,
468
+ epochNumber?: EpochNumber,
466
469
  ): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
467
470
  return this.enqueueJob(
468
471
  this.generateId(ProvingRequestType.PRIVATE_TX_BASE_ROLLUP, baseRollupInput, epochNumber),
@@ -476,7 +479,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
476
479
  getPublicTxBaseRollupProof(
477
480
  inputs: PublicTxBaseRollupPrivateInputs,
478
481
  signal?: AbortSignal,
479
- epochNumber?: number,
482
+ epochNumber?: EpochNumber,
480
483
  ): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
481
484
  return this.enqueueJob(
482
485
  this.generateId(ProvingRequestType.PUBLIC_TX_BASE_ROLLUP, inputs, epochNumber),
@@ -490,7 +493,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
490
493
  getRootParityProof(
491
494
  inputs: ParityRootPrivateInputs,
492
495
  signal?: AbortSignal,
493
- epochNumber?: number,
496
+ epochNumber?: EpochNumber,
494
497
  ): Promise<PublicInputsAndRecursiveProof<ParityPublicInputs, typeof NESTED_RECURSIVE_PROOF_LENGTH>> {
495
498
  return this.enqueueJob(
496
499
  this.generateId(ProvingRequestType.PARITY_ROOT, inputs, epochNumber),
@@ -504,7 +507,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
504
507
  getBlockRootFirstRollupProof(
505
508
  input: BlockRootFirstRollupPrivateInputs,
506
509
  signal?: AbortSignal,
507
- epochNumber?: number,
510
+ epochNumber?: EpochNumber,
508
511
  ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
509
512
  return this.enqueueJob(
510
513
  this.generateId(ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP, input, epochNumber),
@@ -518,7 +521,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
518
521
  getBlockRootSingleTxFirstRollupProof(
519
522
  input: BlockRootSingleTxFirstRollupPrivateInputs,
520
523
  signal?: AbortSignal,
521
- epochNumber?: number,
524
+ epochNumber?: EpochNumber,
522
525
  ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
523
526
  return this.enqueueJob(
524
527
  this.generateId(ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP, input, epochNumber),
@@ -532,7 +535,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
532
535
  getBlockRootEmptyTxFirstRollupProof(
533
536
  input: BlockRootEmptyTxFirstRollupPrivateInputs,
534
537
  signal?: AbortSignal,
535
- epochNumber?: number,
538
+ epochNumber?: EpochNumber,
536
539
  ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
537
540
  return this.enqueueJob(
538
541
  this.generateId(ProvingRequestType.BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP, input, epochNumber),
@@ -546,7 +549,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
546
549
  getBlockRootRollupProof(
547
550
  input: BlockRootRollupPrivateInputs,
548
551
  signal?: AbortSignal,
549
- epochNumber?: number,
552
+ epochNumber?: EpochNumber,
550
553
  ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
551
554
  return this.enqueueJob(
552
555
  this.generateId(ProvingRequestType.BLOCK_ROOT_ROLLUP, input, epochNumber),
@@ -560,7 +563,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
560
563
  getBlockRootSingleTxRollupProof(
561
564
  input: BlockRootSingleTxRollupPrivateInputs,
562
565
  signal?: AbortSignal,
563
- epochNumber?: number,
566
+ epochNumber?: EpochNumber,
564
567
  ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
565
568
  return this.enqueueJob(
566
569
  this.generateId(ProvingRequestType.BLOCK_ROOT_SINGLE_TX_ROLLUP, input, epochNumber),
@@ -574,7 +577,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
574
577
  getBlockMergeRollupProof(
575
578
  input: BlockMergeRollupPrivateInputs,
576
579
  signal?: AbortSignal,
577
- epochNumber?: number,
580
+ epochNumber?: EpochNumber,
578
581
  ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
579
582
  return this.enqueueJob(
580
583
  this.generateId(ProvingRequestType.BLOCK_MERGE_ROLLUP, input, epochNumber),
@@ -588,7 +591,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
588
591
  getCheckpointRootRollupProof(
589
592
  input: CheckpointRootRollupPrivateInputs,
590
593
  signal?: AbortSignal,
591
- epochNumber?: number,
594
+ epochNumber?: EpochNumber,
592
595
  ): Promise<
593
596
  PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
594
597
  > {
@@ -604,7 +607,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
604
607
  getCheckpointRootSingleBlockRollupProof(
605
608
  input: CheckpointRootSingleBlockRollupPrivateInputs,
606
609
  signal?: AbortSignal,
607
- epochNumber?: number,
610
+ epochNumber?: EpochNumber,
608
611
  ): Promise<
609
612
  PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
610
613
  > {
@@ -620,7 +623,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
620
623
  getCheckpointPaddingRollupProof(
621
624
  input: CheckpointPaddingRollupPrivateInputs,
622
625
  signal?: AbortSignal,
623
- epochNumber?: number,
626
+ epochNumber?: EpochNumber,
624
627
  ): Promise<
625
628
  PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
626
629
  > {
@@ -636,7 +639,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
636
639
  getCheckpointMergeRollupProof(
637
640
  input: CheckpointMergeRollupPrivateInputs,
638
641
  signal?: AbortSignal,
639
- epochNumber?: number,
642
+ epochNumber?: EpochNumber,
640
643
  ): Promise<
641
644
  PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
642
645
  > {
@@ -652,7 +655,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
652
655
  getRootRollupProof(
653
656
  input: RootRollupPrivateInputs,
654
657
  signal?: AbortSignal,
655
- epochNumber?: number,
658
+ epochNumber?: EpochNumber,
656
659
  ): Promise<PublicInputsAndRecursiveProof<RootRollupPublicInputs, typeof RECURSIVE_PROOF_LENGTH>> {
657
660
  return this.enqueueJob(
658
661
  this.generateId(ProvingRequestType.ROOT_ROLLUP, input, epochNumber),
@@ -663,7 +666,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
663
666
  );
664
667
  }
665
668
 
666
- private generateId(type: ProvingRequestType, inputs: { toBuffer(): Buffer }, epochNumber = 0) {
669
+ private generateId(type: ProvingRequestType, inputs: { toBuffer(): Buffer }, epochNumber = EpochNumber.ZERO) {
667
670
  const inputsHash = sha256(inputs.toBuffer());
668
671
  return makeProvingJobId(epochNumber, type, inputsHash.toString('hex'));
669
672
  }
@@ -1,4 +1,4 @@
1
- import { type L1ReaderConfig, l1ReaderConfigMappings } from '@aztec/ethereum';
1
+ import { type L1ReaderConfig, l1ReaderConfigMappings } from '@aztec/ethereum/l1-reader';
2
2
  import {
3
3
  type ConfigMappingsType,
4
4
  booleanConfigHelper,
@@ -98,6 +98,8 @@ export const ProverAgentConfig = z.object({
98
98
  proverTestDelayMs: z.number(),
99
99
  /** If using realistic delays, what percentage of realistic times to apply. */
100
100
  proverTestDelayFactor: z.number(),
101
+ /** The delay (ms) to inject during fake proof verification */
102
+ proverTestVerificationDelayMs: z.number().optional(),
101
103
  });
102
104
 
103
105
  export type ProverAgentConfig = z.infer<typeof ProverAgentConfig>;
@@ -146,4 +148,9 @@ export const proverAgentConfigMappings: ConfigMappingsType<ProverAgentConfig> =
146
148
  description: 'If using realistic delays, what percentage of realistic times to apply.',
147
149
  ...numberConfigHelper(1),
148
150
  },
151
+ proverTestVerificationDelayMs: {
152
+ env: 'PROVER_TEST_VERIFICATION_DELAY_MS',
153
+ description: 'The delay (ms) to inject during fake proof verification',
154
+ ...numberConfigHelper(10),
155
+ },
149
156
  };
@@ -1,9 +1,14 @@
1
- import { randomBytes } from '@aztec/foundation/crypto';
1
+ import { EpochNumber } from '@aztec/foundation/branded-types';
2
+ import { randomBytes } from '@aztec/foundation/crypto/random';
2
3
  import { type ProofUri, type ProvingJobId, makeProvingJobId } from '@aztec/stdlib/interfaces/server';
3
4
  import { ProvingRequestType } from '@aztec/stdlib/proofs';
4
5
 
5
- export function makeRandomProvingJobId(epochNumber?: number): ProvingJobId {
6
- return makeProvingJobId(epochNumber ?? 1, ProvingRequestType.PARITY_BASE, randomBytes(8).toString('hex'));
6
+ export function makeRandomProvingJobId(epochNumber?: EpochNumber): ProvingJobId {
7
+ return makeProvingJobId(
8
+ epochNumber ?? EpochNumber(1),
9
+ ProvingRequestType.PARITY_BASE,
10
+ randomBytes(8).toString('hex'),
11
+ );
7
12
  }
8
13
 
9
14
  export function makeInputsUri(): ProofUri {
@@ -1,3 +1,4 @@
1
+ import { EpochNumber } from '@aztec/foundation/branded-types';
1
2
  import { createLogger } from '@aztec/foundation/log';
2
3
  import { type PromiseWithResolvers, RunningPromise, promiseWithResolvers } from '@aztec/foundation/promise';
3
4
  import { PriorityMemoryQueue } from '@aztec/foundation/queue';
@@ -44,7 +45,7 @@ type EnqueuedProvingJob = Pick<ProvingJob, 'id' | 'epochNumber'>;
44
45
  export class ProvingBroker implements ProvingJobProducer, ProvingJobConsumer, Traceable {
45
46
  private queues: ProvingQueues = {
46
47
  [ProvingRequestType.PUBLIC_VM]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
47
- [ProvingRequestType.PUBLIC_TUBE]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
48
+ [ProvingRequestType.PUBLIC_CHONK_VERIFIER]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
48
49
 
49
50
  [ProvingRequestType.PRIVATE_TX_BASE_ROLLUP]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
50
51
  [ProvingRequestType.PUBLIC_TX_BASE_ROLLUP]: new PriorityMemoryQueue<EnqueuedProvingJob>(provingJobComparator),
@@ -567,7 +568,7 @@ export class ProvingBroker implements ProvingJobProducer, ProvingJobConsumer, Tr
567
568
  this.reEnqueueExpiredJobs();
568
569
  const oldestEpochToKeep = this.oldestEpochToKeep();
569
570
  if (oldestEpochToKeep > 0) {
570
- await this.database.deleteAllProvingJobsOlderThanEpoch(oldestEpochToKeep);
571
+ await this.database.deleteAllProvingJobsOlderThanEpoch(EpochNumber(oldestEpochToKeep));
571
572
  this.logger.trace(`Deleted all epochs older than ${oldestEpochToKeep}`);
572
573
  }
573
574
  }
@@ -700,7 +701,7 @@ export const PROOF_TYPES_IN_PRIORITY_ORDER: ProvingRequestType[] = [
700
701
  ProvingRequestType.PUBLIC_TX_BASE_ROLLUP,
701
702
  ProvingRequestType.PRIVATE_TX_BASE_ROLLUP,
702
703
  ProvingRequestType.PUBLIC_VM,
703
- ProvingRequestType.PUBLIC_TUBE,
704
+ ProvingRequestType.PUBLIC_CHONK_VERIFIER,
704
705
  ProvingRequestType.PARITY_ROOT,
705
706
  ProvingRequestType.PARITY_BASE,
706
707
  ];
@@ -1,3 +1,4 @@
1
+ import { EpochNumber } from '@aztec/foundation/branded-types';
1
2
  import {
2
3
  type ProofUri,
3
4
  type ProvingJob,
@@ -43,7 +44,7 @@ export class InMemoryBrokerDatabase implements ProvingBrokerDatabase {
43
44
  return Promise.resolve();
44
45
  }
45
46
 
46
- deleteAllProvingJobsOlderThanEpoch(epochNumber: number): Promise<void> {
47
+ deleteAllProvingJobsOlderThanEpoch(epochNumber: EpochNumber): Promise<void> {
47
48
  const toDelete = [
48
49
  ...Array.from(this.jobs.keys()).filter(x => getEpochFromProvingJobId(x) < epochNumber),
49
50
  ...Array.from(this.results.keys()).filter(x => getEpochFromProvingJobId(x) < epochNumber),
@@ -1,3 +1,4 @@
1
+ import { EpochNumber } from '@aztec/foundation/branded-types';
1
2
  import { jsonParseWithSchema, jsonStringify } from '@aztec/foundation/json-rpc';
2
3
  import { type Logger, createLogger } from '@aztec/foundation/log';
3
4
  import { BatchQueue } from '@aztec/foundation/queue';
@@ -104,7 +105,7 @@ export class KVBrokerDatabase implements ProvingBrokerDatabase {
104
105
  const jobsToAdd = items.filter((item): item is ProvingJob => 'id' in item);
105
106
  const resultsToAdd = items.filter((item): item is [ProvingJobId, ProvingJobSettledResult] => Array.isArray(item));
106
107
 
107
- const db = await this.getEpochDatabase(epochNumber);
108
+ const db = await this.getEpochDatabase(EpochNumber(epochNumber));
108
109
  await db.batchWrite(jobsToAdd, resultsToAdd);
109
110
  }
110
111
 
@@ -164,8 +165,8 @@ export class KVBrokerDatabase implements ProvingBrokerDatabase {
164
165
  }
165
166
  }
166
167
 
167
- async deleteAllProvingJobsOlderThanEpoch(epochNumber: number): Promise<void> {
168
- const oldEpochs = Array.from(this.epochs.keys()).filter(e => e < epochNumber);
168
+ async deleteAllProvingJobsOlderThanEpoch(epochNumber: EpochNumber): Promise<void> {
169
+ const oldEpochs = Array.from(this.epochs.keys()).filter(e => e < Number(epochNumber));
169
170
  for (const old of oldEpochs) {
170
171
  const db = this.epochs.get(old);
171
172
  if (!db) {
@@ -196,7 +197,7 @@ export class KVBrokerDatabase implements ProvingBrokerDatabase {
196
197
  return this.batchQueue.put([id, { status: 'fulfilled', value }], getEpochFromProvingJobId(id));
197
198
  }
198
199
 
199
- private async getEpochDatabase(epochNumber: number): Promise<SingleEpochDatabase> {
200
+ private async getEpochDatabase(epochNumber: EpochNumber): Promise<SingleEpochDatabase> {
200
201
  let epochDb = this.epochs.get(epochNumber);
201
202
  if (!epochDb) {
202
203
  const newEpochDirectory = join(this.config.dataDirectory!, epochNumber.toString());
@@ -1,3 +1,4 @@
1
+ import { EpochNumber } from '@aztec/foundation/branded-types';
1
2
  import type { ProofUri, ProvingJob, ProvingJobId, ProvingJobSettledResult } from '@aztec/stdlib/interfaces/server';
2
3
 
3
4
  /**
@@ -14,7 +15,7 @@ export interface ProvingBrokerDatabase {
14
15
  * Deletes all proving jobs belonging to epochs older than the given epoch
15
16
  * @param epochNumber - The epoch number beyond which jobs should be deleted
16
17
  */
17
- deleteAllProvingJobsOlderThanEpoch(epochNumber: number): Promise<void>;
18
+ deleteAllProvingJobsOlderThanEpoch(epochNumber: EpochNumber): Promise<void>;
18
19
 
19
20
  /**
20
21
  * Returns an iterator over all saved proving jobs
@@ -1,4 +1,5 @@
1
- import { randomBytes } from '@aztec/foundation/crypto';
1
+ import { EpochNumber } from '@aztec/foundation/branded-types';
2
+ import { randomBytes } from '@aztec/foundation/crypto/random';
2
3
  import { AbortError } from '@aztec/foundation/error';
3
4
  import { createLogger } from '@aztec/foundation/log';
4
5
  import type {
@@ -24,7 +25,7 @@ export class ProvingJobController {
24
25
  constructor(
25
26
  private jobId: ProvingJobId,
26
27
  private inputs: ProvingJobInputs,
27
- private epochNumber: number,
28
+ private epochNumber: EpochNumber,
28
29
  private startedAt: number,
29
30
  private circuitProver: ServerCircuitProver,
30
31
  private onComplete: () => void,
@@ -128,8 +129,8 @@ export class ProvingJobController {
128
129
  return await this.circuitProver.getAvmProof(inputs, undefined, signal, this.epochNumber);
129
130
  }
130
131
 
131
- case ProvingRequestType.PUBLIC_TUBE: {
132
- return await this.circuitProver.getPublicTubeProof(inputs, signal, this.epochNumber);
132
+ case ProvingRequestType.PUBLIC_CHONK_VERIFIER: {
133
+ return await this.circuitProver.getPublicChonkVerifierProof(inputs, signal, this.epochNumber);
133
134
  }
134
135
 
135
136
  case ProvingRequestType.PRIVATE_TX_BASE_ROLLUP: {
@@ -33,8 +33,8 @@ import type {
33
33
  CheckpointRootRollupPrivateInputs,
34
34
  CheckpointRootSingleBlockRollupPrivateInputs,
35
35
  PrivateTxBaseRollupPrivateInputs,
36
- PublicTubePrivateInputs,
37
- PublicTubePublicInputs,
36
+ PublicChonkVerifierPrivateInputs,
37
+ PublicChonkVerifierPublicInputs,
38
38
  PublicTxBaseRollupPrivateInputs,
39
39
  RootRollupPrivateInputs,
40
40
  RootRollupPublicInputs,
@@ -45,7 +45,7 @@ import {
45
45
  makeBlockRollupPublicInputs,
46
46
  makeCheckpointRollupPublicInputs,
47
47
  makeParityPublicInputs,
48
- makePublicTubePublicInputs,
48
+ makePublicChonkVerifierPublicInputs,
49
49
  makeRootRollupPublicInputs,
50
50
  makeTxRollupPublicInputs,
51
51
  } from '@aztec/stdlib/testing';
@@ -139,14 +139,16 @@ export class MockProver implements ServerCircuitProver {
139
139
  );
140
140
  }
141
141
 
142
- getPublicTubeProof(
143
- _inputs: PublicTubePrivateInputs,
142
+ getPublicChonkVerifierProof(
143
+ _inputs: PublicChonkVerifierPrivateInputs,
144
144
  _signal?: AbortSignal,
145
145
  _epochNumber?: number,
146
- ): Promise<PublicInputsAndRecursiveProof<PublicTubePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
146
+ ): Promise<
147
+ PublicInputsAndRecursiveProof<PublicChonkVerifierPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
148
+ > {
147
149
  return Promise.resolve(
148
150
  makePublicInputsAndRecursiveProof(
149
- makePublicTubePublicInputs(),
151
+ makePublicChonkVerifierPublicInputs(),
150
152
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
151
153
  VerificationKeyData.makeFakeRollupHonk(),
152
154
  ),