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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/dest/block-factory/index.d.ts +2 -0
  2. package/dest/block-factory/index.d.ts.map +1 -0
  3. package/dest/block-factory/light.d.ts +38 -0
  4. package/dest/block-factory/light.d.ts.map +1 -0
  5. package/dest/block-factory/light.js +106 -0
  6. package/dest/config.d.ts +8 -8
  7. package/dest/config.d.ts.map +1 -1
  8. package/dest/config.js +12 -2
  9. package/dest/index.d.ts +1 -1
  10. package/dest/light/index.d.ts +2 -0
  11. package/dest/light/index.d.ts.map +1 -0
  12. package/dest/light/index.js +1 -0
  13. package/dest/light/lightweight_checkpoint_builder.d.ts +43 -0
  14. package/dest/light/lightweight_checkpoint_builder.d.ts.map +1 -0
  15. package/dest/light/lightweight_checkpoint_builder.js +183 -0
  16. package/dest/mocks/fixtures.d.ts +8 -8
  17. package/dest/mocks/fixtures.d.ts.map +1 -1
  18. package/dest/mocks/fixtures.js +34 -16
  19. package/dest/mocks/test_context.d.ts +42 -32
  20. package/dest/mocks/test_context.d.ts.map +1 -1
  21. package/dest/mocks/test_context.js +144 -87
  22. package/dest/orchestrator/block-building-helpers.d.ts +37 -30
  23. package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
  24. package/dest/orchestrator/block-building-helpers.js +170 -189
  25. package/dest/orchestrator/block-proving-state.d.ts +70 -48
  26. package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
  27. package/dest/orchestrator/block-proving-state.js +282 -177
  28. package/dest/orchestrator/checkpoint-proving-state.d.ts +63 -0
  29. package/dest/orchestrator/checkpoint-proving-state.d.ts.map +1 -0
  30. package/dest/orchestrator/checkpoint-proving-state.js +210 -0
  31. package/dest/orchestrator/epoch-proving-state.d.ts +41 -27
  32. package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
  33. package/dest/orchestrator/epoch-proving-state.js +143 -73
  34. package/dest/orchestrator/index.d.ts +1 -1
  35. package/dest/orchestrator/orchestrator.d.ts +37 -34
  36. package/dest/orchestrator/orchestrator.d.ts.map +1 -1
  37. package/dest/orchestrator/orchestrator.js +788 -277
  38. package/dest/orchestrator/orchestrator_metrics.d.ts +1 -1
  39. package/dest/orchestrator/orchestrator_metrics.d.ts.map +1 -1
  40. package/dest/orchestrator/orchestrator_metrics.js +2 -6
  41. package/dest/orchestrator/tx-proving-state.d.ts +15 -12
  42. package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
  43. package/dest/orchestrator/tx-proving-state.js +27 -44
  44. package/dest/prover-client/factory.d.ts +3 -3
  45. package/dest/prover-client/factory.d.ts.map +1 -1
  46. package/dest/prover-client/index.d.ts +1 -1
  47. package/dest/prover-client/prover-client.d.ts +5 -5
  48. package/dest/prover-client/prover-client.d.ts.map +1 -1
  49. package/dest/prover-client/prover-client.js +6 -5
  50. package/dest/prover-client/server-epoch-prover.d.ts +16 -12
  51. package/dest/prover-client/server-epoch-prover.d.ts.map +1 -1
  52. package/dest/prover-client/server-epoch-prover.js +11 -11
  53. package/dest/proving_broker/broker_prover_facade.d.ts +25 -17
  54. package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
  55. package/dest/proving_broker/broker_prover_facade.js +59 -40
  56. package/dest/proving_broker/config.d.ts +19 -10
  57. package/dest/proving_broker/config.d.ts.map +1 -1
  58. package/dest/proving_broker/config.js +23 -6
  59. package/dest/proving_broker/factory.d.ts +2 -2
  60. package/dest/proving_broker/factory.d.ts.map +1 -1
  61. package/dest/proving_broker/factory.js +5 -1
  62. package/dest/proving_broker/fixtures.d.ts +3 -2
  63. package/dest/proving_broker/fixtures.d.ts.map +1 -1
  64. package/dest/proving_broker/fixtures.js +3 -2
  65. package/dest/proving_broker/index.d.ts +1 -1
  66. package/dest/proving_broker/proof_store/factory.d.ts +2 -2
  67. package/dest/proving_broker/proof_store/factory.js +1 -1
  68. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts +1 -1
  69. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts.map +1 -1
  70. package/dest/proving_broker/proof_store/gcs_proof_store.js +1 -0
  71. package/dest/proving_broker/proof_store/index.d.ts +2 -1
  72. package/dest/proving_broker/proof_store/index.d.ts.map +1 -1
  73. package/dest/proving_broker/proof_store/index.js +1 -0
  74. package/dest/proving_broker/proof_store/inline_proof_store.d.ts +1 -1
  75. package/dest/proving_broker/proof_store/inline_proof_store.d.ts.map +1 -1
  76. package/dest/proving_broker/proof_store/proof_store.d.ts +1 -1
  77. package/dest/proving_broker/proving_agent.d.ts +6 -11
  78. package/dest/proving_broker/proving_agent.d.ts.map +1 -1
  79. package/dest/proving_broker/proving_agent.js +84 -63
  80. package/dest/proving_broker/proving_broker.d.ts +13 -4
  81. package/dest/proving_broker/proving_broker.d.ts.map +1 -1
  82. package/dest/proving_broker/proving_broker.js +40 -33
  83. package/dest/proving_broker/proving_broker_database/memory.d.ts +3 -2
  84. package/dest/proving_broker/proving_broker_database/memory.d.ts.map +1 -1
  85. package/dest/proving_broker/proving_broker_database/memory.js +1 -1
  86. package/dest/proving_broker/proving_broker_database/persisted.d.ts +5 -3
  87. package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +1 -1
  88. package/dest/proving_broker/proving_broker_database/persisted.js +401 -11
  89. package/dest/proving_broker/proving_broker_database.d.ts +3 -2
  90. package/dest/proving_broker/proving_broker_database.d.ts.map +1 -1
  91. package/dest/proving_broker/proving_broker_instrumentation.d.ts +1 -1
  92. package/dest/proving_broker/proving_broker_instrumentation.d.ts.map +1 -1
  93. package/dest/proving_broker/proving_broker_instrumentation.js +11 -35
  94. package/dest/proving_broker/proving_job_controller.d.ts +9 -9
  95. package/dest/proving_broker/proving_job_controller.d.ts.map +1 -1
  96. package/dest/proving_broker/proving_job_controller.js +87 -60
  97. package/dest/proving_broker/rpc.d.ts +4 -6
  98. package/dest/proving_broker/rpc.d.ts.map +1 -1
  99. package/dest/proving_broker/rpc.js +1 -4
  100. package/dest/test/mock_proof_store.d.ts +9 -0
  101. package/dest/test/mock_proof_store.d.ts.map +1 -0
  102. package/dest/test/mock_proof_store.js +10 -0
  103. package/dest/test/mock_prover.d.ts +23 -17
  104. package/dest/test/mock_prover.d.ts.map +1 -1
  105. package/dest/test/mock_prover.js +38 -20
  106. package/package.json +34 -31
  107. package/src/block-factory/index.ts +1 -0
  108. package/src/block-factory/light.ts +136 -0
  109. package/src/config.ts +25 -9
  110. package/src/light/index.ts +1 -0
  111. package/src/light/lightweight_checkpoint_builder.ts +249 -0
  112. package/src/mocks/fixtures.ts +44 -39
  113. package/src/mocks/test_context.ts +218 -116
  114. package/src/orchestrator/block-building-helpers.ts +258 -334
  115. package/src/orchestrator/block-proving-state.ts +325 -231
  116. package/src/orchestrator/checkpoint-proving-state.ts +303 -0
  117. package/src/orchestrator/epoch-proving-state.ts +191 -113
  118. package/src/orchestrator/orchestrator.ts +587 -318
  119. package/src/orchestrator/orchestrator_metrics.ts +2 -6
  120. package/src/orchestrator/tx-proving-state.ts +48 -66
  121. package/src/prover-client/factory.ts +6 -2
  122. package/src/prover-client/prover-client.ts +20 -25
  123. package/src/prover-client/server-epoch-prover.ts +40 -22
  124. package/src/proving_broker/broker_prover_facade.ts +206 -128
  125. package/src/proving_broker/config.ts +25 -7
  126. package/src/proving_broker/factory.ts +2 -1
  127. package/src/proving_broker/fixtures.ts +8 -3
  128. package/src/proving_broker/proof_store/factory.ts +1 -1
  129. package/src/proving_broker/proof_store/gcs_proof_store.ts +5 -1
  130. package/src/proving_broker/proof_store/index.ts +1 -0
  131. package/src/proving_broker/proof_store/inline_proof_store.ts +1 -1
  132. package/src/proving_broker/proving_agent.ts +90 -64
  133. package/src/proving_broker/proving_broker.ts +57 -41
  134. package/src/proving_broker/proving_broker_database/memory.ts +3 -2
  135. package/src/proving_broker/proving_broker_database/persisted.ts +29 -13
  136. package/src/proving_broker/proving_broker_database.ts +2 -1
  137. package/src/proving_broker/proving_broker_instrumentation.ts +10 -35
  138. package/src/proving_broker/proving_job_controller.ts +92 -81
  139. package/src/proving_broker/rpc.ts +1 -6
  140. package/src/test/mock_proof_store.ts +14 -0
  141. package/src/test/mock_prover.ts +156 -64
  142. package/dest/bin/get-proof-inputs.d.ts +0 -2
  143. package/dest/bin/get-proof-inputs.d.ts.map +0 -1
  144. package/dest/bin/get-proof-inputs.js +0 -51
  145. package/dest/block_builder/index.d.ts +0 -6
  146. package/dest/block_builder/index.d.ts.map +0 -1
  147. package/dest/block_builder/light.d.ts +0 -33
  148. package/dest/block_builder/light.d.ts.map +0 -1
  149. package/dest/block_builder/light.js +0 -82
  150. package/dest/proving_broker/proving_agent_instrumentation.d.ts +0 -8
  151. package/dest/proving_broker/proving_agent_instrumentation.d.ts.map +0 -1
  152. package/dest/proving_broker/proving_agent_instrumentation.js +0 -16
  153. package/src/bin/get-proof-inputs.ts +0 -59
  154. package/src/block_builder/index.ts +0 -6
  155. package/src/block_builder/light.ts +0 -101
  156. package/src/proving_broker/proving_agent_instrumentation.ts +0 -21
  157. /package/dest/{block_builder → block-factory}/index.js +0 -0
