@aztec/prover-client 0.0.1-commit.b655e406 → 0.0.1-commit.c7c42ec

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 (119) hide show
  1. package/dest/block-factory/index.d.ts +1 -1
  2. package/dest/block-factory/light.d.ts +8 -8
  3. package/dest/block-factory/light.d.ts.map +1 -1
  4. package/dest/block-factory/light.js +37 -23
  5. package/dest/config.d.ts +2 -2
  6. package/dest/config.d.ts.map +1 -1
  7. package/dest/config.js +1 -1
  8. package/dest/index.d.ts +1 -1
  9. package/dest/light/index.d.ts +2 -0
  10. package/dest/light/index.d.ts.map +1 -0
  11. package/dest/light/index.js +1 -0
  12. package/dest/light/lightweight_checkpoint_builder.d.ts +36 -0
  13. package/dest/light/lightweight_checkpoint_builder.d.ts.map +1 -0
  14. package/dest/light/lightweight_checkpoint_builder.js +147 -0
  15. package/dest/mocks/fixtures.d.ts +1 -4
  16. package/dest/mocks/fixtures.d.ts.map +1 -1
  17. package/dest/mocks/fixtures.js +7 -17
  18. package/dest/mocks/test_context.d.ts +27 -46
  19. package/dest/mocks/test_context.d.ts.map +1 -1
  20. package/dest/mocks/test_context.js +105 -116
  21. package/dest/orchestrator/block-building-helpers.d.ts +17 -19
  22. package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
  23. package/dest/orchestrator/block-building-helpers.js +86 -111
  24. package/dest/orchestrator/block-proving-state.d.ts +17 -11
  25. package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
  26. package/dest/orchestrator/block-proving-state.js +81 -20
  27. package/dest/orchestrator/checkpoint-proving-state.d.ts +8 -8
  28. package/dest/orchestrator/checkpoint-proving-state.d.ts.map +1 -1
  29. package/dest/orchestrator/checkpoint-proving-state.js +15 -16
  30. package/dest/orchestrator/epoch-proving-state.d.ts +9 -8
  31. package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
  32. package/dest/orchestrator/epoch-proving-state.js +3 -3
  33. package/dest/orchestrator/index.d.ts +1 -1
  34. package/dest/orchestrator/orchestrator.d.ts +10 -10
  35. package/dest/orchestrator/orchestrator.d.ts.map +1 -1
  36. package/dest/orchestrator/orchestrator.js +27 -56
  37. package/dest/orchestrator/orchestrator_metrics.d.ts +1 -3
  38. package/dest/orchestrator/orchestrator_metrics.d.ts.map +1 -1
  39. package/dest/orchestrator/orchestrator_metrics.js +0 -9
  40. package/dest/orchestrator/tx-proving-state.d.ts +2 -2
  41. package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
  42. package/dest/orchestrator/tx-proving-state.js +2 -11
  43. package/dest/prover-client/factory.d.ts +3 -3
  44. package/dest/prover-client/factory.d.ts.map +1 -1
  45. package/dest/prover-client/index.d.ts +1 -1
  46. package/dest/prover-client/prover-client.d.ts +3 -3
  47. package/dest/prover-client/prover-client.d.ts.map +1 -1
  48. package/dest/prover-client/server-epoch-prover.d.ts +8 -7
  49. package/dest/prover-client/server-epoch-prover.d.ts.map +1 -1
  50. package/dest/prover-client/server-epoch-prover.js +2 -2
  51. package/dest/proving_broker/broker_prover_facade.d.ts +20 -20
  52. package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
  53. package/dest/proving_broker/broker_prover_facade.js +6 -12
  54. package/dest/proving_broker/config.d.ts +12 -8
  55. package/dest/proving_broker/config.d.ts.map +1 -1
  56. package/dest/proving_broker/config.js +8 -2
  57. package/dest/proving_broker/factory.d.ts +1 -1
  58. package/dest/proving_broker/fixtures.d.ts +3 -2
  59. package/dest/proving_broker/fixtures.d.ts.map +1 -1
  60. package/dest/proving_broker/fixtures.js +3 -2
  61. package/dest/proving_broker/index.d.ts +1 -1
  62. package/dest/proving_broker/proof_store/factory.d.ts +2 -2
  63. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts +1 -1
  64. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts.map +1 -1
  65. package/dest/proving_broker/proof_store/index.d.ts +1 -1
  66. package/dest/proving_broker/proof_store/inline_proof_store.d.ts +1 -1
  67. package/dest/proving_broker/proof_store/inline_proof_store.d.ts.map +1 -1
  68. package/dest/proving_broker/proof_store/proof_store.d.ts +1 -1
  69. package/dest/proving_broker/proving_agent.d.ts +1 -1
  70. package/dest/proving_broker/proving_agent.d.ts.map +1 -1
  71. package/dest/proving_broker/proving_agent_instrumentation.d.ts +1 -1
  72. package/dest/proving_broker/proving_agent_instrumentation.d.ts.map +1 -1
  73. package/dest/proving_broker/proving_broker.d.ts +2 -2
  74. package/dest/proving_broker/proving_broker.d.ts.map +1 -1
  75. package/dest/proving_broker/proving_broker.js +5 -1
  76. package/dest/proving_broker/proving_broker_database/memory.d.ts +3 -2
  77. package/dest/proving_broker/proving_broker_database/memory.d.ts.map +1 -1
  78. package/dest/proving_broker/proving_broker_database/persisted.d.ts +3 -2
  79. package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +1 -1
  80. package/dest/proving_broker/proving_broker_database/persisted.js +3 -2
  81. package/dest/proving_broker/proving_broker_database.d.ts +3 -2
  82. package/dest/proving_broker/proving_broker_database.d.ts.map +1 -1
  83. package/dest/proving_broker/proving_broker_instrumentation.d.ts +1 -1
  84. package/dest/proving_broker/proving_broker_instrumentation.d.ts.map +1 -1
  85. package/dest/proving_broker/proving_job_controller.d.ts +3 -2
  86. package/dest/proving_broker/proving_job_controller.d.ts.map +1 -1
  87. package/dest/proving_broker/proving_job_controller.js +2 -3
  88. package/dest/proving_broker/rpc.d.ts +4 -4
  89. package/dest/test/mock_proof_store.d.ts +3 -3
  90. package/dest/test/mock_proof_store.d.ts.map +1 -1
  91. package/dest/test/mock_prover.d.ts +3 -4
  92. package/dest/test/mock_prover.d.ts.map +1 -1
  93. package/dest/test/mock_prover.js +1 -1
  94. package/package.json +20 -17
  95. package/src/block-factory/light.ts +40 -43
  96. package/src/config.ts +1 -1
  97. package/src/light/index.ts +1 -0
  98. package/src/light/lightweight_checkpoint_builder.ts +198 -0
  99. package/src/mocks/fixtures.ts +7 -30
  100. package/src/mocks/test_context.ts +148 -177
  101. package/src/orchestrator/block-building-helpers.ts +125 -205
  102. package/src/orchestrator/block-proving-state.ts +103 -25
  103. package/src/orchestrator/checkpoint-proving-state.ts +24 -20
  104. package/src/orchestrator/epoch-proving-state.ts +9 -7
  105. package/src/orchestrator/orchestrator.ts +36 -68
  106. package/src/orchestrator/orchestrator_metrics.ts +1 -20
  107. package/src/orchestrator/tx-proving-state.ts +4 -18
  108. package/src/prover-client/factory.ts +6 -2
  109. package/src/prover-client/prover-client.ts +3 -2
  110. package/src/prover-client/server-epoch-prover.ts +6 -7
  111. package/src/proving_broker/broker_prover_facade.ts +23 -31
  112. package/src/proving_broker/config.ts +8 -1
  113. package/src/proving_broker/fixtures.ts +8 -3
  114. package/src/proving_broker/proving_broker.ts +5 -1
  115. package/src/proving_broker/proving_broker_database/memory.ts +2 -1
  116. package/src/proving_broker/proving_broker_database/persisted.ts +5 -4
  117. package/src/proving_broker/proving_broker_database.ts +2 -1
  118. package/src/proving_broker/proving_job_controller.ts +4 -4
  119. package/src/test/mock_prover.ts +1 -6
