@aztec/prover-client 0.0.0-test.1 → 0.0.1-commit.03f7ef2

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