@aztec/prover-client 0.65.1 → 0.65.2

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 (98) hide show
  1. package/dest/config.d.ts +4 -10
  2. package/dest/config.d.ts.map +1 -1
  3. package/dest/config.js +8 -7
  4. package/dest/index.d.ts +1 -0
  5. package/dest/index.d.ts.map +1 -1
  6. package/dest/index.js +2 -1
  7. package/dest/mocks/test_context.js +3 -2
  8. package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
  9. package/dest/orchestrator/block-building-helpers.js +10 -18
  10. package/dest/orchestrator/block-proving-state.js +2 -2
  11. package/dest/prover-agent/memory-proving-queue.d.ts +10 -8
  12. package/dest/prover-agent/memory-proving-queue.d.ts.map +1 -1
  13. package/dest/prover-agent/memory-proving-queue.js +35 -35
  14. package/dest/prover-agent/prover-agent.d.ts +1 -0
  15. package/dest/prover-agent/prover-agent.d.ts.map +1 -1
  16. package/dest/prover-agent/prover-agent.js +12 -9
  17. package/dest/proving_broker/caching_broker_facade.d.ts +30 -0
  18. package/dest/proving_broker/caching_broker_facade.d.ts.map +1 -0
  19. package/dest/proving_broker/caching_broker_facade.js +150 -0
  20. package/dest/proving_broker/factory.d.ts +4 -0
  21. package/dest/proving_broker/factory.d.ts.map +1 -0
  22. package/dest/proving_broker/factory.js +17 -0
  23. package/dest/proving_broker/index.d.ts +9 -0
  24. package/dest/proving_broker/index.d.ts.map +1 -0
  25. package/dest/proving_broker/index.js +9 -0
  26. package/dest/proving_broker/proof_store.d.ts +46 -0
  27. package/dest/proving_broker/proof_store.d.ts.map +1 -0
  28. package/dest/proving_broker/proof_store.js +37 -0
  29. package/dest/proving_broker/prover_cache/memory.d.ts +9 -0
  30. package/dest/proving_broker/prover_cache/memory.d.ts.map +1 -0
  31. package/dest/proving_broker/prover_cache/memory.js +16 -0
  32. package/dest/proving_broker/proving_agent.d.ts +11 -6
  33. package/dest/proving_broker/proving_agent.d.ts.map +1 -1
  34. package/dest/proving_broker/proving_agent.js +48 -20
  35. package/dest/proving_broker/proving_broker.d.ts +17 -16
  36. package/dest/proving_broker/proving_broker.d.ts.map +1 -1
  37. package/dest/proving_broker/proving_broker.js +44 -23
  38. package/dest/proving_broker/proving_broker_database/memory.d.ts +14 -0
  39. package/dest/proving_broker/proving_broker_database/memory.d.ts.map +1 -0
  40. package/dest/proving_broker/proving_broker_database/memory.js +35 -0
  41. package/dest/proving_broker/proving_broker_database/persisted.d.ts +15 -0
  42. package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +1 -0
  43. package/dest/proving_broker/proving_broker_database/persisted.js +35 -0
  44. package/dest/proving_broker/{proving_job_database.d.ts → proving_broker_database.d.ts} +8 -8
  45. package/dest/proving_broker/proving_broker_database.d.ts.map +1 -0
  46. package/dest/proving_broker/proving_broker_database.js +2 -0
  47. package/dest/proving_broker/proving_job_controller.d.ts +13 -8
  48. package/dest/proving_broker/proving_job_controller.d.ts.map +1 -1
  49. package/dest/proving_broker/proving_job_controller.js +43 -43
  50. package/dest/proving_broker/rpc.d.ts +11 -0
  51. package/dest/proving_broker/rpc.d.ts.map +1 -0
  52. package/dest/proving_broker/rpc.js +44 -0
  53. package/dest/test/mock_prover.d.ts +15 -1
  54. package/dest/test/mock_prover.d.ts.map +1 -1
  55. package/dest/test/mock_prover.js +36 -1
  56. package/dest/tx-prover/factory.d.ts +2 -1
  57. package/dest/tx-prover/factory.d.ts.map +1 -1
  58. package/dest/tx-prover/factory.js +3 -3
  59. package/dest/tx-prover/tx-prover.d.ts +13 -7
  60. package/dest/tx-prover/tx-prover.d.ts.map +1 -1
  61. package/dest/tx-prover/tx-prover.js +52 -35
  62. package/package.json +14 -12
  63. package/src/config.ts +17 -16
  64. package/src/index.ts +1 -0
  65. package/src/mocks/test_context.ts +2 -2
  66. package/src/orchestrator/block-building-helpers.ts +22 -33
  67. package/src/orchestrator/block-proving-state.ts +1 -1
  68. package/src/prover-agent/memory-proving-queue.ts +43 -44
  69. package/src/prover-agent/prover-agent.ts +16 -20
  70. package/src/proving_broker/caching_broker_facade.ts +312 -0
  71. package/src/proving_broker/factory.ts +21 -0
  72. package/src/proving_broker/index.ts +8 -0
  73. package/src/proving_broker/proof_store.ts +106 -0
  74. package/src/proving_broker/prover_cache/memory.ts +20 -0
  75. package/src/proving_broker/proving_agent.ts +75 -20
  76. package/src/proving_broker/proving_broker.ts +98 -65
  77. package/src/proving_broker/proving_broker_database/memory.ts +43 -0
  78. package/src/proving_broker/proving_broker_database/persisted.ts +45 -0
  79. package/src/proving_broker/{proving_job_database.ts → proving_broker_database.ts} +7 -12
  80. package/src/proving_broker/proving_job_controller.ts +54 -46
  81. package/src/proving_broker/rpc.ts +64 -0
  82. package/src/test/mock_prover.ts +51 -0
  83. package/src/tx-prover/factory.ts +7 -2
  84. package/src/tx-prover/tx-prover.ts +78 -46
  85. package/dest/proving_broker/proving_broker_interface.d.ts +0 -61
  86. package/dest/proving_broker/proving_broker_interface.d.ts.map +0 -1
  87. package/dest/proving_broker/proving_broker_interface.js +0 -2
  88. package/dest/proving_broker/proving_job_database/memory.d.ts +0 -14
  89. package/dest/proving_broker/proving_job_database/memory.d.ts.map +0 -1
  90. package/dest/proving_broker/proving_job_database/memory.js +0 -35
  91. package/dest/proving_broker/proving_job_database/persisted.d.ts +0 -15
  92. package/dest/proving_broker/proving_job_database/persisted.d.ts.map +0 -1
  93. package/dest/proving_broker/proving_job_database/persisted.js +0 -35
  94. package/dest/proving_broker/proving_job_database.d.ts.map +0 -1
  95. package/dest/proving_broker/proving_job_database.js +0 -2
  96. package/src/proving_broker/proving_broker_interface.ts +0 -74
  97. package/src/proving_broker/proving_job_database/memory.ts +0 -43
  98. package/src/proving_broker/proving_job_database/persisted.ts +0 -45
