@aztec/prover-client 0.0.0-test.1 → 0.0.1-commit.1142ef1

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 (157) 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 +106 -0
  6. package/dest/config.d.ts +8 -8
  7. package/dest/config.d.ts.map +1 -1
  8. package/dest/config.js +12 -2
  9. package/dest/index.d.ts +1 -1
  10. package/dest/light/index.d.ts +2 -0
  11. package/dest/light/index.d.ts.map +1 -0
  12. package/dest/light/index.js +1 -0
  13. package/dest/light/lightweight_checkpoint_builder.d.ts +43 -0
  14. package/dest/light/lightweight_checkpoint_builder.d.ts.map +1 -0
  15. package/dest/light/lightweight_checkpoint_builder.js +183 -0
  16. package/dest/mocks/fixtures.d.ts +8 -8
  17. package/dest/mocks/fixtures.d.ts.map +1 -1
  18. package/dest/mocks/fixtures.js +34 -16
  19. package/dest/mocks/test_context.d.ts +42 -32
  20. package/dest/mocks/test_context.d.ts.map +1 -1
  21. package/dest/mocks/test_context.js +144 -87
  22. package/dest/orchestrator/block-building-helpers.d.ts +37 -30
  23. package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
  24. package/dest/orchestrator/block-building-helpers.js +170 -189
  25. package/dest/orchestrator/block-proving-state.d.ts +70 -48
  26. package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
  27. package/dest/orchestrator/block-proving-state.js +282 -177
  28. package/dest/orchestrator/checkpoint-proving-state.d.ts +63 -0
  29. package/dest/orchestrator/checkpoint-proving-state.d.ts.map +1 -0
  30. package/dest/orchestrator/checkpoint-proving-state.js +210 -0
  31. package/dest/orchestrator/epoch-proving-state.d.ts +41 -27
  32. package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
  33. package/dest/orchestrator/epoch-proving-state.js +143 -73
  34. package/dest/orchestrator/index.d.ts +1 -1
  35. package/dest/orchestrator/orchestrator.d.ts +37 -34
  36. package/dest/orchestrator/orchestrator.d.ts.map +1 -1
  37. package/dest/orchestrator/orchestrator.js +788 -277
  38. package/dest/orchestrator/orchestrator_metrics.d.ts +1 -1
  39. package/dest/orchestrator/orchestrator_metrics.d.ts.map +1 -1
  40. package/dest/orchestrator/orchestrator_metrics.js +2 -6
  41. package/dest/orchestrator/tx-proving-state.d.ts +15 -12
  42. package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
  43. package/dest/orchestrator/tx-proving-state.js +27 -44
  44. package/dest/prover-client/factory.d.ts +3 -3
  45. package/dest/prover-client/factory.d.ts.map +1 -1
  46. package/dest/prover-client/index.d.ts +1 -1
  47. package/dest/prover-client/prover-client.d.ts +5 -5
  48. package/dest/prover-client/prover-client.d.ts.map +1 -1
  49. package/dest/prover-client/prover-client.js +6 -5
  50. package/dest/prover-client/server-epoch-prover.d.ts +16 -12
  51. package/dest/prover-client/server-epoch-prover.d.ts.map +1 -1
  52. package/dest/prover-client/server-epoch-prover.js +11 -11
  53. package/dest/proving_broker/broker_prover_facade.d.ts +25 -17
  54. package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
  55. package/dest/proving_broker/broker_prover_facade.js +59 -40
  56. package/dest/proving_broker/config.d.ts +19 -10
  57. package/dest/proving_broker/config.d.ts.map +1 -1
  58. package/dest/proving_broker/config.js +23 -6
  59. package/dest/proving_broker/factory.d.ts +2 -2
  60. package/dest/proving_broker/factory.d.ts.map +1 -1
  61. package/dest/proving_broker/factory.js +5 -1
  62. package/dest/proving_broker/fixtures.d.ts +3 -2
  63. package/dest/proving_broker/fixtures.d.ts.map +1 -1
  64. package/dest/proving_broker/fixtures.js +3 -2
  65. package/dest/proving_broker/index.d.ts +1 -1
  66. package/dest/proving_broker/proof_store/factory.d.ts +2 -2
  67. package/dest/proving_broker/proof_store/factory.js +1 -1
  68. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts +1 -1
  69. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts.map +1 -1
  70. package/dest/proving_broker/proof_store/gcs_proof_store.js +1 -0
  71. package/dest/proving_broker/proof_store/index.d.ts +2 -1
  72. package/dest/proving_broker/proof_store/index.d.ts.map +1 -1
  73. package/dest/proving_broker/proof_store/index.js +1 -0
  74. package/dest/proving_broker/proof_store/inline_proof_store.d.ts +1 -1
  75. package/dest/proving_broker/proof_store/inline_proof_store.d.ts.map +1 -1
  76. package/dest/proving_broker/proof_store/proof_store.d.ts +1 -1
  77. package/dest/proving_broker/proving_agent.d.ts +6 -11
  78. package/dest/proving_broker/proving_agent.d.ts.map +1 -1
  79. package/dest/proving_broker/proving_agent.js +84 -63
  80. package/dest/proving_broker/proving_broker.d.ts +13 -4
  81. package/dest/proving_broker/proving_broker.d.ts.map +1 -1
  82. package/dest/proving_broker/proving_broker.js +40 -33
  83. package/dest/proving_broker/proving_broker_database/memory.d.ts +3 -2
  84. package/dest/proving_broker/proving_broker_database/memory.d.ts.map +1 -1
  85. package/dest/proving_broker/proving_broker_database/memory.js +1 -1
  86. package/dest/proving_broker/proving_broker_database/persisted.d.ts +5 -3
  87. package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +1 -1
  88. package/dest/proving_broker/proving_broker_database/persisted.js +401 -11
  89. package/dest/proving_broker/proving_broker_database.d.ts +3 -2
  90. package/dest/proving_broker/proving_broker_database.d.ts.map +1 -1
  91. package/dest/proving_broker/proving_broker_instrumentation.d.ts +1 -1
  92. package/dest/proving_broker/proving_broker_instrumentation.d.ts.map +1 -1
  93. package/dest/proving_broker/proving_broker_instrumentation.js +11 -35
  94. package/dest/proving_broker/proving_job_controller.d.ts +9 -9
  95. package/dest/proving_broker/proving_job_controller.d.ts.map +1 -1
  96. package/dest/proving_broker/proving_job_controller.js +87 -60
  97. package/dest/proving_broker/rpc.d.ts +4 -6
  98. package/dest/proving_broker/rpc.d.ts.map +1 -1
  99. package/dest/proving_broker/rpc.js +1 -4
  100. package/dest/test/mock_proof_store.d.ts +9 -0
  101. package/dest/test/mock_proof_store.d.ts.map +1 -0
  102. package/dest/test/mock_proof_store.js +10 -0
  103. package/dest/test/mock_prover.d.ts +23 -17
  104. package/dest/test/mock_prover.d.ts.map +1 -1
  105. package/dest/test/mock_prover.js +38 -20
  106. package/package.json +34 -31
  107. package/src/block-factory/index.ts +1 -0
  108. package/src/block-factory/light.ts +136 -0
  109. package/src/config.ts +25 -9
  110. package/src/light/index.ts +1 -0
  111. package/src/light/lightweight_checkpoint_builder.ts +249 -0
  112. package/src/mocks/fixtures.ts +44 -39
  113. package/src/mocks/test_context.ts +218 -116
  114. package/src/orchestrator/block-building-helpers.ts +258 -334
  115. package/src/orchestrator/block-proving-state.ts +325 -231
  116. package/src/orchestrator/checkpoint-proving-state.ts +303 -0
  117. package/src/orchestrator/epoch-proving-state.ts +191 -113
  118. package/src/orchestrator/orchestrator.ts +587 -318
  119. package/src/orchestrator/orchestrator_metrics.ts +2 -6
  120. package/src/orchestrator/tx-proving-state.ts +48 -66
  121. package/src/prover-client/factory.ts +6 -2
  122. package/src/prover-client/prover-client.ts +20 -25
  123. package/src/prover-client/server-epoch-prover.ts +40 -22
  124. package/src/proving_broker/broker_prover_facade.ts +206 -128
  125. package/src/proving_broker/config.ts +25 -7
  126. package/src/proving_broker/factory.ts +2 -1
  127. package/src/proving_broker/fixtures.ts +8 -3
  128. package/src/proving_broker/proof_store/factory.ts +1 -1
  129. package/src/proving_broker/proof_store/gcs_proof_store.ts +5 -1
  130. package/src/proving_broker/proof_store/index.ts +1 -0
  131. package/src/proving_broker/proof_store/inline_proof_store.ts +1 -1
  132. package/src/proving_broker/proving_agent.ts +90 -64
  133. package/src/proving_broker/proving_broker.ts +57 -41
  134. package/src/proving_broker/proving_broker_database/memory.ts +3 -2
  135. package/src/proving_broker/proving_broker_database/persisted.ts +29 -13
  136. package/src/proving_broker/proving_broker_database.ts +2 -1
  137. package/src/proving_broker/proving_broker_instrumentation.ts +10 -35
  138. package/src/proving_broker/proving_job_controller.ts +92 -81
  139. package/src/proving_broker/rpc.ts +1 -6
  140. package/src/test/mock_proof_store.ts +14 -0
  141. package/src/test/mock_prover.ts +156 -64
  142. package/dest/bin/get-proof-inputs.d.ts +0 -2
  143. package/dest/bin/get-proof-inputs.d.ts.map +0 -1
  144. package/dest/bin/get-proof-inputs.js +0 -51
  145. package/dest/block_builder/index.d.ts +0 -6
  146. package/dest/block_builder/index.d.ts.map +0 -1
  147. package/dest/block_builder/light.d.ts +0 -33
  148. package/dest/block_builder/light.d.ts.map +0 -1
  149. package/dest/block_builder/light.js +0 -82
  150. package/dest/proving_broker/proving_agent_instrumentation.d.ts +0 -8
  151. package/dest/proving_broker/proving_agent_instrumentation.d.ts.map +0 -1
  152. package/dest/proving_broker/proving_agent_instrumentation.js +0 -16
  153. package/src/bin/get-proof-inputs.ts +0 -59
  154. package/src/block_builder/index.ts +0 -6
  155. package/src/block_builder/light.ts +0 -101
  156. package/src/proving_broker/proving_agent_instrumentation.ts +0 -21
  157. /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/random';
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,6 +90,36 @@ 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;
@@ -141,50 +128,74 @@ export class ProvingJobController {
141
128
  return await this.circuitProver.getAvmProof(inputs, signal, this.epochNumber);
142
129
  }
