@aztec/prover-client 0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2 → 0.75.0

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 (138) hide show
  1. package/dest/bin/get-proof-inputs.d.ts +2 -0
  2. package/dest/bin/get-proof-inputs.d.ts.map +1 -0
  3. package/dest/bin/get-proof-inputs.js +16 -18
  4. package/dest/block_builder/index.d.ts +6 -0
  5. package/dest/block_builder/index.d.ts.map +1 -0
  6. package/dest/block_builder/index.js +1 -0
  7. package/dest/block_builder/light.d.ts +31 -0
  8. package/dest/block_builder/light.d.ts.map +1 -0
  9. package/dest/block_builder/light.js +13 -23
  10. package/dest/config.d.ts +17 -0
  11. package/dest/config.d.ts.map +1 -0
  12. package/dest/config.js +11 -9
  13. package/dest/index.d.ts +4 -0
  14. package/dest/index.d.ts.map +1 -0
  15. package/dest/index.js +1 -0
  16. package/dest/mocks/fixtures.d.ts +19 -0
  17. package/dest/mocks/fixtures.d.ts.map +1 -0
  18. package/dest/mocks/fixtures.js +26 -28
  19. package/dest/mocks/test_context.d.ts +49 -0
  20. package/dest/mocks/test_context.d.ts.map +1 -0
  21. package/dest/mocks/test_context.js +31 -55
  22. package/dest/orchestrator/block-building-helpers.d.ts +50 -0
  23. package/dest/orchestrator/block-building-helpers.d.ts.map +1 -0
  24. package/dest/orchestrator/block-building-helpers.js +90 -90
  25. package/dest/orchestrator/block-proving-state.d.ts +71 -0
  26. package/dest/orchestrator/block-proving-state.d.ts.map +1 -0
  27. package/dest/orchestrator/block-proving-state.js +70 -95
  28. package/dest/orchestrator/epoch-proving-state.d.ts +56 -0
  29. package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -0
  30. package/dest/orchestrator/epoch-proving-state.js +40 -53
  31. package/dest/orchestrator/index.d.ts +2 -0
  32. package/dest/orchestrator/index.d.ts.map +1 -0
  33. package/dest/orchestrator/index.js +1 -0
  34. package/dest/orchestrator/orchestrator.d.ts +108 -0
  35. package/dest/orchestrator/orchestrator.d.ts.map +1 -0
  36. package/dest/orchestrator/orchestrator.js +653 -649
  37. package/dest/orchestrator/orchestrator_metrics.d.ts +8 -0
  38. package/dest/orchestrator/orchestrator_metrics.d.ts.map +1 -0
  39. package/dest/orchestrator/orchestrator_metrics.js +3 -4
  40. package/dest/orchestrator/tx-proving-state.d.ts +31 -0
  41. package/dest/orchestrator/tx-proving-state.d.ts.map +1 -0
  42. package/dest/orchestrator/tx-proving-state.js +51 -52
  43. package/dest/prover-agent/index.d.ts +4 -0
  44. package/dest/prover-agent/index.d.ts.map +1 -0
  45. package/dest/prover-agent/index.js +1 -0
  46. package/dest/prover-agent/memory-proving-queue.d.ts +82 -0
  47. package/dest/prover-agent/memory-proving-queue.d.ts.map +1 -0
  48. package/dest/prover-agent/memory-proving-queue.js +248 -237
  49. package/dest/prover-agent/prover-agent.d.ts +43 -0
  50. package/dest/prover-agent/prover-agent.d.ts.map +1 -0
  51. package/dest/prover-agent/prover-agent.js +187 -184
  52. package/dest/prover-agent/proving-error.d.ts +5 -0
  53. package/dest/prover-agent/proving-error.d.ts.map +1 -0
  54. package/dest/prover-agent/proving-error.js +1 -0
  55. package/dest/prover-agent/queue_metrics.d.ts +10 -0
  56. package/dest/prover-agent/queue_metrics.d.ts.map +1 -0
  57. package/dest/prover-agent/queue_metrics.js +5 -6
  58. package/dest/prover-agent/rpc.d.ts +11 -0
  59. package/dest/prover-agent/rpc.d.ts.map +1 -0
  60. package/dest/prover-agent/rpc.js +4 -6
  61. package/dest/prover-client/factory.d.ts +6 -0
  62. package/dest/prover-client/factory.d.ts.map +1 -0
  63. package/dest/prover-client/factory.js +1 -0
  64. package/dest/prover-client/index.d.ts +3 -0
  65. package/dest/prover-client/index.d.ts.map +1 -0
  66. package/dest/prover-client/index.js +1 -0
  67. package/dest/prover-client/prover-client.d.ts +42 -0
  68. package/dest/prover-client/prover-client.d.ts.map +1 -0
  69. package/dest/prover-client/prover-client.js +25 -30
  70. package/dest/prover-client/server-epoch-prover.d.ts +25 -0
  71. package/dest/prover-client/server-epoch-prover.d.ts.map +1 -0
  72. package/dest/prover-client/server-epoch-prover.js +4 -4
  73. package/dest/proving_broker/broker_prover_facade.d.ts +39 -0
  74. package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -0
  75. package/dest/proving_broker/broker_prover_facade.js +59 -70
  76. package/dest/proving_broker/config.d.ts +61 -0
  77. package/dest/proving_broker/config.d.ts.map +1 -0
  78. package/dest/proving_broker/config.js +37 -22
  79. package/dest/proving_broker/factory.d.ts +5 -0
  80. package/dest/proving_broker/factory.d.ts.map +1 -0
  81. package/dest/proving_broker/factory.js +2 -1
  82. package/dest/proving_broker/fixtures.d.ts +5 -0
  83. package/dest/proving_broker/fixtures.d.ts.map +1 -0
  84. package/dest/proving_broker/fixtures.js +1 -0
  85. package/dest/proving_broker/index.d.ts +10 -0
  86. package/dest/proving_broker/index.d.ts.map +1 -0
  87. package/dest/proving_broker/index.js +1 -0
  88. package/dest/proving_broker/proof_store/factory.d.ts +6 -0
  89. package/dest/proving_broker/proof_store/factory.d.ts.map +1 -0
  90. package/dest/proving_broker/proof_store/factory.js +12 -9
  91. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts +13 -0
  92. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts.map +1 -0
  93. package/dest/proving_broker/proof_store/gcs_proof_store.js +7 -11
  94. package/dest/proving_broker/proof_store/index.d.ts +4 -0
  95. package/dest/proving_broker/proof_store/index.d.ts.map +1 -0
  96. package/dest/proving_broker/proof_store/index.js +1 -0
  97. package/dest/proving_broker/proof_store/inline_proof_store.d.ts +14 -0
  98. package/dest/proving_broker/proof_store/inline_proof_store.d.ts.map +1 -0
  99. package/dest/proving_broker/proof_store/inline_proof_store.js +7 -11
  100. package/dest/proving_broker/proof_store/proof_store.d.ts +35 -0
  101. package/dest/proving_broker/proof_store/proof_store.d.ts.map +1 -0
  102. package/dest/proving_broker/proof_store/proof_store.js +2 -3
  103. package/dest/proving_broker/proving_agent.d.ts +44 -0
  104. package/dest/proving_broker/proving_agent.d.ts.map +1 -0
  105. package/dest/proving_broker/proving_agent.js +110 -121
  106. package/dest/proving_broker/proving_agent_instrumentation.d.ts +8 -0
  107. package/dest/proving_broker/proving_agent_instrumentation.d.ts.map +1 -0
  108. package/dest/proving_broker/proving_agent_instrumentation.js +3 -3
  109. package/dest/proving_broker/proving_broker.d.ts +75 -0
  110. package/dest/proving_broker/proving_broker.d.ts.map +1 -0
  111. package/dest/proving_broker/proving_broker.js +451 -491
  112. package/dest/proving_broker/proving_broker_database/memory.d.ts +16 -0
  113. package/dest/proving_broker/proving_broker_database/memory.d.ts.map +1 -0
  114. package/dest/proving_broker/proving_broker_database/memory.js +13 -19
  115. package/dest/proving_broker/proving_broker_database/persisted.d.ts +21 -0
  116. package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +1 -0
  117. package/dest/proving_broker/proving_broker_database/persisted.js +21 -41
  118. package/dest/proving_broker/proving_broker_database.d.ts +39 -0
  119. package/dest/proving_broker/proving_broker_database.d.ts.map +1 -0
  120. package/dest/proving_broker/proving_broker_database.js +2 -3
  121. package/dest/proving_broker/proving_broker_instrumentation.d.ts +25 -0
  122. package/dest/proving_broker/proving_broker_instrumentation.d.ts.map +1 -0
  123. package/dest/proving_broker/proving_broker_instrumentation.js +21 -28
  124. package/dest/proving_broker/proving_job_controller.d.ts +31 -0
  125. package/dest/proving_broker/proving_job_controller.d.ts.map +1 -0
  126. package/dest/proving_broker/proving_job_controller.js +62 -81
  127. package/dest/proving_broker/rpc.d.ts +11 -0
  128. package/dest/proving_broker/rpc.d.ts.map +1 -0
  129. package/dest/proving_broker/rpc.js +15 -23
  130. package/dest/test/mock_prover.d.ts +33 -0
  131. package/dest/test/mock_prover.d.ts.map +1 -0
  132. package/dest/test/mock_prover.js +9 -11
  133. package/package.json +11 -12
  134. package/src/index.ts +1 -1
  135. package/src/orchestrator/block-building-helpers.ts +1 -1
  136. package/src/proving_broker/proving_agent.ts +11 -30
  137. package/src/proving_broker/proving_broker.ts +27 -53
  138. package/src/proving_broker/rpc.ts +2 -8
