@aztec/prover-client 0.75.0 → 0.76.1

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 (64) hide show
  1. package/dest/mocks/test_context.d.ts +4 -4
  2. package/dest/mocks/test_context.d.ts.map +1 -1
  3. package/dest/mocks/test_context.js +17 -19
  4. package/dest/orchestrator/block-building-helpers.d.ts +1 -1
  5. package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
  6. package/dest/orchestrator/block-building-helpers.js +5 -23
  7. package/dest/orchestrator/block-proving-state.d.ts +2 -2
  8. package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
  9. package/dest/orchestrator/block-proving-state.js +16 -16
  10. package/dest/orchestrator/epoch-proving-state.d.ts +2 -2
  11. package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
  12. package/dest/orchestrator/epoch-proving-state.js +8 -11
  13. package/dest/orchestrator/orchestrator.d.ts.map +1 -1
  14. package/dest/orchestrator/orchestrator.js +35 -35
  15. package/dest/orchestrator/tx-proving-state.d.ts +2 -2
  16. package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
  17. package/dest/orchestrator/tx-proving-state.js +14 -14
  18. package/dest/proving_broker/proving_agent.d.ts +1 -0
  19. package/dest/proving_broker/proving_agent.d.ts.map +1 -1
  20. package/dest/proving_broker/proving_agent.js +26 -11
  21. package/dest/proving_broker/proving_broker.d.ts +4 -7
  22. package/dest/proving_broker/proving_broker.d.ts.map +1 -1
  23. package/dest/proving_broker/proving_broker.js +21 -23
  24. package/dest/proving_broker/rpc.d.ts +19 -4
  25. package/dest/proving_broker/rpc.d.ts.map +1 -1
  26. package/dest/proving_broker/rpc.js +28 -10
  27. package/dest/test/mock_prover.d.ts +2 -0
  28. package/dest/test/mock_prover.d.ts.map +1 -1
  29. package/dest/test/mock_prover.js +5 -1
  30. package/package.json +12 -12
  31. package/src/mocks/test_context.ts +23 -22
  32. package/src/orchestrator/block-building-helpers.ts +2 -39
  33. package/src/orchestrator/block-proving-state.ts +15 -15
  34. package/src/orchestrator/epoch-proving-state.ts +7 -10
  35. package/src/orchestrator/orchestrator.ts +36 -39
  36. package/src/orchestrator/tx-proving-state.ts +13 -13
  37. package/src/proving_broker/proving_agent.ts +30 -11
  38. package/src/proving_broker/proving_broker.ts +53 -27
  39. package/src/proving_broker/rpc.ts +32 -6
  40. package/src/test/mock_prover.ts +7 -1
  41. package/dest/prover-agent/index.d.ts +0 -4
  42. package/dest/prover-agent/index.d.ts.map +0 -1
  43. package/dest/prover-agent/index.js +0 -4
  44. package/dest/prover-agent/memory-proving-queue.d.ts +0 -82
  45. package/dest/prover-agent/memory-proving-queue.d.ts.map +0 -1
  46. package/dest/prover-agent/memory-proving-queue.js +0 -260
  47. package/dest/prover-agent/prover-agent.d.ts +0 -43
  48. package/dest/prover-agent/prover-agent.d.ts.map +0 -1
  49. package/dest/prover-agent/prover-agent.js +0 -204
  50. package/dest/prover-agent/proving-error.d.ts +0 -5
  51. package/dest/prover-agent/proving-error.d.ts.map +0 -1
  52. package/dest/prover-agent/proving-error.js +0 -9
  53. package/dest/prover-agent/queue_metrics.d.ts +0 -10
  54. package/dest/prover-agent/queue_metrics.d.ts.map +0 -1
  55. package/dest/prover-agent/queue_metrics.js +0 -23
  56. package/dest/prover-agent/rpc.d.ts +0 -11
  57. package/dest/prover-agent/rpc.d.ts.map +0 -1
  58. package/dest/prover-agent/rpc.js +0 -18
  59. package/src/prover-agent/index.ts +0 -3
  60. package/src/prover-agent/memory-proving-queue.ts +0 -416
  61. package/src/prover-agent/prover-agent.ts +0 -248
  62. package/src/prover-agent/proving-error.ts +0 -9
  63. package/src/prover-agent/queue_metrics.ts +0 -29
  64. package/src/prover-agent/rpc.ts +0 -22