@@ -4,8 +4,8 @@ import type {
4
4
  NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
5
5
  RECURSIVE_PROOF_LENGTH,
6
6
  } from '@aztec/constants';
7
- import { sha256 } from '@aztec/foundation/crypto';
8
- import { Fr } from '@aztec/foundation/fields';
7
+ import { EpochNumber } from '@aztec/foundation/branded-types';
8
+ import { sha256 } from '@aztec/foundation/crypto/sha256';
9
9
  import { createLogger } from '@aztec/foundation/log';
10
10
  import { type PromiseWithResolvers, RunningPromise, promiseWithResolvers } from '@aztec/foundation/promise';
11
11
  import { truncate } from '@aztec/foundation/string';
@@ -130,7 +130,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
130
130
  id: ProvingJobId,
131
131
  type: T,
132
132
  inputs: ProvingJobInputsMap[T],
133
- epochNumber = 0,
133
+ epochNumber = EpochNumber.ZERO,
134
134
  signal?: AbortSignal,
135
135
  ): Promise<ProvingJobResultsMap[T]> {
136
136
  const { job: job, isEnqueued } = this.getOrCreateProvingJob(id, type, signal);
@@ -397,30 +397,22 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
397
397
 
398
398
  getAvmProof(
399
399
  inputs: AvmCircuitInputs,
400
- skipPublicInputsValidation?: boolean, // TODO(#14234)[Unconditional PIs validation]: remove this argument
401
400
  signal?: AbortSignal,
402
- epochNumber?: number,
401
+ epochNumber?: EpochNumber,
403
402
  ): Promise<ProofAndVerificationKey<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>> {
404
- this.log.info(`getAvmProof() called with skipPublicInputsValidation: ${skipPublicInputsValidation}`);
405
-
406
403
  return this.enqueueJob(
407
404
  this.generateId(ProvingRequestType.PUBLIC_VM, inputs, epochNumber),
408
405
  ProvingRequestType.PUBLIC_VM,
409
406
  inputs,
410
407
  epochNumber,
411
408
  signal,
412
- ).then(result => {
413
- // TODO(#14234)[Unconditional PIs validation]: Remove ".then()".
414
- // Override the default value of skipPublicInputsValidation potentially set in BBNativeRollupProver.getAvmProof().
415
- result.proof.proof[0] = skipPublicInputsValidation ? new Fr(1) : new Fr(0);
416
- return result;
417
- });
409
+ );
418
410
  }