@@ -4,7 +4,7 @@ import { AbortError, TimeoutError } from '@aztec/foundation/error';
4
4
  import { createDebugLogger } from '@aztec/foundation/log';
5
5
  import { RunningPromise, promiseWithResolvers } from '@aztec/foundation/promise';
6
6
  import { PriorityMemoryQueue } from '@aztec/foundation/queue';
7
- import { serializeToBuffer } from '@aztec/foundation/serialize';
7
+ import { InlineProofStore } from '../proving_broker/proof_store.js';
8
8
  import { ProvingQueueMetrics } from './queue_metrics.js';
9
9
  const MAX_RETRIES = 3;
10
10
  const defaultIdGenerator = () => randomBytes(4).toString('hex');
@@ -18,10 +18,11 @@ export class MemoryProvingQueue {
18
18
  /** Timeout the job if an agent doesn't report back in this time */
19
19
  jobTimeoutMs = 60 * 1000,
20
20
  /** How often to check for timed out jobs */
21
- pollingIntervalMs = 1000, generateId = defaultIdGenerator, timeSource = defaultTimeSource) {
21
+ pollingIntervalMs = 1000, generateId = defaultIdGenerator, timeSource = defaultTimeSource, proofStore = new InlineProofStore()) {
22
22
  this.jobTimeoutMs = jobTimeoutMs;
23
23
  this.generateId = generateId;
24
24
  this.timeSource = timeSource;
25
+ this.proofStore = proofStore;
25
26
  this.log = createDebugLogger('aztec:prover-client:prover-pool:queue');
26
27
  this.queue = new PriorityMemoryQueue((a, b) => (a.epochNumber ?? 0) - (b.epochNumber ?? 0));
27
28
  this.jobsInProgress = new Map();
@@ -34,7 +35,7 @@ export class MemoryProvingQueue {
34
35
  continue;
35
36
  }
36
37
  if (job.heartbeat + this.jobTimeoutMs < now) {
37
- this.log.warn(`Job ${job.id} type=${ProvingRequestType[job.request.type]} has timed out`);
38
+ this.log.warn(`Job ${job.id} type=${ProvingRequestType[job.type]} has timed out`);
38
39
  this.jobsInProgress.delete(job.id);
39
40
  job.heartbeat = 0;
40
41
  this.queue.put(job);
@@ -76,7 +77,8 @@ export class MemoryProvingQueue {
76
77
  this.jobsInProgress.set(job.id, job);
77
78
  return {
78
79
  id: job.id,
79
- request: job.request,
80
+ type: job.type,
81
+ inputsUri: job.inputsUri,
80
82
  };
81
83
  }
82
84
  catch (err) {
@@ -115,16 +117,14 @@ export class MemoryProvingQueue {
115
117
  return Promise.resolve();
116
118
  }
117
119
  // every job should be retried with the exception of the public VM since its in development and can fail
118
- if (job.attempts < MAX_RETRIES && job.request.type !== ProvingRequestType.PUBLIC_VM) {
120
+ if (job.attempts < MAX_RETRIES && job.type !== ProvingRequestType.PUBLIC_VM) {
119
121
  job.attempts++;
120
- this.log.warn(`Job id=${job.id} type=${ProvingRequestType[job.request.type]} failed with error: ${reason}. Retry ${job.attempts}/${MAX_RETRIES}`);
122
+ this.log.warn(`Job id=${job.id} type=${ProvingRequestType[job.type]} failed with error: ${reason}. Retry ${job.attempts}/${MAX_RETRIES}`);
121
123
  this.queue.put(job);
122
124
  }
123
125
  else {
124
- const logFn = job.request.type === ProvingRequestType.PUBLIC_VM && !process.env.AVM_PROVING_STRICT
125
- ? this.log.warn
126
- : this.log.error;
127
- logFn(`Job id=${job.id} type=${ProvingRequestType[job.request.type]} failed with error: ${reason}`);
126
+ const logFn = job.type === ProvingRequestType.PUBLIC_VM && !process.env.AVM_PROVING_STRICT ? this.log.warn : this.log.error;
127
+ logFn(`Job id=${job.id} type=${ProvingRequestType[job.type]} failed with error: ${reason}`);
128
128
  job.reject(new Error(reason));
129
129
  }
130
130
  return Promise.resolve();
@@ -142,14 +142,17 @@ export class MemoryProvingQueue {
142
142
  isJobRunning(jobId) {
143
143
  return this.jobsInProgress.has(jobId);
144
144
  }
145
- enqueue(request, signal, epochNumber) {
145
+ async enqueue(type, inputs, signal, epochNumber) {
146
146
  if (!this.runningPromise.isRunning()) {
147
147
  return Promise.reject(new Error('Proving queue is not running.'));
148
148
  }
149
149
  const { promise, resolve, reject } = promiseWithResolvers();
150
+ const id = this.generateId();
151
+ const inputsUri = await this.proofStore.saveProofInput(id, type, inputs);
150
152
  const item = {
151
- id: this.generateId(),
152
- request,
153
+ id,
154
+ type,
155
+ inputsUri,
153
156
  signal,
154
157
  promise,
155
158
  resolve,
@@ -161,77 +164,74 @@ export class MemoryProvingQueue {
161
164
  if (signal) {
162
165
  signal.addEventListener('abort', () => reject(new AbortError('Operation has been aborted')));
163
166
  }
164
- this.log.debug(`Adding id=${item.id} type=${ProvingRequestType[request.type]} proving job to queue depth=${this.queue.length()}`);
165
- // TODO (alexg) remove the `any`
167
+ this.log.debug(`Adding id=${item.id} type=${ProvingRequestType[type]} proving job to queue depth=${this.queue.length()}`);
166
168
  if (!this.queue.put(item)) {
167
169
  throw new Error();
168
170
  }
169
- const byteSize = serializeToBuffer(item.request.inputs).length;
170
- this.metrics.recordNewJob(item.request.type, byteSize);
171
171
  return promise.then(({ result }) => result);
172
172
  }
173
173
  getEmptyPrivateKernelProof(inputs, signal, epochNumber) {
174
- return this.enqueue({ type: ProvingRequestType.PRIVATE_KERNEL_EMPTY, inputs }, signal, epochNumber);
174
+ return this.enqueue(ProvingRequestType.PRIVATE_KERNEL_EMPTY, inputs, signal, epochNumber);
175
175
  }
176
176
  getTubeProof(inputs, signal, epochNumber) {
177
- return this.enqueue({ type: ProvingRequestType.TUBE_PROOF, inputs }, signal, epochNumber);
177
+ return this.enqueue(ProvingRequestType.TUBE_PROOF, inputs, signal, epochNumber);
178
178
  }
179
179
  /**
180
180
  * Creates a proof for the given input.
181
181
  * @param input - Input to the circuit.
182
182
  */
183
183
  getBaseParityProof(inputs, signal, epochNumber) {
184
- return this.enqueue({ type: ProvingRequestType.BASE_PARITY, inputs }, signal, epochNumber);
184
+ return this.enqueue(ProvingRequestType.BASE_PARITY, inputs, signal, epochNumber);
185
185
  }
186
186
  /**
187
187
  * Creates a proof for the given input.
188
188
  * @param input - Input to the circuit.
189
189
  */
190
190
  getRootParityProof(inputs, signal, epochNumber) {
191
- return this.enqueue({ type: ProvingRequestType.ROOT_PARITY, inputs }, signal, epochNumber);
191
+ return this.enqueue(ProvingRequestType.ROOT_PARITY, inputs, signal, epochNumber);
192
192
  }
193
193
  getPrivateBaseRollupProof(inputs, signal, epochNumber) {
194
- return this.enqueue({ type: ProvingRequestType.PRIVATE_BASE_ROLLUP, inputs }, signal, epochNumber);
194
+ return this.enqueue(ProvingRequestType.PRIVATE_BASE_ROLLUP, inputs, signal, epochNumber);
195
195
  }
196
196
  getPublicBaseRollupProof(inputs, signal, epochNumber) {
197
- return this.enqueue({ type: ProvingRequestType.PUBLIC_BASE_ROLLUP, inputs }, signal, epochNumber);
197
+ return this.enqueue(ProvingRequestType.PUBLIC_BASE_ROLLUP, inputs, signal, epochNumber);
198
198
  }
199
199
  /**
200
200
  * Creates a proof for the given input.
201
201
  * @param input - Input to the circuit.
202
202
  */
203
- getMergeRollupProof(input, signal, epochNumber) {
204
- return this.enqueue({ type: ProvingRequestType.MERGE_ROLLUP, inputs: input }, signal, epochNumber);
203
+ getMergeRollupProof(inputs, signal, epochNumber) {
204
+ return this.enqueue(ProvingRequestType.MERGE_ROLLUP, inputs, signal, epochNumber);
205
205
  }
206
206
  /**
207
207
  * Creates a proof for the given input.
208
208
  * @param input - Input to the circuit.
209
209
  */
210
- getBlockRootRollupProof(input, signal, epochNumber) {
211
- return this.enqueue({ type: ProvingRequestType.BLOCK_ROOT_ROLLUP, inputs: input }, signal, epochNumber);
210
+ getBlockRootRollupProof(inputs, signal, epochNumber) {
211
+ return this.enqueue(ProvingRequestType.BLOCK_ROOT_ROLLUP, inputs, signal, epochNumber);
212
212
  }
213
- getEmptyBlockRootRollupProof(input, signal, epochNumber) {
214
- return this.enqueue({ type: ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP, inputs: input }, signal, epochNumber);
213
+ getEmptyBlockRootRollupProof(inputs, signal, epochNumber) {
214
+ return this.enqueue(ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP, inputs, signal, epochNumber);
215
215
  }
216
216
  /**
217
217
  * Creates a proof for the given input.
218
218
  * @param input - Input to the circuit.
219
219
  */
220
- getBlockMergeRollupProof(input, signal, epochNumber) {
221
- return this.enqueue({ type: ProvingRequestType.BLOCK_MERGE_ROLLUP, inputs: input }, signal, epochNumber);
220
+ getBlockMergeRollupProof(inputs, signal, epochNumber) {
221
+ return this.enqueue(ProvingRequestType.BLOCK_MERGE_ROLLUP, inputs, signal, epochNumber);
222
222
  }
223
223
  /**
224
224
  * Creates a proof for the given input.
225
225
  * @param input - Input to the circuit.
226
226
  */
227
- getRootRollupProof(input, signal, epochNumber) {
228
- return this.enqueue({ type: ProvingRequestType.ROOT_ROLLUP, inputs: input }, signal, epochNumber);
227
+ getRootRollupProof(inputs, signal, epochNumber) {
228
+ return this.enqueue(ProvingRequestType.ROOT_ROLLUP, inputs, signal, epochNumber);
229
229
  }
230
230
  /**
231
231
  * Creates an AVM proof.
232
232
  */
233
233
  getAvmProof(inputs, signal, epochNumber) {
234
- return this.enqueue({ type: ProvingRequestType.PUBLIC_VM, inputs }, signal, epochNumber);
234
+ return this.enqueue(ProvingRequestType.PUBLIC_VM, inputs, signal, epochNumber);
235
235
  }
236
236
  /**
237
237
  * Verifies a circuit proof
@@ -240,4 +240,4 @@ export class MemoryProvingQueue {
240
240
  return Promise.reject('not implemented');
241
241
  }
242
242
  }
243
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LXByb3ZpbmctcXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmVyLWFnZW50L21lbW9yeS1wcm92aW5nLXF1ZXVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFNTCxrQkFBa0IsR0FHbkIsTUFBTSxzQkFBc0IsQ0FBQztBQXVCOUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUE2QixjQUFjLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUdoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQVV6RCxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUM7QUFFdEIsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hFLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQzNDOzs7R0FHRztBQUNILE1BQU0sT0FBTyxrQkFBa0I7SUFXN0IsWUFDRSxNQUF1QjtJQUN2QixtRUFBbUU7SUFDM0QsZUFBZSxFQUFFLEdBQUcsSUFBSTtJQUNoQyw0Q0FBNEM7SUFDNUMsaUJBQWlCLEdBQUcsSUFBSSxFQUNoQixhQUFhLGtCQUFrQixFQUMvQixhQUFhLGlCQUFpQjtRQUo5QixpQkFBWSxHQUFaLFlBQVksQ0FBWTtRQUd4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
243
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LXByb3ZpbmctcXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmVyLWFnZW50L21lbW9yeS1wcm92aW5nLXF1ZXVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFNTCxrQkFBa0IsR0FHbkIsTUFBTSxzQkFBc0IsQ0FBQztBQXVCOUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUE2QixjQUFjLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUc5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQW1CLE1BQU0sa0NBQWtDLENBQUM7QUFDckYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFVekQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDO0FBRXRCLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNoRSxNQUFNLGlCQUFpQixHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUMzQzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBUzdCLFlBQ0UsTUFBdUI7SUFDdkIsbUVBQW1FO0lBQzNELGVBQWUsRUFBRSxHQUFHLElBQUk7SUFDaEMsNENBQTRDO0lBQzVDLGlCQUFpQixHQUFHLElBQUksRUFDaEIsYUFBYSxrQkFBa0IsRUFDL0IsYUFBYSxpQkFBaUIsRUFDOUIsYUFBeUIsSUFBSSxnQkFBZ0IsRUFBRTtR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
@@ -13,6 +13,7 @@ export declare class ProverAgent implements ProverAgentApi {
13
13
  private log;
14
14
  private inFlightPromises;
15
15
  private runningPromise?;
16
+ private proofInputsDatabase;
16
17
  constructor(
17
18
  /** The prover implementation to defer jobs to */
18
19
  circuitProver: ServerCircuitProver,
@@ -1 +1 @@
1
- {"version":3,"file":"prover-agent.d.ts","sourceRoot":"","sources":["../../src/prover-agent/prover-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,gBAAgB,EAIrB,KAAK,mBAAmB,EAEzB,MAAM,sBAAsB,CAAC;AAO9B;;GAEG;AACH,qBAAa,WAAY,YAAW,cAAc;;IAY9C,iDAAiD;IACjD,OAAO,CAAC,aAAa;IACrB,8DAA8D;IAC9D,OAAO,CAAC,cAAc;IACtB,oCAAoC;IACpC,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,GAAG;IAjBb,OAAO,CAAC,gBAAgB,CAOpB;IACJ,OAAO,CAAC,cAAc,CAAC,CAAiB;;IAGtC,iDAAiD;IACzC,aAAa,EAAE,mBAAmB;IAC1C,8DAA8D;IACtD,cAAc,SAAI;IAC1B,oCAAoC;IAC5B,cAAc,SAAM,EACpB,GAAG,yCAAwD;IAGrE,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxD,gBAAgB,CAAC,aAAa,EAAE,mBAAmB,GAAG,IAAI;IAI1D,SAAS;IAQT,cAAc,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAMzD,KAAK,CAAC,SAAS,EAAE,gBAAgB,GAAG,IAAI;IAuDlC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAWb,IAAI;IAkClB,OAAO,CAAC,QAAQ;CA4DjB"}
1
+ {"version":3,"file":"prover-agent.d.ts","sourceRoot":"","sources":["../../src/prover-agent/prover-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAInB,KAAK,gBAAgB,EAErB,KAAK,mBAAmB,EAEzB,MAAM,sBAAsB,CAAC;AAS9B;;GAEG;AACH,qBAAa,WAAY,YAAW,cAAc;;IAa9C,iDAAiD;IACjD,OAAO,CAAC,aAAa;IACrB,8DAA8D;IAC9D,OAAO,CAAC,cAAc;IACtB,oCAAoC;IACpC,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,GAAG;IAlBb,OAAO,CAAC,gBAAgB,CAOpB;IACJ,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,mBAAmB,CAA0B;;IAGnD,iDAAiD;IACzC,aAAa,EAAE,mBAAmB;IAC1C,8DAA8D;IACtD,cAAc,SAAI;IAC1B,oCAAoC;IAC5B,cAAc,SAAM,EACpB,GAAG,yCAAwD;IAGrE,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxD,gBAAgB,CAAC,aAAa,EAAE,mBAAmB,GAAG,IAAI;IAI1D,SAAS;IAQT,cAAc,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAMzD,KAAK,CAAC,SAAS,EAAE,gBAAgB,GAAG,IAAI;IAuDlC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAWb,IAAI;IA8BlB,OAAO,CAAC,QAAQ;CAyDjB"}
@@ -4,6 +4,7 @@ import { ProvingRequestType, makeProvingRequestResult, } from '@aztec/circuit-ty
4
4
  import { createDebugLogger } from '@aztec/foundation/log';
5
5
  import { RunningPromise } from '@aztec/foundation/running-promise';
6
6
  import { elapsed } from '@aztec/foundation/timer';
7
+ import { InlineProofStore } from '../proving_broker/proof_store.js';
7
8
  const PRINT_THRESHOLD_NS = 6e10; // 60 seconds
8
9
  /**
9
10
  * A helper class that encapsulates a circuit prover and connects it to a job source.
@@ -22,6 +23,7 @@ export class ProverAgent {
22
23
  this.pollIntervalMs = pollIntervalMs;
23
24
  this.log = log;
24
25
  this.inFlightPromises = new Map();
26
+ this.proofInputsDatabase = new InlineProofStore();
25
27
  }
26
28
  setMaxConcurrency(maxConcurrency) {
27
29
  if (maxConcurrency < 1) {
@@ -70,12 +72,12 @@ export class ProverAgent {
70
72
  const promise = this.work(jobSource, job).finally(() => this.inFlightPromises.delete(job.id));
71
73
  this.inFlightPromises.set(job.id, {
72
74
  id: job.id,
73
- type: job.request.type,
75
+ type: job.type,
74
76
  promise,
75
77
  });
76
78
  }
77
79
  catch (err) {
78
- this.log.warn(`Error processing job! type=${ProvingRequestType[job.request.type]}: ${err}. ${err.stack}`);
80
+ this.log.warn(`Error processing job! type=${ProvingRequestType[job.type]}: ${err}. ${err.stack}`);
79
81
  }
80
82
  }
81
83
  catch (err) {
@@ -96,21 +98,22 @@ export class ProverAgent {
96
98
  }
97
99
  async work(jobSource, job) {
98
100
  try {
99
- this.log.debug(`Picked up proving job id=${job.id} type=${ProvingRequestType[job.request.type]}`);
100
- const type = job.request.type;
101
- const [time, result] = await elapsed(this.getProof(job.request));
101
+ this.log.debug(`Picked up proving job id=${job.id} type=${ProvingRequestType[job.type]}`);
102
+ const type = job.type;
103
+ const inputs = await this.proofInputsDatabase.getProofInput(job.inputsUri);
104
+ const [time, result] = await elapsed(this.getProof(inputs));
102
105
  if (__classPrivateFieldGet(this, _ProverAgent_instances, "m", _ProverAgent_isRunning).call(this)) {
103
106
  this.log.verbose(`Processed proving job id=${job.id} type=${ProvingRequestType[type]} duration=${time}ms`);
104
107
  await jobSource.resolveProvingJob(job.id, makeProvingRequestResult(type, result));
105
108
  }
106
109
  else {
107
- this.log.verbose(`Dropping proving job id=${job.id} type=${ProvingRequestType[job.request.type]} duration=${time}ms: agent stopped`);
110
+ this.log.verbose(`Dropping proving job id=${job.id} type=${ProvingRequestType[job.type]} duration=${time}ms: agent stopped`);
108
111
  }
109
112
  }
110
113
  catch (err) {
111
- const type = ProvingRequestType[job.request.type];
114
+ const type = ProvingRequestType[job.type];
112
115
  if (__classPrivateFieldGet(this, _ProverAgent_instances, "m", _ProverAgent_isRunning).call(this)) {
113
- if (job.request.type === ProvingRequestType.PUBLIC_VM && !process.env.AVM_PROVING_STRICT) {
116
+ if (job.type === ProvingRequestType.PUBLIC_VM && !process.env.AVM_PROVING_STRICT) {
114
117
  this.log.warn(`Expected error processing VM proving job id=${job.id} type=${type}: ${err}`);
115
118
  }
116
119
  else {
@@ -173,4 +176,4 @@ export class ProverAgent {
173
176
  _ProverAgent_instances = new WeakSet(), _ProverAgent_isRunning = function _ProverAgent_isRunning() {
174
177
  return this.runningPromise?.isRunning() ?? false;
175
178
  };
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmVyLWFnZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3Zlci1hZ2VudC9wcm92ZXItYWdlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBTUwsa0JBQWtCLEVBRWxCLHdCQUF3QixHQUN6QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbEQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsQ0FBQyxhQUFhO0FBRTlDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUFXdEI7SUFDRSxpREFBaUQ7SUFDekMsYUFBa0M7SUFDMUMsOERBQThEO0lBQ3RELGlCQUFpQixDQUFDO0lBQzFCLG9DQUFvQztJQUM1QixpQkFBaUIsR0FBRyxFQUNwQixNQUFNLGlCQUFpQixDQUFDLGtDQUFrQyxDQUFDOztRQUwzRCxrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7UUFFbEMsbUJBQWMsR0FBZCxjQUFjLENBQUk7UUFFbEIsbUJBQWMsR0FBZCxjQUFjLENBQU07UUFDcEIsUUFBRyxHQUFILEdBQUcsQ0FBd0Q7UUFqQjdELHFCQUFnQixHQUFHLElBQUksR0FBRyxFQU8vQixDQUFDO0lBV0QsQ0FBQztJQUVKLGlCQUFpQixDQUFDLGNBQXNCO1FBQ3RDLElBQUksY0FBYyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDckMsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGdCQUFnQixDQUFDLGFBQWtD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
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmVyLWFnZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3Zlci1hZ2VudC9wcm92ZXItYWdlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBTUwsa0JBQWtCLEVBRWxCLHdCQUF3QixHQUN6QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFcEUsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsQ0FBQyxhQUFhO0FBRTlDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUFZdEI7SUFDRSxpREFBaUQ7SUFDekMsYUFBa0M7SUFDMUMsOERBQThEO0lBQ3RELGlCQUFpQixDQUFDO0lBQzFCLG9DQUFvQztJQUM1QixpQkFBaUIsR0FBRyxFQUNwQixNQUFNLGlCQUFpQixDQUFDLGtDQUFrQyxDQUFDOztRQUwzRCxrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7UUFFbEMsbUJBQWMsR0FBZCxjQUFjLENBQUk7UUFFbEIsbUJBQWMsR0FBZCxjQUFjLENBQU07UUFDcEIsUUFBRyxHQUFILEdBQUcsQ0FBd0Q7UUFsQjdELHFCQUFnQixHQUFHLElBQUksR0FBRyxFQU8vQixDQUFDO1FBRUksd0JBQW1CLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO0lBVWxELENBQUM7SUFFSixpQkFBaUIsQ0FBQyxjQUFzQjtRQUN0QyxJQUFJLGNBQWMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELElBQUksQ0FBQyxjQUFj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
@@ -0,0 +1,30 @@
1
+ import { type ProofAndVerificationKey, type ProverCache, type ProvingJobProducer, type PublicInputsAndRecursiveProof, type ServerCircuitProver } from '@aztec/circuit-types';
2
+ import { type AVM_PROOF_LENGTH_IN_FIELDS, type AvmCircuitInputs, type BaseOrMergeRollupPublicInputs, type BaseParityInputs, type BlockMergeRollupInputs, type BlockRootOrBlockMergePublicInputs, type BlockRootRollupInputs, type EmptyBlockRootRollupInputs, type KernelCircuitPublicInputs, type MergeRollupInputs, type NESTED_RECURSIVE_PROOF_LENGTH, type ParityPublicInputs, type PrivateBaseRollupInputs, type PrivateKernelEmptyInputData, type PublicBaseRollupInputs, type RECURSIVE_PROOF_LENGTH, type RootParityInputs, type RootRollupInputs, type RootRollupPublicInputs, type TUBE_PROOF_LENGTH, type TubeInputs } from '@aztec/circuits.js';
3
+ import { type ProofStore } from './proof_store.js';
4
+ /**
5
+ * A facade around a job broker that generates stable job ids and caches results
6
+ */
7
+ export declare class CachingBrokerFacade implements ServerCircuitProver {
8
+ private broker;
9
+ private cache;
10
+ private proofStore;
11
+ private waitTimeoutMs;
12
+ private pollIntervalMs;
13
+ private log;
14
+ constructor(broker: ProvingJobProducer, cache?: ProverCache, proofStore?: ProofStore, waitTimeoutMs?: number, pollIntervalMs?: number, log?: import("@aztec/foundation/log").Logger);
15
+ private enqueueAndWaitForJob;
16
+ getAvmProof(inputs: AvmCircuitInputs, signal?: AbortSignal, _blockNumber?: number): Promise<ProofAndVerificationKey<typeof AVM_PROOF_LENGTH_IN_FIELDS>>;
17
+ getBaseParityProof(inputs: BaseParityInputs, signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<ParityPublicInputs, typeof RECURSIVE_PROOF_LENGTH>>;
18
+ getBlockMergeRollupProof(input: BlockMergeRollupInputs, signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof RECURSIVE_PROOF_LENGTH>>;
19
+ getBlockRootRollupProof(input: BlockRootRollupInputs, signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof RECURSIVE_PROOF_LENGTH>>;
20
+ getEmptyBlockRootRollupProof(input: EmptyBlockRootRollupInputs, signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs>>;
21
+ getEmptyPrivateKernelProof(inputs: PrivateKernelEmptyInputData, signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<KernelCircuitPublicInputs, typeof RECURSIVE_PROOF_LENGTH>>;
22
+ getMergeRollupProof(input: MergeRollupInputs, signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof RECURSIVE_PROOF_LENGTH>>;
23
+ getPrivateBaseRollupProof(baseRollupInput: PrivateBaseRollupInputs, signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof RECURSIVE_PROOF_LENGTH>>;
24
+ getPublicBaseRollupProof(inputs: PublicBaseRollupInputs, signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof RECURSIVE_PROOF_LENGTH>>;
25
+ getRootParityProof(inputs: RootParityInputs, signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<ParityPublicInputs, typeof NESTED_RECURSIVE_PROOF_LENGTH>>;
26
+ getRootRollupProof(input: RootRollupInputs, signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<RootRollupPublicInputs, typeof RECURSIVE_PROOF_LENGTH>>;
27
+ getTubeProof(tubeInput: TubeInputs, signal?: AbortSignal, _epochNumber?: number): Promise<ProofAndVerificationKey<typeof TUBE_PROOF_LENGTH>>;
28
+ private generateId;
29
+ }
30
+ //# sourceMappingURL=caching_broker_facade.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"caching_broker_facade.d.ts","sourceRoot":"","sources":["../../src/proving_broker/caching_broker_facade.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,150 @@
1
+ import { ProvingRequestType, } from '@aztec/circuit-types';
2
+ import { sha256 } from '@aztec/foundation/crypto';
3
+ import { createDebugLogger } from '@aztec/foundation/log';
4
+ import { retryUntil } from '@aztec/foundation/retry';
5
+ import { InlineProofStore } from './proof_store.js';
6
+ import { InMemoryProverCache } from './prover_cache/memory.js';
7
+ // 20 minutes, roughly the length of an Aztec epoch. If a proof isn't ready in this amount of time then we've failed to prove the whole epoch
8
+ const MAX_WAIT_MS = 1200000;
9
+ /**
10
+ * A facade around a job broker that generates stable job ids and caches results
11
+ */
12
+ export class CachingBrokerFacade {
13
+ constructor(broker, cache = new InMemoryProverCache(), proofStore = new InlineProofStore(), waitTimeoutMs = MAX_WAIT_MS, pollIntervalMs = 1000, log = createDebugLogger('aztec:prover-client:caching-prover-broker')) {
14
+ this.broker = broker;
15
+ this.cache = cache;
16
+ this.proofStore = proofStore;
17
+ this.waitTimeoutMs = waitTimeoutMs;
18
+ this.pollIntervalMs = pollIntervalMs;
19
+ this.log = log;
20
+ }
21
+ async enqueueAndWaitForJob(id, type, inputs, signal) {
22
+ // first try the cache
23
+ let jobEnqueued = false;
24
+ try {
25
+ const cachedResult = await this.cache.getProvingJobStatus(id);
26
+ if (cachedResult.status !== 'not-found') {
27
+ this.log.debug(`Found cached result for job=${id}: status=${cachedResult.status}`);
28
+ }
29
+ if (cachedResult.status === 'fulfilled') {
30
+ const output = await this.proofStore.getProofOutput(cachedResult.value);
31
+ if (output.type === type) {
32
+ return output.result;
33
+ }
34
+ else {
35
+ this.log.warn(`Cached result type mismatch for job=${id}. Expected=${type} but got=${output.type}`);
36
+ }
37
+ }
38
+ else if (cachedResult.status === 'rejected') {
39
+ // prefer returning a rejected promises so that we don't trigger the catch block below
40
+ return Promise.reject(new Error(cachedResult.reason));
41
+ }
42
+ else if (cachedResult.status === 'in-progress' || cachedResult.status === 'in-queue') {
43
+ jobEnqueued = true;
44
+ }
45
+ else {
46
+ jobEnqueued = false;
47
+ }
48
+ }
49
+ catch (err) {
50
+ this.log.warn(`Failed to get cached proving job id=${id}: ${err}. Re-running job`);
51
+ }
52
+ if (!jobEnqueued) {
53
+ try {
54
+ const inputsUri = await this.proofStore.saveProofInput(id, type, inputs);
55
+ await this.broker.enqueueProvingJob({
56
+ id,
57
+ type,
58
+ inputsUri,
59
+ });
60
+ await this.cache.setProvingJobStatus(id, { status: 'in-queue' });
61
+ }
62
+ catch (err) {
63
+ this.log.error(`Failed to enqueue proving job id=${id}: ${err}`);
64
+ await this.cache.setProvingJobStatus(id, { status: 'not-found' });
65
+ throw err;
66
+ }
67
+ }
68
+ // notify broker of cancelled job
69
+ const abortFn = async () => {
70
+ signal?.removeEventListener('abort', abortFn);
71
+ await this.broker.removeAndCancelProvingJob(id);
72
+ };
73
+ signal?.addEventListener('abort', abortFn);
74
+ try {
75
+ // loop here until the job settles
76
+ // NOTE: this could also terminate because the job was cancelled through event listener above
77
+ const result = await retryUntil(async () => {
78
+ try {
79
+ return await this.broker.waitForJobToSettle(id);
80
+ }
81
+ catch (err) {
82
+ // waitForJobToSettle can only fail for network errors
83
+ // keep retrying until we time out
84
+ }
85
+ }, `Proving job=${id} type=${ProvingRequestType[type]}`, this.waitTimeoutMs / 1000, this.pollIntervalMs / 1000);
86
+ try {
87
+ await this.cache.setProvingJobStatus(id, result);
88
+ }
89
+ catch (err) {
90
+ this.log.warn(`Failed to cache proving job id=${id} resultStatus=${result.status}: ${err}`);
91
+ }
92
+ if (result.status === 'fulfilled') {
93
+ const output = await this.proofStore.getProofOutput(result.value);
94
+ if (output.type === type) {
95
+ return output.result;
96
+ }
97
+ else {
98
+ return Promise.reject(new Error(`Unexpected proof type: ${output.type}. Expected: ${type}`));
99
+ }
100
+ }
101
+ else {
102
+ return Promise.reject(new Error(result.reason));
103
+ }
104
+ }
105
+ finally {
106
+ signal?.removeEventListener('abort', abortFn);
107
+ }
108
+ }
109
+ getAvmProof(inputs, signal, _blockNumber) {
110
+ return this.enqueueAndWaitForJob(this.generateId(ProvingRequestType.PUBLIC_VM, inputs), ProvingRequestType.PUBLIC_VM, inputs, signal);
111
+ }
112
+ getBaseParityProof(inputs, signal, _epochNumber) {
113
+ return this.enqueueAndWaitForJob(this.generateId(ProvingRequestType.BASE_PARITY, inputs), ProvingRequestType.BASE_PARITY, inputs, signal);
114
+ }
115
+ getBlockMergeRollupProof(input, signal, _epochNumber) {
116
+ return this.enqueueAndWaitForJob(this.generateId(ProvingRequestType.BLOCK_MERGE_ROLLUP, input), ProvingRequestType.BLOCK_MERGE_ROLLUP, input, signal);
117
+ }
118
+ getBlockRootRollupProof(input, signal, _epochNumber) {
119
+ return this.enqueueAndWaitForJob(this.generateId(ProvingRequestType.BLOCK_ROOT_ROLLUP, input), ProvingRequestType.BLOCK_ROOT_ROLLUP, input, signal);
120
+ }
121
+ getEmptyBlockRootRollupProof(input, signal, _epochNumber) {
122
+ return this.enqueueAndWaitForJob(this.generateId(ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP, input), ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP, input, signal);
123
+ }
124
+ getEmptyPrivateKernelProof(inputs, signal, _epochNumber) {
125
+ return this.enqueueAndWaitForJob(this.generateId(ProvingRequestType.PRIVATE_KERNEL_EMPTY, inputs), ProvingRequestType.PRIVATE_KERNEL_EMPTY, inputs, signal);
126
+ }
127
+ getMergeRollupProof(input, signal, _epochNumber) {
128
+ return this.enqueueAndWaitForJob(this.generateId(ProvingRequestType.MERGE_ROLLUP, input), ProvingRequestType.MERGE_ROLLUP, input, signal);
129
+ }
130
+ getPrivateBaseRollupProof(baseRollupInput, signal, _epochNumber) {
131
+ return this.enqueueAndWaitForJob(this.generateId(ProvingRequestType.PRIVATE_BASE_ROLLUP, baseRollupInput), ProvingRequestType.PRIVATE_BASE_ROLLUP, baseRollupInput, signal);
132
+ }
133
+ getPublicBaseRollupProof(inputs, signal, _epochNumber) {
134
+ return this.enqueueAndWaitForJob(this.generateId(ProvingRequestType.PUBLIC_BASE_ROLLUP, inputs), ProvingRequestType.PUBLIC_BASE_ROLLUP, inputs, signal);
135
+ }
136
+ getRootParityProof(inputs, signal, _epochNumber) {
137
+ return this.enqueueAndWaitForJob(this.generateId(ProvingRequestType.ROOT_PARITY, inputs), ProvingRequestType.ROOT_PARITY, inputs, signal);
138
+ }
139
+ getRootRollupProof(input, signal, _epochNumber) {
140
+ return this.enqueueAndWaitForJob(this.generateId(ProvingRequestType.ROOT_ROLLUP, input), ProvingRequestType.ROOT_ROLLUP, input, signal);
141
+ }
142
+ getTubeProof(tubeInput, signal, _epochNumber) {
143
+ return this.enqueueAndWaitForJob(this.generateId(ProvingRequestType.TUBE_PROOF, tubeInput), ProvingRequestType.TUBE_PROOF, tubeInput, signal);
144
+ }
145
+ generateId(type, inputs) {
146
+ const inputsHash = sha256(inputs.toBuffer());
147
+ return `${ProvingRequestType[type]}:${inputsHash.toString('hex')}`;
148
+ }
149
+ }
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGluZ19icm9rZXJfZmFjYWRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3ZpbmdfYnJva2VyL2NhY2hpbmdfYnJva2VyX2ZhY2FkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBT0wsa0JBQWtCLEdBR25CLE1BQU0sc0JBQXNCLENBQUM7QUF3QjlCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFckQsT0FBTyxFQUFFLGdCQUFnQixFQUFtQixNQUFNLGtCQUFrQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRS9ELDZJQUE2STtBQUM3SSxNQUFNLFdBQVcsR0FBRyxPQUFTLENBQUM7QUFFOUI7O0dBRUc7QUFDSCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQ1UsTUFBMEIsRUFDMUIsUUFBcUIsSUFBSSxtQkFBbUIsRUFBRSxFQUM5QyxhQUF5QixJQUFJLGdCQUFnQixFQUFFLEVBQy9DLGdCQUFnQixXQUFXLEVBQzNCLGlCQUFpQixJQUFJLEVBQ3JCLE1BQU0saUJBQWlCLENBQUMsMkNBQTJDLENBQUM7UUFMcEUsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUFDMUIsVUFBSyxHQUFMLEtBQUssQ0FBeUM7UUFDOUMsZUFBVSxHQUFWLFVBQVUsQ0FBcUM7UUFDL0Msa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDM0IsbUJBQWMsR0FBZCxjQUFjLENBQU87UUFDckIsUUFBRyxHQUFILEdBQUcsQ0FBaUU7SUFDM0UsQ0FBQztJQUVJLEtBQUssQ0FBQyxvQkFBb0IsQ0FDaEMsRUFBZ0IsRUFDaEIsSUFBTyxFQUNQLE1BQThCLEVBQzlCLE1BQW9CO1FBRXBCLHNCQUFzQjtRQUN0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
@@ -0,0 +1,4 @@
1
+ import { type ProverBrokerConfig } from '@aztec/circuit-types';
2
+ import { ProvingBroker } from './proving_broker.js';
3
+ export declare function createAndStartProvingBroker(config: ProverBrokerConfig): Promise<ProvingBroker>;
4
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/proving_broker/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG/D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIpD,wBAAsB,2BAA2B,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAapG"}
@@ -0,0 +1,17 @@
1
+ import { AztecLmdbStore } from '@aztec/kv-store/lmdb';
2
+ import { ProvingBroker } from './proving_broker.js';
3
+ import { InMemoryBrokerDatabase } from './proving_broker_database/memory.js';
4
+ import { KVBrokerDatabase } from './proving_broker_database/persisted.js';
5
+ export async function createAndStartProvingBroker(config) {
6
+ const database = config.proverBrokerDataDirectory
7
+ ? new KVBrokerDatabase(AztecLmdbStore.open(config.proverBrokerDataDirectory))
8
+ : new InMemoryBrokerDatabase();
9
+ const broker = new ProvingBroker(database, {
10
+ jobTimeoutMs: config.proverBrokerJobTimeoutMs,
11
+ maxRetries: config.proverBrokerJobMaxRetries,
12
+ timeoutIntervalMs: config.proverBrokerPollIntervalMs,
13
+ });
14
+ await broker.start();
15
+ return broker;
16
+ }
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92aW5nX2Jyb2tlci9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFMUUsTUFBTSxDQUFDLEtBQUssVUFBVSwyQkFBMkIsQ0FBQyxNQUEwQjtJQUMxRSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMseUJBQXlCO1FBQy9DLENBQUMsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDN0UsQ0FBQyxDQUFDLElBQUksc0JBQXNCLEVBQUUsQ0FBQztJQUVqQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGFBQWEsQ0FBQyxRQUFRLEVBQUU7UUFDekMsWUFBWSxFQUFFLE1BQU0sQ0FBQyx3QkFBd0I7UUFDN0MsVUFBVSxFQUFFLE1BQU0sQ0FBQyx5QkFBeUI7UUFDNUMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLDBCQUEwQjtLQUNyRCxDQUFDLENBQUM7SUFFSCxNQUFNLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIn0=
@@ -0,0 +1,9 @@
1
+ export * from './proving_agent.js';
2
+ export * from './proving_broker.js';
3
+ export * from './rpc.js';
4
+ export * from './proving_broker_database.js';
5
+ export * from './proving_broker_database/memory.js';
6
+ export * from './proving_broker_database/persisted.js';
7
+ export * from './proof_store.js';
8
+ export * from './factory.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/proving_broker/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC"}
@@ -0,0 +1,9 @@
1
+ export * from './proving_agent.js';
2
+ export * from './proving_broker.js';
3
+ export * from './rpc.js';
4
+ export * from './proving_broker_database.js';
5
+ export * from './proving_broker_database/memory.js';
6
+ export * from './proving_broker_database/persisted.js';
7
+ export * from './proof_store.js';
8
+ export * from './factory.js';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmluZ19icm9rZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxjQUFjLENBQUMifQ==