@aztec/prover-client 0.67.1 → 0.68.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/block_builder/light.d.ts +4 -3
- package/dest/block_builder/light.d.ts.map +1 -1
- package/dest/block_builder/light.js +23 -16
- package/dest/index.d.ts +0 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +1 -2
- package/dest/mocks/fixtures.d.ts.map +1 -1
- package/dest/mocks/fixtures.js +3 -3
- package/dest/mocks/test_context.d.ts +3 -2
- package/dest/mocks/test_context.d.ts.map +1 -1
- package/dest/mocks/test_context.js +22 -11
- package/dest/orchestrator/block-building-helpers.d.ts +8 -2
- package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
- package/dest/orchestrator/block-building-helpers.js +20 -7
- package/dest/orchestrator/block-proving-state.d.ts +8 -5
- package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/block-proving-state.js +16 -7
- package/dest/orchestrator/epoch-proving-state.d.ts +3 -2
- package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/epoch-proving-state.js +3 -3
- package/dest/orchestrator/orchestrator.d.ts +10 -7
- package/dest/orchestrator/orchestrator.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator.js +94 -56
- package/dest/orchestrator/tx-proving-state.d.ts +2 -1
- package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/tx-proving-state.js +3 -2
- package/dest/prover-agent/memory-proving-queue.d.ts +4 -2
- package/dest/prover-agent/memory-proving-queue.d.ts.map +1 -1
- package/dest/prover-agent/memory-proving-queue.js +240 -224
- package/dest/prover-agent/prover-agent.d.ts +11 -2
- package/dest/prover-agent/prover-agent.d.ts.map +1 -1
- package/dest/prover-agent/prover-agent.js +186 -159
- package/dest/prover-client/prover-client.d.ts +2 -3
- package/dest/prover-client/prover-client.d.ts.map +1 -1
- package/dest/prover-client/prover-client.js +4 -7
- package/dest/proving_broker/{caching_broker_facade.d.ts → broker_prover_facade.d.ts} +6 -9
- package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -0
- package/dest/proving_broker/broker_prover_facade.js +107 -0
- package/dest/proving_broker/proving_agent.d.ts +4 -3
- package/dest/proving_broker/proving_agent.d.ts.map +1 -1
- package/dest/proving_broker/proving_agent.js +73 -64
- package/dest/proving_broker/proving_broker.d.ts +4 -3
- package/dest/proving_broker/proving_broker.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker.js +403 -324
- package/dest/proving_broker/proving_job_controller.d.ts +2 -1
- package/dest/proving_broker/proving_job_controller.d.ts.map +1 -1
- package/dest/proving_broker/proving_job_controller.js +15 -14
- package/dest/proving_broker/rpc.d.ts.map +1 -1
- package/dest/proving_broker/rpc.js +1 -2
- package/dest/test/mock_prover.d.ts +6 -6
- package/dest/test/mock_prover.d.ts.map +1 -1
- package/dest/test/mock_prover.js +3 -6
- package/package.json +16 -15
- package/src/block_builder/light.ts +23 -16
- package/src/index.ts +0 -1
- package/src/mocks/fixtures.ts +2 -2
- package/src/mocks/test_context.ts +31 -16
- package/src/orchestrator/block-building-helpers.ts +34 -18
- package/src/orchestrator/block-proving-state.ts +18 -8
- package/src/orchestrator/epoch-proving-state.ts +1 -4
- package/src/orchestrator/orchestrator.ts +113 -62
- package/src/orchestrator/tx-proving-state.ts +6 -4
- package/src/prover-agent/memory-proving-queue.ts +21 -15
- package/src/prover-agent/prover-agent.ts +65 -46
- package/src/prover-client/prover-client.ts +3 -10
- package/src/proving_broker/{caching_broker_facade.ts → broker_prover_facade.ts} +46 -83
- package/src/proving_broker/proving_agent.ts +72 -76
- package/src/proving_broker/proving_broker.ts +114 -36
- package/src/proving_broker/proving_job_controller.ts +13 -12
- package/src/proving_broker/rpc.ts +0 -1
- package/src/test/mock_prover.ts +17 -14
- package/dest/proving_broker/caching_broker_facade.d.ts.map +0 -1
- package/dest/proving_broker/caching_broker_facade.js +0 -153
- package/dest/proving_broker/prover_cache/memory.d.ts +0 -9
- package/dest/proving_broker/prover_cache/memory.d.ts.map +0 -1
- package/dest/proving_broker/prover_cache/memory.js +0 -16
- package/src/proving_broker/prover_cache/memory.ts +0 -20
|
@@ -1,179 +1,206 @@
|
|
|
1
|
-
|
|
2
|
-
import { __classPrivateFieldGet } from "tslib";
|
|
1
|
+
import { __classPrivateFieldGet, __esDecorate, __runInitializers } from "tslib";
|
|
3
2
|
import { ProvingRequestType, makeProvingRequestResult, } from '@aztec/circuit-types';
|
|
4
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
5
4
|
import { RunningPromise } from '@aztec/foundation/running-promise';
|
|
6
5
|
import { elapsed } from '@aztec/foundation/timer';
|
|
6
|
+
import { Attributes, trackSpan } from '@aztec/telemetry-client';
|
|
7
|
+
import { NoopTelemetryClient } from '@aztec/telemetry-client/noop';
|
|
7
8
|
import { InlineProofStore } from '../proving_broker/proof_store.js';
|
|
8
9
|
const PRINT_THRESHOLD_NS = 6e10; // 60 seconds
|
|
9
10
|
/**
|
|
10
11
|
* A helper class that encapsulates a circuit prover and connects it to a job source.
|
|
11
12
|
*/
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
for (const jobId of this.inFlightPromises.keys()) {
|
|
51
|
-
await jobSource.heartbeat(jobId);
|
|
13
|
+
let ProverAgent = (() => {
|
|
14
|
+
var _ProverAgent_instances, _a, _ProverAgent_isRunning;
|
|
15
|
+
let _instanceExtraInitializers = [];
|
|
16
|
+
let _work_decorators;
|
|
17
|
+
return _a = class ProverAgent {
|
|
18
|
+
constructor(
|
|
19
|
+
/** The prover implementation to defer jobs to */
|
|
20
|
+
circuitProver,
|
|
21
|
+
/** How many proving jobs this agent can handle in parallel */
|
|
22
|
+
maxConcurrency = 1,
|
|
23
|
+
/** How long to wait between jobs */
|
|
24
|
+
pollIntervalMs = 100,
|
|
25
|
+
/** Telemetry client */
|
|
26
|
+
telemetry = new NoopTelemetryClient(),
|
|
27
|
+
/** Logger */
|
|
28
|
+
log = createLogger('prover-client:prover-agent')) {
|
|
29
|
+
_ProverAgent_instances.add(this);
|
|
30
|
+
this.circuitProver = (__runInitializers(this, _instanceExtraInitializers), circuitProver);
|
|
31
|
+
this.maxConcurrency = maxConcurrency;
|
|
32
|
+
this.pollIntervalMs = pollIntervalMs;
|
|
33
|
+
this.telemetry = telemetry;
|
|
34
|
+
this.log = log;
|
|
35
|
+
this.inFlightPromises = new Map();
|
|
36
|
+
this.proofInputsDatabase = new InlineProofStore();
|
|
37
|
+
this.tracer = telemetry.getTracer('ProverAgent');
|
|
38
|
+
}
|
|
39
|
+
setMaxConcurrency(maxConcurrency) {
|
|
40
|
+
if (maxConcurrency < 1) {
|
|
41
|
+
throw new Error('Concurrency must be at least 1');
|
|
42
|
+
}
|
|
43
|
+
this.maxConcurrency = maxConcurrency;
|
|
44
|
+
return Promise.resolve();
|
|
45
|
+
}
|
|
46
|
+
setCircuitProver(circuitProver) {
|
|
47
|
+
this.circuitProver = circuitProver;
|
|
48
|
+
}
|
|
49
|
+
isRunning() {
|
|
50
|
+
return Promise.resolve(__classPrivateFieldGet(this, _ProverAgent_instances, "m", _ProverAgent_isRunning).call(this));
|
|
52
51
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
.join(' ');
|
|
60
|
-
this.log.info(`Agent is running with ${this.inFlightPromises.size} in-flight jobs: ${jobs}`);
|
|
52
|
+
getCurrentJobs() {
|
|
53
|
+
return Promise.resolve(Array.from(this.inFlightPromises.values()).map(({ id, type }) => ({ id, type: ProvingRequestType[type] })));
|
|
54
|
+
}
|
|
55
|
+
start(jobSource) {
|
|
56
|
+
if (this.runningPromise) {
|
|
57
|
+
throw new Error('Agent is already running');
|
|
61
58
|
}
|
|
62
|
-
lastPrint =
|
|
59
|
+
let lastPrint = process.hrtime.bigint();
|
|
60
|
+
this.runningPromise = new RunningPromise(async () => {
|
|
61
|
+
for (const jobId of this.inFlightPromises.keys()) {
|
|
62
|
+
await jobSource.heartbeat(jobId);
|
|
63
|
+
}
|
|
64
|
+
const now = process.hrtime.bigint();
|
|
65
|
+
if (now - lastPrint >= PRINT_THRESHOLD_NS) {
|
|
66
|
+
// only log if we're actually doing work
|
|
67
|
+
if (this.inFlightPromises.size > 0) {
|
|
68
|
+
const jobs = Array.from(this.inFlightPromises.values())
|
|
69
|
+
.map(job => `id=${job.id},type=${ProvingRequestType[job.type]}`)
|
|
70
|
+
.join(' ');
|
|
71
|
+
this.log.info(`Agent is running with ${this.inFlightPromises.size} in-flight jobs: ${jobs}`);
|
|
72
|
+
}
|
|
73
|
+
lastPrint = now;
|
|
74
|
+
}
|
|
75
|
+
while (this.inFlightPromises.size < this.maxConcurrency) {
|
|
76
|
+
try {
|
|
77
|
+
const job = await jobSource.getProvingJob();
|
|
78
|
+
if (!job) {
|
|
79
|
+
// job source is fully drained, sleep for a bit and try again
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
try {
|
|
83
|
+
const promise = this.work(jobSource, job).finally(() => this.inFlightPromises.delete(job.id));
|
|
84
|
+
this.inFlightPromises.set(job.id, {
|
|
85
|
+
id: job.id,
|
|
86
|
+
type: job.type,
|
|
87
|
+
promise,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
this.log.warn(`Error processing job! type=${ProvingRequestType[job.type]}: ${err}. ${err.stack}`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
catch (err) {
|
|
95
|
+
this.log.error(`Error fetching job`, err);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}, this.log, this.pollIntervalMs);
|
|
99
|
+
this.runningPromise.start();
|
|
100
|
+
this.log.info(`Agent started with concurrency=${this.maxConcurrency}`);
|
|
101
|
+
}
|
|
102
|
+
async stop() {
|
|
103
|
+
if (!this.runningPromise?.isRunning()) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
await this.runningPromise.stop();
|
|
107
|
+
this.runningPromise = undefined;
|
|
108
|
+
this.log.info('Agent stopped');
|
|
63
109
|
}
|
|
64
|
-
|
|
110
|
+
async work(jobSource, job) {
|
|
65
111
|
try {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
catch (err) {
|
|
80
|
-
this.log.warn(`Error processing job! type=${ProvingRequestType[job.type]}: ${err}. ${err.stack}`);
|
|
112
|
+
this.log.debug(`Picked up proving job ${job.id} ${ProvingRequestType[job.type]}`, {
|
|
113
|
+
jobId: job.id,
|
|
114
|
+
jobType: ProvingRequestType[job.type],
|
|
115
|
+
});
|
|
116
|
+
const type = job.type;
|
|
117
|
+
const inputs = await this.proofInputsDatabase.getProofInput(job.inputsUri);
|
|
118
|
+
const [time, result] = await elapsed(this.getProof(inputs));
|
|
119
|
+
if (__classPrivateFieldGet(this, _ProverAgent_instances, "m", _ProverAgent_isRunning).call(this)) {
|
|
120
|
+
this.log.verbose(`Processed proving job id=${job.id} type=${ProvingRequestType[type]} duration=${time}ms`);
|
|
121
|
+
await jobSource.resolveProvingJob(job.id, makeProvingRequestResult(type, result));
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
this.log.verbose(`Dropping proving job id=${job.id} type=${ProvingRequestType[job.type]} duration=${time}ms: agent stopped`);
|
|
81
125
|
}
|
|
82
126
|
}
|
|
83
127
|
catch (err) {
|
|
84
|
-
|
|
128
|
+
const type = ProvingRequestType[job.type];
|
|
129
|
+
if (__classPrivateFieldGet(this, _ProverAgent_instances, "m", _ProverAgent_isRunning).call(this)) {
|
|
130
|
+
if (job.type === ProvingRequestType.PUBLIC_VM && !process.env.AVM_PROVING_STRICT) {
|
|
131
|
+
this.log.warn(`Expected error processing VM proving job id=${job.id} type=${type}: ${err}`);
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
this.log.error(`Error processing proving job id=${job.id} type=${type}: ${err}`, err);
|
|
135
|
+
}
|
|
136
|
+
const reason = err?.message ?? String(err);
|
|
137
|
+
await jobSource.rejectProvingJob(job.id, reason);
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
this.log.verbose(`Dropping proving job id=${job.id} type=${type}: agent stopped: ${err.stack || err}`);
|
|
141
|
+
}
|
|
85
142
|
}
|
|
86
143
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
144
|
+
getProof(request) {
|
|
145
|
+
const { type, inputs } = request;
|
|
146
|
+
switch (type) {
|
|
147
|
+
case ProvingRequestType.PUBLIC_VM: {
|
|
148
|
+
return this.circuitProver.getAvmProof(inputs);
|
|
149
|
+
}
|
|
150
|
+
case ProvingRequestType.PRIVATE_BASE_ROLLUP: {
|
|
151
|
+
return this.circuitProver.getPrivateBaseRollupProof(inputs);
|
|
152
|
+
}
|
|
153
|
+
case ProvingRequestType.PUBLIC_BASE_ROLLUP: {
|
|
154
|
+
return this.circuitProver.getPublicBaseRollupProof(inputs);
|
|
155
|
+
}
|
|
156
|
+
case ProvingRequestType.MERGE_ROLLUP: {
|
|
157
|
+
return this.circuitProver.getMergeRollupProof(inputs);
|
|
158
|
+
}
|
|
159
|
+
case ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP: {
|
|
160
|
+
return this.circuitProver.getEmptyBlockRootRollupProof(inputs);
|
|
161
|
+
}
|
|
162
|
+
case ProvingRequestType.BLOCK_ROOT_ROLLUP: {
|
|
163
|
+
return this.circuitProver.getBlockRootRollupProof(inputs);
|
|
164
|
+
}
|
|
165
|
+
case ProvingRequestType.BLOCK_MERGE_ROLLUP: {
|
|
166
|
+
return this.circuitProver.getBlockMergeRollupProof(inputs);
|
|
167
|
+
}
|
|
168
|
+
case ProvingRequestType.ROOT_ROLLUP: {
|
|
169
|
+
return this.circuitProver.getRootRollupProof(inputs);
|
|
170
|
+
}
|
|
171
|
+
case ProvingRequestType.BASE_PARITY: {
|
|
172
|
+
return this.circuitProver.getBaseParityProof(inputs);
|
|
173
|
+
}
|
|
174
|
+
case ProvingRequestType.ROOT_PARITY: {
|
|
175
|
+
return this.circuitProver.getRootParityProof(inputs);
|
|
176
|
+
}
|
|
177
|
+
case ProvingRequestType.PRIVATE_KERNEL_EMPTY: {
|
|
178
|
+
return this.circuitProver.getEmptyPrivateKernelProof(inputs);
|
|
179
|
+
}
|
|
180
|
+
case ProvingRequestType.TUBE_PROOF: {
|
|
181
|
+
return this.circuitProver.getTubeProof(inputs);
|
|
182
|
+
}
|
|
183
|
+
default: {
|
|
184
|
+
const _exhaustive = type;
|
|
185
|
+
return Promise.reject(new Error(`Invalid proof request type: ${type}`));
|
|
186
|
+
}
|
|
121
187
|
}
|
|
122
|
-
const reason = err?.message ?? String(err);
|
|
123
|
-
await jobSource.rejectProvingJob(job.id, reason);
|
|
124
|
-
}
|
|
125
|
-
else {
|
|
126
|
-
this.log.verbose(`Dropping proving job id=${job.id} type=${type}: agent stopped: ${err.stack || err}`);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
getProof(request) {
|
|
131
|
-
const { type, inputs } = request;
|
|
132
|
-
switch (type) {
|
|
133
|
-
case ProvingRequestType.PUBLIC_VM: {
|
|
134
|
-
return this.circuitProver.getAvmProof(inputs);
|
|
135
|
-
}
|
|
136
|
-
case ProvingRequestType.PRIVATE_BASE_ROLLUP: {
|
|
137
|
-
return this.circuitProver.getPrivateBaseRollupProof(inputs);
|
|
138
|
-
}
|
|
139
|
-
case ProvingRequestType.PUBLIC_BASE_ROLLUP: {
|
|
140
|
-
return this.circuitProver.getPublicBaseRollupProof(inputs);
|
|
141
|
-
}
|
|
142
|
-
case ProvingRequestType.MERGE_ROLLUP: {
|
|
143
|
-
return this.circuitProver.getMergeRollupProof(inputs);
|
|
144
|
-
}
|
|
145
|
-
case ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP: {
|
|
146
|
-
return this.circuitProver.getEmptyBlockRootRollupProof(inputs);
|
|
147
|
-
}
|
|
148
|
-
case ProvingRequestType.BLOCK_ROOT_ROLLUP: {
|
|
149
|
-
return this.circuitProver.getBlockRootRollupProof(inputs);
|
|
150
|
-
}
|
|
151
|
-
case ProvingRequestType.BLOCK_MERGE_ROLLUP: {
|
|
152
|
-
return this.circuitProver.getBlockMergeRollupProof(inputs);
|
|
153
|
-
}
|
|
154
|
-
case ProvingRequestType.ROOT_ROLLUP: {
|
|
155
|
-
return this.circuitProver.getRootRollupProof(inputs);
|
|
156
|
-
}
|
|
157
|
-
case ProvingRequestType.BASE_PARITY: {
|
|
158
|
-
return this.circuitProver.getBaseParityProof(inputs);
|
|
159
|
-
}
|
|
160
|
-
case ProvingRequestType.ROOT_PARITY: {
|
|
161
|
-
return this.circuitProver.getRootParityProof(inputs);
|
|
162
|
-
}
|
|
163
|
-
case ProvingRequestType.PRIVATE_KERNEL_EMPTY: {
|
|
164
|
-
return this.circuitProver.getEmptyPrivateKernelProof(inputs);
|
|
165
|
-
}
|
|
166
|
-
case ProvingRequestType.TUBE_PROOF: {
|
|
167
|
-
return this.circuitProver.getTubeProof(inputs);
|
|
168
|
-
}
|
|
169
|
-
default: {
|
|
170
|
-
const _exhaustive = type;
|
|
171
|
-
return Promise.reject(new Error(`Invalid proof request type: ${type}`));
|
|
172
188
|
}
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
189
|
+
},
|
|
190
|
+
_ProverAgent_instances = new WeakSet(),
|
|
191
|
+
_ProverAgent_isRunning = function _ProverAgent_isRunning() {
|
|
192
|
+
return this.runningPromise?.isRunning() ?? false;
|
|
193
|
+
},
|
|
194
|
+
(() => {
|
|
195
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
196
|
+
_work_decorators = [trackSpan('ProverAgent.work', (_jobSoure, job) => ({
|
|
197
|
+
[Attributes.PROVING_JOB_ID]: job.id,
|
|
198
|
+
[Attributes.PROVING_JOB_TYPE]: ProvingRequestType[job.type],
|
|
199
|
+
}))];
|
|
200
|
+
__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);
|
|
201
|
+
if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
202
|
+
})(),
|
|
203
|
+
_a;
|
|
204
|
+
})();
|
|
205
|
+
export { ProverAgent };
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmVyLWFnZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3Zlci1hZ2VudC9wcm92ZXItYWdlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFNTCxrQkFBa0IsRUFFbEIsd0JBQXdCLEdBQ3pCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBcUQsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFcEUsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsQ0FBQyxhQUFhO0FBUTlDOztHQUVHO0lBQ1UsV0FBVzs7OztzQkFBWCxXQUFXO1lBT3RCO1lBQ0UsaURBQWlEO1lBQ3pDLGFBQWtDO1lBQzFDLDhEQUE4RDtZQUN0RCxpQkFBaUIsQ0FBQztZQUMxQixvQ0FBb0M7WUFDNUIsaUJBQWlCLEdBQUc7WUFDNUIsdUJBQXVCO1lBQ2YsWUFBNkIsSUFBSSxtQkFBbUIsRUFBRTtZQUM5RCxhQUFhO1lBQ0wsTUFBTSxZQUFZLENBQUMsNEJBQTRCLENBQUM7O2dCQVJoRCxrQkFBYSxJQVRaLG1EQUFXLEVBU1osYUFBYSxFQUFxQjtnQkFFbEMsbUJBQWMsR0FBZCxjQUFjLENBQUk7Z0JBRWxCLG1CQUFjLEdBQWQsY0FBYyxDQUFNO2dCQUVwQixjQUFTLEdBQVQsU0FBUyxDQUE2QztnQkFFdEQsUUFBRyxHQUFILEdBQUcsQ0FBNkM7Z0JBaEJsRCxxQkFBZ0IsR0FBRyxJQUFJLEdBQUcs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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type ACVMConfig, type BBConfig } from '@aztec/bb-prover';
|
|
2
|
-
import { type ActualProverConfig, type EpochProver, type EpochProverManager, type ForkMerkleTreeOperations, type
|
|
2
|
+
import { type ActualProverConfig, type EpochProver, type EpochProverManager, type ForkMerkleTreeOperations, type ProvingJobBroker, type ProvingJobConsumer, type ServerCircuitProver } from '@aztec/circuit-types/interfaces';
|
|
3
3
|
import { Fr } from '@aztec/circuits.js';
|
|
4
4
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
5
5
|
import { type ProverClientConfig } from '../config.js';
|
|
@@ -13,9 +13,8 @@ export declare class ProverClient implements EpochProverManager {
|
|
|
13
13
|
private log;
|
|
14
14
|
private running;
|
|
15
15
|
private agents;
|
|
16
|
-
private cacheDir?;
|
|
17
16
|
private constructor();
|
|
18
|
-
createEpochProver(
|
|
17
|
+
createEpochProver(): EpochProver;
|
|
19
18
|
getProverId(): Fr;
|
|
20
19
|
updateProverConfig(config: Partial<ProverClientConfig>): Promise<void>;
|
|
21
20
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prover-client.d.ts","sourceRoot":"","sources":["../../src/prover-client/prover-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,QAAQ,EAA2C,MAAM,kBAAkB,CAAC;AAC3G,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,
|
|
1
|
+
{"version":3,"file":"prover-client.d.ts","sourceRoot":"","sources":["../../src/prover-client/prover-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,QAAQ,EAA2C,MAAM,kBAAkB,CAAC;AAC3G,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EAEvB,KAAK,mBAAmB,EACzB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAIxC,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAMvD,sHAAsH;AACtH,qBAAa,YAAa,YAAW,kBAAkB;IAKnD,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,WAAW,CAAC;IACpB,OAAO,CAAC,GAAG;IATb,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO;IAYA,iBAAiB,IAAI,WAAW;IAShC,WAAW,IAAI,EAAE;IAIlB,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB5E;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IASnC;;OAEG;IACU,IAAI;IAQjB;;;;;OAKG;WACiB,GAAG,CACrB,MAAM,EAAE,kBAAkB,EAC1B,UAAU,EAAE,wBAAwB,EACpC,MAAM,EAAE,gBAAgB,EACxB,SAAS,EAAE,eAAe;IAOrB,mBAAmB,IAAI,kBAAkB;YAQlC,oBAAoB;YA2BpB,UAAU;CAGzB;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,kBAAkB,GAAG,UAAU,GAAG,QAAQ,EAClD,SAAS,EAAE,eAAe,GACzB,OAAO,CAAC,mBAAmB,CAAC,CAU9B"}
|
|
@@ -3,11 +3,9 @@ import { Fr } from '@aztec/circuits.js';
|
|
|
3
3
|
import { times } from '@aztec/foundation/collection';
|
|
4
4
|
import { createLogger } from '@aztec/foundation/log';
|
|
5
5
|
import { NativeACVMSimulator } from '@aztec/simulator';
|
|
6
|
-
import { join } from 'path';
|
|
7
6
|
import { ProvingOrchestrator } from '../orchestrator/orchestrator.js';
|
|
8
|
-
import {
|
|
7
|
+
import { BrokerCircuitProverFacade } from '../proving_broker/broker_prover_facade.js';
|
|
9
8
|
import { InlineProofStore } from '../proving_broker/proof_store.js';
|
|
10
|
-
import { InMemoryProverCache } from '../proving_broker/prover_cache/memory.js';
|
|
11
9
|
import { ProvingAgent } from '../proving_broker/proving_agent.js';
|
|
12
10
|
/** Manages proving of epochs by orchestrating the proving of individual blocks relying on a pool of prover agents. */
|
|
13
11
|
export class ProverClient {
|
|
@@ -22,10 +20,9 @@ export class ProverClient {
|
|
|
22
20
|
this.agents = [];
|
|
23
21
|
// TODO(palla/prover-node): Cache the paddingTx here, and not in each proving orchestrator,
|
|
24
22
|
// so it can be reused across multiple ones and not recomputed every time.
|
|
25
|
-
this.cacheDir = this.config.cacheDir ? join(this.config.cacheDir, `tx_prover_${this.config.proverId}`) : undefined;
|
|
26
23
|
}
|
|
27
|
-
createEpochProver(
|
|
28
|
-
return new ProvingOrchestrator(this.worldState, new
|
|
24
|
+
createEpochProver() {
|
|
25
|
+
return new ProvingOrchestrator(this.worldState, new BrokerCircuitProverFacade(this.orchestratorClient), this.telemetry, this.config.proverId);
|
|
29
26
|
}
|
|
30
27
|
getProverId() {
|
|
31
28
|
return this.config.proverId ?? Fr.ZERO;
|
|
@@ -104,4 +101,4 @@ export function buildServerCircuitProver(config, telemetry) {
|
|
|
104
101
|
: undefined;
|
|
105
102
|
return Promise.resolve(new TestCircuitProver(telemetry, simulationProvider, config));
|
|
106
103
|
}
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmVyLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92ZXItY2xpZW50L3Byb3Zlci1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQyxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBVzNHLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSXZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVsRSxzSEFBc0g7QUFDdEgsTUFBTSxPQUFPLFlBQVk7SUFJdkIsWUFDVSxNQUEwQixFQUMxQixVQUFvQyxFQUNwQyxTQUEwQixFQUMxQixrQkFBc0MsRUFDdEMsV0FBZ0MsRUFDaEMsTUFBTSxZQUFZLENBQUMseUJBQXlCLENBQUM7UUFMN0MsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUFDMUIsZUFBVSxHQUFWLFVBQVUsQ0FBMEI7UUFDcEMsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFDMUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxnQkFBVyxHQUFYLFdBQVcsQ0FBcUI7UUFDaEMsUUFBRyxHQUFILEdBQUcsQ0FBMEM7UUFUL0MsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixXQUFNLEdBQW1CLEVBQUUsQ0FBQztRQVVs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
|
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
import { type ProofAndVerificationKey, type
|
|
2
|
-
import { type AVM_PROOF_LENGTH_IN_FIELDS, type AvmCircuitInputs, type
|
|
1
|
+
import { type ProofAndVerificationKey, type ProvingJobProducer, type PublicInputsAndRecursiveProof, type ServerCircuitProver } from '@aztec/circuit-types';
|
|
2
|
+
import { type AVM_PROOF_LENGTH_IN_FIELDS, type AvmCircuitInputs, type BaseParityInputs, type KernelCircuitPublicInputs, type NESTED_RECURSIVE_PROOF_LENGTH, type ParityPublicInputs, type PrivateKernelEmptyInputData, type RECURSIVE_PROOF_LENGTH, type RootParityInputs, type TUBE_PROOF_LENGTH } from '@aztec/circuits.js';
|
|
3
|
+
import { type BaseOrMergeRollupPublicInputs, type BlockMergeRollupInputs, type BlockRootOrBlockMergePublicInputs, type BlockRootRollupInputs, type EmptyBlockRootRollupInputs, type MergeRollupInputs, type PrivateBaseRollupInputs, type PublicBaseRollupInputs, type RootRollupInputs, type RootRollupPublicInputs, type TubeInputs } from '@aztec/circuits.js/rollup';
|
|
3
4
|
import { type ProofStore } from './proof_store.js';
|
|
4
|
-
|
|
5
|
-
* A facade around a job broker that generates stable job ids and caches results
|
|
6
|
-
*/
|
|
7
|
-
export declare class CachingBrokerFacade implements ServerCircuitProver {
|
|
5
|
+
export declare class BrokerCircuitProverFacade implements ServerCircuitProver {
|
|
8
6
|
private broker;
|
|
9
|
-
private cache;
|
|
10
7
|
private proofStore;
|
|
11
8
|
private waitTimeoutMs;
|
|
12
9
|
private pollIntervalMs;
|
|
13
10
|
private log;
|
|
14
|
-
constructor(broker: ProvingJobProducer,
|
|
11
|
+
constructor(broker: ProvingJobProducer, proofStore?: ProofStore, waitTimeoutMs?: number, pollIntervalMs?: number, log?: import("@aztec/foundation/log").Logger);
|
|
15
12
|
private enqueueAndWaitForJob;
|
|
16
13
|
getAvmProof(inputs: AvmCircuitInputs, signal?: AbortSignal, epochNumber?: number): Promise<ProofAndVerificationKey<typeof AVM_PROOF_LENGTH_IN_FIELDS>>;
|
|
17
14
|
getBaseParityProof(inputs: BaseParityInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<ParityPublicInputs, typeof RECURSIVE_PROOF_LENGTH>>;
|
|
@@ -27,4 +24,4 @@ export declare class CachingBrokerFacade implements ServerCircuitProver {
|
|
|
27
24
|
getTubeProof(tubeInput: TubeInputs, signal?: AbortSignal, epochNumber?: number): Promise<ProofAndVerificationKey<typeof TUBE_PROOF_LENGTH>>;
|
|
28
25
|
private generateId;
|
|
29
26
|
}
|
|
30
|
-
//# sourceMappingURL=
|
|
27
|
+
//# sourceMappingURL=broker_prover_facade.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"broker_prover_facade.d.ts","sourceRoot":"","sources":["../../src/proving_broker/broker_prover_facade.ts"],"names":[],"mappings":"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"}
|