@aztec/prover-client 0.47.0 → 0.48.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/config.d.ts +2 -0
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +28 -30
- package/dest/mocks/fixtures.d.ts.map +1 -1
- package/dest/mocks/fixtures.js +11 -7
- package/dest/mocks/test_context.d.ts +3 -3
- package/dest/mocks/test_context.d.ts.map +1 -1
- package/dest/mocks/test_context.js +6 -24
- package/dest/orchestrator/block-building-helpers.d.ts +3 -3
- package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
- package/dest/orchestrator/block-building-helpers.js +6 -5
- package/dest/orchestrator/orchestrator.d.ts +11 -6
- package/dest/orchestrator/orchestrator.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator.js +115 -89
- package/dest/orchestrator/orchestrator_metrics.d.ts +8 -0
- package/dest/orchestrator/orchestrator_metrics.d.ts.map +1 -0
- package/dest/orchestrator/orchestrator_metrics.js +19 -0
- package/dest/orchestrator/proving-state.d.ts +3 -1
- package/dest/orchestrator/proving-state.d.ts.map +1 -1
- package/dest/orchestrator/proving-state.js +5 -1
- package/dest/orchestrator/tx-proving-state.d.ts +3 -2
- package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/tx-proving-state.js +26 -8
- package/dest/prover-agent/memory-proving-queue.d.ts +15 -13
- package/dest/prover-agent/memory-proving-queue.d.ts.map +1 -1
- package/dest/prover-agent/memory-proving-queue.js +37 -55
- package/dest/prover-agent/prover-agent.d.ts.map +1 -1
- package/dest/prover-agent/prover-agent.js +30 -8
- package/dest/prover-agent/queue_metrics.d.ts +10 -0
- package/dest/prover-agent/queue_metrics.d.ts.map +1 -0
- package/dest/prover-agent/queue_metrics.js +23 -0
- package/dest/prover-agent/rpc.d.ts.map +1 -1
- package/dest/prover-agent/rpc.js +4 -2
- package/dest/tx-prover/factory.d.ts +1 -3
- package/dest/tx-prover/factory.d.ts.map +1 -1
- package/dest/tx-prover/factory.js +3 -3
- package/dest/tx-prover/tx-prover.d.ts +8 -33
- package/dest/tx-prover/tx-prover.d.ts.map +1 -1
- package/dest/tx-prover/tx-prover.js +18 -46
- package/package.json +10 -10
- package/src/config.ts +28 -47
- package/src/mocks/fixtures.ts +14 -4
- package/src/mocks/test_context.ts +7 -27
- package/src/orchestrator/block-building-helpers.ts +6 -5
- package/src/orchestrator/orchestrator.ts +197 -103
- package/src/orchestrator/orchestrator_metrics.ts +32 -0
- package/src/orchestrator/proving-state.ts +5 -0
- package/src/orchestrator/tx-proving-state.ts +33 -7
- package/src/prover-agent/memory-proving-queue.ts +54 -70
- package/src/prover-agent/prover-agent.ts +42 -7
- package/src/prover-agent/queue_metrics.ts +29 -0
- package/src/prover-agent/rpc.ts +3 -0
- package/src/tx-prover/factory.ts +2 -9
- package/src/tx-prover/tx-prover.ts +21 -64
|
@@ -3,6 +3,7 @@ import { createDebugLogger } from '@aztec/foundation/log';
|
|
|
3
3
|
import { RunningPromise } from '@aztec/foundation/running-promise';
|
|
4
4
|
import { elapsed } from '@aztec/foundation/timer';
|
|
5
5
|
import { ProvingError } from './proving-error.js';
|
|
6
|
+
const PRINT_THRESHOLD_NS = 6e10; // 60 seconds
|
|
6
7
|
/**
|
|
7
8
|
* A helper class that encapsulates a circuit prover and connects it to a job source.
|
|
8
9
|
*/
|
|
@@ -36,10 +37,22 @@ export class ProverAgent {
|
|
|
36
37
|
if (this.runningPromise) {
|
|
37
38
|
throw new Error('Agent is already running');
|
|
38
39
|
}
|
|
40
|
+
let lastPrint = process.hrtime.bigint();
|
|
39
41
|
this.runningPromise = new RunningPromise(async () => {
|
|
40
42
|
for (const jobId of this.inFlightPromises.keys()) {
|
|
41
43
|
await jobSource.heartbeat(jobId);
|
|
42
44
|
}
|
|
45
|
+
const now = process.hrtime.bigint();
|
|
46
|
+
if (now - lastPrint >= PRINT_THRESHOLD_NS) {
|
|
47
|
+
// only log if we're actually doing work
|
|
48
|
+
if (this.inFlightPromises.size > 0) {
|
|
49
|
+
const jobs = Array.from(this.inFlightPromises.values())
|
|
50
|
+
.map(job => `id=${job.id},type=${ProvingRequestType[job.type]}`)
|
|
51
|
+
.join(' ');
|
|
52
|
+
this.log.info(`Agent is running with ${this.inFlightPromises.size} in-flight jobs: ${jobs}`);
|
|
53
|
+
}
|
|
54
|
+
lastPrint = now;
|
|
55
|
+
}
|
|
43
56
|
while (this.inFlightPromises.size < this.maxConcurrency) {
|
|
44
57
|
try {
|
|
45
58
|
const job = await jobSource.getProvingJob();
|
|
@@ -47,11 +60,20 @@ export class ProverAgent {
|
|
|
47
60
|
// job source is fully drained, sleep for a bit and try again
|
|
48
61
|
return;
|
|
49
62
|
}
|
|
50
|
-
|
|
51
|
-
|
|
63
|
+
try {
|
|
64
|
+
const promise = this.work(jobSource, job).finally(() => this.inFlightPromises.delete(job.id));
|
|
65
|
+
this.inFlightPromises.set(job.id, {
|
|
66
|
+
id: job.id,
|
|
67
|
+
type: job.request.type,
|
|
68
|
+
promise,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
this.log.warn(`Error processing job! type=${ProvingRequestType[job.request.type]}: ${err}. ${err.stack}`);
|
|
73
|
+
}
|
|
52
74
|
}
|
|
53
75
|
catch (err) {
|
|
54
|
-
this.log.
|
|
76
|
+
this.log.error(`Error fetching job`, err);
|
|
55
77
|
}
|
|
56
78
|
}
|
|
57
79
|
}, this.pollIntervalMs);
|
|
@@ -71,20 +93,20 @@ export class ProverAgent {
|
|
|
71
93
|
this.log.debug(`Picked up proving job id=${job.id} type=${ProvingRequestType[job.request.type]}`);
|
|
72
94
|
const [time, result] = await elapsed(this.getProof(job.request));
|
|
73
95
|
if (this.isRunning()) {
|
|
74
|
-
this.log.
|
|
96
|
+
this.log.verbose(`Processed proving job id=${job.id} type=${ProvingRequestType[job.request.type]} duration=${time}ms`);
|
|
75
97
|
await jobSource.resolveProvingJob(job.id, result);
|
|
76
98
|
}
|
|
77
99
|
else {
|
|
78
|
-
this.log.
|
|
100
|
+
this.log.verbose(`Dropping proving job id=${job.id} type=${ProvingRequestType[job.request.type]} duration=${time}ms: agent stopped`);
|
|
79
101
|
}
|
|
80
102
|
}
|
|
81
103
|
catch (err) {
|
|
82
104
|
if (this.isRunning()) {
|
|
83
|
-
this.log.error(`Error processing proving job id=${job.id} type=${ProvingRequestType[job.request.type]}: ${err.stack || err}
|
|
105
|
+
this.log.error(`Error processing proving job id=${job.id} type=${ProvingRequestType[job.request.type]}: ${err.stack || err}`, err);
|
|
84
106
|
await jobSource.rejectProvingJob(job.id, new ProvingError(err?.message ?? String(err)));
|
|
85
107
|
}
|
|
86
108
|
else {
|
|
87
|
-
this.log.
|
|
109
|
+
this.log.verbose(`Dropping proving job id=${job.id} type=${ProvingRequestType[job.request.type]}: agent stopped: ${err.stack || err}`);
|
|
88
110
|
}
|
|
89
111
|
}
|
|
90
112
|
}
|
|
@@ -134,4 +156,4 @@ export class ProverAgent {
|
|
|
134
156
|
}
|
|
135
157
|
}
|
|
136
158
|
}
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmVyLWFnZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3Zlci1hZ2VudC9wcm92ZXItYWdlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUtMLGtCQUFrQixHQUVuQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWxELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLENBQUMsYUFBYTtBQUU5Qzs7R0FFRztBQUNILE1BQU0sT0FBTyxXQUFXO0lBV3RCO0lBQ0UsaURBQWlEO0lBQ3pDLGFBQWtDO0lBQzFDLDhEQUE4RDtJQUN0RCxpQkFBaUIsQ0FBQztJQUMxQixvQ0FBb0M7SUFDNUIsaUJBQWlCLEdBQUcsRUFDcEIsTUFBTSxpQkFBaUIsQ0FBQyxrQ0FBa0MsQ0FBQztRQUwzRCxrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7UUFFbEMsbUJBQWMsR0FBZCxjQUFjLENBQUk7UUFFbEIsbUJBQWMsR0FBZCxjQUFjLENBQU07UUFDcEIsUUFBRyxHQUFILEdBQUcsQ0FBd0Q7UUFqQjdELHFCQUFnQixHQUFHLElBQUksR0FBRyxFQU8vQixDQUFDO0lBV0QsQ0FBQztJQUVKLGlCQUFpQixDQUFDLGNBQXNCO1FBQ3RDLElBQUksY0FBYyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7SUFDdkMsQ0FBQztJQUVELGdCQUFnQixDQUFDLGFBQWtDO1FBQ2pELElB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
|
|
@@ -0,0 +1,10 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../src/prover-agent/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../src/prover-agent/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAyB7D,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAIlE,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,gBAAgB,GAAG,aAAa,CA6BnF;AAED,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,MAAM,EAClB,KAAK,yFAA8B,GAClC,gBAAgB,CAgClB"}
|
package/dest/prover-agent/rpc.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AvmCircuitInputs, BaseOrMergeRollupPublicInputs, BaseParityInputs, BaseRollupInputs, Fr, Header, KernelCircuitPublicInputs, MergeRollupInputs, ParityPublicInputs, Proof, PublicKernelCircuitPrivateInputs, PublicKernelCircuitPublicInputs, PublicKernelTailCircuitPrivateInputs, RecursiveProof, RootParityInput, RootParityInputs, RootRollupInputs, RootRollupPublicInputs, TubeInputs, VerificationKeyData, } from '@aztec/circuits.js';
|
|
1
|
+
import { AvmCircuitInputs, BaseOrMergeRollupPublicInputs, BaseParityInputs, BaseRollupInputs, Fr, Header, KernelCircuitPublicInputs, MergeRollupInputs, ParityPublicInputs, PrivateKernelEmptyInputData, Proof, PublicKernelCircuitPrivateInputs, PublicKernelCircuitPublicInputs, PublicKernelTailCircuitPrivateInputs, RecursiveProof, RootParityInput, RootParityInputs, RootRollupInputs, RootRollupPublicInputs, TubeInputs, VerificationKeyData, } from '@aztec/circuits.js';
|
|
2
2
|
import { createJsonRpcClient, makeFetch } from '@aztec/foundation/json-rpc/client';
|
|
3
3
|
import { JsonRpcServer } from '@aztec/foundation/json-rpc/server';
|
|
4
4
|
import { ProvingError } from './proving-error.js';
|
|
@@ -15,6 +15,7 @@ export function createProvingJobSourceServer(queue) {
|
|
|
15
15
|
ParityPublicInputs,
|
|
16
16
|
Proof,
|
|
17
17
|
ProvingError,
|
|
18
|
+
PrivateKernelEmptyInputData,
|
|
18
19
|
PublicKernelCircuitPrivateInputs,
|
|
19
20
|
PublicKernelCircuitPublicInputs,
|
|
20
21
|
PublicKernelTailCircuitPrivateInputs,
|
|
@@ -40,6 +41,7 @@ export function createProvingJobSourceClient(url, namespace, fetch = makeFetch([
|
|
|
40
41
|
ParityPublicInputs,
|
|
41
42
|
Proof,
|
|
42
43
|
ProvingError,
|
|
44
|
+
PrivateKernelEmptyInputData,
|
|
43
45
|
PublicKernelCircuitPrivateInputs,
|
|
44
46
|
PublicKernelCircuitPublicInputs,
|
|
45
47
|
PublicKernelTailCircuitPrivateInputs,
|
|
@@ -52,4 +54,4 @@ export function createProvingJobSourceClient(url, namespace, fetch = makeFetch([
|
|
|
52
54
|
VerificationKeyData,
|
|
53
55
|
}, {}, false, namespace, fetch);
|
|
54
56
|
}
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnBjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3Zlci1hZ2VudC9ycGMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLGdCQUFnQixFQUNoQiw2QkFBNkIsRUFDN0IsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixFQUFFLEVBQ0YsTUFBTSxFQUNOLHlCQUF5QixFQUN6QixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLDJCQUEyQixFQUMzQixLQUFLLEVBQ0wsZ0NBQWdDLEVBQ2hDLCtCQUErQixFQUMvQixvQ0FBb0MsRUFDcEMsY0FBYyxFQUNkLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLHNCQUFzQixFQUN0QixVQUFVLEVBQ1YsbUJBQW1CLEdBQ3BCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFbEQsTUFBTSxVQUFVLDRCQUE0QixDQUFDLEtBQXVCO0lBQ2xFLE9BQU8sSUFBSSxhQUFhLENBQ3RCLEtBQUssRUFDTDtRQUNFLGdCQUFnQjtRQUNoQiw2QkFBNkI7UUFDN0IsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtRQUNoQixFQUFFO1FBQ0YsTUFBTTtRQUNOLHlCQUF5QjtRQUN6QixpQkFBaUI7UUFDakIsa0JBQWtCO1FBQ2xCLEtBQUs7UUFDTCxZQUFZO1FBQ1osMkJBQTJCO1FBQzNCLGdDQUFnQztRQUNoQywrQkFBK0I7UUFDL0Isb0NBQW9DO1FBQ3BDLGNBQWM7UUFDZCxlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtRQUNoQixzQkFBc0I7UUFDdEIsVUFBVTtRQUNWLG1CQUFtQjtLQUNwQixFQUNELEVBQUUsQ0FDSCxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSw0QkFBNEIsQ0FDMUMsR0FBVyxFQUNYLFNBQWtCLEVBQ2xCLEtBQUssR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQztJQUVuQyxPQUFPLG1CQUFtQixDQUN4QixHQUFHLEVBQ0g7UUFDRSxnQkFBZ0I7UUFDaEIsNkJBQTZCO1FBQzdCLGdCQUFnQjtRQUNoQixnQkFBZ0I7UUFDaEIsRUFBRTtRQUNGLE1BQU07UUFDTix5QkFBeUI7UUFDekIsaUJBQWlCO1FBQ2pCLGtCQUFrQjtRQUNsQixLQUFLO1FBQ0wsWUFBWTtRQUNaLDJCQUEyQjtRQUMzQixnQ0FBZ0M7UUFDaEMsK0JBQStCO1FBQy9CLG9DQUFvQztRQUNwQyxjQUFjO1FBQ2QsZUFBZTtRQUNmLGdCQUFnQjtRQUNoQixzQkFBc0I7UUFDdEIsZ0JBQWdCO1FBQ2hCLFVBQVU7UUFDVixtQkFBbUI7S0FDcEIsRUFDRCxFQUFFLEVBQ0YsS0FBSyxFQUNMLFNBQVMsRUFDVCxLQUFLLENBQ2MsQ0FBQztBQUN4QixDQUFDIn0=
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { type L2BlockSource } from '@aztec/circuit-types';
|
|
2
1
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
3
|
-
import { type WorldStateSynchronizer } from '@aztec/world-state';
|
|
4
2
|
import { type ProverClientConfig } from '../config.js';
|
|
5
3
|
import { TxProver } from './tx-prover.js';
|
|
6
|
-
export declare function createProverClient(config: ProverClientConfig,
|
|
4
|
+
export declare function createProverClient(config: ProverClientConfig, telemetry?: TelemetryClient): Promise<TxProver> | undefined;
|
|
7
5
|
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/tx-prover/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/tx-prover/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,GAAE,eAA2C,iCAEpH"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { NoopTelemetryClient } from '@aztec/telemetry-client/noop';
|
|
2
2
|
import { TxProver } from './tx-prover.js';
|
|
3
|
-
export function createProverClient(config,
|
|
4
|
-
return config.disableProver ? undefined : TxProver.new(config,
|
|
3
|
+
export function createProverClient(config, telemetry = new NoopTelemetryClient()) {
|
|
4
|
+
return config.disableProver ? undefined : TxProver.new(config, telemetry);
|
|
5
5
|
}
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eC1wcm92ZXIvZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUduRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUMsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE1BQTBCLEVBQUUsWUFBNkIsSUFBSSxtQkFBbUIsRUFBRTtJQUNuSCxPQUFPLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDNUUsQ0FBQyJ9
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import {
|
|
3
|
-
import { type Fr, type GlobalVariables } from '@aztec/circuits.js';
|
|
1
|
+
import { type BlockProver, type ProverClient, type ProvingJobSource } from '@aztec/circuit-types/interfaces';
|
|
2
|
+
import { Fr } from '@aztec/circuits.js';
|
|
4
3
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
5
|
-
import { type
|
|
4
|
+
import { type MerkleTreeOperations } from '@aztec/world-state';
|
|
6
5
|
import { type ProverClientConfig } from '../config.js';
|
|
7
6
|
/**
|
|
8
|
-
* A prover
|
|
7
|
+
* A prover factory.
|
|
8
|
+
* TODO(palla/prover-node): Rename this class
|
|
9
9
|
*/
|
|
10
10
|
export declare class TxProver implements ProverClient {
|
|
11
11
|
private config;
|
|
12
|
-
private worldStateSynchronizer;
|
|
13
12
|
private telemetry;
|
|
14
13
|
private agent?;
|
|
15
|
-
private orchestrator;
|
|
16
14
|
private queue;
|
|
17
15
|
private running;
|
|
18
16
|
private constructor();
|
|
17
|
+
createBlockProver(db: MerkleTreeOperations): BlockProver;
|
|
18
|
+
getProverId(): Fr;
|
|
19
19
|
updateProverConfig(config: Partial<ProverClientConfig>): Promise<void>;
|
|
20
20
|
/**
|
|
21
21
|
* Starts the prover instance
|
|
@@ -32,33 +32,8 @@ export declare class TxProver implements ProverClient {
|
|
|
32
32
|
* @param worldStateSynchronizer - An instance of the world state
|
|
33
33
|
* @returns An instance of the prover, constructed and started.
|
|
34
34
|
*/
|
|
35
|
-
static new(config: ProverClientConfig,
|
|
35
|
+
static new(config: ProverClientConfig, telemetry: TelemetryClient): Promise<TxProver>;
|
|
36
36
|
private static buildCircuitProver;
|
|
37
|
-
/**
|
|
38
|
-
* Cancels any block that is currently being built and prepares for a new one to be built
|
|
39
|
-
* @param numTxs - The complete size of the block, must be a power of 2
|
|
40
|
-
* @param globalVariables - The global variables for this block
|
|
41
|
-
* @param l1ToL2Messages - The set of L1 to L2 messages to be included in this block
|
|
42
|
-
*/
|
|
43
|
-
startNewBlock(numTxs: number, globalVariables: GlobalVariables, newL1ToL2Messages: Fr[]): Promise<ProvingTicket>;
|
|
44
|
-
/**
|
|
45
|
-
* Add a processed transaction to the current block
|
|
46
|
-
* @param tx - The transaction to be added
|
|
47
|
-
*/
|
|
48
|
-
addNewTx(tx: ProcessedTx): Promise<void>;
|
|
49
|
-
/**
|
|
50
|
-
* Cancels the block currently being proven. Proofs already bring built may continue but further proofs should not be started.
|
|
51
|
-
*/
|
|
52
|
-
cancelBlock(): void;
|
|
53
|
-
/**
|
|
54
|
-
* Performs the final archive tree insertion for this block and returns the L2Block and Proof instances
|
|
55
|
-
*/
|
|
56
|
-
finaliseBlock(): Promise<BlockResult>;
|
|
57
|
-
/**
|
|
58
|
-
* Mark the block as having all the transactions it is going to contain.
|
|
59
|
-
* Will pad the block to it's complete size with empty transactions and prove all the way to the root rollup.
|
|
60
|
-
*/
|
|
61
|
-
setBlockCompleted(): Promise<void>;
|
|
62
37
|
getProvingJobSource(): ProvingJobSource;
|
|
63
38
|
}
|
|
64
39
|
//# sourceMappingURL=tx-prover.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx-prover.d.ts","sourceRoot":"","sources":["../../src/tx-prover/tx-prover.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"tx-prover.d.ts","sourceRoot":"","sources":["../../src/tx-prover/tx-prover.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EAEtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAExC,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAKvD;;;GAGG;AACH,qBAAa,QAAS,YAAW,YAAY;IAKzC,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,KAAK,CAAC;IANhB,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO;IAUA,iBAAiB,CAAC,EAAE,EAAE,oBAAoB,GAAG,WAAW;IAIxD,WAAW,IAAI,EAAE;IAIlB,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB5E;;OAEG;IACI,KAAK;IAWZ;;OAEG;IACU,IAAI;IAWjB;;;;;;OAMG;WACiB,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,eAAe;mBAczD,kBAAkB;IAehC,mBAAmB,IAAI,gBAAgB;CAG/C"}
|
|
@@ -1,20 +1,28 @@
|
|
|
1
1
|
import { BBNativeRollupProver, TestCircuitProver } from '@aztec/bb-prover';
|
|
2
|
+
import { Fr } from '@aztec/circuits.js';
|
|
2
3
|
import { NativeACVMSimulator } from '@aztec/simulator';
|
|
3
4
|
import { ProvingOrchestrator } from '../orchestrator/orchestrator.js';
|
|
4
5
|
import { MemoryProvingQueue } from '../prover-agent/memory-proving-queue.js';
|
|
5
6
|
import { ProverAgent } from '../prover-agent/prover-agent.js';
|
|
6
7
|
/**
|
|
7
|
-
* A prover
|
|
8
|
+
* A prover factory.
|
|
9
|
+
* TODO(palla/prover-node): Rename this class
|
|
8
10
|
*/
|
|
9
11
|
export class TxProver {
|
|
10
|
-
constructor(config,
|
|
12
|
+
constructor(config, telemetry, agent) {
|
|
11
13
|
this.config = config;
|
|
12
|
-
this.worldStateSynchronizer = worldStateSynchronizer;
|
|
13
14
|
this.telemetry = telemetry;
|
|
14
15
|
this.agent = agent;
|
|
15
16
|
this.running = false;
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
// TODO(palla/prover-node): Cache the paddingTx here, and not in each proving orchestrator,
|
|
18
|
+
// so it can be reused across multiple ones and not recomputed every time.
|
|
19
|
+
this.queue = new MemoryProvingQueue(telemetry, config.proverJobTimeoutMs, config.proverJobPollIntervalMs);
|
|
20
|
+
}
|
|
21
|
+
createBlockProver(db) {
|
|
22
|
+
return new ProvingOrchestrator(db, this.queue, this.telemetry, this.config.proverId);
|
|
23
|
+
}
|
|
24
|
+
getProverId() {
|
|
25
|
+
return this.config.proverId ?? Fr.ZERO;
|
|
18
26
|
}
|
|
19
27
|
async updateProverConfig(config) {
|
|
20
28
|
const newConfig = { ...this.config, ...config };
|
|
@@ -26,7 +34,7 @@ export class TxProver {
|
|
|
26
34
|
this.agent?.setMaxConcurrency(newConfig.proverAgentConcurrency);
|
|
27
35
|
}
|
|
28
36
|
if (!this.config.realProofs && newConfig.realProofs) {
|
|
29
|
-
|
|
37
|
+
// TODO(palla/prover-node): Reset padding tx here once we cache it at this class
|
|
30
38
|
}
|
|
31
39
|
this.config = newConfig;
|
|
32
40
|
}
|
|
@@ -50,6 +58,7 @@ export class TxProver {
|
|
|
50
58
|
return;
|
|
51
59
|
}
|
|
52
60
|
this.running = false;
|
|
61
|
+
// TODO(palla/prover-node): Keep a reference to all proving orchestrators that are alive and stop them?
|
|
53
62
|
await this.agent?.stop();
|
|
54
63
|
await this.queue.stop();
|
|
55
64
|
}
|
|
@@ -60,11 +69,11 @@ export class TxProver {
|
|
|
60
69
|
* @param worldStateSynchronizer - An instance of the world state
|
|
61
70
|
* @returns An instance of the prover, constructed and started.
|
|
62
71
|
*/
|
|
63
|
-
static async new(config,
|
|
72
|
+
static async new(config, telemetry) {
|
|
64
73
|
const agent = config.proverAgentEnabled
|
|
65
74
|
? new ProverAgent(await TxProver.buildCircuitProver(config, telemetry), config.proverAgentConcurrency, config.proverAgentPollInterval)
|
|
66
75
|
: undefined;
|
|
67
|
-
const prover = new TxProver(config,
|
|
76
|
+
const prover = new TxProver(config, telemetry, agent);
|
|
68
77
|
await prover.start();
|
|
69
78
|
return prover;
|
|
70
79
|
}
|
|
@@ -77,45 +86,8 @@ export class TxProver {
|
|
|
77
86
|
: undefined;
|
|
78
87
|
return new TestCircuitProver(telemetry, simulationProvider);
|
|
79
88
|
}
|
|
80
|
-
/**
|
|
81
|
-
* Cancels any block that is currently being built and prepares for a new one to be built
|
|
82
|
-
* @param numTxs - The complete size of the block, must be a power of 2
|
|
83
|
-
* @param globalVariables - The global variables for this block
|
|
84
|
-
* @param l1ToL2Messages - The set of L1 to L2 messages to be included in this block
|
|
85
|
-
*/
|
|
86
|
-
async startNewBlock(numTxs, globalVariables, newL1ToL2Messages) {
|
|
87
|
-
const previousBlockNumber = globalVariables.blockNumber.toNumber() - 1;
|
|
88
|
-
await this.worldStateSynchronizer.syncImmediate(previousBlockNumber);
|
|
89
|
-
return this.orchestrator.startNewBlock(numTxs, globalVariables, newL1ToL2Messages);
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Add a processed transaction to the current block
|
|
93
|
-
* @param tx - The transaction to be added
|
|
94
|
-
*/
|
|
95
|
-
addNewTx(tx) {
|
|
96
|
-
return this.orchestrator.addNewTx(tx);
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Cancels the block currently being proven. Proofs already bring built may continue but further proofs should not be started.
|
|
100
|
-
*/
|
|
101
|
-
cancelBlock() {
|
|
102
|
-
this.orchestrator.cancelBlock();
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Performs the final archive tree insertion for this block and returns the L2Block and Proof instances
|
|
106
|
-
*/
|
|
107
|
-
finaliseBlock() {
|
|
108
|
-
return this.orchestrator.finaliseBlock();
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Mark the block as having all the transactions it is going to contain.
|
|
112
|
-
* Will pad the block to it's complete size with empty transactions and prove all the way to the root rollup.
|
|
113
|
-
*/
|
|
114
|
-
setBlockCompleted() {
|
|
115
|
-
return this.orchestrator.setBlockCompleted();
|
|
116
|
-
}
|
|
117
89
|
getProvingJobSource() {
|
|
118
90
|
return this.queue;
|
|
119
91
|
}
|
|
120
92
|
}
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHgtcHJvdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R4LXByb3Zlci90eC1wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFPM0UsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBS3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU5RDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sUUFBUTtJQUluQixZQUNVLE1BQTBCLEVBQzFCLFNBQTBCLEVBQzFCLEtBQW1CO1FBRm5CLFdBQU0sR0FBTixNQUFNLENBQW9CO1FBQzFCLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBQzFCLFVBQUssR0FBTCxLQUFLLENBQWM7UUFMckIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQU90QiwyRkFBMkY7UUFDM0YsMEVBQTBFO1FBQzFFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQzVHLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxFQUF3QjtRQUMvQyxPQUFPLElBQUksbUJBQW1CLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFTSxXQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE1BQU0s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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/prover-client",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.48.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -58,15 +58,15 @@
|
|
|
58
58
|
]
|
|
59
59
|
},
|
|
60
60
|
"dependencies": {
|
|
61
|
-
"@aztec/bb-prover": "0.
|
|
62
|
-
"@aztec/circuit-types": "0.
|
|
63
|
-
"@aztec/circuits.js": "0.
|
|
64
|
-
"@aztec/foundation": "0.
|
|
65
|
-
"@aztec/kv-store": "0.
|
|
66
|
-
"@aztec/noir-protocol-circuits-types": "0.
|
|
67
|
-
"@aztec/simulator": "0.
|
|
68
|
-
"@aztec/telemetry-client": "0.
|
|
69
|
-
"@aztec/world-state": "0.
|
|
61
|
+
"@aztec/bb-prover": "0.48.0",
|
|
62
|
+
"@aztec/circuit-types": "0.48.0",
|
|
63
|
+
"@aztec/circuits.js": "0.48.0",
|
|
64
|
+
"@aztec/foundation": "0.48.0",
|
|
65
|
+
"@aztec/kv-store": "0.48.0",
|
|
66
|
+
"@aztec/noir-protocol-circuits-types": "0.48.0",
|
|
67
|
+
"@aztec/simulator": "0.48.0",
|
|
68
|
+
"@aztec/telemetry-client": "0.48.0",
|
|
69
|
+
"@aztec/world-state": "0.48.0",
|
|
70
70
|
"@noir-lang/types": "portal:../../noir/packages/types",
|
|
71
71
|
"commander": "^12.1.0",
|
|
72
72
|
"lodash.chunk": "^4.2.0",
|
package/src/config.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { type ProverConfig } from '@aztec/circuit-types';
|
|
2
|
-
|
|
3
|
-
import { tmpdir } from 'os';
|
|
1
|
+
import { type ProverConfig, proverConfigMappings } from '@aztec/circuit-types';
|
|
2
|
+
import { type ConfigMappingsType, booleanConfigHelper, getConfigFromMappings } from '@aztec/foundation/config';
|
|
4
3
|
|
|
5
4
|
/**
|
|
6
5
|
* The prover configuration.
|
|
@@ -18,54 +17,36 @@ export type ProverClientConfig = ProverConfig & {
|
|
|
18
17
|
disableProver: boolean;
|
|
19
18
|
};
|
|
20
19
|
|
|
20
|
+
export const proverClientConfigMappings: ConfigMappingsType<ProverClientConfig> = {
|
|
21
|
+
acvmWorkingDirectory: {
|
|
22
|
+
env: 'ACVM_WORKING_DIRECTORY',
|
|
23
|
+
description: 'The working directory to use for simulation/proving',
|
|
24
|
+
},
|
|
25
|
+
acvmBinaryPath: {
|
|
26
|
+
env: 'ACVM_BINARY_PATH',
|
|
27
|
+
description: 'The path to the ACVM binary',
|
|
28
|
+
},
|
|
29
|
+
bbWorkingDirectory: {
|
|
30
|
+
env: 'BB_WORKING_DIRECTORY',
|
|
31
|
+
description: 'The working directory to for proving',
|
|
32
|
+
},
|
|
33
|
+
bbBinaryPath: {
|
|
34
|
+
env: 'BB_BINARY_PATH',
|
|
35
|
+
description: 'The path to the bb binary',
|
|
36
|
+
},
|
|
37
|
+
disableProver: {
|
|
38
|
+
env: 'PROVER_DISABLED',
|
|
39
|
+
description: 'Whether to disable proving.',
|
|
40
|
+
...booleanConfigHelper(),
|
|
41
|
+
},
|
|
42
|
+
...proverConfigMappings,
|
|
43
|
+
};
|
|
44
|
+
|
|
21
45
|
/**
|
|
22
46
|
* Returns the prover configuration from the environment variables.
|
|
23
47
|
* Note: If an environment variable is not set, the default value is used.
|
|
24
48
|
* @returns The prover configuration.
|
|
25
49
|
*/
|
|
26
50
|
export function getProverEnvVars(): ProverClientConfig {
|
|
27
|
-
|
|
28
|
-
AZTEC_NODE_URL,
|
|
29
|
-
ACVM_WORKING_DIRECTORY = tmpdir(),
|
|
30
|
-
ACVM_BINARY_PATH = '',
|
|
31
|
-
BB_WORKING_DIRECTORY = tmpdir(),
|
|
32
|
-
BB_BINARY_PATH = '',
|
|
33
|
-
PROVER_DISABLED = '',
|
|
34
|
-
/** @deprecated */
|
|
35
|
-
PROVER_AGENTS = '1',
|
|
36
|
-
PROVER_AGENT_ENABLED = '1',
|
|
37
|
-
PROVER_AGENT_CONCURRENCY = PROVER_AGENTS,
|
|
38
|
-
PROVER_AGENT_POLL_INTERVAL_MS = '100',
|
|
39
|
-
PROVER_REAL_PROOFS = '',
|
|
40
|
-
PROVER_JOB_TIMEOUT_MS = '60000',
|
|
41
|
-
PROVER_JOB_POLL_INTERVAL_MS = '1000',
|
|
42
|
-
} = process.env;
|
|
43
|
-
|
|
44
|
-
const realProofs = ['1', 'true'].includes(PROVER_REAL_PROOFS);
|
|
45
|
-
const proverAgentEnabled = ['1', 'true'].includes(PROVER_AGENT_ENABLED);
|
|
46
|
-
const proverAgentConcurrency = safeParseNumber(PROVER_AGENT_CONCURRENCY, 1);
|
|
47
|
-
const proverAgentPollInterval = safeParseNumber(PROVER_AGENT_POLL_INTERVAL_MS, 100);
|
|
48
|
-
const proverJobTimeoutMs = safeParseNumber(PROVER_JOB_TIMEOUT_MS, 60000);
|
|
49
|
-
const proverJobPollIntervalMs = safeParseNumber(PROVER_JOB_POLL_INTERVAL_MS, 1000);
|
|
50
|
-
const disableProver = ['1', 'true'].includes(PROVER_DISABLED);
|
|
51
|
-
|
|
52
|
-
return {
|
|
53
|
-
acvmWorkingDirectory: ACVM_WORKING_DIRECTORY,
|
|
54
|
-
acvmBinaryPath: ACVM_BINARY_PATH,
|
|
55
|
-
bbBinaryPath: BB_BINARY_PATH,
|
|
56
|
-
bbWorkingDirectory: BB_WORKING_DIRECTORY,
|
|
57
|
-
realProofs,
|
|
58
|
-
disableProver,
|
|
59
|
-
proverAgentEnabled,
|
|
60
|
-
proverAgentPollInterval,
|
|
61
|
-
proverAgentConcurrency,
|
|
62
|
-
nodeUrl: AZTEC_NODE_URL,
|
|
63
|
-
proverJobPollIntervalMs,
|
|
64
|
-
proverJobTimeoutMs,
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
function safeParseNumber(value: string, defaultValue: number): number {
|
|
69
|
-
const parsedValue = parseInt(value, 10);
|
|
70
|
-
return Number.isSafeInteger(parsedValue) ? parsedValue : defaultValue;
|
|
51
|
+
return getConfigFromMappings<ProverClientConfig>(proverClientConfigMappings);
|
|
71
52
|
}
|
package/src/mocks/fixtures.ts
CHANGED
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
GasFees,
|
|
13
13
|
GlobalVariables,
|
|
14
14
|
KernelCircuitPublicInputs,
|
|
15
|
+
LogHash,
|
|
15
16
|
MAX_L2_TO_L1_MSGS_PER_TX,
|
|
16
17
|
MAX_NOTE_HASHES_PER_TX,
|
|
17
18
|
MAX_NULLIFIERS_PER_TX,
|
|
@@ -20,8 +21,9 @@ import {
|
|
|
20
21
|
PUBLIC_DATA_SUBTREE_HEIGHT,
|
|
21
22
|
PublicDataTreeLeaf,
|
|
22
23
|
PublicDataUpdateRequest,
|
|
24
|
+
ScopedLogHash,
|
|
23
25
|
} from '@aztec/circuits.js';
|
|
24
|
-
import { fr } from '@aztec/circuits.js/testing';
|
|
26
|
+
import { fr, makeScopedL2ToL1Message } from '@aztec/circuits.js/testing';
|
|
25
27
|
import { makeTuple } from '@aztec/foundation/array';
|
|
26
28
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
27
29
|
import { randomBytes } from '@aztec/foundation/crypto';
|
|
@@ -120,9 +122,16 @@ export const makeBloatedProcessedTx = (builderDb: MerkleTreeOperations, seed = 0
|
|
|
120
122
|
|
|
121
123
|
processedTx.data.end.nullifiers[tx.data.forPublic!.end.nullifiers.length - 1] = Fr.zero();
|
|
122
124
|
|
|
123
|
-
processedTx.data.end.l2ToL1Msgs = makeTuple(MAX_L2_TO_L1_MSGS_PER_TX,
|
|
124
|
-
processedTx.
|
|
125
|
-
|
|
125
|
+
processedTx.data.end.l2ToL1Msgs = makeTuple(MAX_L2_TO_L1_MSGS_PER_TX, makeScopedL2ToL1Message, seed + 0x300);
|
|
126
|
+
processedTx.noteEncryptedLogs.unrollLogs().forEach((log, i) => {
|
|
127
|
+
processedTx.data.end.noteEncryptedLogsHashes[i] = new LogHash(Fr.fromBuffer(log.hash()), 0, new Fr(log.length));
|
|
128
|
+
});
|
|
129
|
+
processedTx.encryptedLogs.unrollLogs().forEach((log, i) => {
|
|
130
|
+
processedTx.data.end.encryptedLogsHashes[i] = new ScopedLogHash(
|
|
131
|
+
new LogHash(Fr.fromBuffer(log.hash()), 0, new Fr(log.length)),
|
|
132
|
+
log.maskedContractAddress,
|
|
133
|
+
);
|
|
134
|
+
});
|
|
126
135
|
|
|
127
136
|
return processedTx;
|
|
128
137
|
};
|
|
@@ -171,6 +180,7 @@ export const makeGlobals = (blockNumber: number) => {
|
|
|
171
180
|
Fr.ZERO,
|
|
172
181
|
Fr.ZERO,
|
|
173
182
|
new Fr(blockNumber),
|
|
183
|
+
new Fr(blockNumber) /** slot number */,
|
|
174
184
|
Fr.ZERO,
|
|
175
185
|
EthAddress.ZERO,
|
|
176
186
|
AztecAddress.ZERO,
|