@@ -1,5 +1,4 @@
1
1
  import {
2
- type GetProvingJobResponse,
3
2
  type ProofUri,
4
3
  type ProvingJob,
5
4
  type ProvingJobConsumer,
@@ -206,25 +205,16 @@ export class ProvingBroker implements ProvingJobProducer, ProvingJobConsumer, Tr
206
205
  return this.requestQueue.put(() => this.#getCompletedJobs(ids));
207
206
  }
208
207
 
209
- public getProvingJob(filter?: ProvingJobFilter): Promise<GetProvingJobResponse | undefined> {
208
+ public getProvingJob(filter?: ProvingJobFilter): Promise<{ job: ProvingJob; time: number } | undefined> {
210
209
  return this.requestQueue.put(() => this.#getProvingJob(filter));
211
210
  }
212
211
 
213
- public reportProvingJobSuccess(
214
- id: ProvingJobId,
215
- value: ProofUri,
216
- filter?: ProvingJobFilter,
217
- ): Promise<GetProvingJobResponse | undefined> {
218
- return this.requestQueue.put(() => this.#reportProvingJobSuccess(id, value, filter));
212
+ public reportProvingJobSuccess(id: ProvingJobId, value: ProofUri): Promise<void> {
213
+ return this.requestQueue.put(() => this.#reportProvingJobSuccess(id, value));
219
214
  }
220
215
 
221
- public reportProvingJobError(
222
- id: ProvingJobId,
223
- err: string,
224
- retry = false,
225
- filter?: ProvingJobFilter,
226
- ): Promise<GetProvingJobResponse | undefined> {
227
- return this.requestQueue.put(() => this.#reportProvingJobError(id, err, retry, filter));
216
+ public reportProvingJobError(id: ProvingJobId, err: string, retry = false): Promise<void> {
217
+ return this.requestQueue.put(() => this.#reportProvingJobError(id, err, retry));
228
218
  }
229
219
 
230
220
  public reportProvingJobProgress(
@@ -315,7 +305,9 @@ export class ProvingBroker implements ProvingJobProducer, ProvingJobConsumer, Tr
315
305
  }
316
306
 
317
307
  // eslint-disable-next-line require-await
318
- #getProvingJob(filter: ProvingJobFilter = { allowList: [] }): { job: ProvingJob; time: number } | undefined {
308
+ async #getProvingJob(
309
+ filter: ProvingJobFilter = { allowList: [] },
310
+ ): Promise<{ job: ProvingJob; time: number } | undefined> {
319
311
  const allowedProofs: ProvingRequestType[] =
320
312
  Array.isArray(filter.allowList) && filter.allowList.length > 0
321
313
  ? [...filter.allowList]
@@ -351,12 +343,7 @@ export class ProvingBroker implements ProvingJobProducer, ProvingJobConsumer, Tr
351
343
  return undefined;
352
344
  }
353
345
 
354
- async #reportProvingJobError(
355
- id: ProvingJobId,
356
- err: string,
357
- retry = false,
358
- filter?: ProvingJobFilter,
359
- ): Promise<GetProvingJobResponse | undefined> {
346
+ async #reportProvingJobError(id: ProvingJobId, err: string, retry = false): Promise<void> {
360
347
  const info = this.inProgress.get(id);
361
348
  const item = this.jobsCache.get(id);
362
349
  const retries = this.retries.get(id) ?? 0;
@@ -378,7 +365,7 @@ export class ProvingBroker implements ProvingJobProducer, ProvingJobConsumer, Tr
378
365
  this.logger.warn(`Proving job id=${id} is already settled, ignoring err=${err}`, {
379
366
  provingJobId: id,
380
367
  });
381
- return this.#getProvingJob(filter);
368
+ return;
382
369
  }
383
370
 
384
371
  if (retry && retries + 1 < this.maxRetries && !this.isJobStale(item)) {
@@ -388,16 +375,10 @@ export class ProvingBroker implements ProvingJobProducer, ProvingJobConsumer, Tr
388
375
  provingJobId: id,
389
376
  },
390
377
  );
391
-
392
- // assign another job to this agent
393
- // do this first, before we put the failed job back in the queue
394
- const maybeAnotherJob = this.#getProvingJob(filter);
395
-
396
378
  this.retries.set(id, retries + 1);
397
379
  this.enqueueJobInternal(item);
398
380
  this.instrumentation.incRetriedJobs(item.type);
399
-
400
- return maybeAnotherJob;
381
+ return;
401
382
  }
402
383
 
403
384
  this.logger.info(
@@ -431,24 +412,22 @@ export class ProvingBroker implements ProvingJobProducer, ProvingJobConsumer, Tr
431
412
 
432
413
  throw saveErr;
433
414
  }
434
-
435
- return this.#getProvingJob(filter);
436
415
  }
437
416
 
438
417
  #reportProvingJobProgress(
439
418
  id: ProvingJobId,
440
419
  startedAt: number,
441
420
  filter?: ProvingJobFilter,
442
- ): { job: ProvingJob; time: number } | undefined {
421
+ ): Promise<{ job: ProvingJob; time: number } | undefined> {
443
422
  const job = this.jobsCache.get(id);
444
423
  if (!job) {
445
424
  this.logger.warn(`Proving job id=${id} does not exist`, { provingJobId: id });
446
- return this.#getProvingJob(filter);
425
+ return filter ? this.#getProvingJob(filter) : Promise.resolve(undefined);
447
426
  }
448
427
 
449
428
  if (this.resultsCache.has(id)) {
450
429
  this.logger.warn(`Proving job id=${id} has already been completed`, { provingJobId: id });
451
- return this.#getProvingJob(filter);
430
+ return filter ? this.#getProvingJob(filter) : Promise.resolve(undefined);
452
431
  }
453
432
 
454
433
  const metadata = this.inProgress.get(id);
@@ -466,7 +445,7 @@ export class ProvingBroker implements ProvingJobProducer, ProvingJobConsumer, Tr
466
445
  startedAt,
467
446
  lastUpdatedAt: this.msTimeSource(),
468
447
  });
469
- return undefined;
448
+ return Promise.resolve(undefined);
470
449
  } else if (startedAt <= metadata.startedAt) {
471
450
  if (startedAt < metadata.startedAt) {
472
451
  this.logger.info(
@@ -478,24 +457,21 @@ export class ProvingBroker implements ProvingJobProducer, ProvingJobConsumer, Tr
478
457
  }
479
458
  metadata.startedAt = startedAt;
480
459
  metadata.lastUpdatedAt = now;
481
- return undefined;
460
+ return Promise.resolve(undefined);
461
+ } else if (filter) {
462
+ this.logger.warn(
463
+ `Proving job id=${id} type=${
464
+ ProvingRequestType[job.type]
465
+ } already being worked on by another agent. Sending new one`,
466
+ { provingJobId: id },
467
+ );
468
+ return this.#getProvingJob(filter);
469
+ } else {
470
+ return Promise.resolve(undefined);
482
471
  }
483
-
484
- this.logger.warn(
485
- `Proving job id=${id} type=${
486
- ProvingRequestType[job.type]
487
- } already being worked on by another agent. Sending new one`,
488
- { provingJobId: id },
489
- );
490
-
491
- return this.#getProvingJob(filter);
492
472
  }
493
473
 
494
- async #reportProvingJobSuccess(
495
- id: ProvingJobId,
496
- value: ProofUri,
497
- filter?: ProvingJobFilter,
498
- ): Promise<GetProvingJobResponse | undefined> {
474
+ async #reportProvingJobSuccess(id: ProvingJobId, value: ProofUri): Promise<void> {
499
475
  const info = this.inProgress.get(id);
500
476
  const item = this.jobsCache.get(id);
501
477
  const retries = this.retries.get(id) ?? 0;
@@ -545,8 +521,6 @@ export class ProvingBroker implements ProvingJobProducer, ProvingJobConsumer, Tr
545
521
 
546
522
  throw saveErr;
547
523
  }