143
130
 
144
- case ProvingRequestType.PRIVATE_BASE_ROLLUP: {
145
- return await this.circuitProver.getPrivateBaseRollupProof(inputs, signal, this.epochNumber);
131
+ case ProvingRequestType.PUBLIC_CHONK_VERIFIER: {
132
+ return await this.circuitProver.getPublicChonkVerifierProof(inputs, signal, this.epochNumber);
133
+ }
134
+
135
+ case ProvingRequestType.PRIVATE_TX_BASE_ROLLUP: {
136
+ return await this.circuitProver.getPrivateTxBaseRollupProof(inputs, signal, this.epochNumber);
146
137
  }
147
138
 
148
- case ProvingRequestType.PUBLIC_BASE_ROLLUP: {
149
- return await this.circuitProver.getPublicBaseRollupProof(inputs, signal, this.epochNumber);
139
+ case ProvingRequestType.PUBLIC_TX_BASE_ROLLUP: {
140
+ return await this.circuitProver.getPublicTxBaseRollupProof(inputs, signal, this.epochNumber);
150
141
  }
151
142
 
152
- case ProvingRequestType.MERGE_ROLLUP: {
153
- return await this.circuitProver.getMergeRollupProof(inputs, signal, this.epochNumber);
143
+ case ProvingRequestType.TX_MERGE_ROLLUP: {
144
+ return await this.circuitProver.getTxMergeRollupProof(inputs, signal, this.epochNumber);
154
145
  }
155
146
 
156
- case ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP: {
157
- return await this.circuitProver.getEmptyBlockRootRollupProof(inputs, signal, this.epochNumber);
147
+ case ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP: {
148
+ return await this.circuitProver.getBlockRootFirstRollupProof(inputs, signal, this.epochNumber);
149
+ }
150
+
151
+ case ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP: {
152
+ return await this.circuitProver.getBlockRootSingleTxFirstRollupProof(inputs, signal, this.epochNumber);
153
+ }
154
+
155
+ case ProvingRequestType.BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP: {
156
+ return await this.circuitProver.getBlockRootEmptyTxFirstRollupProof(inputs, signal, this.epochNumber);
158
157
  }
159
158
 
160
159
  case ProvingRequestType.BLOCK_ROOT_ROLLUP: {
161
160
  return await this.circuitProver.getBlockRootRollupProof(inputs, signal, this.epochNumber);
162
161
  }
163
162
 
164
- case ProvingRequestType.SINGLE_TX_BLOCK_ROOT_ROLLUP: {
165
- return await this.circuitProver.getSingleTxBlockRootRollupProof(inputs, signal, this.epochNumber);
163
+ case ProvingRequestType.BLOCK_ROOT_SINGLE_TX_ROLLUP: {
164
+ return await this.circuitProver.getBlockRootSingleTxRollupProof(inputs, signal, this.epochNumber);
166
165
  }
167
166
 
168
167
  case ProvingRequestType.BLOCK_MERGE_ROLLUP: {
169
168
  return await this.circuitProver.getBlockMergeRollupProof(inputs, signal, this.epochNumber);
170
169
  }
171
170
 
171
+ case ProvingRequestType.CHECKPOINT_ROOT_ROLLUP: {
172
+ return await this.circuitProver.getCheckpointRootRollupProof(inputs, signal, this.epochNumber);
173
+ }
174
+
175
+ case ProvingRequestType.CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP: {
176
+ return await this.circuitProver.getCheckpointRootSingleBlockRollupProof(inputs, signal, this.epochNumber);
177
+ }
178
+
179
+ case ProvingRequestType.CHECKPOINT_PADDING_ROLLUP: {
180
+ return await this.circuitProver.getCheckpointPaddingRollupProof(inputs, signal, this.epochNumber);
181
+ }
182
+
183
+ case ProvingRequestType.CHECKPOINT_MERGE_ROLLUP: {
184
+ return await this.circuitProver.getCheckpointMergeRollupProof(inputs, signal, this.epochNumber);
185
+ }
186
+
172
187
  case ProvingRequestType.ROOT_ROLLUP: {
173
188
  return await this.circuitProver.getRootRollupProof(inputs, signal, this.epochNumber);
174
189
  }
175
190
 
176
- case ProvingRequestType.BASE_PARITY: {
191
+ case ProvingRequestType.PARITY_BASE: {
177
192
  return await this.circuitProver.getBaseParityProof(inputs, signal, this.epochNumber);
178
193
  }
179
194
 
180
- case ProvingRequestType.ROOT_PARITY: {
195
+ case ProvingRequestType.PARITY_ROOT: {
181
196
  return await this.circuitProver.getRootParityProof(inputs, signal, this.epochNumber);
182
197
  }
183
198
 
184
- case ProvingRequestType.TUBE_PROOF: {
185
- return await this.circuitProver.getTubeProof(inputs, signal, this.epochNumber);
186
- }
187
-
188
199
  default: {
189
200
  const _exhaustive: never = type;
190
201
  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,44 +1,51 @@
1
1
  import {
2
- AVM_PROOF_LENGTH_IN_FIELDS,
3
- AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS,
2
+ AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED,
4
3
  NESTED_RECURSIVE_PROOF_LENGTH,
5
4
  NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
6
5
  RECURSIVE_PROOF_LENGTH,
7
- TUBE_PROOF_LENGTH,
8
6
  } from '@aztec/constants';
9
7
  import { times } from '@aztec/foundation/collection';
10
8
  import type { AvmCircuitInputs } from '@aztec/stdlib/avm';
11
9
  import {
12
- type ProofAndVerificationKey,
13
10
  type ProvingJob,
14
11
  type ProvingJobId,
15
12
  type ProvingJobProducer,
16
13
  type ProvingJobStatus,
17
14
  type PublicInputsAndRecursiveProof,
18
15
  type ServerCircuitProver,
19
- makeProofAndVerificationKey,
20
16
  makePublicInputsAndRecursiveProof,
21
17
  } from '@aztec/stdlib/interfaces/server';
22
- import type { BaseParityInputs, RootParityInputs } from '@aztec/stdlib/parity';
18
+ import type { ParityBasePrivateInputs, ParityRootPrivateInputs } from '@aztec/stdlib/parity';
23
19
  import { makeEmptyRecursiveProof, makeRecursiveProof } from '@aztec/stdlib/proofs';
24
20
  import type {
25
- BaseOrMergeRollupPublicInputs,
26
- BlockMergeRollupInputs,
27
- BlockRootOrBlockMergePublicInputs,
28
- BlockRootRollupInputs,
29
- EmptyBlockRootRollupInputs,
30
- MergeRollupInputs,
31
- PrivateBaseRollupInputs,
32
- PublicBaseRollupInputs,
33
- RootRollupInputs,
21
+ BlockMergeRollupPrivateInputs,
22
+ BlockRollupPublicInputs,
23
+ BlockRootEmptyTxFirstRollupPrivateInputs,
24
+ BlockRootFirstRollupPrivateInputs,
25
+ BlockRootRollupPrivateInputs,
26
+ BlockRootSingleTxFirstRollupPrivateInputs,
27
+ BlockRootSingleTxRollupPrivateInputs,
28
+ CheckpointMergeRollupPrivateInputs,
29
+ CheckpointPaddingRollupPrivateInputs,
30
+ CheckpointRollupPublicInputs,
31
+ CheckpointRootRollupPrivateInputs,
32
+ CheckpointRootSingleBlockRollupPrivateInputs,
33
+ PrivateTxBaseRollupPrivateInputs,
34
+ PublicChonkVerifierPrivateInputs,
35
+ PublicChonkVerifierPublicInputs,
36
+ PublicTxBaseRollupPrivateInputs,
37
+ RootRollupPrivateInputs,
34
38
  RootRollupPublicInputs,
35
- SingleTxBlockRootRollupInputs,
39
+ TxMergeRollupPrivateInputs,
40
+ TxRollupPublicInputs,
36
41
  } from '@aztec/stdlib/rollup';
37
42
  import {
38
- makeBaseOrMergeRollupPublicInputs,
39
- makeBlockRootOrBlockMergeRollupPublicInputs,
43
+ makeBlockRollupPublicInputs,
44
+ makeCheckpointRollupPublicInputs,
40
45
  makeParityPublicInputs,
46
+ makePublicChonkVerifierPublicInputs,
41
47
  makeRootRollupPublicInputs,
48
+ makeTxRollupPublicInputs,
42
49
  } from '@aztec/stdlib/testing';
43
50
  import { VerificationKeyData } from '@aztec/stdlib/vks';
44
51
 
@@ -97,15 +104,10 @@ export class MockProver implements ServerCircuitProver {
97
104
  constructor() {}
98
105
 
99
106
  getAvmProof(_inputs: AvmCircuitInputs, _signal?: AbortSignal, _epochNumber?: number) {
100
- return Promise.resolve(
101
- makeProofAndVerificationKey(
102
- makeEmptyRecursiveProof(AVM_PROOF_LENGTH_IN_FIELDS),
103
- VerificationKeyData.makeFake(AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS),
104
- ),
105
- );
107
+ return Promise.resolve(makeEmptyRecursiveProof(AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED));
106
108
  }
107
109
 
108
- getBaseParityProof(_inputs: BaseParityInputs, _signal?: AbortSignal, _epochNumber?: number) {
110
+ getBaseParityProof(_inputs: ParityBasePrivateInputs, _signal?: AbortSignal, _epochNumber?: number) {
109
111
  return Promise.resolve(
110
112
  makePublicInputsAndRecursiveProof(
111
113
  makeParityPublicInputs(),
@@ -115,7 +117,7 @@ export class MockProver implements ServerCircuitProver {
115
117
  );
116
118
  }
117
119
 
118
- getRootParityProof(_inputs: RootParityInputs, _signal?: AbortSignal, _epochNumber?: number) {
120
+ getRootParityProof(_inputs: ParityRootPrivateInputs, _signal?: AbortSignal, _epochNumber?: number) {
119
121
  return Promise.resolve(
120
122
  makePublicInputsAndRecursiveProof(
121
123
  makeParityPublicInputs(),
@@ -125,114 +127,210 @@ export class MockProver implements ServerCircuitProver {
125
127
  );
126
128
  }
127
129
 
128
- getPrivateBaseRollupProof(
129
- _baseRollupInput: PrivateBaseRollupInputs,
130
+ getPublicChonkVerifierProof(
131
+ _inputs: PublicChonkVerifierPrivateInputs,
130
132
  _signal?: AbortSignal,
131
133
  _epochNumber?: number,
132
134
  ): Promise<
133
- PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
135
+ PublicInputsAndRecursiveProof<PublicChonkVerifierPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
134
136
  > {
135
137
  return Promise.resolve(
136
138
  makePublicInputsAndRecursiveProof(
137
- makeBaseOrMergeRollupPublicInputs(),
139
+ makePublicChonkVerifierPublicInputs(),
138
140
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
139
141
  VerificationKeyData.makeFakeRollupHonk(),
140
142
  ),
141
143
  );
142
144
  }
143
145
 
144
- getPublicBaseRollupProof(
145
- _inputs: PublicBaseRollupInputs,
146
+ getPrivateTxBaseRollupProof(
147
+ _baseRollupInput: PrivateTxBaseRollupPrivateInputs,
146
148
  _signal?: AbortSignal,
147
149
  _epochNumber?: number,
148
- ): Promise<
149
- PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
150
- > {
150
+ ): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
151
151
  return Promise.resolve(
152
152
  makePublicInputsAndRecursiveProof(
153
- makeBaseOrMergeRollupPublicInputs(),
153
+ makeTxRollupPublicInputs(),
154
154
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
155
155
  VerificationKeyData.makeFakeRollupHonk(),
156
156
  ),
157
157
  );
158
158
  }
159
159
 
160
- getMergeRollupProof(
161
- _input: MergeRollupInputs,
160
+ getPublicTxBaseRollupProof(
161
+ _inputs: PublicTxBaseRollupPrivateInputs,
162
162
  _signal?: AbortSignal,
163
163
  _epochNumber?: number,
164
- ): Promise<
165
- PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
166
- > {
164
+ ): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
165
+ return Promise.resolve(
166
+ makePublicInputsAndRecursiveProof(
167
+ makeTxRollupPublicInputs(),
168
+ makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
169
+ VerificationKeyData.makeFakeRollupHonk(),
170
+ ),
171
+ );
172
+ }
173
+
174
+ getTxMergeRollupProof(
175
+ _input: TxMergeRollupPrivateInputs,
176
+ _signal?: AbortSignal,
177
+ _epochNumber?: number,
178
+ ): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
179
+ return Promise.resolve(
180
+ makePublicInputsAndRecursiveProof(
181
+ makeTxRollupPublicInputs(),
182
+ makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
183
+ VerificationKeyData.makeFakeRollupHonk(),
184
+ ),
185
+ );
186
+ }
187
+
188
+ getBlockRootFirstRollupProof(
189
+ _input: BlockRootFirstRollupPrivateInputs,
190
+ _signal?: AbortSignal,
191
+ _epochNumber?: number,
192
+ ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
167
193
  return Promise.resolve(
168
194
  makePublicInputsAndRecursiveProof(
169
- makeBaseOrMergeRollupPublicInputs(),
195
+ makeBlockRollupPublicInputs(),
170
196
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
171
197
  VerificationKeyData.makeFakeRollupHonk(),
172
198
  ),
173
199
  );
174
200
  }
175
201
 
176
- getBlockMergeRollupProof(_input: BlockMergeRollupInputs, _signal?: AbortSignal, _epochNumber?: number) {
202
+ getBlockRootSingleTxFirstRollupProof(
203
+ _input: BlockRootSingleTxFirstRollupPrivateInputs,
204
+ _signal?: AbortSignal,
205
+ _epochNumber?: number,
206
+ ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
207
+ return Promise.resolve(
208
+ makePublicInputsAndRecursiveProof(
209
+ makeBlockRollupPublicInputs(),
210
+ makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
211
+ VerificationKeyData.makeFakeHonk(),
212
+ ),
213
+ );
214
+ }
215
+
216
+ getBlockRootEmptyTxFirstRollupProof(
217
+ _input: BlockRootEmptyTxFirstRollupPrivateInputs,
218
+ _signal?: AbortSignal,
219
+ _epochNumber?: number,
220
+ ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
177
221
  return Promise.resolve(
178
222
  makePublicInputsAndRecursiveProof(
179
- makeBlockRootOrBlockMergeRollupPublicInputs(),
223
+ makeBlockRollupPublicInputs(),
180
224
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
181
225
  VerificationKeyData.makeFakeRollupHonk(),
182
226
  ),
183
227
  );
184
228
  }
185
229
 
186
- getEmptyBlockRootRollupProof(
187
- _input: EmptyBlockRootRollupInputs,
230
+ getBlockRootRollupProof(
231
+ _input: BlockRootRollupPrivateInputs,
232
+ _signal?: AbortSignal,
233
+ _epochNumber?: number,
234
+ ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
235
+ return Promise.resolve(
236
+ makePublicInputsAndRecursiveProof(
237
+ makeBlockRollupPublicInputs(),
238
+ makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
239
+ VerificationKeyData.makeFakeRollupHonk(),
240
+ ),
241
+ );
242
+ }
243
+
244
+ getBlockRootSingleTxRollupProof(
245
+ _input: BlockRootSingleTxRollupPrivateInputs,
246
+ _signal?: AbortSignal,
247
+ _epochNumber?: number,
248
+ ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
249
+ return Promise.resolve(
250
+ makePublicInputsAndRecursiveProof(
251
+ makeBlockRollupPublicInputs(),
252
+ makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
253
+ VerificationKeyData.makeFakeHonk(),
254
+ ),
255
+ );
256
+ }
257
+
258
+ getBlockMergeRollupProof(_input: BlockMergeRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number) {
259
+ return Promise.resolve(
260
+ makePublicInputsAndRecursiveProof(
261
+ makeBlockRollupPublicInputs(),
262
+ makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
263
+ VerificationKeyData.makeFakeRollupHonk(),
264
+ ),
265
+ );
266
+ }
267
+
268
+ getCheckpointRootRollupProof(
269
+ _input: CheckpointRootRollupPrivateInputs,
188
270
  _signal?: AbortSignal,
189
271
  _epochNumber?: number,
190
272
  ): Promise<
191
- PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
273
+ PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
192
274
  > {
193
275
  return Promise.resolve(
194
276
  makePublicInputsAndRecursiveProof(
195
- makeBlockRootOrBlockMergeRollupPublicInputs(),
277
+ makeCheckpointRollupPublicInputs(),
196
278
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
197
279
  VerificationKeyData.makeFakeRollupHonk(),
198
280
  ),
199
281
  );
200
282
  }
201
283
 
202
- getBlockRootRollupProof(
203
- _input: BlockRootRollupInputs,
284
+ getCheckpointRootSingleBlockRollupProof(
285
+ _input: CheckpointRootSingleBlockRollupPrivateInputs,
204
286
  _signal?: AbortSignal,
205
287
  _epochNumber?: number,
206
288
  ): Promise<
207
- PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
289
+ PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
208
290
  > {
209
291
  return Promise.resolve(
210
292
  makePublicInputsAndRecursiveProof(
211
- makeBlockRootOrBlockMergeRollupPublicInputs(),
293
+ makeCheckpointRollupPublicInputs(),
212
294
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
213
295
  VerificationKeyData.makeFakeRollupHonk(),
214
296
  ),
215
297
  );
216
298
  }
217
299
 
218
- getSingleTxBlockRootRollupProof(
219
- _input: SingleTxBlockRootRollupInputs,
300
+ getCheckpointMergeRollupProof(
301
+ _input: CheckpointMergeRollupPrivateInputs,
220
302
  _signal?: AbortSignal,
221
303
  _epochNumber?: number,
222
304
  ): Promise<
223
- PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
305
+ PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
224
306
  > {
225
307
  return Promise.resolve(
226
308
  makePublicInputsAndRecursiveProof(
227
- makeBlockRootOrBlockMergeRollupPublicInputs(),
309
+ makeCheckpointRollupPublicInputs(),
228
310
  makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
229
- VerificationKeyData.makeFakeHonk(),
311
+ VerificationKeyData.makeFakeRollupHonk(),
312
+ ),
313
+ );
314
+ }
315
+
316
+ getCheckpointPaddingRollupProof(
317
+ _input: CheckpointPaddingRollupPrivateInputs,
318
+ _signal?: AbortSignal,
319
+ _epochNumber?: number,
320
+ ): Promise<
321
+ PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
322
+ > {
323
+ return Promise.resolve(
324
+ makePublicInputsAndRecursiveProof(
325
+ makeCheckpointRollupPublicInputs(),
326
+ makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
327
+ VerificationKeyData.makeFakeRollupHonk(),
230
328
  ),
231
329
  );
232
330
  }
233
331
 
234
332
  getRootRollupProof(
235
- _input: RootRollupInputs,
333
+ _input: RootRollupPrivateInputs,
236
334
  _signal?: AbortSignal,
237
335
  _epochNumber?: number,
238
336
  ): Promise<PublicInputsAndRecursiveProof<RootRollupPublicInputs>> {
@@ -244,10 +342,4 @@ export class MockProver implements ServerCircuitProver {
244
342
  ),
245
343
  );
246
344
  }
247
-
248
- getTubeProof(): Promise<ProofAndVerificationKey<typeof TUBE_PROOF_LENGTH>> {
249
- return Promise.resolve(
250
- makeProofAndVerificationKey(makeRecursiveProof(TUBE_PROOF_LENGTH), VerificationKeyData.makeFakeRollupHonk()),
251
- );
252
- }
253
345
  }
@@ -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":""}