@aztec/prover-client 0.0.0-test.0 → 0.0.1-commit.21caa21

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 (147) hide show
  1. package/dest/block-factory/index.d.ts +2 -0
  2. package/dest/block-factory/index.d.ts.map +1 -0
  3. package/dest/block-factory/light.d.ts +38 -0
  4. package/dest/block-factory/light.d.ts.map +1 -0
  5. package/dest/block-factory/light.js +108 -0
  6. package/dest/config.d.ts +7 -7
  7. package/dest/config.d.ts.map +1 -1
  8. package/dest/config.js +11 -1
  9. package/dest/index.d.ts +1 -1
  10. package/dest/light/lightweight_checkpoint_builder.d.ts +28 -0
  11. package/dest/light/lightweight_checkpoint_builder.d.ts.map +1 -0
  12. package/dest/light/lightweight_checkpoint_builder.js +107 -0
  13. package/dest/mocks/fixtures.d.ts +8 -8
  14. package/dest/mocks/fixtures.d.ts.map +1 -1
  15. package/dest/mocks/fixtures.js +32 -14
  16. package/dest/mocks/test_context.d.ts +40 -31
  17. package/dest/mocks/test_context.d.ts.map +1 -1
  18. package/dest/mocks/test_context.js +134 -86
  19. package/dest/orchestrator/block-building-helpers.d.ts +36 -29
  20. package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
  21. package/dest/orchestrator/block-building-helpers.js +168 -188
  22. package/dest/orchestrator/block-proving-state.d.ts +68 -47
  23. package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
  24. package/dest/orchestrator/block-proving-state.js +281 -176
  25. package/dest/orchestrator/checkpoint-proving-state.d.ts +62 -0
  26. package/dest/orchestrator/checkpoint-proving-state.d.ts.map +1 -0
  27. package/dest/orchestrator/checkpoint-proving-state.js +208 -0
  28. package/dest/orchestrator/epoch-proving-state.d.ts +40 -26
  29. package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
  30. package/dest/orchestrator/epoch-proving-state.js +143 -73
  31. package/dest/orchestrator/index.d.ts +1 -1
  32. package/dest/orchestrator/orchestrator.d.ts +35 -32
  33. package/dest/orchestrator/orchestrator.d.ts.map +1 -1
  34. package/dest/orchestrator/orchestrator.js +389 -239
  35. package/dest/orchestrator/orchestrator_metrics.d.ts +3 -1
  36. package/dest/orchestrator/orchestrator_metrics.d.ts.map +1 -1
  37. package/dest/orchestrator/orchestrator_metrics.js +9 -0
  38. package/dest/orchestrator/tx-proving-state.d.ts +13 -11
  39. package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
  40. package/dest/orchestrator/tx-proving-state.js +23 -40
  41. package/dest/prover-client/factory.d.ts +1 -1
  42. package/dest/prover-client/index.d.ts +1 -1
  43. package/dest/prover-client/prover-client.d.ts +4 -4
  44. package/dest/prover-client/prover-client.d.ts.map +1 -1
  45. package/dest/prover-client/prover-client.js +5 -4
  46. package/dest/prover-client/server-epoch-prover.d.ts +15 -11
  47. package/dest/prover-client/server-epoch-prover.d.ts.map +1 -1
  48. package/dest/prover-client/server-epoch-prover.js +11 -11
  49. package/dest/proving_broker/broker_prover_facade.d.ts +23 -16
  50. package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
  51. package/dest/proving_broker/broker_prover_facade.js +67 -41
  52. package/dest/proving_broker/config.d.ts +18 -9
  53. package/dest/proving_broker/config.d.ts.map +1 -1
  54. package/dest/proving_broker/config.js +22 -5
  55. package/dest/proving_broker/factory.d.ts +2 -2
  56. package/dest/proving_broker/factory.d.ts.map +1 -1
  57. package/dest/proving_broker/factory.js +5 -1
  58. package/dest/proving_broker/fixtures.d.ts +3 -2
  59. package/dest/proving_broker/fixtures.d.ts.map +1 -1
  60. package/dest/proving_broker/fixtures.js +2 -1
  61. package/dest/proving_broker/index.d.ts +1 -1
  62. package/dest/proving_broker/proof_store/factory.d.ts +2 -2
  63. package/dest/proving_broker/proof_store/factory.js +1 -1
  64. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts +1 -1
  65. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts.map +1 -1
  66. package/dest/proving_broker/proof_store/gcs_proof_store.js +1 -0
  67. package/dest/proving_broker/proof_store/index.d.ts +2 -1
  68. package/dest/proving_broker/proof_store/index.d.ts.map +1 -1
  69. package/dest/proving_broker/proof_store/index.js +1 -0
  70. package/dest/proving_broker/proof_store/inline_proof_store.d.ts +1 -1
  71. package/dest/proving_broker/proof_store/inline_proof_store.d.ts.map +1 -1
  72. package/dest/proving_broker/proof_store/proof_store.d.ts +1 -1
  73. package/dest/proving_broker/proving_agent.d.ts +4 -4
  74. package/dest/proving_broker/proving_agent.d.ts.map +1 -1
  75. package/dest/proving_broker/proving_agent.js +83 -47
  76. package/dest/proving_broker/proving_agent_instrumentation.d.ts +1 -1
  77. package/dest/proving_broker/proving_agent_instrumentation.d.ts.map +1 -1
  78. package/dest/proving_broker/proving_broker.d.ts +13 -4
  79. package/dest/proving_broker/proving_broker.d.ts.map +1 -1
  80. package/dest/proving_broker/proving_broker.js +36 -23
  81. package/dest/proving_broker/proving_broker_database/memory.d.ts +3 -2
  82. package/dest/proving_broker/proving_broker_database/memory.d.ts.map +1 -1
  83. package/dest/proving_broker/proving_broker_database/memory.js +1 -1
  84. package/dest/proving_broker/proving_broker_database/persisted.d.ts +3 -2
  85. package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +1 -1
  86. package/dest/proving_broker/proving_broker_database/persisted.js +12 -10
  87. package/dest/proving_broker/proving_broker_database.d.ts +3 -2
  88. package/dest/proving_broker/proving_broker_database.d.ts.map +1 -1
  89. package/dest/proving_broker/proving_broker_instrumentation.d.ts +1 -1
  90. package/dest/proving_broker/proving_broker_instrumentation.d.ts.map +1 -1
  91. package/dest/proving_broker/proving_job_controller.d.ts +9 -9
  92. package/dest/proving_broker/proving_job_controller.d.ts.map +1 -1
  93. package/dest/proving_broker/proving_job_controller.js +89 -61
  94. package/dest/proving_broker/rpc.d.ts +4 -6
  95. package/dest/proving_broker/rpc.d.ts.map +1 -1
  96. package/dest/proving_broker/rpc.js +1 -4
  97. package/dest/test/mock_proof_store.d.ts +9 -0
  98. package/dest/test/mock_proof_store.d.ts.map +1 -0
  99. package/dest/test/mock_proof_store.js +10 -0
  100. package/dest/test/mock_prover.d.ts +23 -17
  101. package/dest/test/mock_prover.d.ts.map +1 -1
  102. package/dest/test/mock_prover.js +38 -20
  103. package/package.json +32 -31
  104. package/src/block-factory/index.ts +1 -0
  105. package/src/block-factory/light.ts +137 -0
  106. package/src/config.ts +24 -8
  107. package/src/light/lightweight_checkpoint_builder.ts +142 -0
  108. package/src/mocks/fixtures.ts +42 -37
  109. package/src/mocks/test_context.ts +207 -115
  110. package/src/orchestrator/block-building-helpers.ts +256 -333
  111. package/src/orchestrator/block-proving-state.ts +323 -230
  112. package/src/orchestrator/checkpoint-proving-state.ts +301 -0
  113. package/src/orchestrator/epoch-proving-state.ts +187 -112
  114. package/src/orchestrator/orchestrator.ts +592 -299
  115. package/src/orchestrator/orchestrator_metrics.ts +20 -1
  116. package/src/orchestrator/tx-proving-state.ts +50 -64
  117. package/src/prover-client/prover-client.ts +16 -14
  118. package/src/prover-client/server-epoch-prover.ts +39 -21
  119. package/src/proving_broker/broker_prover_facade.ts +214 -126
  120. package/src/proving_broker/config.ts +24 -6
  121. package/src/proving_broker/factory.ts +2 -1
  122. package/src/proving_broker/fixtures.ts +7 -2
  123. package/src/proving_broker/proof_store/factory.ts +1 -1
  124. package/src/proving_broker/proof_store/gcs_proof_store.ts +5 -1
  125. package/src/proving_broker/proof_store/index.ts +1 -0
  126. package/src/proving_broker/proof_store/inline_proof_store.ts +1 -1
  127. package/src/proving_broker/proving_agent.ts +89 -47
  128. package/src/proving_broker/proving_broker.ts +53 -33
  129. package/src/proving_broker/proving_broker_database/memory.ts +3 -2
  130. package/src/proving_broker/proving_broker_database/persisted.ts +14 -12
  131. package/src/proving_broker/proving_broker_database.ts +2 -1
  132. package/src/proving_broker/proving_job_controller.ts +94 -82
  133. package/src/proving_broker/rpc.ts +1 -6
  134. package/src/test/mock_proof_store.ts +14 -0
  135. package/src/test/mock_prover.ts +164 -60
  136. package/dest/bin/get-proof-inputs.d.ts +0 -2
  137. package/dest/bin/get-proof-inputs.d.ts.map +0 -1
  138. package/dest/bin/get-proof-inputs.js +0 -51
  139. package/dest/block_builder/index.d.ts +0 -6
  140. package/dest/block_builder/index.d.ts.map +0 -1
  141. package/dest/block_builder/light.d.ts +0 -33
  142. package/dest/block_builder/light.d.ts.map +0 -1
  143. package/dest/block_builder/light.js +0 -82
  144. package/src/bin/get-proof-inputs.ts +0 -59
  145. package/src/block_builder/index.ts +0 -6
  146. package/src/block_builder/light.ts +0 -101
  147. /package/dest/{block_builder → block-factory}/index.js +0 -0