548
-
549
- return this.#getProvingJob(filter);
550
524
  }
551
525
 
552
526
  @trackSpan('ProvingBroker.cleanupPass')
@@ -34,18 +34,12 @@ export const ProvingJobProducerSchema: ApiSchemaFor<ProvingJobProducer> = {
34
34
 
35
35
  export const ProvingJobConsumerSchema: ApiSchemaFor<ProvingJobConsumer> = {
36
36
  getProvingJob: z.function().args(optional(ProvingJobFilterSchema)).returns(GetProvingJobResponse.optional()),
37
- reportProvingJobError: z
38
- .function()
39
- .args(ProvingJobId, z.string(), optional(z.boolean()), optional(ProvingJobFilterSchema))
40
- .returns(GetProvingJobResponse.optional()),
37
+ reportProvingJobError: z.function().args(ProvingJobId, z.string(), optional(z.boolean())).returns(z.void()),
41
38
  reportProvingJobProgress: z
42
39
  .function()
43
40
  .args(ProvingJobId, z.number(), optional(ProvingJobFilterSchema))
44
41
  .returns(GetProvingJobResponse.optional()),
45
- reportProvingJobSuccess: z
46
- .function()
47
- .args(ProvingJobId, ProofUri, optional(ProvingJobFilterSchema))
48
- .returns(GetProvingJobResponse.optional()),
42
+ reportProvingJobSuccess: z.function().args(ProvingJobId, ProofUri).returns(z.void()),
49
43
  };
50
44
 
51
45
  export const ProvingJobBrokerSchema: ApiSchemaFor<ProvingJobBroker> = {