@@ -1,260 +0,0 @@
1
- import { __esDecorate, __runInitializers } from "tslib";
2
- import { ProvingRequestType, } from '@aztec/circuit-types';
3
- import { randomBytes } from '@aztec/foundation/crypto';
4
- import { AbortError, TimeoutError } from '@aztec/foundation/error';
5
- import { createLogger } from '@aztec/foundation/log';
6
- import { RunningPromise, promiseWithResolvers } from '@aztec/foundation/promise';
7
- import { PriorityMemoryQueue } from '@aztec/foundation/queue';
8
- import { trackSpan } from '@aztec/telemetry-client';
9
- import { InlineProofStore } from '../proving_broker/proof_store/index.js';
10
- import { ProvingQueueMetrics } from './queue_metrics.js';
11
- const MAX_RETRIES = 3;
12
- const defaultIdGenerator = () => randomBytes(4).toString('hex');
13
- const defaultTimeSource = () => Date.now();
14
- /**
15
- * A helper class that sits in between services that need proofs created and agents that can create them.
16
- * The queue accumulates jobs and provides them to agents prioritized by block number.
17
- */
18
- let MemoryProvingQueue = (() => {
19
- var _a;
20
- let _instanceExtraInitializers = [];
21
- let _poll_decorators;
22
- return _a = class MemoryProvingQueue {
23
- constructor(client,
24
- /** Timeout the job if an agent doesn't report back in this time */
25
- jobTimeoutMs = 60 * 1000,
26
- /** How often to check for timed out jobs */
27
- pollingIntervalMs = 1000, generateId = defaultIdGenerator, timeSource = defaultTimeSource, proofStore = new InlineProofStore()) {
28
- this.jobTimeoutMs = (__runInitializers(this, _instanceExtraInitializers), jobTimeoutMs);
29
- this.generateId = generateId;
30
- this.timeSource = timeSource;
31
- this.proofStore = proofStore;
32
- this.log = createLogger('prover-client:prover-pool:queue');
33
- this.queue = new PriorityMemoryQueue((a, b) => (a.epochNumber ?? 0) - (b.epochNumber ?? 0));
34
- this.jobsInProgress = new Map();
35
- this.tracer = client.getTracer('MemoryProvingQueue');
36
- this.metrics = new ProvingQueueMetrics(client, 'MemoryProvingQueue');
37
- this.runningPromise = new RunningPromise(this.poll.bind(this), this.log, pollingIntervalMs);
38
- }
39
- start() {
40
- if (this.runningPromise.isRunning()) {
41
- this.log.warn('Proving queue is already running');
42
- return;
43
- }
44
- this.runningPromise.start();
45
- this.log.info('Proving queue started');
46
- }
47
- async stop() {
48
- if (!this.runningPromise.isRunning()) {
49
- this.log.warn('Proving queue is already stopped');
50
- return;
51
- }
52
- await this.runningPromise.stop();
53
- this.log.info('Proving queue stopped');
54
- }
55
- async getProvingJob({ timeoutSec = 1 } = {}) {
56
- if (!this.runningPromise.isRunning()) {
57
- throw new Error('Proving queue is not running. Start the queue before getting jobs.');
58
- }
59
- try {
60
- const job = await this.queue.get(timeoutSec);
61
- if (!job) {
62
- return undefined;
63
- }
64
- if (job.signal?.aborted) {
65
- return undefined;
66
- }
67
- job.heartbeat = this.timeSource();
68
- this.jobsInProgress.set(job.id, job);
69
- return {
70
- id: job.id,
71
- type: job.type,
72
- inputsUri: job.inputsUri,
73
- epochNumber: job.epochNumber,
74
- };
75
- }
76
- catch (err) {
77
- if (err instanceof TimeoutError) {
78
- return undefined;
79
- }
80
- throw err;
81
- }
82
- }
83
- resolveProvingJob(jobId, result) {
84
- if (!this.runningPromise.isRunning()) {
85
- throw new Error('Proving queue is not running.');
86
- }
87
- const job = this.jobsInProgress.get(jobId);
88
- if (!job) {
89
- this.log.warn(`Job id=${jobId} not found. Can't resolve`);
90
- return Promise.resolve();
91
- }
92
- this.jobsInProgress.delete(jobId);
93
- if (!job.signal?.aborted) {
94
- job.resolve(result);
95
- }
96
- return Promise.resolve();
97
- }
98
- rejectProvingJob(jobId, reason) {
99
- if (!this.runningPromise.isRunning()) {
100
- throw new Error('Proving queue is not running.');
101
- }
102
- const job = this.jobsInProgress.get(jobId);
103
- if (!job) {
104
- this.log.warn(`Job id=${jobId} not found. Can't reject`);
105
- return Promise.resolve();
106
- }
107
- this.jobsInProgress.delete(jobId);
108
- if (job.signal?.aborted) {
109
- return Promise.resolve();
110
- }
111
- // every job should be retried with the exception of the public VM since its in development and can fail
112
- if (job.attempts < MAX_RETRIES && job.type !== ProvingRequestType.PUBLIC_VM) {
113
- job.attempts++;
114
- this.log.warn(`Job id=${job.id} type=${ProvingRequestType[job.type]} failed with error: ${reason}. Retry ${job.attempts}/${MAX_RETRIES}`);
115
- this.queue.put(job);
116
- }
117
- else {
118
- const logFn = job.type === ProvingRequestType.PUBLIC_VM && !process.env.AVM_PROVING_STRICT ? this.log.warn : this.log.error;
119
- logFn(`Job id=${job.id} type=${ProvingRequestType[job.type]} failed with error: ${reason}`);
120
- job.reject(new Error(reason));
121
- }
122
- return Promise.resolve();
123
- }
124
- heartbeat(jobId) {
125
- if (!this.runningPromise.isRunning()) {
126
- throw new Error('Proving queue is not running.');
127
- }
128
- const job = this.jobsInProgress.get(jobId);
129
- if (job) {
130
- job.heartbeat = this.timeSource();
131
- }
132
- return Promise.resolve();
133
- }
134
- isJobRunning(jobId) {
135
- return this.jobsInProgress.has(jobId);
136
- }
137
- poll() {
138
- const now = this.timeSource();
139
- this.metrics.recordQueueSize(this.queue.length());
140
- for (const job of this.jobsInProgress.values()) {
141
- if (job.signal?.aborted) {
142
- this.jobsInProgress.delete(job.id);
143
- continue;
144
- }
145
- if (job.heartbeat + this.jobTimeoutMs < now) {
146
- this.log.warn(`Job ${job.id} type=${ProvingRequestType[job.type]} has timed out`);
147
- this.jobsInProgress.delete(job.id);
148
- job.heartbeat = 0;
149
- this.queue.put(job);
150
- }
151
- }
152
- }
153
- async enqueue(type, inputs, signal, epochNumber) {
154
- if (!this.runningPromise.isRunning()) {
155
- return Promise.reject(new Error('Proving queue is not running.'));
156
- }
157
- const { promise, resolve, reject } = promiseWithResolvers();
158
- const id = this.generateId();
159
- const inputsUri = await this.proofStore.saveProofInput(id, type, inputs);
160
- const item = {
161
- id,
162
- type,
163
- inputsUri,
164
- signal,
165
- promise,
166
- resolve,
167
- reject,
168
- attempts: 1,
169
- heartbeat: 0,
170
- epochNumber: epochNumber ?? 0,
171
- };
172
- if (signal) {
173
- signal.addEventListener('abort', () => reject(new AbortError('Operation has been aborted')));
174
- }
175
- this.log.debug(`Adding id=${item.id} type=${ProvingRequestType[type]} proving job to queue depth=${this.queue.length()}`);
176
- if (!this.queue.put(item)) {
177
- throw new Error();
178
- }
179
- return promise.then(({ result }) => result);
180
- }
181
- getTubeProof(inputs, signal, epochNumber) {
182
- return this.enqueue(ProvingRequestType.TUBE_PROOF, inputs, signal, epochNumber);
183
- }
184
- /**
185
- * Creates a proof for the given input.
186
- * @param input - Input to the circuit.
187
- */
188
- getBaseParityProof(inputs, signal, epochNumber) {
189
- return this.enqueue(ProvingRequestType.BASE_PARITY, inputs, signal, epochNumber);
190
- }
191
- /**
192
- * Creates a proof for the given input.
193
- * @param input - Input to the circuit.
194
- */
195
- getRootParityProof(inputs, signal, epochNumber) {
196
- return this.enqueue(ProvingRequestType.ROOT_PARITY, inputs, signal, epochNumber);
197
- }
198
- getPrivateBaseRollupProof(inputs, signal, epochNumber) {
199
- return this.enqueue(ProvingRequestType.PRIVATE_BASE_ROLLUP, inputs, signal, epochNumber);
200
- }
201
- getPublicBaseRollupProof(inputs, signal, epochNumber) {
202
- return this.enqueue(ProvingRequestType.PUBLIC_BASE_ROLLUP, inputs, signal, epochNumber);
203
- }
204
- /**
205
- * Creates a proof for the given input.
206
- * @param input - Input to the circuit.
207
- */
208
- getMergeRollupProof(inputs, signal, epochNumber) {
209
- return this.enqueue(ProvingRequestType.MERGE_ROLLUP, inputs, signal, epochNumber);
210
- }
211
- /**
212
- * Creates a proof for the given input.
213
- * @param input - Input to the circuit.
214
- */
215
- getBlockRootRollupProof(inputs, signal, epochNumber) {
216
- return this.enqueue(ProvingRequestType.BLOCK_ROOT_ROLLUP, inputs, signal, epochNumber);
217
- }
218
- getSingleTxBlockRootRollupProof(inputs, signal, epochNumber) {
219
- return this.enqueue(ProvingRequestType.SINGLE_TX_BLOCK_ROOT_ROLLUP, inputs, signal, epochNumber);
220
- }
221
- getEmptyBlockRootRollupProof(inputs, signal, epochNumber) {
222
- return this.enqueue(ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP, inputs, signal, epochNumber);
223
- }
224
- /**
225
- * Creates a proof for the given input.
226
- * @param input - Input to the circuit.
227
- */
228
- getBlockMergeRollupProof(inputs, signal, epochNumber) {
229
- return this.enqueue(ProvingRequestType.BLOCK_MERGE_ROLLUP, inputs, signal, epochNumber);
230
- }
231
- /**
232
- * Creates a proof for the given input.
233
- * @param input - Input to the circuit.
234
- */
235
- getRootRollupProof(inputs, signal, epochNumber) {
236
- return this.enqueue(ProvingRequestType.ROOT_ROLLUP, inputs, signal, epochNumber);
237
- }
238
- /**
239
- * Creates an AVM proof.
240
- */
241
- getAvmProof(inputs, signal, epochNumber) {
242
- return this.enqueue(ProvingRequestType.PUBLIC_VM, inputs, signal, epochNumber);
243
- }
244
- /**
245
- * Verifies a circuit proof
246
- */
247
- verifyProof() {
248
- return Promise.reject('not implemented');
249
- }
250
- },
251
- (() => {
252
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
253
- _poll_decorators = [trackSpan('MemoryProvingQueue.poll')];
254
- __esDecorate(_a, null, _poll_decorators, { kind: "method", name: "poll", static: false, private: false, access: { has: obj => "poll" in obj, get: obj => obj.poll }, metadata: _metadata }, null, _instanceExtraInitializers);
255
- if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
256
- })(),
257
- _a;
258
- })();
259
- export { MemoryProvingQueue };
260
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LXByb3ZpbmctcXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmVyLWFnZW50L21lbW9yeS1wcm92aW5nLXF1ZXVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBTUwsa0JBQWtCLEdBR25CLE1BQU0sc0JBQXNCLENBQUM7QUEwQjlCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQTZCLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBcUMsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdkYsT0FBTyxFQUFFLGdCQUFnQixFQUFtQixNQUFNLHdDQUF3QyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBVXpELE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQztBQUV0QixNQUFNLGtCQUFrQixHQUFHLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDaEUsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDM0M7OztHQUdHO0lBQ1Usa0JBQWtCOzs7O3NCQUFsQixrQkFBa0I7WUFXN0IsWUFDRSxNQUF1QjtZQUN2QixtRUFBbUU7WUFDM0QsZUFBZSxFQUFFLEdBQUcsSUFBSTtZQUNoQyw0Q0FBNEM7WUFDNUMsaUJBQWlCLEdBQUcsSUFBSSxFQUNoQixhQUFhLGtCQUFr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
@@ -1,43 +0,0 @@
1
- import { type ProverAgentApi, type ProvingJobSource, type ServerCircuitProver } from '@aztec/circuit-types';
2
- import { type TelemetryClient, type Traceable, type Tracer } from '@aztec/telemetry-client';
3
- /**
4
- * A helper class that encapsulates a circuit prover and connects it to a job source.
5
- */
6
- export declare class ProverAgent implements ProverAgentApi, Traceable {
7
- #private;
8
- /** The prover implementation to defer jobs to */
9
- private circuitProver;
10
- /** How many proving jobs this agent can handle in parallel */
11
- private maxConcurrency;
12
- /** How long to wait between jobs */
13
- private pollIntervalMs;
14
- /** Logger */
15
- private log;
16
- private inFlightPromises;
17
- private runningPromise?;
18
- private proofInputsDatabase;
19
- readonly tracer: Tracer;
20
- constructor(
21
- /** The prover implementation to defer jobs to */
22
- circuitProver: ServerCircuitProver,
23
- /** How many proving jobs this agent can handle in parallel */
24
- maxConcurrency?: number,
25
- /** How long to wait between jobs */
26
- pollIntervalMs?: number,
27
- /** Telemetry client */
28
- telemetry?: TelemetryClient,
29
- /** Logger */
30
- log?: import("@aztec/foundation/log").Logger);
31
- setMaxConcurrency(maxConcurrency: number): Promise<void>;
32
- setCircuitProver(circuitProver: ServerCircuitProver): void;
33
- isRunning(): Promise<boolean>;
34
- getCurrentJobs(): Promise<{
35
- id: string;
36
- type: string;
37
- }[]>;
38
- start(jobSource: ProvingJobSource): void;
39
- stop(): Promise<void>;
40
- private work;
41
- private getProof;
42
- }
43
- //# sourceMappingURL=prover-agent.d.ts.map
@@ -1 +0,0 @@
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;AAI9B,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAYjC;;GAEG;AACH,qBAAa,WAAY,YAAW,cAAc,EAAE,SAAS;;IAQzD,iDAAiD;IACjD,OAAO,CAAC,aAAa;IACrB,8DAA8D;IAC9D,OAAO,CAAC,cAAc;IACtB,oCAAoC;IACpC,OAAO,CAAC,cAAc;IAGtB,aAAa;IACb,OAAO,CAAC,GAAG;IAhBb,OAAO,CAAC,gBAAgB,CAAsC;IAC9D,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,mBAAmB,CAA0B;IAErD,SAAgB,MAAM,EAAE,MAAM,CAAC;;IAG7B,iDAAiD;IACzC,aAAa,EAAE,mBAAmB;IAC1C,8DAA8D;IACtD,cAAc,SAAI;IAC1B,oCAAoC;IAC5B,cAAc,SAAM;IAC5B,uBAAuB;IACvB,SAAS,GAAE,eAAsC;IACjD,aAAa;IACL,GAAG,yCAA6C;IAK1D,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;IA2DlC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAeb,IAAI;IAiClB,OAAO,CAAC,QAAQ;CAyDjB"}
@@ -1,204 +0,0 @@
1
- import { __classPrivateFieldGet, __esDecorate, __runInitializers } from "tslib";
2
- import { ProvingRequestType, makeProvingRequestResult, } from '@aztec/circuit-types';
3
- import { createLogger } from '@aztec/foundation/log';
4
- import { RunningPromise } from '@aztec/foundation/running-promise';
5
- import { elapsed } from '@aztec/foundation/timer';
6
- import { Attributes, getTelemetryClient, trackSpan, } from '@aztec/telemetry-client';
7
- import { InlineProofStore } from '../proving_broker/proof_store/index.js';
8
- const PRINT_THRESHOLD_NS = 6e10; // 60 seconds
9
- /**
10
- * A helper class that encapsulates a circuit prover and connects it to a job source.
11
- */
12
- let ProverAgent = (() => {
13
- var _ProverAgent_instances, _a, _ProverAgent_isRunning;
14
- let _instanceExtraInitializers = [];
15
- let _work_decorators;
16
- return _a = class ProverAgent {
17
- constructor(
18
- /** The prover implementation to defer jobs to */
19
- circuitProver,
20
- /** How many proving jobs this agent can handle in parallel */
21
- maxConcurrency = 1,
22
- /** How long to wait between jobs */
23
- pollIntervalMs = 100,
24
- /** Telemetry client */
25
- telemetry = getTelemetryClient(),
26
- /** Logger */
27
- log = createLogger('prover-client:prover-agent')) {
28
- _ProverAgent_instances.add(this);
29
- this.circuitProver = (__runInitializers(this, _instanceExtraInitializers), circuitProver);
30
- this.maxConcurrency = maxConcurrency;
31
- this.pollIntervalMs = pollIntervalMs;
32
- this.log = log;
33
- this.inFlightPromises = new Map();
34
- this.proofInputsDatabase = new InlineProofStore();
35
- this.tracer = telemetry.getTracer('ProverAgent');
36
- }
37
- setMaxConcurrency(maxConcurrency) {
38
- if (maxConcurrency < 1) {
39
- throw new Error('Concurrency must be at least 1');
40
- }
41
- this.maxConcurrency = maxConcurrency;
42
- return Promise.resolve();
43
- }
44
- setCircuitProver(circuitProver) {
45
- this.circuitProver = circuitProver;
46
- }
47
- isRunning() {
48
- return Promise.resolve(__classPrivateFieldGet(this, _ProverAgent_instances, "m", _ProverAgent_isRunning).call(this));
49
- }
50
- getCurrentJobs() {
51
- return Promise.resolve(Array.from(this.inFlightPromises.values()).map(({ id, type }) => ({ id, type: ProvingRequestType[type] })));
52
- }
53
- start(jobSource) {
54
- if (this.runningPromise) {
55
- throw new Error('Agent is already running');
56
- }
57
- let lastPrint = process.hrtime.bigint();
58
- this.runningPromise = new RunningPromise(async () => {
59
- for (const jobId of this.inFlightPromises.keys()) {
60
- await jobSource.heartbeat(jobId);
61
- }
62
- const now = process.hrtime.bigint();
63
- if (now - lastPrint >= PRINT_THRESHOLD_NS) {
64
- // only log if we're actually doing work
65
- if (this.inFlightPromises.size > 0) {
66
- const jobs = Array.from(this.inFlightPromises.values())
67
- .map(job => `id=${job.id},type=${ProvingRequestType[job.type]}`)
68
- .join(' ');
69
- this.log.info(`Agent is running with ${this.inFlightPromises.size} in-flight jobs: ${jobs}`);
70
- }
71
- lastPrint = now;
72
- }
73
- while (this.inFlightPromises.size < this.maxConcurrency) {
74
- try {
75
- const job = await jobSource.getProvingJob();
76
- if (!job) {
77
- // job source is fully drained, sleep for a bit and try again
78
- return;
79
- }
80
- try {
81
- const promise = this.work(jobSource, job).finally(() => this.inFlightPromises.delete(job.id));
82
- this.inFlightPromises.set(job.id, {
83
- id: job.id,
84
- type: job.type,
85
- promise,
86
- });
87
- }
88
- catch (err) {
89
- this.log.warn(`Error processing job! type=${ProvingRequestType[job.type]}: ${err}. ${err.stack}`);
90
- }
91
- }
92
- catch (err) {
93
- this.log.error(`Error fetching job`, err);
94
- }
95
- }
96
- }, this.log, this.pollIntervalMs);
97
- this.runningPromise.start();
98
- this.log.info(`Agent started with concurrency=${this.maxConcurrency}`);
99
- }
100
- async stop() {
101
- if (!this.runningPromise?.isRunning()) {
102
- return;
103
- }
104
- await this.runningPromise.stop();
105
- this.runningPromise = undefined;
106
- this.log.info('Agent stopped');
107
- }
108
- async work(jobSource, job) {
109
- try {
110
- this.log.debug(`Picked up proving job ${job.id} ${ProvingRequestType[job.type]}`, {
111
- jobId: job.id,
112
- jobType: ProvingRequestType[job.type],
113
- });
114
- const type = job.type;
115
- const inputs = await this.proofInputsDatabase.getProofInput(job.inputsUri);
116
- const [time, result] = await elapsed(this.getProof(inputs));
117
- if (__classPrivateFieldGet(this, _ProverAgent_instances, "m", _ProverAgent_isRunning).call(this)) {
118
- this.log.verbose(`Processed proving job id=${job.id} type=${ProvingRequestType[type]} duration=${time}ms`);
119
- await jobSource.resolveProvingJob(job.id, makeProvingRequestResult(type, result));
120
- }
121
- else {
122
- this.log.verbose(`Dropping proving job id=${job.id} type=${ProvingRequestType[job.type]} duration=${time}ms: agent stopped`);
123
- }
124
- }
125
- catch (err) {
126
- const type = ProvingRequestType[job.type];
127
- if (__classPrivateFieldGet(this, _ProverAgent_instances, "m", _ProverAgent_isRunning).call(this)) {
128
- if (job.type === ProvingRequestType.PUBLIC_VM && !process.env.AVM_PROVING_STRICT) {
129
- this.log.warn(`Expected error processing VM proving job id=${job.id} type=${type}: ${err}`);
130
- }
131
- else {
132
- this.log.error(`Error processing proving job id=${job.id} type=${type}: ${err}`, err);
133
- }
134
- const reason = err?.message ?? String(err);
135
- await jobSource.rejectProvingJob(job.id, reason);
136
- }
137
- else {
138
- this.log.verbose(`Dropping proving job id=${job.id} type=${type}: agent stopped: ${err.stack || err}`);
139
- }
140
- }
141
- }
142
- getProof(request) {
143
- const { type, inputs } = request;
144
- switch (type) {
145
- case ProvingRequestType.PUBLIC_VM: {
146
- return this.circuitProver.getAvmProof(inputs);
147
- }
148
- case ProvingRequestType.PRIVATE_BASE_ROLLUP: {
149
- return this.circuitProver.getPrivateBaseRollupProof(inputs);
150
- }
151
- case ProvingRequestType.PUBLIC_BASE_ROLLUP: {
152
- return this.circuitProver.getPublicBaseRollupProof(inputs);
153
- }
154
- case ProvingRequestType.MERGE_ROLLUP: {
155
- return this.circuitProver.getMergeRollupProof(inputs);
156
- }
157
- case ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP: {
158
- return this.circuitProver.getEmptyBlockRootRollupProof(inputs);
159
- }
160
- case ProvingRequestType.BLOCK_ROOT_ROLLUP: {
161
- return this.circuitProver.getBlockRootRollupProof(inputs);
162
- }
163
- case ProvingRequestType.SINGLE_TX_BLOCK_ROOT_ROLLUP: {
164
- return this.circuitProver.getSingleTxBlockRootRollupProof(inputs);
165
- }
166
- case ProvingRequestType.BLOCK_MERGE_ROLLUP: {
167
- return this.circuitProver.getBlockMergeRollupProof(inputs);
168
- }
169
- case ProvingRequestType.ROOT_ROLLUP: {
170
- return this.circuitProver.getRootRollupProof(inputs);
171
- }
172
- case ProvingRequestType.BASE_PARITY: {
173
- return this.circuitProver.getBaseParityProof(inputs);
174
- }
175
- case ProvingRequestType.ROOT_PARITY: {
176
- return this.circuitProver.getRootParityProof(inputs);
177
- }
178
- case ProvingRequestType.TUBE_PROOF: {
179
- return this.circuitProver.getTubeProof(inputs);
180
- }
181
- default: {
182
- const _exhaustive = type;
183
- return Promise.reject(new Error(`Invalid proof request type: ${type}`));
184
- }
185
- }
186
- }
187
- },
188
- _ProverAgent_instances = new WeakSet(),
189
- _ProverAgent_isRunning = function _ProverAgent_isRunning() {
190
- return this.runningPromise?.isRunning() ?? false;
191
- },
192
- (() => {
193
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
194
- _work_decorators = [trackSpan('ProverAgent.work', (_jobSoure, job) => ({
195
- [Attributes.PROVING_JOB_ID]: job.id,
196
- [Attributes.PROVING_JOB_TYPE]: ProvingRequestType[job.type],
197
- }))];
198
- __esDecorate(_a, null, _work_decorators, { kind: "method", name: "work", static: false, private: false, access: { has: obj => "work" in obj, get: obj => obj.work }, metadata: _metadata }, null, _instanceExtraInitializers);
199
- if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
200
- })(),
201
- _a;
202
- })();
203
- export { ProverAgent };
204
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmVyLWFnZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3Zlci1hZ2VudC9wcm92ZXItYWdlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFNTCxrQkFBa0IsRUFFbEIsd0JBQXdCLEdBQ3pCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUNMLFVBQVUsRUFJVixrQkFBa0IsRUFDbEIsU0FBUyxHQUNWLE1BQU0seUJBQXlCLENBQUM7QUFFakMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFMUUsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsQ0FBQyxhQUFhO0FBUTlDOztHQUVHO0lBQ1UsV0FBVzs7OztzQkFBWCxXQUFXO1lBT3RCO1lBQ0UsaURBQWlEO1lBQ3pDLGFBQWtDO1lBQzFDLDhEQUE4RDtZQUN0RCxpQkFBaUIsQ0FBQztZQUMxQixvQ0FBb0M7WUFDNUIsaUJBQWlCLEdBQUc7WUFDNUIsdUJBQXVCO1lBQ3ZCLFlBQTZCLGtCQUFrQixFQUFFO1lBQ2pELGFBQWE7WUFDTCxNQUFNLFlBQVksQ0FBQyw0QkFBNEIsQ0FBQzs7Z0JBUmhELGtCQUFhLElBVFosbURBQVcsRUFTWixhQUFhLEVBQXFCO2dCQUVsQyxtQkFBYyxHQUFkLGNBQWMsQ0FBSTtnQkFFbEIsbUJBQWMsR0FBZCxjQUFjLENBQU07Z0JBSXBCLFFBQUcsR0FBSCxHQUFHLENBQTZDO2dCQWhCbEQscUJBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQTJCLENBQUM7Z0JBRXRELHdCQUFtQixHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztnQkFnQm5ELElBQUks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
@@ -1,5 +0,0 @@
1
- export declare class ProvingError extends Error {
2
- toString(): string;
3
- static fromString(message: string): ProvingError;
4
- }
5
- //# sourceMappingURL=proving-error.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"proving-error.d.ts","sourceRoot":"","sources":["../../src/prover-agent/proving-error.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAa,SAAQ,KAAK;IAC5B,QAAQ;IAIjB,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM;CAGlC"}
@@ -1,9 +0,0 @@
1
- export class ProvingError extends Error {
2
- toString() {
3
- return this.message;
4
- }
5
- static fromString(message) {
6
- return new ProvingError(message);
7
- }
8
- }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmluZy1lcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92ZXItYWdlbnQvcHJvdmluZy1lcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sWUFBYSxTQUFRLEtBQUs7SUFDNUIsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFlO1FBQy9CLE9BQU8sSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQztDQUNGIn0=
@@ -1,10 +0,0 @@
1
- import { ProvingRequestType } from '@aztec/circuit-types';
2
- import { type TelemetryClient } from '@aztec/telemetry-client';
3
- export declare class ProvingQueueMetrics {
4
- private jobSize;
5
- private queueSize;
6
- constructor(client: TelemetryClient, name?: string);
7
- recordNewJob(type: ProvingRequestType, size: number): void;
8
- recordQueueSize(size: number): void;
9
- }
10
- //# sourceMappingURL=queue_metrics.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"queue_metrics.d.ts","sourceRoot":"","sources":["../../src/prover-agent/queue_metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAmD,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEhH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,SAAS,CAAQ;gBAEb,MAAM,EAAE,eAAe,EAAE,IAAI,SAAwB;IAYjE,YAAY,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM;IAMnD,eAAe,CAAC,IAAI,EAAE,MAAM;CAG7B"}
@@ -1,23 +0,0 @@
1
- import { ProvingRequestType } from '@aztec/circuit-types';
2
- import { Attributes, Metrics } from '@aztec/telemetry-client';
3
- export class ProvingQueueMetrics {
4
- constructor(client, name = 'ProvingQueueMetrics') {
5
- const meter = client.getMeter(name);
6
- this.jobSize = meter.createHistogram(Metrics.PROVING_QUEUE_JOB_SIZE, {
7
- description: 'Size of proving job',
8
- unit: 'by',
9
- });
10
- this.queueSize = meter.createGauge(Metrics.PROVING_QUEUE_SIZE, {
11
- description: 'Size of proving queue',
12
- });
13
- }
14
- recordNewJob(type, size) {
15
- this.jobSize.record(size, {
16
- [Attributes.PROVING_JOB_TYPE]: ProvingRequestType[type],
17
- });
18
- }
19
- recordQueueSize(size) {
20
- this.queueSize.record(size);
21
- }
22
- }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWVfbWV0cmljcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92ZXItYWdlbnQvcXVldWVfbWV0cmljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUE4QixPQUFPLEVBQXdCLE1BQU0seUJBQXlCLENBQUM7QUFFaEgsTUFBTSxPQUFPLG1CQUFtQjtJQUk5QixZQUFZLE1BQXVCLEVBQUUsSUFBSSxHQUFHLHFCQUFxQjtRQUMvRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUU7WUFDbkUsV0FBVyxFQUFFLHFCQUFxQjtZQUNsQyxJQUFJLEVBQUUsSUFBSTtTQUNYLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUU7WUFDN0QsV0FBVyxFQUFFLHVCQUF1QjtTQUNyQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQXdCLEVBQUUsSUFBWTtRQUNqRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDeEIsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7U0FDeEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFZO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7Q0FDRiJ9
@@ -1,11 +0,0 @@
1
- import { type ProvingJobSource } from '@aztec/circuit-types';
2
- import { type ProverAgent } from './prover-agent.js';
3
- export declare function createProvingJobSourceServer(queue: ProvingJobSource): import("@aztec/foundation/json-rpc/server").SafeJsonRpcServer;
4
- export declare function createProvingJobSourceClient(url: string, fetch?: (host: string, rpcMethod: string, body: any, useApiEndpoints: boolean, extraHeaders?: Record<string, string> | undefined, noRetry?: boolean | undefined) => Promise<any>): ProvingJobSource;
5
- /**
6
- * Wrap a ProverAgent instance with a JSON RPC HTTP server.
7
- * @param agent - The Prover Agent
8
- * @returns An JSON-RPC HTTP server
9
- */
10
- export declare function createProverAgentRpcServer(agent: ProverAgent): import("@aztec/foundation/json-rpc/server").SafeJsonRpcServer;
11
- //# sourceMappingURL=rpc.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../src/prover-agent/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,gBAAgB,EAA0B,MAAM,sBAAsB,CAAC;AAI3G,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,gBAAgB,iEAEnE;AAED,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,2KAAoC,GAAG,gBAAgB,CAErH;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,WAAW,iEAE5D"}