@@ -1,17 +1,9 @@
1
- function _ts_decorate(decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- }
1
+ import { AbortError } from '@aztec/foundation/error';
7
2
  import { createLogger } from '@aztec/foundation/log';
8
3
  import { RunningPromise } from '@aztec/foundation/running-promise';
9
4
  import { truncate } from '@aztec/foundation/string';
10
- import { Timer } from '@aztec/foundation/timer';
11
5
  import { ProvingError } from '@aztec/stdlib/errors';
12
6
  import { ProvingRequestType } from '@aztec/stdlib/proofs';
13
- import { getTelemetryClient, trackSpan } from '@aztec/telemetry-client';
14
- import { ProvingAgentInstrumentation } from './proving_agent_instrumentation.js';
15
7
  import { ProvingJobController, ProvingJobControllerStatus } from './proving_job_controller.js';
16
8
  /**
17
9
  * A helper class that encapsulates a circuit prover and connects it to a job source.
@@ -24,40 +16,13 @@ import { ProvingJobController, ProvingJobControllerStatus } from './proving_job_
24
16
  log;
25
17
  currentJobController;
26
18
  runningPromise;
27
- instrumentation;
28
- idleTimer;
29
- tracer;
30
- constructor(/** The source of proving jobs */ broker, /** Database holding proof inputs and outputs */ proofStore, /** The prover implementation to defer jobs to */ circuitProver, /** Optional list of allowed proof types to build */ proofAllowList = [], /** How long to wait between jobs */ pollIntervalMs = 1000, /** A telemetry client through which to emit metrics */ client = getTelemetryClient(), log = createLogger('prover-client:proving-agent')){
19
+ constructor(/** The source of proving jobs */ broker, /** Database holding proof inputs and outputs */ proofStore, /** The prover implementation to defer jobs to */ circuitProver, /** Optional list of allowed proof types to build */ proofAllowList = [], /** How long to wait between jobs */ pollIntervalMs = 1000, log = createLogger('prover-client:proving-agent')){
31
20
  this.broker = broker;
32
21
  this.proofStore = proofStore;
33
22
  this.circuitProver = circuitProver;
34
23
  this.proofAllowList = proofAllowList;
35
24
  this.pollIntervalMs = pollIntervalMs;
36
25
  this.log = log;
37
- this.handleJobResult = async (jobId, type, err, result)=>{
38
- let maybeJob;
39
- if (err) {
40
- const retry = err.name === ProvingError.NAME ? err.retry : false;
41
- this.log.error(`Job id=${jobId} type=${ProvingRequestType[type]} failed err=${err.message} retry=${retry}`, err);
42
- maybeJob = await this.broker.reportProvingJobError(jobId, err.message, retry, {
43
- allowList: this.proofAllowList
44
- });
45
- } else if (result) {
46
- const outputUri = await this.proofStore.saveProofOutput(jobId, type, result);
47
- this.log.info(`Job id=${jobId} type=${ProvingRequestType[type]} completed outputUri=${truncate(outputUri)}`);
48
- maybeJob = await this.broker.reportProvingJobSuccess(jobId, outputUri, {
49
- allowList: this.proofAllowList
50
- });
51
- }
52
- if (maybeJob) {
53
- const { job, time } = maybeJob;
54
- await this.startJob(job, time);
55
- } else {
56
- this.idleTimer = new Timer();
57
- }
58
- };
59
- this.tracer = client.getTracer('ProvingAgent');
60
- this.instrumentation = new ProvingAgentInstrumentation(client);
61
26
  this.runningPromise = new RunningPromise(this.work.bind(this), this.log, this.pollIntervalMs);
62
27
  }
63
28
  setCircuitProver(circuitProver) {
@@ -67,42 +32,78 @@ import { ProvingJobController, ProvingJobControllerStatus } from './proving_job_
67
32
  return this.runningPromise?.isRunning() ?? false;
68
33
  }
69
34
  start() {
70
- this.idleTimer = new Timer();
71
35
  this.runningPromise.start();
72
36
  }
73
37
  async stop() {
74
38
  this.currentJobController?.abort();
75
39
  await this.runningPromise.stop();
76
40
  }
41
+ getStatus() {
42
+ if (this.currentJobController) {
43
+ return {
44
+ status: 'proving',
45
+ jobId: this.currentJobController.getJobId(),
46
+ proofType: this.currentJobController.getProofType(),
47
+ startedAtISO: new Date(this.currentJobController.getStartedAt()).toISOString()
48
+ };
49
+ }
50
+ return this.runningPromise.isRunning() ? {
51
+ status: 'running'
52
+ } : {
53
+ status: 'stopped'
54
+ };
55
+ }
77
56
  async work() {
78
- // every tick we need to
79
- // (1) either do a heartbeat, telling the broker that we're working
80
- // (2) get a new job
81
- // If during (1) the broker returns a new job that means we can cancel the current job and start the new one
57
+ // every tick we need to take one of the following actions:
58
+ // 1. send a hearbeat to the broker that we're working on some job
59
+ // 2. if the job is complete, send its result to the broker
60
+ // 3. get a job from the broker
61
+ // Any one of these actions could give us a new job to work on. If that happens we abort the current job.
62
+ //
63
+ // This loop gets triggered in one of two ways:
64
+ // - either on a timer (see pollIntervalMs)
65
+ // - or when a proof completes
82
66
  let maybeJob;
83
- if (this.currentJobController?.getStatus() === ProvingJobControllerStatus.PROVING) {
84
- maybeJob = await this.broker.reportProvingJobProgress(this.currentJobController.getJobId(), this.currentJobController.getStartedAt(), {
85
- allowList: this.proofAllowList
86
- });
67
+ if (this.currentJobController) {
68
+ const status = this.currentJobController.getStatus();
69
+ const jobId = this.currentJobController.getJobId();
70
+ const proofType = this.currentJobController.getProofType();
71
+ const startedAt = this.currentJobController.getStartedAt();
72
+ const result = this.currentJobController.getResult();
73
+ if (status === ProvingJobControllerStatus.RUNNING) {
74
+ maybeJob = await this.broker.reportProvingJobProgress(jobId, startedAt, {
75
+ allowList: this.proofAllowList
76
+ });
77
+ } else if (status === ProvingJobControllerStatus.DONE) {
78
+ if (result) {
79
+ maybeJob = await this.reportResult(jobId, proofType, result);
80
+ } else {
81
+ this.log.warn(`Job controller for job ${this.currentJobController.getJobId()} is done but doesn't have a result`, {
82
+ jobId
83
+ });
84
+ maybeJob = await this.reportResult(jobId, proofType, new ProvingError('No result found after proving', undefined, /* retry */ true));
85
+ }
86
+ this.currentJobController = undefined;
87
+ } else {
88
+ // IDLE status should not be seen because a job is started as soon as it is created
89
+ this.log.warn(`Idle job controller for job: ${this.currentJobController.getJobId()}. Skipping main loop work`, {
90
+ jobId: this.currentJobController.getJobId()
91
+ });
92
+ return;
93
+ }
87
94
  } else {
88
95
  maybeJob = await this.broker.getProvingJob({
89
96
  allowList: this.proofAllowList
90
97
  });
91
98
  }
92
- if (!maybeJob) {
93
- return;
94
- }
95
- if (this.idleTimer) {
96
- this.instrumentation.recordIdleTime(this.idleTimer);
99
+ if (maybeJob) {
100
+ await this.startJob(maybeJob);
97
101
  }
98
- this.idleTimer = undefined;
99
- const { job, time } = maybeJob;
100
- await this.startJob(job, time);
101
102
  }
102
- async startJob(job, startedAt) {
103
+ async startJob({ job, time: startedAt }) {
103
104
  let abortedProofJobId;
104
105
  let abortedProofName;
105
- if (this.currentJobController?.getStatus() === ProvingJobControllerStatus.PROVING) {
106
+ if (this.currentJobController?.getStatus() === ProvingJobControllerStatus.RUNNING) {
106
107
  abortedProofJobId = this.currentJobController.getJobId();
107
108
  abortedProofName = this.currentJobController.getProofTypeName();
108
109
  this.currentJobController?.abort();
@@ -110,16 +111,20 @@ import { ProvingJobController, ProvingJobControllerStatus } from './proving_job_
110
111
  let inputs;
111
112
  try {
112
113
  inputs = await this.proofStore.getProofInput(job.inputsUri);
113
- } catch (err) {
114
+ } catch {
114
115
  const maybeJob = await this.broker.reportProvingJobError(job.id, 'Failed to load proof inputs', true, {
115
116
  allowList: this.proofAllowList
116
117
  });
117
118
  if (maybeJob) {
118
- return this.startJob(maybeJob.job, maybeJob.time);
119
+ return this.startJob(maybeJob);
119
120
  }
120
121
  return;
121
122
  }
122
- this.currentJobController = new ProvingJobController(job.id, inputs, job.epochNumber, startedAt, this.circuitProver, this.handleJobResult);
123
+ this.currentJobController = new ProvingJobController(job.id, inputs, job.epochNumber, startedAt, this.circuitProver, ()=>{
124
+ // trigger a run of the main work loop when proving completes
125
+ // no need to await this here. The controller will stay alive (in DONE state) until the result is send to the broker
126
+ void this.runningPromise.trigger();
127
+ });
123
128
  if (abortedProofJobId) {
124
129
  this.log.info(`Aborting job id=${abortedProofJobId} type=${abortedProofName} to start new job id=${this.currentJobController.getJobId()} type=${this.currentJobController.getProofTypeName()} inputsUri=${truncate(job.inputsUri)}`);
125
130
  } else {
@@ -127,8 +132,24 @@ import { ProvingJobController, ProvingJobControllerStatus } from './proving_job_
127
132
  }
128
133
  this.currentJobController.start();
129
134
  }
130
- handleJobResult;
135
+ async reportResult(jobId, type, result) {
136
+ let maybeJob;
137
+ if (result instanceof AbortError) {
138
+ // no-op
139
+ this.log.warn(`Job id=${jobId} was aborted. Not reporting result back to broker`, result);
140
+ } else if (result instanceof Error) {
141
+ const retry = result.name === ProvingError.NAME ? result.retry : false;
142
+ this.log.error(`Job id=${jobId} type=${ProvingRequestType[type]} failed err=${result.message} retry=${retry}`, result);
143
+ maybeJob = await this.broker.reportProvingJobError(jobId, result.message, retry, {
144
+ allowList: this.proofAllowList
145
+ });
146
+ } else {
147
+ const outputUri = await this.proofStore.saveProofOutput(jobId, type, result);
148
+ this.log.info(`Job id=${jobId} type=${ProvingRequestType[type]} completed outputUri=${truncate(outputUri)}`);
149
+ maybeJob = await this.broker.reportProvingJobSuccess(jobId, outputUri, {
150
+ allowList: this.proofAllowList
151
+ });
152
+ }
153
+ return maybeJob;
154
+ }
131
155
  }
132
- _ts_decorate([
133
- trackSpan('ProvingAgent.safeWork')
134
- ], ProvingAgent.prototype, "work", null);
@@ -1,4 +1,5 @@
1
- import type { GetProvingJobResponse, ProofUri, ProvingJob, ProvingJobConsumer, ProvingJobFilter, ProvingJobId, ProvingJobProducer, ProvingJobStatus } from '@aztec/stdlib/interfaces/server';
1
+ import { type GetProvingJobResponse, type ProofUri, type ProvingJob, type ProvingJobConsumer, type ProvingJobFilter, type ProvingJobId, type ProvingJobProducer, type ProvingJobStatus } from '@aztec/stdlib/interfaces/server';
2
+ import { ProvingRequestType } from '@aztec/stdlib/proofs';
2
3
  import { type TelemetryClient, type Traceable, type Tracer } from '@aztec/telemetry-client';
3
4
  import { type ProverBrokerConfig } from './config.js';
4
5
  import type { ProvingBrokerDatabase } from './proving_broker_database.js';
@@ -27,7 +28,7 @@ export declare class ProvingBroker implements ProvingJobProducer, ProvingJobCons
27
28
  /**
28
29
  * The broker keeps track of the highest epoch its seen.
29
30
  * This information is used for garbage collection: once it reaches the next epoch, it can start pruning the database of old state.
30
- * It is important that this value is initialised to zero. This ensures that we don't delete any old jobs until the current
31
+ * It is important that this value is initialized to zero. This ensures that we don't delete any old jobs until the current
31
32
  * process instance receives a job request informing it of the actual current highest epoch
32
33
  * Example:
33
34
  * proving epoch 11 - the broker will wipe all jobs for epochs 9 and lower
@@ -37,7 +38,7 @@ export declare class ProvingBroker implements ProvingJobProducer, ProvingJobCons
37
38
  private epochHeight;
38
39
  private maxEpochsToKeepResultsFor;
39
40
  private started;
40
- constructor(database: ProvingBrokerDatabase, { proverBrokerJobTimeoutMs, proverBrokerPollIntervalMs, proverBrokerJobMaxRetries, proverBrokerMaxEpochsToKeepResultsFor, }?: Required<Pick<ProverBrokerConfig, 'proverBrokerJobTimeoutMs' | 'proverBrokerPollIntervalMs' | 'proverBrokerJobMaxRetries' | 'proverBrokerMaxEpochsToKeepResultsFor'>>, client?: TelemetryClient, logger?: import("@aztec/foundation/log").Logger);
41
+ constructor(database: ProvingBrokerDatabase, { proverBrokerJobTimeoutMs, proverBrokerPollIntervalMs, proverBrokerJobMaxRetries, proverBrokerMaxEpochsToKeepResultsFor }?: Required<Pick<ProverBrokerConfig, 'proverBrokerJobTimeoutMs' | 'proverBrokerPollIntervalMs' | 'proverBrokerJobMaxRetries' | 'proverBrokerMaxEpochsToKeepResultsFor'>>, client?: TelemetryClient, logger?: import("@aztec/foundation/log").Logger);
41
42
  private measureQueueDepth;
42
43
  private countActiveJobs;
43
44
  start(): Promise<void>;
@@ -61,4 +62,12 @@ export declare class ProvingBroker implements ProvingJobProducer, ProvingJobCons
61
62
  private isJobStale;
62
63
  private oldestEpochToKeep;
63
64
  }
64
- //# sourceMappingURL=proving_broker.d.ts.map
65
+ /**
66
+ * Relative priority of each proof type. Proofs higher up on the list are more important and should be prioritized
67
+ * over proofs lower on the list.
68
+ *
69
+ * The aim is that this will speed up block proving as the closer we get to a block's root proof the more likely it
70
+ * is to get picked up by agents
71
+ */
72
+ export declare const PROOF_TYPES_IN_PRIORITY_ORDER: ProvingRequestType[];
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmluZ19icm9rZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92aW5nX2Jyb2tlci9wcm92aW5nX2Jyb2tlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEVBQ0wsS0FBSyxxQkFBcUIsRUFDMUIsS0FBSyxRQUFRLEVBQ2IsS0FBSyxVQUFVLEVBQ2YsS0FBSyxrQkFBa0IsRUFDdkIsS0FBSyxnQkFBZ0IsRUFDckIsS0FBSyxZQUFZLEVBQ2pCLEtBQUssa0JBQWtCLEVBRXZCLEtBQUssZ0JBQWdCLEVBRXRCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFFLEtBQUssU0FBUyxFQUFFLEtBQUssTUFBTSxFQUFzQixNQUFNLHlCQUF5QixDQUFDO0FBSWhILE9BQU8sRUFBRSxLQUFLLGtCQUFrQixFQUE2QixNQUFNLGFBQWEsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBVzFFOzs7R0FHRztBQUNILHFCQUFhLGFBQWMsWUFBVyxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxTQUFTOztJQStFbkYsT0FBTyxDQUFDLFFBQVE7SUFnQmhCLE9BQU8sQ0FBQyxNQUFNO0lBOUZoQixPQUFPLENBQUMsTUFBTSxDQTZCWjtJQUlGLE9BQU8sQ0FBQyxTQUFTLENBQXVDO0lBRXhELE9BQU8sQ0FBQyxZQUFZLENBQW9EO0lBR3hFLE9BQU8sQ0FBQyxVQUFVLENBQWtDO0lBTXBELE9BQU8sQ0FBQyxVQUFVLENBQStDO0lBR2pFLE9BQU8sQ0FBQyxPQUFPLENBQW1DO0lBR2xELE9BQU8sQ0FBQyxRQUFRLENBQTBFO0lBRTFGLE9BQU8sQ0FBQyxjQUFjLENBQWlCO0lBQ3ZDLE9BQU8sQ0FBQyxZQUFZLENBQW9CO0lBQ3hDLE9BQU8sQ0FBQyxZQUFZ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
@@ -1 +1 @@
1
- {"version":3,"file":"proving_broker.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_broker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proving_broker.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_broker.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,11 @@
1
- function _ts_decorate(decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- }
1
+ import { EpochNumber } from '@aztec/foundation/branded-types';
7
2
  import { createLogger } from '@aztec/foundation/log';
8
3
  import { RunningPromise, promiseWithResolvers } from '@aztec/foundation/promise';
9
4
  import { PriorityMemoryQueue } from '@aztec/foundation/queue';
10
5
  import { Timer } from '@aztec/foundation/timer';
6
+ import { tryStop } from '@aztec/stdlib/interfaces/server';
11
7
  import { ProvingRequestType } from '@aztec/stdlib/proofs';
12
- import { getTelemetryClient, trackSpan } from '@aztec/telemetry-client';
8
+ import { getTelemetryClient } from '@aztec/telemetry-client';
13
9
  import assert from 'assert';
14
10
  import { defaultProverBrokerConfig } from './config.js';
15
11
  import { ProvingBrokerInstrumentation } from './proving_broker_instrumentation.js';
@@ -46,7 +42,7 @@ import { ProvingBrokerInstrumentation } from './proving_broker_instrumentation.j
46
42
  /**
47
43
  * The broker keeps track of the highest epoch its seen.
48
44
  * This information is used for garbage collection: once it reaches the next epoch, it can start pruning the database of old state.
49
- * It is important that this value is initialised to zero. This ensures that we don't delete any old jobs until the current
45
+ * It is important that this value is initialized to zero. This ensures that we don't delete any old jobs until the current
50
46
  * process instance receives a job request informing it of the actual current highest epoch
51
47
  * Example:
52
48
  * proving epoch 11 - the broker will wipe all jobs for epochs 9 and lower
@@ -60,17 +56,23 @@ import { ProvingBrokerInstrumentation } from './proving_broker_instrumentation.j
60
56
  this.logger = logger;
61
57
  this.queues = {
62
58
  [ProvingRequestType.PUBLIC_VM]: new PriorityMemoryQueue(provingJobComparator),
63
- [ProvingRequestType.TUBE_PROOF]: new PriorityMemoryQueue(provingJobComparator),
64
- [ProvingRequestType.PRIVATE_BASE_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
65
- [ProvingRequestType.PUBLIC_BASE_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
66
- [ProvingRequestType.MERGE_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
59
+ [ProvingRequestType.PUBLIC_CHONK_VERIFIER]: new PriorityMemoryQueue(provingJobComparator),
60
+ [ProvingRequestType.PRIVATE_TX_BASE_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
61
+ [ProvingRequestType.PUBLIC_TX_BASE_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
62
+ [ProvingRequestType.TX_MERGE_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
67
63
  [ProvingRequestType.ROOT_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
68
64
  [ProvingRequestType.BLOCK_MERGE_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
65
+ [ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
66
+ [ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
67
+ [ProvingRequestType.BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
69
68
  [ProvingRequestType.BLOCK_ROOT_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
70
- [ProvingRequestType.SINGLE_TX_BLOCK_ROOT_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
71
- [ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
72
- [ProvingRequestType.BASE_PARITY]: new PriorityMemoryQueue(provingJobComparator),
73
- [ProvingRequestType.ROOT_PARITY]: new PriorityMemoryQueue(provingJobComparator)
69
+ [ProvingRequestType.BLOCK_ROOT_SINGLE_TX_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
70
+ [ProvingRequestType.CHECKPOINT_ROOT_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
71
+ [ProvingRequestType.CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
72
+ [ProvingRequestType.CHECKPOINT_MERGE_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
73
+ [ProvingRequestType.CHECKPOINT_PADDING_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
74
+ [ProvingRequestType.PARITY_BASE]: new PriorityMemoryQueue(provingJobComparator),
75
+ [ProvingRequestType.PARITY_ROOT]: new PriorityMemoryQueue(provingJobComparator)
74
76
  };
75
77
  this.jobsCache = new Map();
76
78
  this.resultsCache = new Map();
@@ -135,7 +137,7 @@ import { ProvingBrokerInstrumentation } from './proving_broker_instrumentation.j
135
137
  this.logger.warn('ProvingBroker not started');
136
138
  return Promise.resolve();
137
139
  }
138
- await this.cleanupPromise.stop();
140
+ await tryStop(this.cleanupPromise);
139
141
  }
140
142
  enqueueProvingJob(job) {
141
143
  return this.#enqueueProvingJob(job);
@@ -219,6 +221,7 @@ import { ProvingBrokerInstrumentation } from './proving_broker_instrumentation.j
219
221
  this.resultsCache.delete(id);
220
222
  this.inProgress.delete(id);
221
223
  this.retries.delete(id);
224
+ this.enqueuedAt.delete(id);
222
225
  }
223
226
  }
224
227
  #getProvingJobStatus(id) {
@@ -244,7 +247,6 @@ import { ProvingBrokerInstrumentation } from './proving_broker_instrumentation.j
244
247
  this.completedJobNotifications = [];
245
248
  return Promise.resolve(notifications.concat(completedJobs));
246
249
  }
247
- // eslint-disable-next-line require-await
248
250
  #getProvingJob(filter = {
249
251
  allowList: []
250
252
  }) {
@@ -271,6 +273,8 @@ import { ProvingBrokerInstrumentation } from './proving_broker_instrumentation.j
271
273
  const enqueuedAt = this.enqueuedAt.get(job.id);
272
274
  if (enqueuedAt) {
273
275
  this.instrumentation.recordJobWait(job.type, enqueuedAt);
276
+ // we can clear this flag now.
277
+ this.enqueuedAt.delete(job.id);
274
278
  }
275
279
  return {
276
280
  job,
@@ -447,7 +451,7 @@ import { ProvingBrokerInstrumentation } from './proving_broker_instrumentation.j
447
451
  this.reEnqueueExpiredJobs();
448
452
  const oldestEpochToKeep = this.oldestEpochToKeep();
449
453
  if (oldestEpochToKeep > 0) {
450
- await this.database.deleteAllProvingJobsOlderThanEpoch(oldestEpochToKeep);
454
+ await this.database.deleteAllProvingJobsOlderThanEpoch(EpochNumber(oldestEpochToKeep));
451
455
  this.logger.trace(`Deleted all epochs older than ${oldestEpochToKeep}`);
452
456
  }
453
457
  }
@@ -462,7 +466,7 @@ import { ProvingBrokerInstrumentation } from './proving_broker_instrumentation.j
462
466
  }
463
467
  if (jobsToClean.length > 0) {
464
468
  this.cleanUpProvingJobState(jobsToClean);
465
- this.logger.info(`Cleaned up jobs=${jobsToClean.length}`);
469
+ this.logger.verbose(`Cleaned up proving jobs=${jobsToClean.length}`);
466
470
  }
467
471
  }
468
472
  reEnqueueExpiredJobs() {
@@ -506,9 +510,6 @@ import { ProvingBrokerInstrumentation } from './proving_broker_instrumentation.j
506
510
  return this.epochHeight - this.maxEpochsToKeepResultsFor;
507
511
  }
508
512
  }
509
- _ts_decorate([
510
- trackSpan('ProvingBroker.cleanupPass')
511
- ], ProvingBroker.prototype, "cleanupPass", null);
512
513
  /**
513
514
  * Compares two proving jobs and selects which one's more important
514
515
  * @param a - A proving job
@@ -554,17 +555,23 @@ _ts_decorate([
554
555
  *
555
556
  * The aim is that this will speed up block proving as the closer we get to a block's root proof the more likely it
556
557
  * is to get picked up by agents
557
- */ const PROOF_TYPES_IN_PRIORITY_ORDER = [
558
+ */ export const PROOF_TYPES_IN_PRIORITY_ORDER = [
559
+ ProvingRequestType.ROOT_ROLLUP,
560
+ ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP,
561
+ ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP,
562
+ ProvingRequestType.BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP,
558
563
  ProvingRequestType.BLOCK_ROOT_ROLLUP,
559
- ProvingRequestType.SINGLE_TX_BLOCK_ROOT_ROLLUP,
564
+ ProvingRequestType.BLOCK_ROOT_SINGLE_TX_ROLLUP,
560
565
  ProvingRequestType.BLOCK_MERGE_ROLLUP,
561
- ProvingRequestType.ROOT_ROLLUP,
562
- ProvingRequestType.MERGE_ROLLUP,
563
- ProvingRequestType.PUBLIC_BASE_ROLLUP,
564
- ProvingRequestType.PRIVATE_BASE_ROLLUP,
566
+ ProvingRequestType.CHECKPOINT_ROOT_ROLLUP,
567
+ ProvingRequestType.CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP,
568
+ ProvingRequestType.CHECKPOINT_MERGE_ROLLUP,
569
+ ProvingRequestType.CHECKPOINT_PADDING_ROLLUP,
570
+ ProvingRequestType.TX_MERGE_ROLLUP,
571
+ ProvingRequestType.PUBLIC_TX_BASE_ROLLUP,
572
+ ProvingRequestType.PRIVATE_TX_BASE_ROLLUP,
565
573
  ProvingRequestType.PUBLIC_VM,
566
- ProvingRequestType.TUBE_PROOF,
567
- ProvingRequestType.ROOT_PARITY,
568
- ProvingRequestType.BASE_PARITY,
569
- ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP
574
+ ProvingRequestType.PUBLIC_CHONK_VERIFIER,
575
+ ProvingRequestType.PARITY_ROOT,
576
+ ProvingRequestType.PARITY_BASE
570
577
  ];
@@ -1,3 +1,4 @@
1
+ import { EpochNumber } from '@aztec/foundation/branded-types';
1
2
  import { type ProofUri, type ProvingJob, type ProvingJobId, type ProvingJobSettledResult } from '@aztec/stdlib/interfaces/server';
2
3
  import type { ProvingBrokerDatabase } from '../proving_broker_database.js';
3
4
  export declare class InMemoryBrokerDatabase implements ProvingBrokerDatabase {
@@ -9,8 +10,8 @@ export declare class InMemoryBrokerDatabase implements ProvingBrokerDatabase {
9
10
  setProvingJobResult(id: ProvingJobId, value: ProofUri): Promise<void>;
10
11
  setProvingJobError(id: ProvingJobId, reason: string): Promise<void>;
11
12
  deleteProvingJobs(ids: ProvingJobId[]): Promise<void>;
12
- deleteAllProvingJobsOlderThanEpoch(epochNumber: number): Promise<void>;
13
+ deleteAllProvingJobsOlderThanEpoch(epochNumber: EpochNumber): Promise<void>;
13
14
  allProvingJobs(): AsyncIterableIterator<[ProvingJob, ProvingJobSettledResult | undefined]>;
14
15
  close(): Promise<void>;
15
16
  }
16
- //# sourceMappingURL=memory.d.ts.map
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvdmluZ19icm9rZXIvcHJvdmluZ19icm9rZXJfZGF0YWJhc2UvbWVtb3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQ0wsS0FBSyxRQUFRLEVBQ2IsS0FBSyxVQUFVLEVBQ2YsS0FBSyxZQUFZLEVBQ2pCLEtBQUssdUJBQXVCLEVBRTdCLE1BQU0saUNBQWlDLENBQUM7QUFFekMsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUUzRSxxQkFBYSxzQkFBdUIsWUFBVyxxQkFBcUI7SUFDbEUsT0FBTyxDQUFDLElBQUksQ0FBdUM7SUFDbkQsT0FBTyxDQUFDLE9BQU8sQ0FBb0Q7SUFFbkUsYUFBYSxDQUFDLEVBQUUsRUFBRSxZQUFZLEdBQUcsVUFBVSxHQUFHLFNBQVMsQ0FFdEQ7SUFFRCxtQkFBbUIsQ0FBQyxFQUFFLEVBQUUsWUFBWSxHQUFHLHVCQUF1QixHQUFHLFNBQVMsQ0FFekU7SUFFRCxhQUFhLENBQUMsR0FBRyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBRzVDO0lBRUQsbUJBQW1CLENBQUMsRUFBRSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsUUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FHcEU7SUFFRCxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUdsRTtJQUVELGlCQUFpQixDQUFDLEdBQUcsRUFBRSxZQUFZLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBTXBEO0lBRUQsa0NBQWtDLENBQUMsV0FBVyxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBTTFFO0lBRU0sY0FBYyxJQUFJLHFCQUFxQixDQUFDLENBQUMsVUFBVSxFQUFFLHVCQUF1QixHQUFHLFNBQVMsQ0FBQyxDQUFDLENBSWhHO0lBRUQsS0FBSyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFckI7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/proving_broker/proving_broker_database/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAE7B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAE3E,qBAAa,sBAAuB,YAAW,qBAAqB;IAClE,OAAO,CAAC,IAAI,CAAuC;IACnD,OAAO,CAAC,OAAO,CAAoD;IAEnE,aAAa,CAAC,EAAE,EAAE,YAAY,GAAG,UAAU,GAAG,SAAS;IAIvD,mBAAmB,CAAC,EAAE,EAAE,YAAY,GAAG,uBAAuB,GAAG,SAAS;IAI1E,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7C,mBAAmB,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrE,kBAAkB,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnE,iBAAiB,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQrD,kCAAkC,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/D,cAAc,IAAI,qBAAqB,CAAC,CAAC,UAAU,EAAE,uBAAuB,GAAG,SAAS,CAAC,CAAC;IAMjG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAGvB"}
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/proving_broker/proving_broker_database/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAE7B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAE3E,qBAAa,sBAAuB,YAAW,qBAAqB;IAClE,OAAO,CAAC,IAAI,CAAuC;IACnD,OAAO,CAAC,OAAO,CAAoD;IAEnE,aAAa,CAAC,EAAE,EAAE,YAAY,GAAG,UAAU,GAAG,SAAS,CAEtD;IAED,mBAAmB,CAAC,EAAE,EAAE,YAAY,GAAG,uBAAuB,GAAG,SAAS,CAEzE;IAED,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAG5C;IAED,mBAAmB,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAGpE;IAED,kBAAkB,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGlE;IAED,iBAAiB,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAMpD;IAED,kCAAkC,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAM1E;IAEM,cAAc,IAAI,qBAAqB,CAAC,CAAC,UAAU,EAAE,uBAAuB,GAAG,SAAS,CAAC,CAAC,CAIhG;IAED,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAErB;CACF"}
@@ -41,7 +41,7 @@ export class InMemoryBrokerDatabase {
41
41
  return this.deleteProvingJobs(toDelete);
42
42
  }
43
43
  async *allProvingJobs() {
44
- for await (const item of this.jobs.values()){
44
+ for (const item of this.jobs.values()){
45
45
  yield [
46
46
  item,
47
47
  this.results.get(item.id)
@@ -1,6 +1,7 @@
1
+ import { EpochNumber } from '@aztec/foundation/branded-types';
1
2
  import { type Logger } from '@aztec/foundation/log';
2
3
  import { type ProofUri, ProvingJob, type ProvingJobId, ProvingJobSettledResult } from '@aztec/stdlib/interfaces/server';
3
- import { type TelemetryClient } from '@aztec/telemetry-client';
4
+ import { type TelemetryClient, type Tracer } from '@aztec/telemetry-client';
4
5
  import type { ProverBrokerConfig } from '../config.js';
5
6
  import type { ProvingBrokerDatabase } from '../proving_broker_database.js';
6
7
  export declare class KVBrokerDatabase implements ProvingBrokerDatabase {
@@ -9,17 +10,18 @@ export declare class KVBrokerDatabase implements ProvingBrokerDatabase {
9
10
  private logger;
10
11
  private metrics;
11
12
  private batchQueue;
13
+ readonly tracer: Tracer;
12
14
  private constructor();
13
15
  commitWrites(items: Array<ProvingJob | [ProvingJobId, ProvingJobSettledResult]>, epochNumber: number): Promise<void>;
14
16
  private estimateSize;
15
17
  static new(config: ProverBrokerConfig, client?: TelemetryClient, logger?: Logger): Promise<KVBrokerDatabase>;
16
18
  private start;
17
19
  close(): Promise<void>;
18
- deleteAllProvingJobsOlderThanEpoch(epochNumber: number): Promise<void>;
20
+ deleteAllProvingJobsOlderThanEpoch(epochNumber: EpochNumber): Promise<void>;
19
21
  addProvingJob(job: ProvingJob): Promise<void>;
20
22
  allProvingJobs(): AsyncIterableIterator<[ProvingJob, ProvingJobSettledResult | undefined]>;
21
23
  setProvingJobError(id: ProvingJobId, reason: string): Promise<void>;
22
24
  setProvingJobResult(id: ProvingJobId, value: ProofUri): Promise<void>;
23
25
  private getEpochDatabase;
24
26
  }
25
- //# sourceMappingURL=persisted.d.ts.map
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc2lzdGVkLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvdmluZ19icm9rZXIvcHJvdmluZ19icm9rZXJfZGF0YWJhc2UvcGVyc2lzdGVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU5RCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFJbEUsT0FBTyxFQUNMLEtBQUssUUFBUSxFQUNiLFVBQVUsRUFDVixLQUFLLFlBQVksRUFDakIsdUJBQXVCLEVBRXhCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUdMLEtBQUssZUFBZSxFQUNwQixLQUFLLE1BQU0sRUFHWixNQUFNLHlCQUF5QixDQUFDO0FBS2pDLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3ZELE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUF3RDNFLHFCQUFhLGdCQUFpQixZQUFXLHFCQUFxQjtJQVExRCxPQUFPLENBQUMsTUFBTTtJQUNkLE9BQU8sQ0FBQyxNQUFNO0lBRWQsT0FBTyxDQUFDLE1BQU07SUFWaEIsT0FBTyxDQUFDLE9BQU8sQ0FBYztJQUU3QixPQUFPLENBQUMsVUFBVSxDQUEyRTtJQUU3RixTQUFnQixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBRS9CLE9BQU8sZUFzQk47SUFHWSxZQUFZLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxVQUFVLEdBQUcsQ0FBQyxZQUFZLEVBQUUsdUJBQXVCLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQU1oSDtZQUVhLFlBQVk7SUFVMUIsT0FBb0IsR0FBRyxDQUNyQixNQUFNLEVBQUUsa0JBQWtCLEVBQzFCLE1BQU0sR0FBRSxlQUFzQyxFQUM5QyxNQUFNLFNBQXdELDZCQThCL0Q7SUFFRCxPQUFPLENBQUMsS0FBSztJQUlQLEtBQUssSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBSzNCO0lBS0ssa0NBQWtDLENBQUMsV0FBVyxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBV2hGO0lBRUQsYUFBYSxDQUFDLEdBQUcsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUU1QztJQUVNLGNBQWMsSUFBSSxxQkFBcUIsQ0FBQyxDQUFDLFVBQVUsRUFBRSx1QkFBdUIsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUtoRztJQUVELGtCQUFrQixDQUFDLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBRWxFO0lBRUQsbUJBQW1CLENBQUMsRUFBRSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsUUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFcEU7WUFFYSxnQkFBZ0I7Q0FvQi9CIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"persisted.d.ts","sourceRoot":"","sources":["../../../src/proving_broker/proving_broker_database/persisted.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAIlE,OAAO,EACL,KAAK,QAAQ,EACb,UAAU,EACV,KAAK,YAAY,EACjB,uBAAuB,EAExB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAA2B,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAK5G,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAwD3E,qBAAa,gBAAiB,YAAW,qBAAqB;IAM1D,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,MAAM;IARhB,OAAO,CAAC,OAAO,CAAc;IAE7B,OAAO,CAAC,UAAU,CAA2E;IAE7F,OAAO;IAuBM,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,GAAG,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM;YAQnG,YAAY;WASN,GAAG,CACrB,MAAM,EAAE,kBAAkB,EAC1B,MAAM,GAAE,eAAsC,EAC9C,MAAM,SAAwD;IAgChE,OAAO,CAAC,KAAK;IAIP,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAOtB,kCAAkC,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa5E,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAItC,cAAc,IAAI,qBAAqB,CAAC,CAAC,UAAU,EAAE,uBAAuB,GAAG,SAAS,CAAC,CAAC;IAOjG,kBAAkB,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInE,mBAAmB,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;YAIvD,gBAAgB;CAoB/B"}
1
+ {"version":3,"file":"persisted.d.ts","sourceRoot":"","sources":["../../../src/proving_broker/proving_broker_database/persisted.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAIlE,OAAO,EACL,KAAK,QAAQ,EACb,UAAU,EACV,KAAK,YAAY,EACjB,uBAAuB,EAExB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAKjC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAwD3E,qBAAa,gBAAiB,YAAW,qBAAqB;IAQ1D,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,MAAM;IAVhB,OAAO,CAAC,OAAO,CAAc;IAE7B,OAAO,CAAC,UAAU,CAA2E;IAE7F,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,OAAO,eAsBN;IAGY,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,GAAG,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,iBAMhH;YAEa,YAAY;IAU1B,OAAoB,GAAG,CACrB,MAAM,EAAE,kBAAkB,EAC1B,MAAM,GAAE,eAAsC,EAC9C,MAAM,SAAwD,6BA8B/D;IAED,OAAO,CAAC,KAAK;IAIP,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAK3B;IAKK,kCAAkC,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAWhF;IAED,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5C;IAEM,cAAc,IAAI,qBAAqB,CAAC,CAAC,UAAU,EAAE,uBAAuB,GAAG,SAAS,CAAC,CAAC,CAKhG;IAED,kBAAkB,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAElE;IAED,mBAAmB,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpE;YAEa,gBAAgB;CAoB/B"}