419
411
 
420
412
  getBaseParityProof(
421
413
  inputs: ParityBasePrivateInputs,
422
414
  signal?: AbortSignal,
423
- epochNumber?: number,
415
+ epochNumber?: EpochNumber,
424
416
  ): Promise<PublicInputsAndRecursiveProof<ParityPublicInputs, typeof RECURSIVE_PROOF_LENGTH>> {
425
417
  return this.enqueueJob(
426
418
  this.generateId(ProvingRequestType.PARITY_BASE, inputs, epochNumber),
@@ -434,7 +426,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
434
426
  getTxMergeRollupProof(
435
427
  input: TxMergeRollupPrivateInputs,
436
428
  signal?: AbortSignal,
437
- epochNumber?: number,
429
+ epochNumber?: EpochNumber,
438
430
  ): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
439
431
  return this.enqueueJob(
440
432
  this.generateId(ProvingRequestType.TX_MERGE_ROLLUP, input, epochNumber),
@@ -448,7 +440,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
448
440
  getPublicChonkVerifierProof(
449
441
  inputs: PublicChonkVerifierPrivateInputs,
450
442
  signal?: AbortSignal,
451
- epochNumber?: number,
443
+ epochNumber?: EpochNumber,
452
444
  ): Promise<
453
445
  PublicInputsAndRecursiveProof<PublicChonkVerifierPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
454
446
  > {
@@ -464,7 +456,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
464
456
  getPrivateTxBaseRollupProof(
465
457
  baseRollupInput: PrivateTxBaseRollupPrivateInputs,
466
458
  signal?: AbortSignal,
467
- epochNumber?: number,
459
+ epochNumber?: EpochNumber,
468
460
  ): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
469
461
  return this.enqueueJob(
470
462
  this.generateId(ProvingRequestType.PRIVATE_TX_BASE_ROLLUP, baseRollupInput, epochNumber),
@@ -478,7 +470,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
478
470
  getPublicTxBaseRollupProof(
479
471
  inputs: PublicTxBaseRollupPrivateInputs,
480
472
  signal?: AbortSignal,
481
- epochNumber?: number,
473
+ epochNumber?: EpochNumber,
482
474
  ): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
483
475
  return this.enqueueJob(
484
476
  this.generateId(ProvingRequestType.PUBLIC_TX_BASE_ROLLUP, inputs, epochNumber),
@@ -492,7 +484,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
492
484
  getRootParityProof(
493
485
  inputs: ParityRootPrivateInputs,
494
486
  signal?: AbortSignal,
495
- epochNumber?: number,
487
+ epochNumber?: EpochNumber,
496
488
  ): Promise<PublicInputsAndRecursiveProof<ParityPublicInputs, typeof NESTED_RECURSIVE_PROOF_LENGTH>> {
497
489
  return this.enqueueJob(
498
490
  this.generateId(ProvingRequestType.PARITY_ROOT, inputs, epochNumber),
@@ -506,7 +498,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
506
498
  getBlockRootFirstRollupProof(
507
499
  input: BlockRootFirstRollupPrivateInputs,
508
500
  signal?: AbortSignal,
509
- epochNumber?: number,
501
+ epochNumber?: EpochNumber,
510
502
  ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
511
503
  return this.enqueueJob(
512
504
  this.generateId(ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP, input, epochNumber),
@@ -520,7 +512,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
520
512
  getBlockRootSingleTxFirstRollupProof(
521
513
  input: BlockRootSingleTxFirstRollupPrivateInputs,
522
514
  signal?: AbortSignal,
523
- epochNumber?: number,
515
+ epochNumber?: EpochNumber,
524
516
  ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
525
517
  return this.enqueueJob(
526
518
  this.generateId(ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP, input, epochNumber),
@@ -534,7 +526,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
534
526
  getBlockRootEmptyTxFirstRollupProof(
535
527
  input: BlockRootEmptyTxFirstRollupPrivateInputs,
536
528
  signal?: AbortSignal,
537
- epochNumber?: number,
529
+ epochNumber?: EpochNumber,
538
530
  ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
539
531
  return this.enqueueJob(
540
532
  this.generateId(ProvingRequestType.BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP, input, epochNumber),
@@ -548,7 +540,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
548
540
  getBlockRootRollupProof(
549
541
  input: BlockRootRollupPrivateInputs,
550
542
  signal?: AbortSignal,
551
- epochNumber?: number,
543
+ epochNumber?: EpochNumber,
552
544
  ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
553
545
  return this.enqueueJob(
554
546
  this.generateId(ProvingRequestType.BLOCK_ROOT_ROLLUP, input, epochNumber),
@@ -562,7 +554,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
562
554
  getBlockRootSingleTxRollupProof(
563
555
  input: BlockRootSingleTxRollupPrivateInputs,
564
556
  signal?: AbortSignal,
565
- epochNumber?: number,
557
+ epochNumber?: EpochNumber,
566
558
  ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
567
559
  return this.enqueueJob(
568
560
  this.generateId(ProvingRequestType.BLOCK_ROOT_SINGLE_TX_ROLLUP, input, epochNumber),
@@ -576,7 +568,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
576
568
  getBlockMergeRollupProof(
577
569
  input: BlockMergeRollupPrivateInputs,
578
570
  signal?: AbortSignal,
579
- epochNumber?: number,
571
+ epochNumber?: EpochNumber,
580
572
  ): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>> {
581
573
  return this.enqueueJob(
582
574
  this.generateId(ProvingRequestType.BLOCK_MERGE_ROLLUP, input, epochNumber),
@@ -590,7 +582,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
590
582
  getCheckpointRootRollupProof(
591
583
  input: CheckpointRootRollupPrivateInputs,
592
584
  signal?: AbortSignal,
593
- epochNumber?: number,
585
+ epochNumber?: EpochNumber,
594
586
  ): Promise<
595
587
  PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
596
588
  > {
@@ -606,7 +598,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
606
598
  getCheckpointRootSingleBlockRollupProof(
607
599
  input: CheckpointRootSingleBlockRollupPrivateInputs,
608
600
  signal?: AbortSignal,
609
- epochNumber?: number,
601
+ epochNumber?: EpochNumber,
610
602
  ): Promise<
611
603
  PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
612
604
  > {
@@ -622,7 +614,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
622
614
  getCheckpointPaddingRollupProof(
623
615
  input: CheckpointPaddingRollupPrivateInputs,
624
616
  signal?: AbortSignal,
625
- epochNumber?: number,
617
+ epochNumber?: EpochNumber,
626
618
  ): Promise<
627
619
  PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
628
620
  > {
@@ -638,7 +630,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
638
630
  getCheckpointMergeRollupProof(
639
631
  input: CheckpointMergeRollupPrivateInputs,
640
632
  signal?: AbortSignal,
641
- epochNumber?: number,
633
+ epochNumber?: EpochNumber,
642
634
  ): Promise<
643
635
  PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
644
636
  > {
@@ -654,7 +646,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
654
646
  getRootRollupProof(
655
647
  input: RootRollupPrivateInputs,
656
648
  signal?: AbortSignal,
657
- epochNumber?: number,
649
+ epochNumber?: EpochNumber,
658
650
  ): Promise<PublicInputsAndRecursiveProof<RootRollupPublicInputs, typeof RECURSIVE_PROOF_LENGTH>> {
659
651
  return this.enqueueJob(
660
652
  this.generateId(ProvingRequestType.ROOT_ROLLUP, input, epochNumber),
@@ -665,7 +657,7 @@ export class BrokerCircuitProverFacade implements ServerCircuitProver {
665
657
  );
666
658
  }
667
659
 
668
- private generateId(type: ProvingRequestType, inputs: { toBuffer(): Buffer }, epochNumber = 0) {
660
+ private generateId(type: ProvingRequestType, inputs: { toBuffer(): Buffer }, epochNumber = EpochNumber.ZERO) {
669
661
  const inputsHash = sha256(inputs.toBuffer());
670
662
  return makeProvingJobId(epochNumber, type, inputsHash.toString('hex'));
671
663
  }
@@ -1,4 +1,4 @@
1
- import { type L1ReaderConfig, l1ReaderConfigMappings } from '@aztec/ethereum';
1
+ import { type L1ReaderConfig, l1ReaderConfigMappings } from '@aztec/ethereum/l1-reader';
2
2
  import {
3
3
  type ConfigMappingsType,
4
4
  booleanConfigHelper,
@@ -98,6 +98,8 @@ export const ProverAgentConfig = z.object({
98
98
  proverTestDelayMs: z.number(),
99
99
  /** If using realistic delays, what percentage of realistic times to apply. */
100
100
  proverTestDelayFactor: z.number(),
101
+ /** The delay (ms) to inject during fake proof verification */
102
+ proverTestVerificationDelayMs: z.number().optional(),
101
103
  });
102
104
 
103
105
  export type ProverAgentConfig = z.infer<typeof ProverAgentConfig>;
@@ -146,4 +148,9 @@ export const proverAgentConfigMappings: ConfigMappingsType<ProverAgentConfig> =
146
148
  description: 'If using realistic delays, what percentage of realistic times to apply.',
147
149
  ...numberConfigHelper(1),
148
150
  },
151
+ proverTestVerificationDelayMs: {
152
+ env: 'PROVER_TEST_VERIFICATION_DELAY_MS',
153
+ description: 'The delay (ms) to inject during fake proof verification',
154
+ ...numberConfigHelper(10),
155
+ },
149
156
  };
@@ -1,9 +1,14 @@
1
- import { randomBytes } from '@aztec/foundation/crypto';
1
+ import { EpochNumber } from '@aztec/foundation/branded-types';
2
+ import { randomBytes } from '@aztec/foundation/crypto/random';
2
3
  import { type ProofUri, type ProvingJobId, makeProvingJobId } from '@aztec/stdlib/interfaces/server';
3
4
  import { ProvingRequestType } from '@aztec/stdlib/proofs';
4
5
 
5
- export function makeRandomProvingJobId(epochNumber?: number): ProvingJobId {
6
- return makeProvingJobId(epochNumber ?? 1, ProvingRequestType.PARITY_BASE, randomBytes(8).toString('hex'));
6
+ export function makeRandomProvingJobId(epochNumber?: EpochNumber): ProvingJobId {
7
+ return makeProvingJobId(
8
+ epochNumber ?? EpochNumber(1),
9
+ ProvingRequestType.PARITY_BASE,
10
+ randomBytes(8).toString('hex'),
11
+ );
7
12
  }
8
13
 
9
14
  export function makeInputsUri(): ProofUri {
@@ -1,3 +1,4 @@
1
+ import { EpochNumber } from '@aztec/foundation/branded-types';
1
2
  import { createLogger } from '@aztec/foundation/log';
2
3
  import { type PromiseWithResolvers, RunningPromise, promiseWithResolvers } from '@aztec/foundation/promise';
3
4
  import { PriorityMemoryQueue } from '@aztec/foundation/queue';
@@ -301,6 +302,7 @@ export class ProvingBroker implements ProvingJobProducer, ProvingJobConsumer, Tr
301
302
  this.resultsCache.delete(id);
302
303
  this.inProgress.delete(id);
303
304
  this.retries.delete(id);
305
+ this.enqueuedAt.delete(id);
304
306
  }
305
307
  }
306
308
 
@@ -353,6 +355,8 @@ export class ProvingBroker implements ProvingJobProducer, ProvingJobConsumer, Tr
353
355
  const enqueuedAt = this.enqueuedAt.get(job.id);
354
356
  if (enqueuedAt) {
355
357
  this.instrumentation.recordJobWait(job.type, enqueuedAt);
358
+ // we can clear this flag now.
359
+ this.enqueuedAt.delete(job.id);
356
360
  }
357
361
 
358
362
  return { job, time };
@@ -567,7 +571,7 @@ export class ProvingBroker implements ProvingJobProducer, ProvingJobConsumer, Tr
567
571
  this.reEnqueueExpiredJobs();
568
572
  const oldestEpochToKeep = this.oldestEpochToKeep();
569
573
  if (oldestEpochToKeep > 0) {
570
- await this.database.deleteAllProvingJobsOlderThanEpoch(oldestEpochToKeep);
574
+ await this.database.deleteAllProvingJobsOlderThanEpoch(EpochNumber(oldestEpochToKeep));
571
575
  this.logger.trace(`Deleted all epochs older than ${oldestEpochToKeep}`);
572
576
  }
573
577
  }
@@ -1,3 +1,4 @@
1
+ import { EpochNumber } from '@aztec/foundation/branded-types';
1
2
  import {
2
3
  type ProofUri,
3
4
  type ProvingJob,
@@ -43,7 +44,7 @@ export class InMemoryBrokerDatabase implements ProvingBrokerDatabase {
43
44
  return Promise.resolve();
44
45
  }
45
46
 
46
- deleteAllProvingJobsOlderThanEpoch(epochNumber: number): Promise<void> {
47
+ deleteAllProvingJobsOlderThanEpoch(epochNumber: EpochNumber): Promise<void> {
47
48
  const toDelete = [
48
49
  ...Array.from(this.jobs.keys()).filter(x => getEpochFromProvingJobId(x) < epochNumber),
49
50
  ...Array.from(this.results.keys()).filter(x => getEpochFromProvingJobId(x) < epochNumber),
@@ -1,3 +1,4 @@
1
+ import { EpochNumber } from '@aztec/foundation/branded-types';
1
2
  import { jsonParseWithSchema, jsonStringify } from '@aztec/foundation/json-rpc';
2
3
  import { type Logger, createLogger } from '@aztec/foundation/log';
3
4
  import { BatchQueue } from '@aztec/foundation/queue';
@@ -104,7 +105,7 @@ export class KVBrokerDatabase implements ProvingBrokerDatabase {
104
105
  const jobsToAdd = items.filter((item): item is ProvingJob => 'id' in item);
105
106
  const resultsToAdd = items.filter((item): item is [ProvingJobId, ProvingJobSettledResult] => Array.isArray(item));
106
107
 
107
- const db = await this.getEpochDatabase(epochNumber);
108
+ const db = await this.getEpochDatabase(EpochNumber(epochNumber));
108
109
  await db.batchWrite(jobsToAdd, resultsToAdd);
109
110
  }
110
111
 
@@ -164,8 +165,8 @@ export class KVBrokerDatabase implements ProvingBrokerDatabase {
164
165
  }
165
166
  }
166
167
 
167
- async deleteAllProvingJobsOlderThanEpoch(epochNumber: number): Promise<void> {
168
- const oldEpochs = Array.from(this.epochs.keys()).filter(e => e < epochNumber);
168
+ async deleteAllProvingJobsOlderThanEpoch(epochNumber: EpochNumber): Promise<void> {
169
+ const oldEpochs = Array.from(this.epochs.keys()).filter(e => e < Number(epochNumber));
169
170
  for (const old of oldEpochs) {
170
171
  const db = this.epochs.get(old);
171
172
  if (!db) {
@@ -196,7 +197,7 @@ export class KVBrokerDatabase implements ProvingBrokerDatabase {
196
197
  return this.batchQueue.put([id, { status: 'fulfilled', value }], getEpochFromProvingJobId(id));
197
198
  }
198
199
 
199
- private async getEpochDatabase(epochNumber: number): Promise<SingleEpochDatabase> {
200
+ private async getEpochDatabase(epochNumber: EpochNumber): Promise<SingleEpochDatabase> {
200
201
  let epochDb = this.epochs.get(epochNumber);
201
202
  if (!epochDb) {
202
203
  const newEpochDirectory = join(this.config.dataDirectory!, epochNumber.toString());
@@ -1,3 +1,4 @@
1
+ import { EpochNumber } from '@aztec/foundation/branded-types';
1
2
  import type { ProofUri, ProvingJob, ProvingJobId, ProvingJobSettledResult } from '@aztec/stdlib/interfaces/server';
2
3
 
3
4
  /**
@@ -14,7 +15,7 @@ export interface ProvingBrokerDatabase {
14
15
  * Deletes all proving jobs belonging to epochs older than the given epoch
15
16
  * @param epochNumber - The epoch number beyond which jobs should be deleted
16
17
  */
17
- deleteAllProvingJobsOlderThanEpoch(epochNumber: number): Promise<void>;
18
+ deleteAllProvingJobsOlderThanEpoch(epochNumber: EpochNumber): Promise<void>;
18
19
 
19
20
  /**
20
21
  * Returns an iterator over all saved proving jobs
@@ -1,4 +1,5 @@
1
- import { randomBytes } from '@aztec/foundation/crypto';
1
+ import { EpochNumber } from '@aztec/foundation/branded-types';
2
+ import { randomBytes } from '@aztec/foundation/crypto/random';
2
3
  import { AbortError } from '@aztec/foundation/error';
3
4
  import { createLogger } from '@aztec/foundation/log';
4
5
  import type {
@@ -24,7 +25,7 @@ export class ProvingJobController {
24
25
  constructor(
25
26
  private jobId: ProvingJobId,
26
27
  private inputs: ProvingJobInputs,
27
- private epochNumber: number,
28
+ private epochNumber: EpochNumber,
28
29
  private startedAt: number,
29
30
  private circuitProver: ServerCircuitProver,
30
31
  private onComplete: () => void,
@@ -124,8 +125,7 @@ export class ProvingJobController {
124
125
  const signal = this.abortController.signal;
125
126
  switch (type) {
126
127
  case ProvingRequestType.PUBLIC_VM: {
127
- // TODO(#14234)[Unconditional PIs validation]: Remove argument "undefined".
128
- return await this.circuitProver.getAvmProof(inputs, undefined, signal, this.epochNumber);
128
+ return await this.circuitProver.getAvmProof(inputs, signal, this.epochNumber);
129
129
  }
130
130
 
131
131
  case ProvingRequestType.PUBLIC_CHONK_VERIFIER: {
@@ -105,12 +105,7 @@ export class TestBroker implements ProvingJobProducer {
105
105
  export class MockProver implements ServerCircuitProver {
106
106
  constructor() {}
107
107
 
108
- getAvmProof(
109
- _inputs: AvmCircuitInputs,
110
- _skipPublicInputsValidation?: boolean, // TODO(#14234)[Unconditional PIs validation]: Remove.
111
- _signal?: AbortSignal,
112
- _epochNumber?: number,
113
- ) {
108
+ getAvmProof(_inputs: AvmCircuitInputs, _signal?: AbortSignal, _epochNumber?: number) {
114
109
  return Promise.resolve(
115
110
  makeProofAndVerificationKey(
116
111
  makeEmptyRecursiveProof(AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED),