@aztec/prover-client 0.65.1 → 0.66.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/index.d.ts +6 -0
- package/dest/block_builder/index.d.ts.map +1 -0
- package/dest/block_builder/index.js +2 -0
- package/dest/block_builder/light.d.ts +32 -0
- package/dest/block_builder/light.d.ts.map +1 -0
- package/dest/block_builder/light.js +71 -0
- package/dest/config.d.ts +4 -10
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +8 -7
- package/dest/index.d.ts +2 -2
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +3 -3
- package/dest/mocks/fixtures.d.ts +1 -2
- package/dest/mocks/fixtures.d.ts.map +1 -1
- package/dest/mocks/fixtures.js +3 -7
- package/dest/mocks/test_context.d.ts +28 -10
- package/dest/mocks/test_context.d.ts.map +1 -1
- package/dest/mocks/test_context.js +59 -21
- package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
- package/dest/orchestrator/block-building-helpers.js +10 -18
- package/dest/orchestrator/block-proving-state.js +2 -2
- package/dest/orchestrator/epoch-proving-state.d.ts +5 -6
- package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/epoch-proving-state.js +10 -12
- package/dest/orchestrator/orchestrator.d.ts +8 -6
- package/dest/orchestrator/orchestrator.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator.js +83 -72
- package/dest/orchestrator/tx-proving-state.d.ts +0 -1
- package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/tx-proving-state.js +2 -34
- package/dest/prover-agent/memory-proving-queue.d.ts +10 -8
- package/dest/prover-agent/memory-proving-queue.d.ts.map +1 -1
- package/dest/prover-agent/memory-proving-queue.js +35 -35
- package/dest/prover-agent/prover-agent.d.ts +1 -0
- package/dest/prover-agent/prover-agent.d.ts.map +1 -1
- package/dest/prover-agent/prover-agent.js +12 -9
- package/dest/prover-client/factory.d.ts +6 -0
- package/dest/prover-client/factory.d.ts.map +1 -0
- package/dest/prover-client/factory.js +6 -0
- package/dest/prover-client/index.d.ts +3 -0
- package/dest/prover-client/index.d.ts.map +1 -0
- package/dest/prover-client/index.js +3 -0
- package/dest/prover-client/prover-client.d.ts +41 -0
- package/dest/prover-client/prover-client.d.ts.map +1 -0
- package/dest/prover-client/prover-client.js +107 -0
- package/dest/proving_broker/caching_broker_facade.d.ts +30 -0
- package/dest/proving_broker/caching_broker_facade.d.ts.map +1 -0
- package/dest/proving_broker/caching_broker_facade.js +150 -0
- package/dest/proving_broker/factory.d.ts +5 -0
- package/dest/proving_broker/factory.d.ts.map +1 -0
- package/dest/proving_broker/factory.js +17 -0
- package/dest/proving_broker/index.d.ts +9 -0
- package/dest/proving_broker/index.d.ts.map +1 -0
- package/dest/proving_broker/index.js +9 -0
- package/dest/proving_broker/proof_store.d.ts +46 -0
- package/dest/proving_broker/proof_store.d.ts.map +1 -0
- package/dest/proving_broker/proof_store.js +37 -0
- package/dest/proving_broker/prover_cache/memory.d.ts +9 -0
- package/dest/proving_broker/prover_cache/memory.d.ts.map +1 -0
- package/dest/proving_broker/prover_cache/memory.js +16 -0
- package/dest/proving_broker/proving_agent.d.ts +16 -6
- package/dest/proving_broker/proving_agent.d.ts.map +1 -1
- package/dest/proving_broker/proving_agent.js +59 -20
- package/dest/proving_broker/proving_agent_instrumentation.d.ts +8 -0
- package/dest/proving_broker/proving_agent_instrumentation.d.ts.map +1 -0
- package/dest/proving_broker/proving_agent_instrumentation.js +16 -0
- package/dest/proving_broker/proving_broker.d.ts +22 -16
- package/dest/proving_broker/proving_broker.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker.js +79 -25
- package/dest/proving_broker/proving_broker_database/memory.d.ts +14 -0
- package/dest/proving_broker/proving_broker_database/memory.d.ts.map +1 -0
- package/dest/proving_broker/proving_broker_database/memory.js +35 -0
- package/dest/proving_broker/proving_broker_database/persisted.d.ts +17 -0
- package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +1 -0
- package/dest/proving_broker/proving_broker_database/persisted.js +43 -0
- package/dest/proving_broker/{proving_job_database.d.ts → proving_broker_database.d.ts} +8 -8
- package/dest/proving_broker/proving_broker_database.d.ts.map +1 -0
- package/dest/proving_broker/proving_broker_database.js +2 -0
- package/dest/proving_broker/proving_broker_instrumentation.d.ts +25 -0
- package/dest/proving_broker/proving_broker_instrumentation.d.ts.map +1 -0
- package/dest/proving_broker/proving_broker_instrumentation.js +91 -0
- package/dest/proving_broker/proving_job_controller.d.ts +13 -8
- package/dest/proving_broker/proving_job_controller.d.ts.map +1 -1
- package/dest/proving_broker/proving_job_controller.js +43 -43
- package/dest/proving_broker/rpc.d.ts +11 -0
- package/dest/proving_broker/rpc.d.ts.map +1 -0
- package/dest/proving_broker/rpc.js +44 -0
- package/dest/test/mock_prover.d.ts +16 -2
- package/dest/test/mock_prover.d.ts.map +1 -1
- package/dest/test/mock_prover.js +37 -1
- package/package.json +17 -14
- package/src/block_builder/index.ts +6 -0
- package/src/block_builder/light.ts +117 -0
- package/src/config.ts +17 -16
- package/src/index.ts +2 -2
- package/src/mocks/fixtures.ts +2 -14
- package/src/mocks/test_context.ts +81 -25
- package/src/orchestrator/block-building-helpers.ts +22 -33
- package/src/orchestrator/block-proving-state.ts +1 -1
- package/src/orchestrator/epoch-proving-state.ts +10 -13
- package/src/orchestrator/orchestrator.ts +97 -77
- package/src/orchestrator/tx-proving-state.ts +1 -56
- package/src/prover-agent/memory-proving-queue.ts +43 -44
- package/src/prover-agent/prover-agent.ts +16 -20
- package/src/prover-client/factory.ts +15 -0
- package/src/prover-client/index.ts +2 -0
- package/src/prover-client/prover-client.ts +172 -0
- package/src/proving_broker/caching_broker_facade.ts +312 -0
- package/src/proving_broker/factory.ts +25 -0
- package/src/proving_broker/index.ts +8 -0
- package/src/proving_broker/proof_store.ts +106 -0
- package/src/proving_broker/prover_cache/memory.ts +20 -0
- package/src/proving_broker/proving_agent.ts +90 -20
- package/src/proving_broker/proving_agent_instrumentation.ts +21 -0
- package/src/proving_broker/proving_broker.ts +143 -67
- package/src/proving_broker/proving_broker_database/memory.ts +43 -0
- package/src/proving_broker/proving_broker_database/persisted.ts +60 -0
- package/src/proving_broker/{proving_job_database.ts → proving_broker_database.ts} +7 -12
- package/src/proving_broker/proving_broker_instrumentation.ts +130 -0
- package/src/proving_broker/proving_job_controller.ts +54 -46
- package/src/proving_broker/rpc.ts +64 -0
- package/src/test/mock_prover.ts +52 -0
- package/dest/proving_broker/proving_broker_interface.d.ts +0 -61
- package/dest/proving_broker/proving_broker_interface.d.ts.map +0 -1
- package/dest/proving_broker/proving_broker_interface.js +0 -2
- package/dest/proving_broker/proving_job_database/memory.d.ts +0 -14
- package/dest/proving_broker/proving_job_database/memory.d.ts.map +0 -1
- package/dest/proving_broker/proving_job_database/memory.js +0 -35
- package/dest/proving_broker/proving_job_database/persisted.d.ts +0 -15
- package/dest/proving_broker/proving_job_database/persisted.d.ts.map +0 -1
- package/dest/proving_broker/proving_job_database/persisted.js +0 -35
- package/dest/proving_broker/proving_job_database.d.ts.map +0 -1
- package/dest/proving_broker/proving_job_database.js +0 -2
- package/dest/tx-prover/factory.d.ts +0 -5
- package/dest/tx-prover/factory.d.ts.map +0 -1
- package/dest/tx-prover/factory.js +0 -6
- package/dest/tx-prover/tx-prover.d.ts +0 -38
- package/dest/tx-prover/tx-prover.d.ts.map +0 -1
- package/dest/tx-prover/tx-prover.js +0 -93
- package/src/proving_broker/proving_broker_interface.ts +0 -74
- package/src/proving_broker/proving_job_database/memory.ts +0 -43
- package/src/proving_broker/proving_job_database/persisted.ts +0 -45
- package/src/tx-prover/factory.ts +0 -9
- package/src/tx-prover/tx-prover.ts +0 -130
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persisted.d.ts","sourceRoot":"","sources":["../../../src/proving_broker/proving_broker_database/persisted.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,UAAU,EAAE,KAAK,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE7G,OAAO,EAAE,KAAK,YAAY,EAAiB,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAwB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAErF,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAE3E,qBAAa,gBAAiB,YAAW,qBAAqB;IAKhD,OAAO,CAAC,KAAK;IAJzB,OAAO,CAAC,IAAI,CAAiC;IAC7C,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,OAAO,CAAc;gBAET,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe;IAkB1D,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,cAAc,IAAI,QAAQ,CAAC,CAAC,UAAU,EAAE,uBAAuB,GAAG,SAAS,CAAC,CAAC;IAS9E,yBAAyB,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpD,kBAAkB,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnE,mBAAmB,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAI5E"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { ProvingJob, ProvingJobSettledResult } from '@aztec/circuit-types';
|
|
2
|
+
import { jsonParseWithSchema, jsonStringify } from '@aztec/foundation/json-rpc';
|
|
3
|
+
import { LmdbMetrics, Metrics } from '@aztec/telemetry-client';
|
|
4
|
+
export class KVBrokerDatabase {
|
|
5
|
+
constructor(store, client) {
|
|
6
|
+
this.store = store;
|
|
7
|
+
this.metrics = new LmdbMetrics(client.getMeter('KVBrokerDatabase'), {
|
|
8
|
+
name: Metrics.PROVING_QUEUE_DB_MAP_SIZE,
|
|
9
|
+
description: 'Database map size for the proving broker',
|
|
10
|
+
}, {
|
|
11
|
+
name: Metrics.PROVING_QUEUE_DB_USED_SIZE,
|
|
12
|
+
description: 'Database used size for the proving broker',
|
|
13
|
+
}, { name: Metrics.PROVING_QUEUE_DB_NUM_ITEMS, description: 'Number of items in the broker database' }, () => store.estimateSize());
|
|
14
|
+
this.jobs = store.openMap('proving_jobs');
|
|
15
|
+
this.jobResults = store.openMap('proving_job_results');
|
|
16
|
+
}
|
|
17
|
+
async addProvingJob(job) {
|
|
18
|
+
await this.jobs.set(job.id, jsonStringify(job));
|
|
19
|
+
}
|
|
20
|
+
*allProvingJobs() {
|
|
21
|
+
for (const jobStr of this.jobs.values()) {
|
|
22
|
+
const job = jsonParseWithSchema(jobStr, ProvingJob);
|
|
23
|
+
const resultStr = this.jobResults.get(job.id);
|
|
24
|
+
const result = resultStr ? jsonParseWithSchema(resultStr, ProvingJobSettledResult) : undefined;
|
|
25
|
+
yield [job, result];
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
deleteProvingJobAndResult(id) {
|
|
29
|
+
return this.store.transaction(() => {
|
|
30
|
+
void this.jobs.delete(id);
|
|
31
|
+
void this.jobResults.delete(id);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
async setProvingJobError(id, reason) {
|
|
35
|
+
const result = { status: 'rejected', reason };
|
|
36
|
+
await this.jobResults.set(id, jsonStringify(result));
|
|
37
|
+
}
|
|
38
|
+
async setProvingJobResult(id, value) {
|
|
39
|
+
const result = { status: 'fulfilled', value };
|
|
40
|
+
await this.jobResults.set(id, jsonStringify(result));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc2lzdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Byb3ZpbmdfYnJva2VyL3Byb3ZpbmdfYnJva2VyX2RhdGFiYXNlL3BlcnNpc3RlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFVBQVUsRUFBcUIsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFaEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQXdCLE1BQU0seUJBQXlCLENBQUM7QUFJckYsTUFBTSxPQUFPLGdCQUFnQjtJQUszQixZQUFvQixLQUFtQixFQUFFLE1BQXVCO1FBQTVDLFVBQUssR0FBTCxLQUFLLENBQWM7UUFDckMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FDNUIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxFQUNuQztZQUNFLElBQUksRUFBRSxPQUFPLENBQUMseUJBQXlCO1lBQ3ZDLFdBQVcsRUFBRSwwQ0FBMEM7U0FDeEQsRUFDRDtZQUNFLElBQUksRUFBRSxPQUFPLENBQUMsMEJBQTBCO1lBQ3hDLFdBQVcsRUFBRSwyQ0FBMkM7U0FDekQsRUFDRCxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsMEJBQTBCLEVBQUUsV0FBVyxFQUFFLHdDQUF3QyxFQUFFLEVBQ25HLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FDM0IsQ0FBQztRQUNGLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFlO1FBQ2pDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsQ0FBQyxjQUFjO1FBQ2IsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDeEMsTUFBTSxHQUFHLEdBQUcsbUJBQW1CLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3BELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM5QyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDL0YsTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVELHlCQUF5QixDQUFDLEVBQWdCO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFO1lBQ2pDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDMUIsS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsa0JBQWtCLENBQUMsRUFBZ0IsRUFBRSxNQUFjO1FBQ3ZELE1BQU0sTUFBTSxHQUE0QixFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDdkUsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxFQUFnQixFQUFFLEtBQWU7UUFDekQsTUFBTSxNQUFNLEdBQTRCLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUN2RSxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0NBQ0YifQ==
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type ProofUri, type ProvingJob, type ProvingJobId, type ProvingJobSettledResult } from '@aztec/circuit-types';
|
|
2
2
|
/**
|
|
3
3
|
* A database for storing proof requests and their results
|
|
4
4
|
*/
|
|
5
|
-
export interface
|
|
5
|
+
export interface ProvingBrokerDatabase {
|
|
6
6
|
/**
|
|
7
7
|
* Saves a proof request so it can be retrieved later
|
|
8
8
|
* @param request - The proof request to save
|
|
9
9
|
*/
|
|
10
|
-
addProvingJob(request:
|
|
10
|
+
addProvingJob(request: ProvingJob): Promise<void>;
|
|
11
11
|
/**
|
|
12
12
|
* Removes a proof request from the backend
|
|
13
13
|
* @param id - The ID of the proof request to remove
|
|
14
14
|
*/
|
|
15
|
-
deleteProvingJobAndResult(id:
|
|
15
|
+
deleteProvingJobAndResult(id: ProvingJobId): Promise<void>;
|
|
16
16
|
/**
|
|
17
17
|
* Returns an iterator over all saved proving jobs
|
|
18
18
|
*/
|
|
19
|
-
allProvingJobs(): Iterable<[
|
|
19
|
+
allProvingJobs(): Iterable<[ProvingJob, ProvingJobSettledResult | undefined]>;
|
|
20
20
|
/**
|
|
21
21
|
* Saves the result of a proof request
|
|
22
22
|
* @param id - The ID of the proof request to save the result for
|
|
23
23
|
* @param ProvingRequestType - The type of proof that was requested
|
|
24
24
|
* @param value - The result of the proof request
|
|
25
25
|
*/
|
|
26
|
-
setProvingJobResult(id:
|
|
26
|
+
setProvingJobResult(id: ProvingJobId, value: ProofUri): Promise<void>;
|
|
27
27
|
/**
|
|
28
28
|
* Saves an error that occurred while processing a proof request
|
|
29
29
|
* @param id - The ID of the proof request to save the error for
|
|
30
30
|
* @param ProvingRequestType - The type of proof that was requested
|
|
31
31
|
* @param err - The error that occurred while processing the proof request
|
|
32
32
|
*/
|
|
33
|
-
setProvingJobError(id:
|
|
33
|
+
setProvingJobError(id: ProvingJobId, err: string): Promise<void>;
|
|
34
34
|
}
|
|
35
|
-
//# sourceMappingURL=
|
|
35
|
+
//# sourceMappingURL=proving_broker_database.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proving_broker_database.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_broker_database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAEvH;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElD;;;OAGG;IACH,yBAAyB,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3D;;OAEG;IACH,cAAc,IAAI,QAAQ,CAAC,CAAC,UAAU,EAAE,uBAAuB,GAAG,SAAS,CAAC,CAAC,CAAC;IAE9E;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtE;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClE"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ProvingRequestType } from '@aztec/circuit-types';
|
|
2
|
+
import { type Timer } from '@aztec/foundation/timer';
|
|
3
|
+
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
4
|
+
export type MonitorCallback = (proofType: ProvingRequestType) => number;
|
|
5
|
+
export declare class ProvingBrokerInstrumentation {
|
|
6
|
+
private queueSize;
|
|
7
|
+
private activeJobs;
|
|
8
|
+
private resolvedJobs;
|
|
9
|
+
private rejectedJobs;
|
|
10
|
+
private timedOutJobs;
|
|
11
|
+
private jobWait;
|
|
12
|
+
private jobDuration;
|
|
13
|
+
private retriedJobs;
|
|
14
|
+
constructor(client: TelemetryClient, name?: string);
|
|
15
|
+
monitorQueueDepth(fn: MonitorCallback): void;
|
|
16
|
+
monitorActiveJobs(fn: MonitorCallback): void;
|
|
17
|
+
incResolvedJobs(proofType: ProvingRequestType): void;
|
|
18
|
+
incRejectedJobs(proofType: ProvingRequestType): void;
|
|
19
|
+
incRetriedJobs(proofType: ProvingRequestType): void;
|
|
20
|
+
incTimedOutJobs(proofType: ProvingRequestType): void;
|
|
21
|
+
recordJobWait(proofType: ProvingRequestType, msOrTimer: Timer | number): void;
|
|
22
|
+
recordJobDuration(proofType: ProvingRequestType, msOrTimer: Timer | number): void;
|
|
23
|
+
private observe;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=proving_broker_instrumentation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proving_broker_instrumentation.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_broker_instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAML,KAAK,eAAe,EAIrB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE,kBAAkB,KAAK,MAAM,CAAC;AAExE,qBAAa,4BAA4B;IACvC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,WAAW,CAAY;IAC/B,OAAO,CAAC,WAAW,CAAgB;gBAEvB,MAAM,EAAE,eAAe,EAAE,IAAI,SAAkB;IA8C3D,iBAAiB,CAAC,EAAE,EAAE,eAAe;IAIrC,iBAAiB,CAAC,EAAE,EAAE,eAAe;IAIrC,eAAe,CAAC,SAAS,EAAE,kBAAkB;IAM7C,eAAe,CAAC,SAAS,EAAE,kBAAkB;IAM7C,cAAc,CAAC,SAAS,EAAE,kBAAkB;IAM5C,eAAe,CAAC,SAAS,EAAE,kBAAkB;IAM7C,aAAa,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAE,KAAK,GAAG,MAAM;IAOtE,iBAAiB,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAE,KAAK,GAAG,MAAM;IAO1E,OAAO,CAAC,OAAO;CAWhB"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { ProvingRequestType } from '@aztec/circuit-types';
|
|
2
|
+
import { Attributes, Metrics, ValueType, millisecondBuckets, } from '@aztec/telemetry-client';
|
|
3
|
+
export class ProvingBrokerInstrumentation {
|
|
4
|
+
constructor(client, name = 'ProvingBroker') {
|
|
5
|
+
const meter = client.getMeter(name);
|
|
6
|
+
this.queueSize = meter.createObservableGauge(Metrics.PROVING_QUEUE_SIZE, {
|
|
7
|
+
valueType: ValueType.INT,
|
|
8
|
+
});
|
|
9
|
+
this.activeJobs = meter.createObservableGauge(Metrics.PROVING_QUEUE_ACTIVE_JOBS, {
|
|
10
|
+
valueType: ValueType.INT,
|
|
11
|
+
});
|
|
12
|
+
this.resolvedJobs = meter.createUpDownCounter(Metrics.PROVING_QUEUE_RESOLVED_JOBS, {
|
|
13
|
+
valueType: ValueType.INT,
|
|
14
|
+
});
|
|
15
|
+
this.rejectedJobs = meter.createUpDownCounter(Metrics.PROVING_QUEUE_REJECTED_JOBS, {
|
|
16
|
+
valueType: ValueType.INT,
|
|
17
|
+
});
|
|
18
|
+
this.retriedJobs = meter.createUpDownCounter(Metrics.PROVING_QUEUE_RETRIED_JOBS, {
|
|
19
|
+
valueType: ValueType.INT,
|
|
20
|
+
});
|
|
21
|
+
this.timedOutJobs = meter.createUpDownCounter(Metrics.PROVING_QUEUE_TIMED_OUT_JOBS, {
|
|
22
|
+
valueType: ValueType.INT,
|
|
23
|
+
});
|
|
24
|
+
this.jobWait = meter.createHistogram(Metrics.PROVING_QUEUE_JOB_WAIT, {
|
|
25
|
+
description: 'Records how long a job sits in the queue',
|
|
26
|
+
unit: 'ms',
|
|
27
|
+
valueType: ValueType.INT,
|
|
28
|
+
advice: {
|
|
29
|
+
explicitBucketBoundaries: millisecondBuckets(1), // 10ms -> ~327s
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
this.jobDuration = meter.createHistogram(Metrics.PROVING_QUEUE_JOB_DURATION, {
|
|
33
|
+
description: 'Records how long a job takes to complete',
|
|
34
|
+
unit: 'ms',
|
|
35
|
+
valueType: ValueType.INT,
|
|
36
|
+
advice: {
|
|
37
|
+
explicitBucketBoundaries: millisecondBuckets(1), // 10ms -> ~327s
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
monitorQueueDepth(fn) {
|
|
42
|
+
this.queueSize.addCallback(obs => this.observe(obs, fn));
|
|
43
|
+
}
|
|
44
|
+
monitorActiveJobs(fn) {
|
|
45
|
+
this.activeJobs.addCallback(obs => this.observe(obs, fn));
|
|
46
|
+
}
|
|
47
|
+
incResolvedJobs(proofType) {
|
|
48
|
+
this.resolvedJobs.add(1, {
|
|
49
|
+
[Attributes.PROVING_JOB_TYPE]: ProvingRequestType[proofType],
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
incRejectedJobs(proofType) {
|
|
53
|
+
this.rejectedJobs.add(1, {
|
|
54
|
+
[Attributes.PROVING_JOB_TYPE]: ProvingRequestType[proofType],
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
incRetriedJobs(proofType) {
|
|
58
|
+
this.retriedJobs.add(1, {
|
|
59
|
+
[Attributes.PROVING_JOB_TYPE]: ProvingRequestType[proofType],
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
incTimedOutJobs(proofType) {
|
|
63
|
+
this.timedOutJobs.add(1, {
|
|
64
|
+
[Attributes.PROVING_JOB_TYPE]: ProvingRequestType[proofType],
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
recordJobWait(proofType, msOrTimer) {
|
|
68
|
+
const duration = typeof msOrTimer === 'number' ? msOrTimer : Math.floor(msOrTimer.ms());
|
|
69
|
+
this.jobWait.record(duration, {
|
|
70
|
+
[Attributes.PROVING_JOB_TYPE]: ProvingRequestType[proofType],
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
recordJobDuration(proofType, msOrTimer) {
|
|
74
|
+
const duration = typeof msOrTimer === 'number' ? msOrTimer : Math.floor(msOrTimer.ms());
|
|
75
|
+
this.jobDuration.record(duration, {
|
|
76
|
+
[Attributes.PROVING_JOB_TYPE]: ProvingRequestType[proofType],
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
observe(obs, fn) {
|
|
80
|
+
for (const proofType of Object.values(ProvingRequestType)) {
|
|
81
|
+
// a type predicate for TypeScript to recognize that we're only iterating over enum values
|
|
82
|
+
if (typeof proofType !== 'number') {
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
obs.observe(fn(proofType), {
|
|
86
|
+
[Attributes.PROVING_JOB_TYPE]: ProvingRequestType[proofType],
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmluZ19icm9rZXJfaW5zdHJ1bWVudGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3ZpbmdfYnJva2VyL3Byb3ZpbmdfYnJva2VyX2luc3RydW1lbnRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUxRCxPQUFPLEVBQ0wsVUFBVSxFQUVWLE9BQU8sRUFLUCxTQUFTLEVBQ1Qsa0JBQWtCLEdBQ25CLE1BQU0seUJBQXlCLENBQUM7QUFJakMsTUFBTSxPQUFPLDRCQUE0QjtJQVV2QyxZQUFZLE1BQXVCLEVBQUUsSUFBSSxHQUFHLGVBQWU7UUFDekQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVwQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUU7WUFDdkUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxHQUFHO1NBQ3pCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsRUFBRTtZQUMvRSxTQUFTLEVBQUUsU0FBUyxDQUFDLEdBQUc7U0FDekIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLDJCQUEyQixFQUFFO1lBQ2pGLFNBQVMsRUFBRSxTQUFTLENBQUMsR0FBRztTQUN6QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsMkJBQTJCLEVBQUU7WUFDakYsU0FBUyxFQUFFLFNBQVMsQ0FBQyxHQUFHO1NBQ3pCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxD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
|
|
@@ -1,24 +1,29 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
export declare enum
|
|
1
|
+
import { type ProvingJobId, type ProvingJobInputs, type ProvingJobResultsMap, ProvingRequestType, type ServerCircuitProver } from '@aztec/circuit-types';
|
|
2
|
+
export declare enum ProvingJobControllerStatus {
|
|
3
3
|
IDLE = "idle",
|
|
4
4
|
PROVING = "proving",
|
|
5
|
-
DONE = "done"
|
|
5
|
+
DONE = "done",
|
|
6
|
+
ABORTED = "aborted"
|
|
7
|
+
}
|
|
8
|
+
interface ProvingJobCompletionCallback<T extends ProvingRequestType = ProvingRequestType> {
|
|
9
|
+
(jobId: ProvingJobId, type: T, error: Error | undefined, result: ProvingJobResultsMap[T] | undefined): void | Promise<void>;
|
|
6
10
|
}
|
|
7
|
-
type ProvingJobCompletionCallback = (error: Error | undefined, result: V2ProofOutput | undefined) => void | Promise<void>;
|
|
8
11
|
export declare class ProvingJobController {
|
|
9
|
-
private
|
|
12
|
+
private jobId;
|
|
13
|
+
private inputs;
|
|
10
14
|
private startedAt;
|
|
11
15
|
private circuitProver;
|
|
12
16
|
private onComplete;
|
|
13
17
|
private status;
|
|
14
18
|
private promise?;
|
|
15
19
|
private abortController;
|
|
16
|
-
constructor(
|
|
20
|
+
constructor(jobId: ProvingJobId, inputs: ProvingJobInputs, startedAt: number, circuitProver: ServerCircuitProver, onComplete: ProvingJobCompletionCallback);
|
|
17
21
|
start(): void;
|
|
18
|
-
getStatus():
|
|
22
|
+
getStatus(): ProvingJobControllerStatus;
|
|
19
23
|
abort(): void;
|
|
20
|
-
getJobId():
|
|
24
|
+
getJobId(): ProvingJobId;
|
|
21
25
|
getStartedAt(): number;
|
|
26
|
+
getProofTypeName(): string;
|
|
22
27
|
private generateProof;
|
|
23
28
|
}
|
|
24
29
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proving_job_controller.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_job_controller.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"proving_job_controller.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_job_controller.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,kBAAkB,EAClB,KAAK,mBAAmB,EACzB,MAAM,sBAAsB,CAAC;AAE9B,oBAAY,0BAA0B;IACpC,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,OAAO,YAAY;CACpB;AAED,UAAU,4BAA4B,CAAC,CAAC,SAAS,kBAAkB,GAAG,kBAAkB;IACtF,CACE,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,KAAK,GAAG,SAAS,EACxB,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,SAAS,GAC1C,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AAED,qBAAa,oBAAoB;IAM7B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,UAAU;IATpB,OAAO,CAAC,MAAM,CAA+D;IAC7E,OAAO,CAAC,OAAO,CAAC,CAAgB;IAChC,OAAO,CAAC,eAAe,CAAyB;gBAGtC,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,gBAAgB,EACxB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,mBAAmB,EAClC,UAAU,EAAE,4BAA4B;IAG3C,KAAK,IAAI,IAAI;IAmCb,SAAS,IAAI,0BAA0B;IAIvC,KAAK,IAAI,IAAI;IASb,QAAQ,IAAI,YAAY;IAIxB,YAAY,IAAI,MAAM;IAItB,gBAAgB,IAAI,MAAM;YAInB,aAAa;CA0D5B"}
|
|
@@ -1,35 +1,43 @@
|
|
|
1
1
|
import { ProvingRequestType, } from '@aztec/circuit-types';
|
|
2
|
-
export var
|
|
3
|
-
(function (
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
export var ProvingJobControllerStatus;
|
|
3
|
+
(function (ProvingJobControllerStatus) {
|
|
4
|
+
ProvingJobControllerStatus["IDLE"] = "idle";
|
|
5
|
+
ProvingJobControllerStatus["PROVING"] = "proving";
|
|
6
|
+
ProvingJobControllerStatus["DONE"] = "done";
|
|
7
|
+
ProvingJobControllerStatus["ABORTED"] = "aborted";
|
|
8
|
+
})(ProvingJobControllerStatus || (ProvingJobControllerStatus = {}));
|
|
8
9
|
export class ProvingJobController {
|
|
9
|
-
constructor(
|
|
10
|
-
this.
|
|
10
|
+
constructor(jobId, inputs, startedAt, circuitProver, onComplete) {
|
|
11
|
+
this.jobId = jobId;
|
|
12
|
+
this.inputs = inputs;
|
|
11
13
|
this.startedAt = startedAt;
|
|
12
14
|
this.circuitProver = circuitProver;
|
|
13
15
|
this.onComplete = onComplete;
|
|
14
|
-
this.status =
|
|
16
|
+
this.status = ProvingJobControllerStatus.IDLE;
|
|
15
17
|
this.abortController = new AbortController();
|
|
16
18
|
}
|
|
17
19
|
start() {
|
|
18
|
-
if (this.status !==
|
|
20
|
+
if (this.status !== ProvingJobControllerStatus.IDLE) {
|
|
19
21
|
return;
|
|
20
22
|
}
|
|
21
|
-
this.status =
|
|
23
|
+
this.status = ProvingJobControllerStatus.PROVING;
|
|
22
24
|
this.promise = this.generateProof()
|
|
23
25
|
.then(result => {
|
|
24
|
-
this.status
|
|
25
|
-
|
|
26
|
+
if (this.status === ProvingJobControllerStatus.ABORTED) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
this.status = ProvingJobControllerStatus.DONE;
|
|
30
|
+
return this.onComplete(this.jobId, this.inputs.type, undefined, result);
|
|
26
31
|
}, error => {
|
|
27
|
-
this.status
|
|
32
|
+
if (this.status === ProvingJobControllerStatus.ABORTED) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
28
35
|
if (error.name === 'AbortError') {
|
|
29
36
|
// Ignore abort errors
|
|
30
37
|
return;
|
|
31
38
|
}
|
|
32
|
-
|
|
39
|
+
this.status = ProvingJobControllerStatus.DONE;
|
|
40
|
+
return this.onComplete(this.jobId, this.inputs.type, error, undefined);
|
|
33
41
|
})
|
|
34
42
|
.catch(_ => {
|
|
35
43
|
// ignore completion errors
|
|
@@ -39,68 +47,60 @@ export class ProvingJobController {
|
|
|
39
47
|
return this.status;
|
|
40
48
|
}
|
|
41
49
|
abort() {
|
|
42
|
-
if (this.status !==
|
|
50
|
+
if (this.status !== ProvingJobControllerStatus.PROVING) {
|
|
43
51
|
return;
|
|
44
52
|
}
|
|
53
|
+
this.status = ProvingJobControllerStatus.ABORTED;
|
|
45
54
|
this.abortController.abort();
|
|
46
55
|
}
|
|
47
56
|
getJobId() {
|
|
48
|
-
return this.
|
|
57
|
+
return this.jobId;
|
|
49
58
|
}
|
|
50
59
|
getStartedAt() {
|
|
51
60
|
return this.startedAt;
|
|
52
61
|
}
|
|
62
|
+
getProofTypeName() {
|
|
63
|
+
return ProvingRequestType[this.inputs.type];
|
|
64
|
+
}
|
|
53
65
|
async generateProof() {
|
|
54
|
-
const { type, inputs } = this.
|
|
66
|
+
const { type, inputs } = this.inputs;
|
|
55
67
|
const signal = this.abortController.signal;
|
|
56
68
|
switch (type) {
|
|
57
69
|
case ProvingRequestType.PUBLIC_VM: {
|
|
58
|
-
|
|
59
|
-
return { type, value };
|
|
70
|
+
return await this.circuitProver.getAvmProof(inputs, signal);
|
|
60
71
|
}
|
|
61
72
|
case ProvingRequestType.PRIVATE_BASE_ROLLUP: {
|
|
62
|
-
|
|
63
|
-
return { type, value };
|
|
73
|
+
return await this.circuitProver.getPrivateBaseRollupProof(inputs, signal);
|
|
64
74
|
}
|
|
65
75
|
case ProvingRequestType.PUBLIC_BASE_ROLLUP: {
|
|
66
|
-
|
|
67
|
-
return { type, value };
|
|
76
|
+
return await this.circuitProver.getPublicBaseRollupProof(inputs, signal);
|
|
68
77
|
}
|
|
69
78
|
case ProvingRequestType.MERGE_ROLLUP: {
|
|
70
|
-
|
|
71
|
-
return { type, value };
|
|
79
|
+
return await this.circuitProver.getMergeRollupProof(inputs, signal);
|
|
72
80
|
}
|
|
73
81
|
case ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP: {
|
|
74
|
-
|
|
75
|
-
return { type, value };
|
|
82
|
+
return await this.circuitProver.getEmptyBlockRootRollupProof(inputs, signal);
|
|
76
83
|
}
|
|
77
84
|
case ProvingRequestType.BLOCK_ROOT_ROLLUP: {
|
|
78
|
-
|
|
79
|
-
return { type, value };
|
|
85
|
+
return await this.circuitProver.getBlockRootRollupProof(inputs, signal);
|
|
80
86
|
}
|
|
81
87
|
case ProvingRequestType.BLOCK_MERGE_ROLLUP: {
|
|
82
|
-
|
|
83
|
-
return { type, value };
|
|
88
|
+
return await this.circuitProver.getBlockMergeRollupProof(inputs, signal);
|
|
84
89
|
}
|
|
85
90
|
case ProvingRequestType.ROOT_ROLLUP: {
|
|
86
|
-
|
|
87
|
-
return { type, value };
|
|
91
|
+
return await this.circuitProver.getRootRollupProof(inputs, signal);
|
|
88
92
|
}
|
|
89
93
|
case ProvingRequestType.BASE_PARITY: {
|
|
90
|
-
|
|
91
|
-
return { type, value };
|
|
94
|
+
return await this.circuitProver.getBaseParityProof(inputs, signal);
|
|
92
95
|
}
|
|
93
96
|
case ProvingRequestType.ROOT_PARITY: {
|
|
94
|
-
|
|
95
|
-
return { type, value };
|
|
97
|
+
return await this.circuitProver.getRootParityProof(inputs, signal);
|
|
96
98
|
}
|
|
97
99
|
case ProvingRequestType.PRIVATE_KERNEL_EMPTY: {
|
|
98
|
-
|
|
99
|
-
return { type, value };
|
|
100
|
+
return await this.circuitProver.getEmptyPrivateKernelProof(inputs, signal);
|
|
100
101
|
}
|
|
101
102
|
case ProvingRequestType.TUBE_PROOF: {
|
|
102
|
-
|
|
103
|
-
return { type, value };
|
|
103
|
+
return await this.circuitProver.getTubeProof(inputs, signal);
|
|
104
104
|
}
|
|
105
105
|
default: {
|
|
106
106
|
const _exhaustive = type;
|
|
@@ -109,4 +109,4 @@ export class ProvingJobController {
|
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmluZ19qb2JfY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92aW5nX2Jyb2tlci9wcm92aW5nX2pvYl9jb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJTCxrQkFBa0IsR0FFbkIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixNQUFNLENBQU4sSUFBWSwwQkFLWDtBQUxELFdBQVksMEJBQTBCO0lBQ3BDLDJDQUFhLENBQUE7SUFDYixpREFBbUIsQ0FBQTtJQUNuQiwyQ0FBYSxDQUFBO0lBQ2IsaURBQW1CLENBQUE7QUFDckIsQ0FBQyxFQUxXLDBCQUEwQixLQUExQiwwQkFBMEIsUUFLckM7QUFXRCxNQUFNLE9BQU8sb0JBQW9CO0lBSy9CLFlBQ1UsS0FBbUIsRUFDbkIsTUFBd0IsRUFDeEIsU0FBaUIsRUFDakIsYUFBa0MsRUFDbEMsVUFBd0M7UUFKeEMsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUNuQixXQUFNLEdBQU4sTUFBTSxDQUFrQjtRQUN4QixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ2pCLGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtRQUNsQyxlQUFVLEdBQVYsVUFBVSxDQUE4QjtRQVQxQyxXQUFNLEdBQStCLDBCQUEwQixDQUFDLElBQUksQ0FBQztRQUVyRSxvQkFBZSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7SUFRN0MsQ0FBQztJQUVHLEtBQUs7UUFDVixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssMEJBQTBCLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDcEQsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxHQUFHLDBCQUEwQixDQUFDLE9BQU8sQ0FBQztRQUNqRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUU7YUFDaEMsSUFBSSxDQUNILE1BQU0sQ0FBQyxFQUFFO1lBQ1AsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFL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
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type ProvingJobBroker, type ProvingJobConsumer, type ProvingJobProducer } from '@aztec/circuit-types';
|
|
2
|
+
import { type SafeJsonRpcServer } from '@aztec/foundation/json-rpc/server';
|
|
3
|
+
import { type ApiSchemaFor } from '@aztec/foundation/schemas';
|
|
4
|
+
export declare const ProvingJobProducerSchema: ApiSchemaFor<ProvingJobProducer>;
|
|
5
|
+
export declare const ProvingJobConsumerSchema: ApiSchemaFor<ProvingJobConsumer>;
|
|
6
|
+
export declare const ProvingJobBrokerSchema: ApiSchemaFor<ProvingJobBroker>;
|
|
7
|
+
export declare function createProvingBrokerServer(broker: ProvingJobBroker): SafeJsonRpcServer;
|
|
8
|
+
export declare function createProvingJobBrokerClient(url: string, fetch?: (host: string, rpcMethod: string, body: any, useApiEndpoints: boolean, noRetry?: boolean | undefined) => Promise<any>): ProvingJobBroker;
|
|
9
|
+
export declare function createProvingJobProducerClient(url: string, fetch?: (host: string, rpcMethod: string, body: any, useApiEndpoints: boolean, noRetry?: boolean | undefined) => Promise<any>): ProvingJobProducer;
|
|
10
|
+
export declare function createProvingJobConsumerClient(url: string, fetch?: (host: string, rpcMethod: string, body: any, useApiEndpoints: boolean, noRetry?: boolean | undefined) => Promise<any>): ProvingJobConsumer;
|
|
11
|
+
//# sourceMappingURL=rpc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../src/proving_broker/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EAEvB,KAAK,kBAAkB,EAIxB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,KAAK,iBAAiB,EAA2B,MAAM,mCAAmC,CAAC;AACpG,OAAO,EAAE,KAAK,YAAY,EAAY,MAAM,2BAA2B,CAAC;AAaxE,eAAO,MAAM,wBAAwB,EAAE,YAAY,CAAC,kBAAkB,CAKrE,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,YAAY,CAAC,kBAAkB,CAQrE,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,YAAY,CAAC,gBAAgB,CAGjE,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,gBAAgB,GAAG,iBAAiB,CAErF;AAED,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,wHAA8B,GAAG,gBAAgB,CAE/G;AAED,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,wHAA8B,GAAG,kBAAkB,CAEnH;AAED,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,wHAA8B,GAAG,kBAAkB,CAEnH"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { ProofUri, ProvingJob, ProvingJobId, ProvingJobSettledResult, ProvingJobStatus, ProvingRequestType, } from '@aztec/circuit-types';
|
|
2
|
+
import { createSafeJsonRpcClient, makeFetch } from '@aztec/foundation/json-rpc/client';
|
|
3
|
+
import { createSafeJsonRpcServer } from '@aztec/foundation/json-rpc/server';
|
|
4
|
+
import { optional } from '@aztec/foundation/schemas';
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
const ProvingJobFilterSchema = z.object({
|
|
7
|
+
allowList: z.array(z.nativeEnum(ProvingRequestType)),
|
|
8
|
+
});
|
|
9
|
+
const GetProvingJobResponse = z.object({
|
|
10
|
+
job: ProvingJob,
|
|
11
|
+
time: z.number(),
|
|
12
|
+
});
|
|
13
|
+
export const ProvingJobProducerSchema = {
|
|
14
|
+
enqueueProvingJob: z.function().args(ProvingJob).returns(z.void()),
|
|
15
|
+
getProvingJobStatus: z.function().args(ProvingJobId).returns(ProvingJobStatus),
|
|
16
|
+
removeAndCancelProvingJob: z.function().args(ProvingJobId).returns(z.void()),
|
|
17
|
+
waitForJobToSettle: z.function().args(ProvingJobId).returns(ProvingJobSettledResult),
|
|
18
|
+
};
|
|
19
|
+
export const ProvingJobConsumerSchema = {
|
|
20
|
+
getProvingJob: z.function().args(optional(ProvingJobFilterSchema)).returns(GetProvingJobResponse.optional()),
|
|
21
|
+
reportProvingJobError: z.function().args(ProvingJobId, z.string(), optional(z.boolean())).returns(z.void()),
|
|
22
|
+
reportProvingJobProgress: z
|
|
23
|
+
.function()
|
|
24
|
+
.args(ProvingJobId, z.number(), optional(ProvingJobFilterSchema))
|
|
25
|
+
.returns(GetProvingJobResponse.optional()),
|
|
26
|
+
reportProvingJobSuccess: z.function().args(ProvingJobId, ProofUri).returns(z.void()),
|
|
27
|
+
};
|
|
28
|
+
export const ProvingJobBrokerSchema = {
|
|
29
|
+
...ProvingJobConsumerSchema,
|
|
30
|
+
...ProvingJobProducerSchema,
|
|
31
|
+
};
|
|
32
|
+
export function createProvingBrokerServer(broker) {
|
|
33
|
+
return createSafeJsonRpcServer(broker, ProvingJobBrokerSchema);
|
|
34
|
+
}
|
|
35
|
+
export function createProvingJobBrokerClient(url, fetch = makeFetch([1, 2, 3], false)) {
|
|
36
|
+
return createSafeJsonRpcClient(url, ProvingJobBrokerSchema, false, 'proverBroker', fetch);
|
|
37
|
+
}
|
|
38
|
+
export function createProvingJobProducerClient(url, fetch = makeFetch([1, 2, 3], false)) {
|
|
39
|
+
return createSafeJsonRpcClient(url, ProvingJobProducerSchema, false, 'provingJobProducer', fetch);
|
|
40
|
+
}
|
|
41
|
+
export function createProvingJobConsumerClient(url, fetch = makeFetch([1, 2, 3], false)) {
|
|
42
|
+
return createSafeJsonRpcClient(url, ProvingJobConsumerSchema, false, 'provingJobConsumer', fetch);
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnBjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3ZpbmdfYnJva2VyL3JwYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsUUFBUSxFQUNSLFVBQVUsRUFHVixZQUFZLEVBRVosdUJBQXVCLEVBQ3ZCLGdCQUFnQixFQUNoQixrQkFBa0IsR0FDbkIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkYsT0FBTyxFQUEwQix1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BHLE9BQU8sRUFBcUIsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFeEUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixNQUFNLHNCQUFzQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDdEMsU0FBUyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0NBQ3JELENBQUMsQ0FBQztBQUVILE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNyQyxHQUFHLEVBQUUsVUFBVTtJQUNmLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0NBQ2pCLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFxQztJQUN4RSxpQkFBaUIsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUM7SUFDOUUseUJBQXlCLEVBQUUsQ0FBQyxDQUFD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
|
|
@@ -1,8 +1,22 @@
|
|
|
1
|
-
import { type ProofAndVerificationKey, type PublicInputsAndRecursiveProof, type ServerCircuitProver } from '@aztec/circuit-types';
|
|
1
|
+
import { type ProofAndVerificationKey, type ProvingJob, type ProvingJobId, type ProvingJobProducer, type ProvingJobSettledResult, type ProvingJobStatus, type PublicInputsAndRecursiveProof, type ServerCircuitProver } from '@aztec/circuit-types';
|
|
2
2
|
import { type AvmCircuitInputs, type BaseOrMergeRollupPublicInputs, type BaseParityInputs, type BlockMergeRollupInputs, type BlockRootOrBlockMergePublicInputs, type BlockRootRollupInputs, type EmptyBlockRootRollupInputs, type KernelCircuitPublicInputs, type MergeRollupInputs, type PrivateBaseRollupInputs, type PrivateKernelEmptyInputData, type PublicBaseRollupInputs, type RootParityInputs, type RootRollupInputs, type RootRollupPublicInputs, TUBE_PROOF_LENGTH } from '@aztec/circuits.js';
|
|
3
|
+
import { type ProofStore } from '../proving_broker/proof_store.js';
|
|
4
|
+
export declare class TestBroker implements ProvingJobProducer {
|
|
5
|
+
private proofStore;
|
|
6
|
+
private broker;
|
|
7
|
+
private agents;
|
|
8
|
+
constructor(agentCount: number, prover: ServerCircuitProver, proofStore?: ProofStore);
|
|
9
|
+
start(): Promise<void>;
|
|
10
|
+
stop(): Promise<void>;
|
|
11
|
+
getProofStore(): ProofStore;
|
|
12
|
+
enqueueProvingJob(job: ProvingJob): Promise<void>;
|
|
13
|
+
getProvingJobStatus(id: ProvingJobId): Promise<ProvingJobStatus>;
|
|
14
|
+
removeAndCancelProvingJob(id: ProvingJobId): Promise<void>;
|
|
15
|
+
waitForJobToSettle(id: ProvingJobId): Promise<ProvingJobSettledResult>;
|
|
16
|
+
}
|
|
3
17
|
export declare class MockProver implements ServerCircuitProver {
|
|
4
18
|
constructor();
|
|
5
|
-
getAvmProof(_inputs: AvmCircuitInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<ProofAndVerificationKey<
|
|
19
|
+
getAvmProof(_inputs: AvmCircuitInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<ProofAndVerificationKey<4161>>;
|
|
6
20
|
getBaseParityProof(_inputs: BaseParityInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<import("@aztec/circuits.js").ParityPublicInputs, 463>>;
|
|
7
21
|
getRootParityProof(_inputs: RootParityInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<import("@aztec/circuits.js").ParityPublicInputs, 463>>;
|
|
8
22
|
getPrivateBaseRollupProof(_baseRollupInput: PrivateBaseRollupInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock_prover.d.ts","sourceRoot":"","sources":["../../src/test/mock_prover.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,6BAA6B,EAClC,KAAK,mBAAmB,EAGzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,6BAA6B,EAClC,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,iCAAiC,EACtC,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,iBAAiB,EAEtB,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,EAE3B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,iBAAiB,EAIlB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"mock_prover.d.ts","sourceRoot":"","sources":["../../src/test/mock_prover.ts"],"names":[],"mappings":"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"}
|