@@ -1,3 +1,6 @@
1
+ import { EpochNumber } from '@aztec/foundation/branded-types';
2
+ import { randomBytes } from '@aztec/foundation/crypto';
3
+ import { AbortError } from '@aztec/foundation/error';
1
4
  import { createLogger } from '@aztec/foundation/log';
2
5
  import type {
3
6
  ProvingJobId,
@@ -9,38 +12,29 @@ import { ProvingRequestType } from '@aztec/stdlib/proofs';
9
12
 
10
13
  export enum ProvingJobControllerStatus {
11
14
  IDLE = 'idle',
12
- PROVING = 'proving',
15
+ RUNNING = 'running',
13
16
  DONE = 'done',
14
- ABORTED = 'aborted',
15
- }
16
-
17
- interface ProvingJobCompletionCallback<T extends ProvingRequestType = ProvingRequestType> {
18
- (
19
- jobId: ProvingJobId,
20
- type: T,
21
- error: Error | undefined,
22
- result: ProvingJobResultsMap[T] | undefined,
23
- ): void | Promise<void>;
24
17
  }
25
18
 
26
19
  export class ProvingJobController {
27
20
  private status: ProvingJobControllerStatus = ProvingJobControllerStatus.IDLE;
28
21
  private promise?: Promise<void>;
29
22
  private abortController = new AbortController();
23
+ private result?: ProvingJobResultsMap[ProvingRequestType] | Error;
30
24
 
31
25
  constructor(
32
26
  private jobId: ProvingJobId,
33
27
  private inputs: ProvingJobInputs,
34
- private epochNumber: number,
28
+ private epochNumber: EpochNumber,
35
29
  private startedAt: number,
36
30
  private circuitProver: ServerCircuitProver,
37
- private onComplete: ProvingJobCompletionCallback,
38
- private log = createLogger('prover-client:proving-agent:job-controller'),
31
+ private onComplete: () => void,
32
+ private log = createLogger('prover-client:proving-agent:job-controller-' + randomBytes(4).toString('hex')),
39
33
  ) {}
40
34
 
41
35
  public start(): void {
42
36
  if (this.status !== ProvingJobControllerStatus.IDLE) {
43
- this.log.verbose(
37
+ this.log.warn(
44
38
  `Job controller for jobId=${this.jobId} not starting because it is not idle currentStatus=${this.status}`,
45
39
  {
46
40
  currentStatus: this.status,
@@ -50,63 +44,23 @@ export class ProvingJobController {
50
44
  return;
51
45
  }
52
46
 
53
- this.status = ProvingJobControllerStatus.PROVING;
54
- this.log.verbose(`Job controller started jobId=${this.jobId}`, {
47
+ this.promise = this.run();
48
+
49
+ this.log.info(`Job controller started jobId=${this.jobId}`, {
55
50
  jobId: this.jobId,
56
51
  });
57
-
58
- this.promise = this.generateProof()
59
- .then(
60
- result => {
61
- if (this.status === ProvingJobControllerStatus.ABORTED) {
62
- this.log.warn(`Job controller for jobId=${this.jobId} completed successfully but job was aborted`, {
63
- currentStatus: this.status,
64
- jobId: this.jobId,
65
- });
66
- return;
67
- }
68
- this.status = ProvingJobControllerStatus.DONE;
69
- this.log.verbose(`Job controller for jobId=${this.jobId} completed successfully`, {
70
- jobId: this.jobId,
71
- });
72
- return this.onComplete(this.jobId, this.inputs.type, undefined, result);
73
- },
74
- error => {
75
- if (this.status === ProvingJobControllerStatus.ABORTED) {
76
- this.log.warn(`Job controller for jobId=${this.jobId} finished with an error but job was aborted`, {
77
- currentStatus: this.status,
78
- jobId: this.jobId,
79
- });
80
- return;
81
- }
82
-
83
- if (error.name === 'AbortError') {
84
- // Ignore abort errors
85
- return;
86
- }
87
-
88
- this.log.verbose(`Job controller for jobId=${this.jobId} finished with an error`, {
89
- jobId: this.jobId,
90
- err: error,
91
- });
92
-
93
- this.status = ProvingJobControllerStatus.DONE;
94
- return this.onComplete(this.jobId, this.inputs.type, error, undefined);
95
- },
96
- )
97
- .catch(err => {
98
- this.log.error(`Job constroller failed to send result for jobId=${this.jobId}: ${err}`, err, {
99
- jobId: this.jobId,
100
- });
101
- });
102
52
  }
103
53
 
104
54
  public getStatus(): ProvingJobControllerStatus {
105
55
  return this.status;
106
56
  }
107
57
 
58
+ public getResult(): ProvingJobResultsMap[ProvingRequestType] | Error | undefined {
59
+ return this.result;
60
+ }
61
+
108
62
  public abort(): void {
109
- if (this.status !== ProvingJobControllerStatus.PROVING) {
63
+ if (this.status !== ProvingJobControllerStatus.RUNNING) {
110
64
  this.log.warn(`Tried to abort job controller for jobId=${this.jobId} but it is not running`, {
111
65
  currentStatus: this.status,
112
66
  jobId: this.jobId,
@@ -114,9 +68,8 @@ export class ProvingJobController {
114
68
  return;
115
69
  }
116
70
 
117
- this.status = ProvingJobControllerStatus.ABORTED;
118
71
  this.abortController.abort();
119
- this.log.verbose(`Aborted job controller for jobId=${this.jobId}`, {
72
+ this.log.warn(`Aborted job controller for jobId=${this.jobId}`, {
120
73
  jobId: this.jobId,
121
74
  });
122
75
  }
@@ -125,6 +78,10 @@ export class ProvingJobController {
125
78
  return this.jobId;
126
79
  }
127
80
 
81
+ public getProofType(): ProvingRequestType {
82
+ return this.inputs.type;
83
+ }
84
+
128
85
  public getStartedAt(): number {
129
86
  return this.startedAt;
130
87
  }
@@ -133,58 +90,113 @@ export class ProvingJobController {
133
90
  return ProvingRequestType[this.inputs.type];
134
91
  }
135
92
 
93
+ private run = async () => {
94
+ this.status = ProvingJobControllerStatus.RUNNING;
95
+ let result: ProvingJobResultsMap[ProvingRequestType] | Error;
96
+ try {
97
+ result = await this.generateProof();
98
+ } catch (err) {
99
+ if (err && err instanceof Error) {
100
+ result = err;
101
+ } else {
102
+ result = new Error('Unknown proving error: ' + String(err), { cause: err });
103
+ }
104
+ }
105
+
106
+ if (this.abortController.signal.aborted) {
107
+ this.log.warn(`Job controller for jobId=${this.jobId} completed but job was aborted`, {
108
+ currentStatus: this.status,
109
+ jobId: this.jobId,
110
+ });
111
+ result = new AbortError('Proof was aborted');
112
+ }
113
+
114
+ this.result = result;
115
+ this.status = ProvingJobControllerStatus.DONE;
116
+ try {
117
+ this.onComplete();
118
+ } catch (err) {
119
+ this.log.warn(`On complete handler error: ${err}`, { jobId: this.jobId });
120
+ }
121
+ };
122
+
136
123
  private async generateProof(): Promise<ProvingJobResultsMap[ProvingRequestType]> {
137
124
  const { type, inputs } = this.inputs;
138
125
  const signal = this.abortController.signal;
139
126
  switch (type) {
140
127
  case ProvingRequestType.PUBLIC_VM: {
141
- return await this.circuitProver.getAvmProof(inputs, signal, this.epochNumber);
128
+ // TODO(#14234)[Unconditional PIs validation]: Remove argument "undefined".
129
+ return await this.circuitProver.getAvmProof(inputs, undefined, signal, this.epochNumber);
130
+ }
131
+
132
+ case ProvingRequestType.PUBLIC_CHONK_VERIFIER: {
133
+ return await this.circuitProver.getPublicChonkVerifierProof(inputs, signal, this.epochNumber);
142
134
  }
143
135
 
144
- case ProvingRequestType.PRIVATE_BASE_ROLLUP: {
145
- return await this.circuitProver.getPrivateBaseRollupProof(inputs, signal, this.epochNumber);
136
+ case ProvingRequestType.PRIVATE_TX_BASE_ROLLUP: {
137
+ return await this.circuitProver.getPrivateTxBaseRollupProof(inputs, signal, this.epochNumber);
146
138
  }
147
139
 
148
- case ProvingRequestType.PUBLIC_BASE_ROLLUP: {
149
- return await this.circuitProver.getPublicBaseRollupProof(inputs, signal, this.epochNumber);
140
+ case ProvingRequestType.PUBLIC_TX_BASE_ROLLUP: {
141
+ return await this.circuitProver.getPublicTxBaseRollupProof(inputs, signal, this.epochNumber);
150
142
  }
151
143
 
152
- case ProvingRequestType.MERGE_ROLLUP: {
153
- return await this.circuitProver.getMergeRollupProof(inputs, signal, this.epochNumber);
144
+ case ProvingRequestType.TX_MERGE_ROLLUP: {
145
+ return await this.circuitProver.getTxMergeRollupProof(inputs, signal, this.epochNumber);
154
146
  }
155
147
 
156
- case ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP: {
157
- return await this.circuitProver.getEmptyBlockRootRollupProof(inputs, signal, this.epochNumber);
148
+ case ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP: {
149
+ return await this.circuitProver.getBlockRootFirstRollupProof(inputs, signal, this.epochNumber);
150
+ }
151
+
152
+ case ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP: {
153
+ return await this.circuitProver.getBlockRootSingleTxFirstRollupProof(inputs, signal, this.epochNumber);
154
+ }
155
+
156
+ case ProvingRequestType.BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP: {
157
+ return await this.circuitProver.getBlockRootEmptyTxFirstRollupProof(inputs, signal, this.epochNumber);
158
158
  }
159
159
 
160
160
  case ProvingRequestType.BLOCK_ROOT_ROLLUP: {
161
161
  return await this.circuitProver.getBlockRootRollupProof(inputs, signal, this.epochNumber);
162
162
  }
163
163
 
164
- case ProvingRequestType.SINGLE_TX_BLOCK_ROOT_ROLLUP: {
165
- return await this.circuitProver.getSingleTxBlockRootRollupProof(inputs, signal, this.epochNumber);
164
+ case ProvingRequestType.BLOCK_ROOT_SINGLE_TX_ROLLUP: {
165
+ return await this.circuitProver.getBlockRootSingleTxRollupProof(inputs, signal, this.epochNumber);
166
166
  }
167
167
 
168
168
  case ProvingRequestType.BLOCK_MERGE_ROLLUP: {
169
169
  return await this.circuitProver.getBlockMergeRollupProof(inputs, signal, this.epochNumber);
170
170
  }
171
171
 
172
+ case ProvingRequestType.CHECKPOINT_ROOT_ROLLUP: {
173
+ return await this.circuitProver.getCheckpointRootRollupProof(inputs, signal, this.epochNumber);
174
+ }
175
+
176
+ case ProvingRequestType.CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP: {
177
+ return await this.circuitProver.getCheckpointRootSingleBlockRollupProof(inputs, signal, this.epochNumber);
178
+ }
179
+
180
+ case ProvingRequestType.CHECKPOINT_PADDING_ROLLUP: {
181
+ return await this.circuitProver.getCheckpointPaddingRollupProof(inputs, signal, this.epochNumber);
182
+ }
183
+
184
+ case ProvingRequestType.CHECKPOINT_MERGE_ROLLUP: {
185
+ return await this.circuitProver.getCheckpointMergeRollupProof(inputs, signal, this.epochNumber);
186
+ }
187
+
172
188
  case ProvingRequestType.ROOT_ROLLUP: {
173
189
  return await this.circuitProver.getRootRollupProof(inputs, signal, this.epochNumber);
174
190
  }
175
191
 
176
- case ProvingRequestType.BASE_PARITY: {
192
+ case ProvingRequestType.PARITY_BASE: {
177
193
  return await this.circuitProver.getBaseParityProof(inputs, signal, this.epochNumber);
178
194
  }
179
195
 
180
- case ProvingRequestType.ROOT_PARITY: {
196
+ case ProvingRequestType.PARITY_ROOT: {
181
197
  return await this.circuitProver.getRootParityProof(inputs, signal, this.epochNumber);
182
198
  }
183
199
 
184
- case ProvingRequestType.TUBE_PROOF: {
185
- return await this.circuitProver.getTubeProof(inputs, signal, this.epochNumber);
186
- }
187
-
188
200
  default: {
189
201
  const _exhaustive: never = type;
190
202
  return Promise.reject(new Error(`Invalid proof request type: ${type}`));
@@ -1,5 +1,4 @@
1
1
  import { createSafeJsonRpcClient } from '@aztec/foundation/json-rpc/client';
2
- import type { SafeJsonRpcServer } from '@aztec/foundation/json-rpc/server';
3
2
  import {
4
3
  type GetProvingJobResponse,
5
4
  ProofUri,
@@ -13,7 +12,7 @@ import {
13
12
  import { ProvingRequestType } from '@aztec/stdlib/proofs';
14
13
  import { type ApiSchemaFor, optional } from '@aztec/stdlib/schemas';
15
14
  import { type ComponentsVersions, getVersioningResponseHandler } from '@aztec/stdlib/versioning';
16
- import { createTracedJsonRpcServer, makeTracedFetch } from '@aztec/telemetry-client';
15
+ import { makeTracedFetch } from '@aztec/telemetry-client';
17
16
 
18
17
  import { z } from 'zod';
19
18
 
@@ -54,10 +53,6 @@ export const ProvingJobBrokerSchema: ApiSchemaFor<ProvingJobBroker> = {
54
53
  ...ProvingJobProducerSchema,
55
54
  };
56
55
 
57
- export function createProvingBrokerServer(broker: ProvingJobBroker): SafeJsonRpcServer {
58
- return createTracedJsonRpcServer(broker, ProvingJobBrokerSchema);
59
- }
60
-
61
56
  export function createProvingJobBrokerClient(
62
57
  url: string,
63
58
  versions: Partial<ComponentsVersions>,
@@ -0,0 +1,14 @@
1
+ import type { ProvingJobId } from '@aztec/stdlib/interfaces/server';
2
+ import { ProvingRequestType } from '@aztec/stdlib/proofs';
3
+
4
+ // Mock ProofStore for faster benchmarks with realistic Cloud Storage URIs
5
+ export class MockProofStore {
6
+ private mockCounter = 0;
7
+ private readonly bucketName = 'aztec-proving-benchmarks';
8
+ private readonly basePath = 'proving-jobs';
9
+
10
+ saveProofInput(jobId: ProvingJobId, type: ProvingRequestType): Promise<string> {
11
+ const uri = `gs://${this.bucketName}/${this.basePath}/inputs/${type}/${jobId}`;
12
+ return Promise.resolve(uri as any);
13
+ }
14
+ }
@@ -1,15 +1,13 @@
1
1
  import {
2
- AVM_PROOF_LENGTH_IN_FIELDS,
3
- AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS,
2
+ AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED,
3
+ AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED,
4
4
  NESTED_RECURSIVE_PROOF_LENGTH,
5
5
  NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
6
6
  RECURSIVE_PROOF_LENGTH,
7
- TUBE_PROOF_LENGTH,
8
7
  } from '@aztec/constants';
9
8
  import { times } from '@aztec/foundation/collection';
10
9
  import type { AvmCircuitInputs } from '@aztec/stdlib/avm';
11
10
  import {
12
- type ProofAndVerificationKey,
13
11
  type ProvingJob,
14
12
  type ProvingJobId,
15
13
  type ProvingJobProducer,
@@ -19,26 +17,37 @@ import {
19
17
  makeProofAndVerificationKey,
20
18
  makePublicInputsAndRecursiveProof,
21
19
  } from '@aztec/stdlib/interfaces/server';
22
- import type { BaseParityInputs, RootParityInputs } from '@aztec/stdlib/parity';
20
+ import type { ParityBasePrivateInputs, ParityRootPrivateInputs } from '@aztec/stdlib/parity';
23
21
  import { makeEmptyRecursiveProof, makeRecursiveProof } from '@aztec/stdlib/proofs';
24
22
  import type {
25
- BaseOrMergeRollupPublicInputs,
26
- BlockMergeRollupInputs,
27
- BlockRootOrBlockMergePublicInputs,
28
- BlockRootRollupInputs,
29
- EmptyBlockRootRollupInputs,
30
- MergeRollupInputs,
31
- PrivateBaseRollupInputs,
32
- PublicBaseRollupInputs,
33
- RootRollupInputs,
23
+ BlockMergeRollupPrivateInputs,
24
+ BlockRollupPublicInputs,
25
+ BlockRootEmptyTxFirstRollupPrivateInputs,
26
+ BlockRootFirstRollupPrivateInputs,
27
+ BlockRootRollupPrivateInputs,
28
+ BlockRootSingleTxFirstRollupPrivateInputs,
29
+ BlockRootSingleTxRollupPrivateInputs,
30
+ CheckpointMergeRollupPrivateInputs,
31
+ CheckpointPaddingRollupPrivateInputs,
32
+ CheckpointRollupPublicInputs,
33
+ CheckpointRootRollupPrivateInputs,
34
+ CheckpointRootSingleBlockRollupPrivateInputs,
35
+ PrivateTxBaseRollupPrivateInputs,
36
+ PublicChonkVerifierPrivateInputs,
37
+ PublicChonkVerifierPublicInputs,
38
+ PublicTxBaseRollupPrivateInputs,
39
+ RootRollupPrivateInputs,
34
40
  RootRollupPublicInputs,
35
- SingleTxBlockRootRollupInputs,
41
+ TxMergeRollupPrivateInputs,
42
+ TxRollupPublicInputs,
36
43
  } from '@aztec/stdlib/rollup';
37
44
  import {
38
- makeBaseOrMergeRollupPublicInputs,
39
- makeBlockRootOrBlockMergeRollupPublicInputs,
45
+ makeBlockRollupPublicInputs,
46
+ makeCheckpointRollupPublicInputs,
40
47
  makeParityPublicInputs,
48
+ makePublicChonkVerifierPublicInputs,
41
49
  makeRootRollupPublicInputs,
50
+ makeTxRollupPublicInputs,
42
51
  } from '@aztec/stdlib/testing';
43
52
  import { VerificationKeyData } from '@aztec/stdlib/vks';
44
53
 
@@ -96,16 +105,21 @@ export class TestBroker implements ProvingJobProducer {
96
105
  export class MockProver implements ServerCircuitProver {
97
106
  constructor() {}
98
107
 
99
- getAvmProof(_inputs: AvmCircuitInputs, _signal?: AbortSignal, _epochNumber?: number) {
108
+ getAvmProof(
109
+ _inputs: AvmCircuitInputs,
110
+ _skipPublicInputsValidation?: boolean, // TODO(#14234)[Unconditional PIs validation]: Remove.
111
+ _signal?: AbortSignal,
112
+ _epochNumber?: number,
113
+ ) {
100
114
  return Promise.resolve(
101
115
  makeProofAndVerificationKey(
102
- makeEmptyRecursiveProof(AVM_PROOF_LENGTH_IN_FIELDS),
103
- VerificationKeyData.makeFake(AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS),
116
+ makeEmptyRecursiveProof(AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED),
117
+ VerificationKeyData.makeFake(AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED),
104
118
  ),
105
119
  );
106
120
  }
107
121
 
108
- getBaseParityProof(_inputs: BaseParityInputs, _signal?: AbortSignal, _epochNumber?: number) {
122
+ getBaseParityProof(_inputs: ParityBasePrivateInputs, _signal?: AbortSignal, _epochNumber?: number) {
109
123
  return Promise.resolve(
110
124
  makePublicInputsAndRecursiveProof(
111
125
  makeParityPublicInputs(),
@@ -115,7 +129,7 @@ export class MockProver implements ServerCircuitProver {
115
129
  );
116
130
  }
117
131
 
118
- getRootParityProof(_inputs: RootParityInputs, _signal?: AbortSignal, _epochNumber?: number) {
132
+ getRootParityProof(_inputs: ParityRootPrivateInputs, _signal?: AbortSignal, _epochNumber?: number) {
119
133
  return Promise.resolve(
120
134
  makePublicInputsAndRecursiveProof(
121
135
  makeParityPublicInputs(),
@@ -125,114 +139,210 @@ export class MockProver implements ServerCircuitProver {
125
139
  );
126
140
  }
127
141
 
128
- getPrivateBaseRollupProof(
129
- _baseRollupInput: PrivateBaseRollupInputs,
142
+ getPublicChonkVerifierProof(
143
+ _inputs: PublicChonkVerifierPrivateInputs,
130
144
  _signal?: AbortSignal,
131
145
  _epochNumber?: number,
132
146
  ): Promise<
133
- PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
147
+ PublicInputsAndRecursiveProof<PublicChonkVerifierPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
134
148
  > {
135
149
  return Promise.resolve(
136
150
  makePublicInputsAndRecursiveProof(
137
- makeBaseOrMergeRollupPublicInputs(),
151
+ makePublicChonkVerifierPublicInputs(),
138
152
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
139
153
  VerificationKeyData.makeFakeRollupHonk(),
140
154
  ),
141
155
  );
142
156
  }
143
157
 
144
- getPublicBaseRollupProof(
145
- _inputs: PublicBaseRollupInputs,
158
+ getPrivateTxBaseRollupProof(
159
+ _baseRollupInput: PrivateTxBaseRollupPrivateInputs,
146
160
  _signal?: AbortSignal,
147
161
  _epochNumber?: number,
148
- ): Promise<
149
- PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
150
- > {
162
+ ): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
151
163
  return Promise.resolve(
152
164
  makePublicInputsAndRecursiveProof(
153
- makeBaseOrMergeRollupPublicInputs(),
165
+ makeTxRollupPublicInputs(),
154
166
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
155
167
  VerificationKeyData.makeFakeRollupHonk(),
156
168
  ),
157
169
  );
158
170
  }
159
171
 
160
- getMergeRollupProof(
161
- _input: MergeRollupInputs,
172
+ getPublicTxBaseRollupProof(
173
+ _inputs: PublicTxBaseRollupPrivateInputs,
162
174
  _signal?: AbortSignal,
163
175
  _epochNumber?: number,
164
- ): Promise<
165
- PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
166
- > {
176
+ ): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
177
+ return Promise.resolve(
178
+ makePublicInputsAndRecursiveProof(
179
+ makeTxRollupPublicInputs(),
180
+ makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
181
+ VerificationKeyData.makeFakeRollupHonk(),
182
+ ),
183
+ );
184
+ }
185
+
186
+ getTxMergeRollupProof(
187
+ _input: TxMergeRollupPrivateInputs,
188
+ _signal?: AbortSignal,
189
+ _epochNumber?: number,
190
+ ): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
191
+ return Promise.resolve(
192
+ makePublicInputsAndRecursiveProof(
193
+ makeTxRollupPublicInputs(),
194
+ makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
195
+ VerificationKeyData.makeFakeRollupHonk(),
196
+ ),
197
+ );
198
+ }
199
+
200
+ getBlockRootFirstRollupProof(
201
+ _input: BlockRootFirstRollupPrivateInputs,
202
+ _signal?: AbortSignal,
203
+ _epochNumber?: number,
204
+ ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
167
205
  return Promise.resolve(
168
206
  makePublicInputsAndRecursiveProof(
169
- makeBaseOrMergeRollupPublicInputs(),
207
+ makeBlockRollupPublicInputs(),
170
208
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
171
209
  VerificationKeyData.makeFakeRollupHonk(),
172
210
  ),
173
211
  );
174
212
  }
175
213
 
176
- getBlockMergeRollupProof(_input: BlockMergeRollupInputs, _signal?: AbortSignal, _epochNumber?: number) {
214
+ getBlockRootSingleTxFirstRollupProof(
215
+ _input: BlockRootSingleTxFirstRollupPrivateInputs,
216
+ _signal?: AbortSignal,
217
+ _epochNumber?: number,
218
+ ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
219
+ return Promise.resolve(
220
+ makePublicInputsAndRecursiveProof(
221
+ makeBlockRollupPublicInputs(),
222
+ makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
223
+ VerificationKeyData.makeFakeHonk(),
224
+ ),
225
+ );
226
+ }
227
+
228
+ getBlockRootEmptyTxFirstRollupProof(
229
+ _input: BlockRootEmptyTxFirstRollupPrivateInputs,
230
+ _signal?: AbortSignal,
231
+ _epochNumber?: number,
232
+ ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
177
233
  return Promise.resolve(
178
234
  makePublicInputsAndRecursiveProof(
179
- makeBlockRootOrBlockMergeRollupPublicInputs(),
235
+ makeBlockRollupPublicInputs(),
180
236
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
181
237
  VerificationKeyData.makeFakeRollupHonk(),
182
238
  ),
183
239
  );
184
240
  }
185
241
 
186
- getEmptyBlockRootRollupProof(
187
- _input: EmptyBlockRootRollupInputs,
242
+ getBlockRootRollupProof(
243
+ _input: BlockRootRollupPrivateInputs,
244
+ _signal?: AbortSignal,
245
+ _epochNumber?: number,
246
+ ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
247
+ return Promise.resolve(
248
+ makePublicInputsAndRecursiveProof(
249
+ makeBlockRollupPublicInputs(),
250
+ makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
251
+ VerificationKeyData.makeFakeRollupHonk(),
252
+ ),
253
+ );
254
+ }
255
+
256
+ getBlockRootSingleTxRollupProof(
257
+ _input: BlockRootSingleTxRollupPrivateInputs,
258
+ _signal?: AbortSignal,
259
+ _epochNumber?: number,
260
+ ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
261
+ return Promise.resolve(
262
+ makePublicInputsAndRecursiveProof(
263
+ makeBlockRollupPublicInputs(),
264
+ makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
265
+ VerificationKeyData.makeFakeHonk(),
266
+ ),
267
+ );
268
+ }
269
+
270
+ getBlockMergeRollupProof(_input: BlockMergeRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number) {
271
+ return Promise.resolve(
272
+ makePublicInputsAndRecursiveProof(
273
+ makeBlockRollupPublicInputs(),
274
+ makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
275
+ VerificationKeyData.makeFakeRollupHonk(),
276
+ ),
277
+ );
278
+ }
279
+
280
+ getCheckpointRootRollupProof(
281
+ _input: CheckpointRootRollupPrivateInputs,
188
282
  _signal?: AbortSignal,
189
283
  _epochNumber?: number,
190
284
  ): Promise<
191
- PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
285
+ PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
192
286
  > {
193
287
  return Promise.resolve(
194
288
  makePublicInputsAndRecursiveProof(
195
- makeBlockRootOrBlockMergeRollupPublicInputs(),
289
+ makeCheckpointRollupPublicInputs(),
196
290
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
197
291
  VerificationKeyData.makeFakeRollupHonk(),
198
292
  ),
199
293
  );
200
294
  }
201
295
 
202
- getBlockRootRollupProof(
203
- _input: BlockRootRollupInputs,
296
+ getCheckpointRootSingleBlockRollupProof(
297
+ _input: CheckpointRootSingleBlockRollupPrivateInputs,
204
298
  _signal?: AbortSignal,
205
299
  _epochNumber?: number,
206
300
  ): Promise<
207
- PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
301
+ PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
208
302
  > {
209
303
  return Promise.resolve(
210
304
  makePublicInputsAndRecursiveProof(
211
- makeBlockRootOrBlockMergeRollupPublicInputs(),
305
+ makeCheckpointRollupPublicInputs(),
212
306
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
213
307
  VerificationKeyData.makeFakeRollupHonk(),
214
308
  ),
215
309
  );
216
310
  }
217
311
 
218
- getSingleTxBlockRootRollupProof(
219
- _input: SingleTxBlockRootRollupInputs,
312
+ getCheckpointMergeRollupProof(
313
+ _input: CheckpointMergeRollupPrivateInputs,
220
314
  _signal?: AbortSignal,
221
315
  _epochNumber?: number,
222
316
  ): Promise<
223
- PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
317
+ PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
224
318
  > {
225
319
  return Promise.resolve(
226
320
  makePublicInputsAndRecursiveProof(
227
- makeBlockRootOrBlockMergeRollupPublicInputs(),
321
+ makeCheckpointRollupPublicInputs(),
228
322
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
229
- VerificationKeyData.makeFakeHonk(),
323
+ VerificationKeyData.makeFakeRollupHonk(),
324
+ ),
325
+ );
326
+ }
327
+
328
+ getCheckpointPaddingRollupProof(
329
+ _input: CheckpointPaddingRollupPrivateInputs,
330
+ _signal?: AbortSignal,
331
+ _epochNumber?: number,
332
+ ): Promise<
333
+ PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
334
+ > {
335
+ return Promise.resolve(
336
+ makePublicInputsAndRecursiveProof(
337
+ makeCheckpointRollupPublicInputs(),
338
+ makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
339
+ VerificationKeyData.makeFakeRollupHonk(),
230
340
  ),
231
341
  );
232
342
  }
233
343
 
234
344
  getRootRollupProof(
235
- _input: RootRollupInputs,
345
+ _input: RootRollupPrivateInputs,
236
346
  _signal?: AbortSignal,
237
347
  _epochNumber?: number,
238
348
  ): Promise<PublicInputsAndRecursiveProof<RootRollupPublicInputs>> {
@@ -244,10 +354,4 @@ export class MockProver implements ServerCircuitProver {
244
354
  ),
245
355
  );
246
356
  }
247
-
248
- getTubeProof(): Promise<ProofAndVerificationKey<typeof TUBE_PROOF_LENGTH>> {
249
- return Promise.resolve(
250
- makeProofAndVerificationKey(makeRecursiveProof(TUBE_PROOF_LENGTH), VerificationKeyData.makeFakeRollupHonk()),
251
- );
252
- }
253
357
  }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=get-proof-inputs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-proof-inputs.d.ts","sourceRoot":"","sources":["../../src/bin/get-proof-inputs.ts"],"names":[],"mappings":""}