@aztec/prover-client 0.73.0 → 0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2
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/bin/get-proof-inputs.js +18 -16
- package/dest/block_builder/index.js +0 -1
- package/dest/block_builder/light.js +23 -13
- package/dest/config.js +9 -11
- package/dest/index.js +0 -1
- package/dest/mocks/fixtures.js +28 -26
- package/dest/mocks/test_context.js +55 -31
- package/dest/orchestrator/block-building-helpers.js +90 -90
- package/dest/orchestrator/block-proving-state.js +95 -70
- package/dest/orchestrator/epoch-proving-state.js +53 -40
- package/dest/orchestrator/index.js +0 -1
- package/dest/orchestrator/orchestrator.js +649 -653
- package/dest/orchestrator/orchestrator_metrics.js +4 -3
- package/dest/orchestrator/tx-proving-state.js +52 -51
- package/dest/prover-agent/index.js +0 -1
- package/dest/prover-agent/memory-proving-queue.js +237 -248
- package/dest/prover-agent/prover-agent.js +184 -187
- package/dest/prover-agent/proving-error.js +0 -1
- package/dest/prover-agent/queue_metrics.js +6 -5
- package/dest/prover-agent/rpc.js +6 -4
- package/dest/prover-client/factory.js +0 -1
- package/dest/prover-client/index.js +0 -1
- package/dest/prover-client/prover-client.js +30 -25
- package/dest/prover-client/server-epoch-prover.js +4 -4
- package/dest/proving_broker/broker_prover_facade.js +70 -59
- package/dest/proving_broker/config.js +22 -37
- package/dest/proving_broker/factory.js +1 -2
- package/dest/proving_broker/fixtures.js +0 -1
- package/dest/proving_broker/index.js +0 -1
- package/dest/proving_broker/proof_store/factory.js +9 -12
- package/dest/proving_broker/proof_store/gcs_proof_store.js +11 -7
- package/dest/proving_broker/proof_store/index.js +0 -1
- package/dest/proving_broker/proof_store/inline_proof_store.js +11 -7
- package/dest/proving_broker/proof_store/proof_store.js +3 -2
- package/dest/proving_broker/proving_agent.js +121 -110
- package/dest/proving_broker/proving_agent_instrumentation.js +3 -3
- package/dest/proving_broker/proving_broker.js +491 -451
- package/dest/proving_broker/proving_broker_database/memory.js +19 -13
- package/dest/proving_broker/proving_broker_database/persisted.js +41 -21
- package/dest/proving_broker/proving_broker_database.js +3 -2
- package/dest/proving_broker/proving_broker_instrumentation.js +28 -21
- package/dest/proving_broker/proving_job_controller.js +81 -62
- package/dest/proving_broker/rpc.js +23 -15
- package/dest/test/mock_prover.js +11 -9
- package/package.json +13 -11
- package/src/index.ts +1 -1
- package/src/orchestrator/block-building-helpers.ts +1 -1
- package/src/proving_broker/proving_agent.ts +30 -11
- package/src/proving_broker/proving_broker.ts +53 -27
- package/src/proving_broker/rpc.ts +8 -2
- package/dest/bin/get-proof-inputs.d.ts +0 -2
- package/dest/bin/get-proof-inputs.d.ts.map +0 -1
- package/dest/block_builder/index.d.ts +0 -6
- package/dest/block_builder/index.d.ts.map +0 -1
- package/dest/block_builder/light.d.ts +0 -31
- package/dest/block_builder/light.d.ts.map +0 -1
- package/dest/config.d.ts +0 -17
- package/dest/config.d.ts.map +0 -1
- package/dest/index.d.ts +0 -4
- package/dest/index.d.ts.map +0 -1
- package/dest/mocks/fixtures.d.ts +0 -19
- package/dest/mocks/fixtures.d.ts.map +0 -1
- package/dest/mocks/test_context.d.ts +0 -49
- package/dest/mocks/test_context.d.ts.map +0 -1
- package/dest/orchestrator/block-building-helpers.d.ts +0 -50
- package/dest/orchestrator/block-building-helpers.d.ts.map +0 -1
- package/dest/orchestrator/block-proving-state.d.ts +0 -71
- package/dest/orchestrator/block-proving-state.d.ts.map +0 -1
- package/dest/orchestrator/epoch-proving-state.d.ts +0 -56
- package/dest/orchestrator/epoch-proving-state.d.ts.map +0 -1
- package/dest/orchestrator/index.d.ts +0 -2
- package/dest/orchestrator/index.d.ts.map +0 -1
- package/dest/orchestrator/orchestrator.d.ts +0 -108
- package/dest/orchestrator/orchestrator.d.ts.map +0 -1
- package/dest/orchestrator/orchestrator_metrics.d.ts +0 -8
- package/dest/orchestrator/orchestrator_metrics.d.ts.map +0 -1
- package/dest/orchestrator/tx-proving-state.d.ts +0 -31
- package/dest/orchestrator/tx-proving-state.d.ts.map +0 -1
- package/dest/prover-agent/index.d.ts +0 -4
- package/dest/prover-agent/index.d.ts.map +0 -1
- package/dest/prover-agent/memory-proving-queue.d.ts +0 -82
- package/dest/prover-agent/memory-proving-queue.d.ts.map +0 -1
- package/dest/prover-agent/prover-agent.d.ts +0 -43
- package/dest/prover-agent/prover-agent.d.ts.map +0 -1
- package/dest/prover-agent/proving-error.d.ts +0 -5
- package/dest/prover-agent/proving-error.d.ts.map +0 -1
- package/dest/prover-agent/queue_metrics.d.ts +0 -10
- package/dest/prover-agent/queue_metrics.d.ts.map +0 -1
- package/dest/prover-agent/rpc.d.ts +0 -11
- package/dest/prover-agent/rpc.d.ts.map +0 -1
- package/dest/prover-client/factory.d.ts +0 -6
- package/dest/prover-client/factory.d.ts.map +0 -1
- package/dest/prover-client/index.d.ts +0 -3
- package/dest/prover-client/index.d.ts.map +0 -1
- package/dest/prover-client/prover-client.d.ts +0 -42
- package/dest/prover-client/prover-client.d.ts.map +0 -1
- package/dest/prover-client/server-epoch-prover.d.ts +0 -25
- package/dest/prover-client/server-epoch-prover.d.ts.map +0 -1
- package/dest/proving_broker/broker_prover_facade.d.ts +0 -39
- package/dest/proving_broker/broker_prover_facade.d.ts.map +0 -1
- package/dest/proving_broker/config.d.ts +0 -61
- package/dest/proving_broker/config.d.ts.map +0 -1
- package/dest/proving_broker/factory.d.ts +0 -5
- package/dest/proving_broker/factory.d.ts.map +0 -1
- package/dest/proving_broker/fixtures.d.ts +0 -5
- package/dest/proving_broker/fixtures.d.ts.map +0 -1
- package/dest/proving_broker/index.d.ts +0 -10
- package/dest/proving_broker/index.d.ts.map +0 -1
- package/dest/proving_broker/proof_store/factory.d.ts +0 -6
- package/dest/proving_broker/proof_store/factory.d.ts.map +0 -1
- package/dest/proving_broker/proof_store/gcs_proof_store.d.ts +0 -13
- package/dest/proving_broker/proof_store/gcs_proof_store.d.ts.map +0 -1
- package/dest/proving_broker/proof_store/index.d.ts +0 -4
- package/dest/proving_broker/proof_store/index.d.ts.map +0 -1
- package/dest/proving_broker/proof_store/inline_proof_store.d.ts +0 -14
- package/dest/proving_broker/proof_store/inline_proof_store.d.ts.map +0 -1
- package/dest/proving_broker/proof_store/proof_store.d.ts +0 -35
- package/dest/proving_broker/proof_store/proof_store.d.ts.map +0 -1
- package/dest/proving_broker/proving_agent.d.ts +0 -44
- package/dest/proving_broker/proving_agent.d.ts.map +0 -1
- package/dest/proving_broker/proving_agent_instrumentation.d.ts +0 -8
- package/dest/proving_broker/proving_agent_instrumentation.d.ts.map +0 -1
- package/dest/proving_broker/proving_broker.d.ts +0 -75
- package/dest/proving_broker/proving_broker.d.ts.map +0 -1
- package/dest/proving_broker/proving_broker_database/memory.d.ts +0 -16
- package/dest/proving_broker/proving_broker_database/memory.d.ts.map +0 -1
- package/dest/proving_broker/proving_broker_database/persisted.d.ts +0 -21
- package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +0 -1
- package/dest/proving_broker/proving_broker_database.d.ts +0 -39
- package/dest/proving_broker/proving_broker_database.d.ts.map +0 -1
- package/dest/proving_broker/proving_broker_instrumentation.d.ts +0 -25
- package/dest/proving_broker/proving_broker_instrumentation.d.ts.map +0 -1
- package/dest/proving_broker/proving_job_controller.d.ts +0 -31
- package/dest/proving_broker/proving_job_controller.d.ts.map +0 -1
- package/dest/proving_broker/rpc.d.ts +0 -11
- package/dest/proving_broker/rpc.d.ts.map +0 -1
- package/dest/test/mock_prover.d.ts +0 -33
- package/dest/test/mock_prover.d.ts.map +0 -1
|
@@ -1,204 +1,201 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
function _ts_decorate(decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
}
|
|
7
|
+
import { ProvingRequestType, makeProvingRequestResult } from '@aztec/circuit-types';
|
|
3
8
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
9
|
import { RunningPromise } from '@aztec/foundation/running-promise';
|
|
5
10
|
import { elapsed } from '@aztec/foundation/timer';
|
|
6
|
-
import { Attributes, getTelemetryClient, trackSpan
|
|
11
|
+
import { Attributes, getTelemetryClient, trackSpan } from '@aztec/telemetry-client';
|
|
7
12
|
import { InlineProofStore } from '../proving_broker/proof_store/index.js';
|
|
8
13
|
const PRINT_THRESHOLD_NS = 6e10; // 60 seconds
|
|
9
14
|
/**
|
|
10
15
|
* A helper class that encapsulates a circuit prover and connects it to a job source.
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
16
|
+
*/ export class ProverAgent {
|
|
17
|
+
circuitProver;
|
|
18
|
+
maxConcurrency;
|
|
19
|
+
pollIntervalMs;
|
|
20
|
+
log;
|
|
21
|
+
inFlightPromises;
|
|
22
|
+
runningPromise;
|
|
23
|
+
proofInputsDatabase;
|
|
24
|
+
tracer;
|
|
25
|
+
constructor(/** The prover implementation to defer jobs to */ circuitProver, /** How many proving jobs this agent can handle in parallel */ maxConcurrency = 1, /** How long to wait between jobs */ pollIntervalMs = 100, /** Telemetry client */ telemetry = getTelemetryClient(), /** Logger */ log = createLogger('prover-client:prover-agent')){
|
|
26
|
+
this.circuitProver = circuitProver;
|
|
27
|
+
this.maxConcurrency = maxConcurrency;
|
|
28
|
+
this.pollIntervalMs = pollIntervalMs;
|
|
29
|
+
this.log = log;
|
|
30
|
+
this.inFlightPromises = new Map();
|
|
31
|
+
this.proofInputsDatabase = new InlineProofStore();
|
|
32
|
+
this.tracer = telemetry.getTracer('ProverAgent');
|
|
33
|
+
}
|
|
34
|
+
setMaxConcurrency(maxConcurrency) {
|
|
35
|
+
if (maxConcurrency < 1) {
|
|
36
|
+
throw new Error('Concurrency must be at least 1');
|
|
37
|
+
}
|
|
38
|
+
this.maxConcurrency = maxConcurrency;
|
|
39
|
+
return Promise.resolve();
|
|
40
|
+
}
|
|
41
|
+
setCircuitProver(circuitProver) {
|
|
42
|
+
this.circuitProver = circuitProver;
|
|
43
|
+
}
|
|
44
|
+
isRunning() {
|
|
45
|
+
return Promise.resolve(this.#isRunning());
|
|
46
|
+
}
|
|
47
|
+
#isRunning() {
|
|
48
|
+
return this.runningPromise?.isRunning() ?? false;
|
|
49
|
+
}
|
|
50
|
+
getCurrentJobs() {
|
|
51
|
+
return Promise.resolve(Array.from(this.inFlightPromises.values()).map(({ id, type })=>({
|
|
52
|
+
id,
|
|
53
|
+
type: ProvingRequestType[type]
|
|
54
|
+
})));
|
|
55
|
+
}
|
|
56
|
+
start(jobSource) {
|
|
57
|
+
if (this.runningPromise) {
|
|
58
|
+
throw new Error('Agent is already running');
|
|
59
|
+
}
|
|
60
|
+
let lastPrint = process.hrtime.bigint();
|
|
61
|
+
this.runningPromise = new RunningPromise(async ()=>{
|
|
62
|
+
for (const jobId of this.inFlightPromises.keys()){
|
|
63
|
+
await jobSource.heartbeat(jobId);
|
|
36
64
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
65
|
+
const now = process.hrtime.bigint();
|
|
66
|
+
if (now - lastPrint >= PRINT_THRESHOLD_NS) {
|
|
67
|
+
// only log if we're actually doing work
|
|
68
|
+
if (this.inFlightPromises.size > 0) {
|
|
69
|
+
const jobs = Array.from(this.inFlightPromises.values()).map((job)=>`id=${job.id},type=${ProvingRequestType[job.type]}`).join(' ');
|
|
70
|
+
this.log.info(`Agent is running with ${this.inFlightPromises.size} in-flight jobs: ${jobs}`);
|
|
40
71
|
}
|
|
41
|
-
|
|
42
|
-
return Promise.resolve();
|
|
72
|
+
lastPrint = now;
|
|
43
73
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
74
|
+
while(this.inFlightPromises.size < this.maxConcurrency){
|
|
75
|
+
try {
|
|
76
|
+
const job = await jobSource.getProvingJob();
|
|
77
|
+
if (!job) {
|
|
78
|
+
// job source is fully drained, sleep for a bit and try again
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
try {
|
|
82
|
+
const promise = this.work(jobSource, job).finally(()=>this.inFlightPromises.delete(job.id));
|
|
83
|
+
this.inFlightPromises.set(job.id, {
|
|
84
|
+
id: job.id,
|
|
85
|
+
type: job.type,
|
|
86
|
+
promise
|
|
87
|
+
});
|
|
88
|
+
} catch (err) {
|
|
89
|
+
this.log.warn(`Error processing job! type=${ProvingRequestType[job.type]}: ${err}. ${err.stack}`);
|
|
90
|
+
}
|
|
91
|
+
} catch (err) {
|
|
92
|
+
this.log.error(`Error fetching job`, err);
|
|
93
|
+
}
|
|
52
94
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
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}`);
|
|
95
|
+
}, this.log, this.pollIntervalMs);
|
|
96
|
+
this.runningPromise.start();
|
|
97
|
+
this.log.info(`Agent started with concurrency=${this.maxConcurrency}`);
|
|
98
|
+
}
|
|
99
|
+
async stop() {
|
|
100
|
+
if (!this.runningPromise?.isRunning()) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
await this.runningPromise.stop();
|
|
104
|
+
this.runningPromise = undefined;
|
|
105
|
+
this.log.info('Agent stopped');
|
|
106
|
+
}
|
|
107
|
+
async work(jobSource, job) {
|
|
108
|
+
try {
|
|
109
|
+
this.log.debug(`Picked up proving job ${job.id} ${ProvingRequestType[job.type]}`, {
|
|
110
|
+
jobId: job.id,
|
|
111
|
+
jobType: ProvingRequestType[job.type]
|
|
112
|
+
});
|
|
113
|
+
const type = job.type;
|
|
114
|
+
const inputs = await this.proofInputsDatabase.getProofInput(job.inputsUri);
|
|
115
|
+
const [time, result] = await elapsed(this.getProof(inputs));
|
|
116
|
+
if (this.#isRunning()) {
|
|
117
|
+
this.log.verbose(`Processed proving job id=${job.id} type=${ProvingRequestType[type]} duration=${time}ms`);
|
|
118
|
+
await jobSource.resolveProvingJob(job.id, makeProvingRequestResult(type, result));
|
|
119
|
+
} else {
|
|
120
|
+
this.log.verbose(`Dropping proving job id=${job.id} type=${ProvingRequestType[job.type]} duration=${time}ms: agent stopped`);
|
|
99
121
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
122
|
+
} catch (err) {
|
|
123
|
+
const type = ProvingRequestType[job.type];
|
|
124
|
+
if (this.#isRunning()) {
|
|
125
|
+
if (job.type === ProvingRequestType.PUBLIC_VM && !process.env.AVM_PROVING_STRICT) {
|
|
126
|
+
this.log.warn(`Expected error processing VM proving job id=${job.id} type=${type}: ${err}`);
|
|
127
|
+
} else {
|
|
128
|
+
this.log.error(`Error processing proving job id=${job.id} type=${type}: ${err}`, err);
|
|
103
129
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
130
|
+
const reason = err?.message ?? String(err);
|
|
131
|
+
await jobSource.rejectProvingJob(job.id, reason);
|
|
132
|
+
} else {
|
|
133
|
+
this.log.verbose(`Dropping proving job id=${job.id} type=${type}: agent stopped: ${err.stack || err}`);
|
|
107
134
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
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
|
-
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
getProof(request) {
|
|
138
|
+
const { type, inputs } = request;
|
|
139
|
+
switch(type){
|
|
140
|
+
case ProvingRequestType.PUBLIC_VM:
|
|
141
|
+
{
|
|
142
|
+
return this.circuitProver.getAvmProof(inputs);
|
|
124
143
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
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
|
-
}
|
|
144
|
+
case ProvingRequestType.PRIVATE_BASE_ROLLUP:
|
|
145
|
+
{
|
|
146
|
+
return this.circuitProver.getPrivateBaseRollupProof(inputs);
|
|
140
147
|
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
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
|
-
}
|
|
148
|
+
case ProvingRequestType.PUBLIC_BASE_ROLLUP:
|
|
149
|
+
{
|
|
150
|
+
return this.circuitProver.getPublicBaseRollupProof(inputs);
|
|
185
151
|
}
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
152
|
+
case ProvingRequestType.MERGE_ROLLUP:
|
|
153
|
+
{
|
|
154
|
+
return this.circuitProver.getMergeRollupProof(inputs);
|
|
155
|
+
}
|
|
156
|
+
case ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP:
|
|
157
|
+
{
|
|
158
|
+
return this.circuitProver.getEmptyBlockRootRollupProof(inputs);
|
|
159
|
+
}
|
|
160
|
+
case ProvingRequestType.BLOCK_ROOT_ROLLUP:
|
|
161
|
+
{
|
|
162
|
+
return this.circuitProver.getBlockRootRollupProof(inputs);
|
|
163
|
+
}
|
|
164
|
+
case ProvingRequestType.SINGLE_TX_BLOCK_ROOT_ROLLUP:
|
|
165
|
+
{
|
|
166
|
+
return this.circuitProver.getSingleTxBlockRootRollupProof(inputs);
|
|
167
|
+
}
|
|
168
|
+
case ProvingRequestType.BLOCK_MERGE_ROLLUP:
|
|
169
|
+
{
|
|
170
|
+
return this.circuitProver.getBlockMergeRollupProof(inputs);
|
|
171
|
+
}
|
|
172
|
+
case ProvingRequestType.ROOT_ROLLUP:
|
|
173
|
+
{
|
|
174
|
+
return this.circuitProver.getRootRollupProof(inputs);
|
|
175
|
+
}
|
|
176
|
+
case ProvingRequestType.BASE_PARITY:
|
|
177
|
+
{
|
|
178
|
+
return this.circuitProver.getBaseParityProof(inputs);
|
|
179
|
+
}
|
|
180
|
+
case ProvingRequestType.ROOT_PARITY:
|
|
181
|
+
{
|
|
182
|
+
return this.circuitProver.getRootParityProof(inputs);
|
|
183
|
+
}
|
|
184
|
+
case ProvingRequestType.TUBE_PROOF:
|
|
185
|
+
{
|
|
186
|
+
return this.circuitProver.getTubeProof(inputs);
|
|
187
|
+
}
|
|
188
|
+
default:
|
|
189
|
+
{
|
|
190
|
+
const _exhaustive = type;
|
|
191
|
+
return Promise.reject(new Error(`Invalid proof request type: ${type}`));
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
_ts_decorate([
|
|
197
|
+
trackSpan('ProverAgent.work', (_jobSoure, job)=>({
|
|
198
|
+
[Attributes.PROVING_JOB_ID]: job.id,
|
|
199
|
+
[Attributes.PROVING_JOB_TYPE]: ProvingRequestType[job.type]
|
|
200
|
+
}))
|
|
201
|
+
], ProverAgent.prototype, "work", null);
|
|
@@ -6,4 +6,3 @@ export class ProvingError extends Error {
|
|
|
6
6
|
return new ProvingError(message);
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmluZy1lcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92ZXItYWdlbnQvcHJvdmluZy1lcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sWUFBYSxTQUFRLEtBQUs7SUFDNUIsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFlO1FBQy9CLE9BQU8sSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQztDQUNGIn0=
|
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
import { ProvingRequestType } from '@aztec/circuit-types';
|
|
2
2
|
import { Attributes, Metrics } from '@aztec/telemetry-client';
|
|
3
3
|
export class ProvingQueueMetrics {
|
|
4
|
-
|
|
4
|
+
jobSize;
|
|
5
|
+
queueSize;
|
|
6
|
+
constructor(client, name = 'ProvingQueueMetrics'){
|
|
5
7
|
const meter = client.getMeter(name);
|
|
6
8
|
this.jobSize = meter.createHistogram(Metrics.PROVING_QUEUE_JOB_SIZE, {
|
|
7
9
|
description: 'Size of proving job',
|
|
8
|
-
unit: 'by'
|
|
10
|
+
unit: 'by'
|
|
9
11
|
});
|
|
10
12
|
this.queueSize = meter.createGauge(Metrics.PROVING_QUEUE_SIZE, {
|
|
11
|
-
description: 'Size of proving queue'
|
|
13
|
+
description: 'Size of proving queue'
|
|
12
14
|
});
|
|
13
15
|
}
|
|
14
16
|
recordNewJob(type, size) {
|
|
15
17
|
this.jobSize.record(size, {
|
|
16
|
-
[Attributes.PROVING_JOB_TYPE]: ProvingRequestType[type]
|
|
18
|
+
[Attributes.PROVING_JOB_TYPE]: ProvingRequestType[type]
|
|
17
19
|
});
|
|
18
20
|
}
|
|
19
21
|
recordQueueSize(size) {
|
|
20
22
|
this.queueSize.record(size);
|
|
21
23
|
}
|
|
22
24
|
}
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWVfbWV0cmljcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92ZXItYWdlbnQvcXVldWVfbWV0cmljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUE4QixPQUFPLEVBQXdCLE1BQU0seUJBQXlCLENBQUM7QUFFaEgsTUFBTSxPQUFPLG1CQUFtQjtJQUk5QixZQUFZLE1BQXVCLEVBQUUsSUFBSSxHQUFHLHFCQUFxQjtRQUMvRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUU7WUFDbkUsV0FBVyxFQUFFLHFCQUFxQjtZQUNsQyxJQUFJLEVBQUUsSUFBSTtTQUNYLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUU7WUFDN0QsV0FBVyxFQUFFLHVCQUF1QjtTQUNyQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQXdCLEVBQUUsSUFBWTtRQUNqRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDeEIsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7U0FDeEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFZO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7Q0FDRiJ9
|
package/dest/prover-agent/rpc.js
CHANGED
|
@@ -4,15 +4,17 @@ import { createTracedJsonRpcServer, makeTracedFetch } from '@aztec/telemetry-cli
|
|
|
4
4
|
export function createProvingJobSourceServer(queue) {
|
|
5
5
|
return createTracedJsonRpcServer(queue, ProvingJobSourceSchema);
|
|
6
6
|
}
|
|
7
|
-
export function createProvingJobSourceClient(url, fetch = makeTracedFetch([
|
|
7
|
+
export function createProvingJobSourceClient(url, fetch = makeTracedFetch([
|
|
8
|
+
1,
|
|
9
|
+
2,
|
|
10
|
+
3
|
|
11
|
+
], false)) {
|
|
8
12
|
return createSafeJsonRpcClient(url, ProvingJobSourceSchema, false, 'provingJobSource', fetch);
|
|
9
13
|
}
|
|
10
14
|
/**
|
|
11
15
|
* Wrap a ProverAgent instance with a JSON RPC HTTP server.
|
|
12
16
|
* @param agent - The Prover Agent
|
|
13
17
|
* @returns An JSON-RPC HTTP server
|
|
14
|
-
*/
|
|
15
|
-
export function createProverAgentRpcServer(agent) {
|
|
18
|
+
*/ export function createProverAgentRpcServer(agent) {
|
|
16
19
|
return createTracedJsonRpcServer(agent, ProverAgentApiSchema);
|
|
17
20
|
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnBjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3Zlci1hZ2VudC9ycGMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUF5QixzQkFBc0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUlyRixNQUFNLFVBQVUsNEJBQTRCLENBQUMsS0FBdUI7SUFDbEUsT0FBTyx5QkFBeUIsQ0FBQyxLQUFLLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztBQUNsRSxDQUFDO0FBRUQsTUFBTSxVQUFVLDRCQUE0QixDQUFDLEdBQVcsRUFBRSxLQUFLLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUM7SUFDakcsT0FBTyx1QkFBdUIsQ0FBQyxHQUFHLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ2hHLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLDBCQUEwQixDQUFDLEtBQWtCO0lBQzNELE9BQU8seUJBQXlCLENBQUMsS0FBSyxFQUFFLG9CQUFvQixDQUFDLENBQUM7QUFDaEUsQ0FBQyJ9
|
|
@@ -3,4 +3,3 @@ import { ProverClient } from './prover-client.js';
|
|
|
3
3
|
export function createProverClient(config, worldState, broker, telemetry = getTelemetryClient()) {
|
|
4
4
|
return ProverClient.new(config, worldState, broker, telemetry);
|
|
5
5
|
}
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92ZXItY2xpZW50L2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUF3QixrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVsRCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLE1BQTBCLEVBQzFCLFVBQW9DLEVBQ3BDLE1BQXdCLEVBQ3hCLFlBQTZCLGtCQUFrQixFQUFFO0lBRWpELE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNqRSxDQUFDIn0=
|
|
@@ -1,3 +1,2 @@
|
|
|
1
1
|
export * from './factory.js';
|
|
2
2
|
export * from './prover-client.js';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmVyLWNsaWVudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLG9CQUFvQixDQUFDIn0=
|
|
@@ -9,9 +9,18 @@ import { BrokerCircuitProverFacade } from '../proving_broker/broker_prover_facad
|
|
|
9
9
|
import { InlineProofStore, createProofStore } from '../proving_broker/proof_store/index.js';
|
|
10
10
|
import { ProvingAgent } from '../proving_broker/proving_agent.js';
|
|
11
11
|
import { ServerEpochProver } from './server-epoch-prover.js';
|
|
12
|
-
/** Manages proving of epochs by orchestrating the proving of individual blocks relying on a pool of prover agents. */
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
/** Manages proving of epochs by orchestrating the proving of individual blocks relying on a pool of prover agents. */ export class ProverClient {
|
|
13
|
+
config;
|
|
14
|
+
worldState;
|
|
15
|
+
orchestratorClient;
|
|
16
|
+
agentClient;
|
|
17
|
+
telemetry;
|
|
18
|
+
log;
|
|
19
|
+
running;
|
|
20
|
+
agents;
|
|
21
|
+
proofStore;
|
|
22
|
+
failedProofStore;
|
|
23
|
+
constructor(config, worldState, orchestratorClient, agentClient, telemetry = getTelemetryClient(), log = createLogger('prover-client:tx-prover')){
|
|
15
24
|
this.config = config;
|
|
16
25
|
this.worldState = worldState;
|
|
17
26
|
this.orchestratorClient = orchestratorClient;
|
|
@@ -32,18 +41,19 @@ export class ProverClient {
|
|
|
32
41
|
return this.config.proverId ?? Fr.ZERO;
|
|
33
42
|
}
|
|
34
43
|
async updateProverConfig(config) {
|
|
35
|
-
const newConfig = {
|
|
36
|
-
|
|
37
|
-
|
|
44
|
+
const newConfig = {
|
|
45
|
+
...this.config,
|
|
46
|
+
...config
|
|
47
|
+
};
|
|
48
|
+
if (newConfig.realProofs !== this.config.realProofs || newConfig.proverAgentCount !== this.config.proverAgentCount) {
|
|
38
49
|
await this.stopAgents();
|
|
39
50
|
await this.createAndStartAgents();
|
|
40
51
|
}
|
|
41
52
|
this.config = newConfig;
|
|
42
53
|
}
|
|
43
54
|
/**
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
async start() {
|
|
55
|
+
* Starts the prover instance
|
|
56
|
+
*/ async start() {
|
|
47
57
|
if (this.running) {
|
|
48
58
|
return Promise.resolve();
|
|
49
59
|
}
|
|
@@ -51,9 +61,8 @@ export class ProverClient {
|
|
|
51
61
|
await this.createAndStartAgents();
|
|
52
62
|
}
|
|
53
63
|
/**
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
async stop() {
|
|
64
|
+
* Stops the prover instance
|
|
65
|
+
*/ async stop() {
|
|
57
66
|
if (!this.running) {
|
|
58
67
|
return;
|
|
59
68
|
}
|
|
@@ -61,12 +70,11 @@ export class ProverClient {
|
|
|
61
70
|
await this.stopAgents();
|
|
62
71
|
}
|
|
63
72
|
/**
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
static async new(config, worldState, broker, telemetry = getTelemetryClient()) {
|
|
73
|
+
* Creates a new prover client and starts it
|
|
74
|
+
* @param config - The prover configuration.
|
|
75
|
+
* @param worldState - An instance of the world state
|
|
76
|
+
* @returns An instance of the prover, constructed and started.
|
|
77
|
+
*/ static async new(config, worldState, broker, telemetry = getTelemetryClient()) {
|
|
70
78
|
const prover = new ProverClient(config, worldState, broker, broker, telemetry);
|
|
71
79
|
await prover.start();
|
|
72
80
|
return prover;
|
|
@@ -86,20 +94,17 @@ export class ProverClient {
|
|
|
86
94
|
}
|
|
87
95
|
const proofStore = new InlineProofStore();
|
|
88
96
|
const prover = await buildServerCircuitProver(this.config, this.telemetry);
|
|
89
|
-
this.agents = times(this.config.proverAgentCount, ()
|
|
90
|
-
await Promise.all(this.agents.map(agent
|
|
97
|
+
this.agents = times(this.config.proverAgentCount, ()=>new ProvingAgent(this.agentClient, proofStore, prover, [], this.config.proverAgentPollIntervalMs, this.telemetry));
|
|
98
|
+
await Promise.all(this.agents.map((agent)=>agent.start()));
|
|
91
99
|
}
|
|
92
100
|
async stopAgents() {
|
|
93
|
-
await Promise.all(this.agents.map(agent
|
|
101
|
+
await Promise.all(this.agents.map((agent)=>agent.stop()));
|
|
94
102
|
}
|
|
95
103
|
}
|
|
96
104
|
export function buildServerCircuitProver(config, telemetry) {
|
|
97
105
|
if (config.realProofs) {
|
|
98
106
|
return BBNativeRollupProver.new(config, telemetry);
|
|
99
107
|
}
|
|
100
|
-
const simulationProvider = config.acvmBinaryPath
|
|
101
|
-
? new NativeACVMSimulator(config.acvmWorkingDirectory, config.acvmBinaryPath)
|
|
102
|
-
: undefined;
|
|
108
|
+
const simulationProvider = config.acvmBinaryPath ? new NativeACVMSimulator(config.acvmWorkingDirectory, config.acvmBinaryPath) : undefined;
|
|
103
109
|
return Promise.resolve(new TestCircuitProver(simulationProvider, config, telemetry));
|
|
104
110
|
}
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmVyLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92ZXItY2xpZW50L3Byb3Zlci1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQyxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBVzNHLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBd0Isa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUduRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN0RixPQUFPLEVBQUUsZ0JBQWdCLEVBQW1CLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDN0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTdELHNIQUFzSDtBQUN0SCxNQUFNLE9BQU8sWUFBWTtJQU92QixZQUNVLE1BQTBCLEVBQzFCLFVBQW9DLEVBQ3BDLGtCQUFzQyxFQUN0QyxXQUFnQyxFQUNoQyxZQUE2QixrQkFBa0IsRUFBRSxFQUNqRCxNQUFNLFlBQVksQ0FBQyx5QkFBeUIsQ0FBQztRQUw3QyxXQUFNLEdBQU4sTUFBTSxDQUFvQjtRQUMxQixlQUFVLEdBQVYsVUFBVSxDQUEwQjtRQUNwQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLGdCQUFXLEdBQVgsV0FBVyxD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
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
/** Encapsulates the proving orchestrator and the broker facade */
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/** Encapsulates the proving orchestrator and the broker facade */ export class ServerEpochProver {
|
|
2
|
+
facade;
|
|
3
|
+
orchestrator;
|
|
4
|
+
constructor(facade, orchestrator){
|
|
4
5
|
this.facade = facade;
|
|
5
6
|
this.orchestrator = orchestrator;
|
|
6
7
|
}
|
|
@@ -37,4 +38,3 @@ export class ServerEpochProver {
|
|
|
37
38
|
return this.orchestrator.addTxs(txs);
|
|
38
39
|
}
|
|
39
40
|
}
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLWVwb2NoLXByb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92ZXItY2xpZW50L3NlcnZlci1lcG9jaC1wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0Esa0VBQWtFO0FBQ2xFLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFBb0IsTUFBaUMsRUFBVSxZQUFpQztRQUE1RSxXQUFNLEdBQU4sTUFBTSxDQUEyQjtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtJQUFHLENBQUM7SUFFcEcsYUFBYSxDQUFDLFdBQW1CLEVBQUUsZ0JBQXdCLEVBQUUsY0FBc0I7UUFDakYsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQy9FLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUNELGlCQUFpQixDQUFDLEdBQVM7UUFDekIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxXQUFtQixFQUFFLG1CQUFpQztRQUN0RSxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLG1CQUFtQixDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUNELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUNELE1BQU07UUFDSixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFDRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFDRCxRQUFRLENBQUMsS0FBYTtRQUNwQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDRCxLQUFLLENBQUMsSUFBSTtRQUNSLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUNELGFBQWEsQ0FDWCxlQUFnQyxFQUNoQyxjQUFvQixFQUNwQixtQkFBZ0M7UUFFaEMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUNELE1BQU0sQ0FBQyxHQUFrQjtRQUN2QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Q0FDRiJ9
|