@aztec/prover-client 0.0.0-test.1 → 0.0.1-fake-c83136db25
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-factory/index.d.ts +2 -0
- package/dest/block-factory/index.d.ts.map +1 -0
- package/dest/block-factory/light.d.ts +38 -0
- package/dest/block-factory/light.d.ts.map +1 -0
- package/dest/block-factory/light.js +94 -0
- package/dest/config.d.ts +6 -6
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +11 -1
- package/dest/mocks/fixtures.d.ts +7 -4
- package/dest/mocks/fixtures.d.ts.map +1 -1
- package/dest/mocks/fixtures.js +32 -4
- package/dest/mocks/test_context.d.ts +43 -15
- package/dest/mocks/test_context.d.ts.map +1 -1
- package/dest/mocks/test_context.js +110 -48
- package/dest/orchestrator/block-building-helpers.d.ts +37 -28
- package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
- package/dest/orchestrator/block-building-helpers.js +156 -150
- package/dest/orchestrator/block-proving-state.d.ts +62 -46
- package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/block-proving-state.js +223 -179
- package/dest/orchestrator/checkpoint-proving-state.d.ts +63 -0
- package/dest/orchestrator/checkpoint-proving-state.d.ts.map +1 -0
- package/dest/orchestrator/checkpoint-proving-state.js +211 -0
- package/dest/orchestrator/epoch-proving-state.d.ts +37 -24
- package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/epoch-proving-state.js +143 -73
- package/dest/orchestrator/orchestrator.d.ts +34 -31
- package/dest/orchestrator/orchestrator.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator.js +392 -234
- package/dest/orchestrator/orchestrator_metrics.d.ts +2 -0
- package/dest/orchestrator/orchestrator_metrics.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator_metrics.js +9 -0
- package/dest/orchestrator/tx-proving-state.d.ts +12 -10
- package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/tx-proving-state.js +30 -38
- package/dest/prover-client/prover-client.d.ts +3 -3
- package/dest/prover-client/prover-client.d.ts.map +1 -1
- package/dest/prover-client/prover-client.js +5 -4
- package/dest/prover-client/server-epoch-prover.d.ts +13 -10
- package/dest/prover-client/server-epoch-prover.d.ts.map +1 -1
- package/dest/prover-client/server-epoch-prover.js +11 -11
- package/dest/proving_broker/broker_prover_facade.d.ts +22 -15
- package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
- package/dest/proving_broker/broker_prover_facade.js +64 -39
- package/dest/proving_broker/config.d.ts +9 -4
- package/dest/proving_broker/config.d.ts.map +1 -1
- package/dest/proving_broker/config.js +15 -4
- package/dest/proving_broker/factory.d.ts +1 -1
- package/dest/proving_broker/factory.d.ts.map +1 -1
- package/dest/proving_broker/factory.js +5 -1
- package/dest/proving_broker/fixtures.js +1 -1
- package/dest/proving_broker/proof_store/factory.js +1 -1
- package/dest/proving_broker/proof_store/gcs_proof_store.d.ts.map +1 -1
- package/dest/proving_broker/proof_store/gcs_proof_store.js +1 -0
- package/dest/proving_broker/proof_store/index.d.ts +1 -0
- package/dest/proving_broker/proof_store/index.d.ts.map +1 -1
- package/dest/proving_broker/proof_store/index.js +1 -0
- package/dest/proving_broker/proving_agent.d.ts +3 -3
- package/dest/proving_broker/proving_agent.d.ts.map +1 -1
- package/dest/proving_broker/proving_agent.js +83 -47
- package/dest/proving_broker/proving_broker.d.ts +11 -2
- package/dest/proving_broker/proving_broker.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker.js +34 -22
- package/dest/proving_broker/proving_broker_database/memory.js +1 -1
- package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker_database/persisted.js +9 -8
- package/dest/proving_broker/proving_job_controller.d.ts +7 -8
- package/dest/proving_broker/proving_job_controller.d.ts.map +1 -1
- package/dest/proving_broker/proving_job_controller.js +89 -61
- package/dest/proving_broker/rpc.d.ts +3 -5
- package/dest/proving_broker/rpc.d.ts.map +1 -1
- package/dest/proving_broker/rpc.js +1 -4
- package/dest/test/mock_proof_store.d.ts +9 -0
- package/dest/test/mock_proof_store.d.ts.map +1 -0
- package/dest/test/mock_proof_store.js +10 -0
- package/dest/test/mock_prover.d.ts +23 -16
- package/dest/test/mock_prover.d.ts.map +1 -1
- package/dest/test/mock_prover.js +38 -20
- package/package.json +29 -29
- package/src/block-factory/index.ts +1 -0
- package/src/block-factory/light.ts +140 -0
- package/src/config.ts +24 -8
- package/src/mocks/fixtures.ts +43 -15
- package/src/mocks/test_context.ts +201 -75
- package/src/orchestrator/block-building-helpers.ts +247 -243
- package/src/orchestrator/block-proving-state.ts +247 -231
- package/src/orchestrator/checkpoint-proving-state.ts +299 -0
- package/src/orchestrator/epoch-proving-state.ts +187 -111
- package/src/orchestrator/orchestrator.ts +590 -289
- package/src/orchestrator/orchestrator_metrics.ts +20 -1
- package/src/orchestrator/tx-proving-state.ts +60 -61
- package/src/prover-client/prover-client.ts +16 -14
- package/src/prover-client/server-epoch-prover.ts +40 -21
- package/src/proving_broker/broker_prover_facade.ts +200 -113
- package/src/proving_broker/config.ts +17 -6
- package/src/proving_broker/factory.ts +2 -1
- package/src/proving_broker/fixtures.ts +1 -1
- package/src/proving_broker/proof_store/factory.ts +1 -1
- package/src/proving_broker/proof_store/gcs_proof_store.ts +5 -1
- package/src/proving_broker/proof_store/index.ts +1 -0
- package/src/proving_broker/proof_store/inline_proof_store.ts +1 -1
- package/src/proving_broker/proving_agent.ts +89 -47
- package/src/proving_broker/proving_broker.ts +51 -32
- package/src/proving_broker/proving_broker_database/memory.ts +1 -1
- package/src/proving_broker/proving_broker_database/persisted.ts +9 -8
- package/src/proving_broker/proving_job_controller.ts +92 -81
- package/src/proving_broker/rpc.ts +1 -6
- package/src/test/mock_proof_store.ts +14 -0
- package/src/test/mock_prover.ts +164 -60
- package/dest/bin/get-proof-inputs.d.ts +0 -2
- package/dest/bin/get-proof-inputs.d.ts.map +0 -1
- package/dest/bin/get-proof-inputs.js +0 -51
- 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 -33
- package/dest/block_builder/light.d.ts.map +0 -1
- package/dest/block_builder/light.js +0 -82
- package/src/bin/get-proof-inputs.ts +0 -59
- package/src/block_builder/index.ts +0 -6
- package/src/block_builder/light.ts +0 -101
- /package/dest/{block_builder → block-factory}/index.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proving_broker.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_broker.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"proving_broker.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_broker.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ import { createLogger } from '@aztec/foundation/log';
|
|
|
8
8
|
import { RunningPromise, promiseWithResolvers } from '@aztec/foundation/promise';
|
|
9
9
|
import { PriorityMemoryQueue } from '@aztec/foundation/queue';
|
|
10
10
|
import { Timer } from '@aztec/foundation/timer';
|
|
11
|
+
import { tryStop } from '@aztec/stdlib/interfaces/server';
|
|
11
12
|
import { ProvingRequestType } from '@aztec/stdlib/proofs';
|
|
12
13
|
import { getTelemetryClient, trackSpan } from '@aztec/telemetry-client';
|
|
13
14
|
import assert from 'assert';
|
|
@@ -46,7 +47,7 @@ import { ProvingBrokerInstrumentation } from './proving_broker_instrumentation.j
|
|
|
46
47
|
/**
|
|
47
48
|
* The broker keeps track of the highest epoch its seen.
|
|
48
49
|
* This information is used for garbage collection: once it reaches the next epoch, it can start pruning the database of old state.
|
|
49
|
-
* It is important that this value is
|
|
50
|
+
* It is important that this value is initialized to zero. This ensures that we don't delete any old jobs until the current
|
|
50
51
|
* process instance receives a job request informing it of the actual current highest epoch
|
|
51
52
|
* Example:
|
|
52
53
|
* proving epoch 11 - the broker will wipe all jobs for epochs 9 and lower
|
|
@@ -60,17 +61,23 @@ import { ProvingBrokerInstrumentation } from './proving_broker_instrumentation.j
|
|
|
60
61
|
this.logger = logger;
|
|
61
62
|
this.queues = {
|
|
62
63
|
[ProvingRequestType.PUBLIC_VM]: new PriorityMemoryQueue(provingJobComparator),
|
|
63
|
-
[ProvingRequestType.
|
|
64
|
-
[ProvingRequestType.
|
|
65
|
-
[ProvingRequestType.
|
|
66
|
-
[ProvingRequestType.
|
|
64
|
+
[ProvingRequestType.PUBLIC_CHONK_VERIFIER]: new PriorityMemoryQueue(provingJobComparator),
|
|
65
|
+
[ProvingRequestType.PRIVATE_TX_BASE_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
|
|
66
|
+
[ProvingRequestType.PUBLIC_TX_BASE_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
|
|
67
|
+
[ProvingRequestType.TX_MERGE_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
|
|
67
68
|
[ProvingRequestType.ROOT_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
|
|
68
69
|
[ProvingRequestType.BLOCK_MERGE_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
|
|
70
|
+
[ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
|
|
71
|
+
[ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
|
|
72
|
+
[ProvingRequestType.BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
|
|
69
73
|
[ProvingRequestType.BLOCK_ROOT_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
|
|
70
|
-
[ProvingRequestType.
|
|
71
|
-
[ProvingRequestType.
|
|
72
|
-
[ProvingRequestType.
|
|
73
|
-
[ProvingRequestType.
|
|
74
|
+
[ProvingRequestType.BLOCK_ROOT_SINGLE_TX_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
|
|
75
|
+
[ProvingRequestType.CHECKPOINT_ROOT_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
|
|
76
|
+
[ProvingRequestType.CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
|
|
77
|
+
[ProvingRequestType.CHECKPOINT_MERGE_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
|
|
78
|
+
[ProvingRequestType.CHECKPOINT_PADDING_ROLLUP]: new PriorityMemoryQueue(provingJobComparator),
|
|
79
|
+
[ProvingRequestType.PARITY_BASE]: new PriorityMemoryQueue(provingJobComparator),
|
|
80
|
+
[ProvingRequestType.PARITY_ROOT]: new PriorityMemoryQueue(provingJobComparator)
|
|
74
81
|
};
|
|
75
82
|
this.jobsCache = new Map();
|
|
76
83
|
this.resultsCache = new Map();
|
|
@@ -135,7 +142,7 @@ import { ProvingBrokerInstrumentation } from './proving_broker_instrumentation.j
|
|
|
135
142
|
this.logger.warn('ProvingBroker not started');
|
|
136
143
|
return Promise.resolve();
|
|
137
144
|
}
|
|
138
|
-
await this.cleanupPromise
|
|
145
|
+
await tryStop(this.cleanupPromise);
|
|
139
146
|
}
|
|
140
147
|
enqueueProvingJob(job) {
|
|
141
148
|
return this.#enqueueProvingJob(job);
|
|
@@ -244,7 +251,6 @@ import { ProvingBrokerInstrumentation } from './proving_broker_instrumentation.j
|
|
|
244
251
|
this.completedJobNotifications = [];
|
|
245
252
|
return Promise.resolve(notifications.concat(completedJobs));
|
|
246
253
|
}
|
|
247
|
-
// eslint-disable-next-line require-await
|
|
248
254
|
#getProvingJob(filter = {
|
|
249
255
|
allowList: []
|
|
250
256
|
}) {
|
|
@@ -462,7 +468,7 @@ import { ProvingBrokerInstrumentation } from './proving_broker_instrumentation.j
|
|
|
462
468
|
}
|
|
463
469
|
if (jobsToClean.length > 0) {
|
|
464
470
|
this.cleanUpProvingJobState(jobsToClean);
|
|
465
|
-
this.logger.
|
|
471
|
+
this.logger.verbose(`Cleaned up proving jobs=${jobsToClean.length}`);
|
|
466
472
|
}
|
|
467
473
|
}
|
|
468
474
|
reEnqueueExpiredJobs() {
|
|
@@ -554,17 +560,23 @@ _ts_decorate([
|
|
|
554
560
|
*
|
|
555
561
|
* The aim is that this will speed up block proving as the closer we get to a block's root proof the more likely it
|
|
556
562
|
* is to get picked up by agents
|
|
557
|
-
*/ const PROOF_TYPES_IN_PRIORITY_ORDER = [
|
|
563
|
+
*/ export const PROOF_TYPES_IN_PRIORITY_ORDER = [
|
|
564
|
+
ProvingRequestType.ROOT_ROLLUP,
|
|
565
|
+
ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP,
|
|
566
|
+
ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP,
|
|
567
|
+
ProvingRequestType.BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP,
|
|
558
568
|
ProvingRequestType.BLOCK_ROOT_ROLLUP,
|
|
559
|
-
ProvingRequestType.
|
|
569
|
+
ProvingRequestType.BLOCK_ROOT_SINGLE_TX_ROLLUP,
|
|
560
570
|
ProvingRequestType.BLOCK_MERGE_ROLLUP,
|
|
561
|
-
ProvingRequestType.
|
|
562
|
-
ProvingRequestType.
|
|
563
|
-
ProvingRequestType.
|
|
564
|
-
ProvingRequestType.
|
|
571
|
+
ProvingRequestType.CHECKPOINT_ROOT_ROLLUP,
|
|
572
|
+
ProvingRequestType.CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP,
|
|
573
|
+
ProvingRequestType.CHECKPOINT_MERGE_ROLLUP,
|
|
574
|
+
ProvingRequestType.CHECKPOINT_PADDING_ROLLUP,
|
|
575
|
+
ProvingRequestType.TX_MERGE_ROLLUP,
|
|
576
|
+
ProvingRequestType.PUBLIC_TX_BASE_ROLLUP,
|
|
577
|
+
ProvingRequestType.PRIVATE_TX_BASE_ROLLUP,
|
|
565
578
|
ProvingRequestType.PUBLIC_VM,
|
|
566
|
-
ProvingRequestType.
|
|
567
|
-
ProvingRequestType.
|
|
568
|
-
ProvingRequestType.
|
|
569
|
-
ProvingRequestType.EMPTY_BLOCK_ROOT_ROLLUP
|
|
579
|
+
ProvingRequestType.PUBLIC_CHONK_VERIFIER,
|
|
580
|
+
ProvingRequestType.PARITY_ROOT,
|
|
581
|
+
ProvingRequestType.PARITY_BASE
|
|
570
582
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persisted.d.ts","sourceRoot":"","sources":["../../../src/proving_broker/proving_broker_database/persisted.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAIlE,OAAO,EACL,KAAK,QAAQ,EACb,UAAU,EACV,KAAK,YAAY,EACjB,uBAAuB,EAExB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAA2B,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAK5G,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAwD3E,qBAAa,gBAAiB,YAAW,qBAAqB;IAM1D,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,MAAM;IARhB,OAAO,CAAC,OAAO,CAAc;IAE7B,OAAO,CAAC,UAAU,CAA2E;IAE7F,OAAO;IAuBM,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,GAAG,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM;YAQnG,YAAY;
|
|
1
|
+
{"version":3,"file":"persisted.d.ts","sourceRoot":"","sources":["../../../src/proving_broker/proving_broker_database/persisted.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAIlE,OAAO,EACL,KAAK,QAAQ,EACb,UAAU,EACV,KAAK,YAAY,EACjB,uBAAuB,EAExB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAA2B,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAK5G,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAwD3E,qBAAa,gBAAiB,YAAW,qBAAqB;IAM1D,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,MAAM;IARhB,OAAO,CAAC,OAAO,CAAc;IAE7B,OAAO,CAAC,UAAU,CAA2E;IAE7F,OAAO;IAuBM,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,GAAG,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM;YAQnG,YAAY;WAUN,GAAG,CACrB,MAAM,EAAE,kBAAkB,EAC1B,MAAM,GAAE,eAAsC,EAC9C,MAAM,SAAwD;IAgChE,OAAO,CAAC,KAAK;IAIP,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAOtB,kCAAkC,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa5E,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAItC,cAAc,IAAI,qBAAqB,CAAC,CAAC,UAAU,EAAE,uBAAuB,GAAG,SAAS,CAAC,CAAC;IAOjG,kBAAkB,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInE,mBAAmB,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;YAIvD,gBAAgB;CAoB/B"}
|
|
@@ -31,9 +31,9 @@ class SingleEpochDatabase {
|
|
|
31
31
|
}
|
|
32
32
|
async *allProvingJobs() {
|
|
33
33
|
for await (const jobStr of this.jobs.valuesAsync()){
|
|
34
|
-
const job =
|
|
34
|
+
const job = jsonParseWithSchema(jobStr, ProvingJob);
|
|
35
35
|
const resultStr = await this.jobResults.getAsync(job.id);
|
|
36
|
-
const result = resultStr ?
|
|
36
|
+
const result = resultStr ? jsonParseWithSchema(resultStr, ProvingJobSettledResult) : undefined;
|
|
37
37
|
yield [
|
|
38
38
|
job,
|
|
39
39
|
result
|
|
@@ -86,7 +86,8 @@ export class KVBrokerDatabase {
|
|
|
86
86
|
async estimateSize() {
|
|
87
87
|
const sizes = await Promise.all(Array.from(this.epochs.values()).map((x)=>x.estimateSize()));
|
|
88
88
|
return {
|
|
89
|
-
mappingSize: this.config.
|
|
89
|
+
mappingSize: this.config.dataStoreMapSizeKb,
|
|
90
|
+
physicalFileSize: sizes.reduce((prev, curr)=>prev + curr.physicalFileSize, 0),
|
|
90
91
|
numItems: sizes.reduce((prev, curr)=>prev + curr.numItems, 0),
|
|
91
92
|
actualSize: sizes.reduce((prev, curr)=>prev + curr.actualSize, 0)
|
|
92
93
|
};
|
|
@@ -108,8 +109,8 @@ export class KVBrokerDatabase {
|
|
|
108
109
|
logger.warn(`Found invalid epoch directory ${fullDirectory} when loading epoch databases, ignoring`);
|
|
109
110
|
continue;
|
|
110
111
|
}
|
|
111
|
-
logger.info(`Loading broker database for epoch ${epochNumber} from ${fullDirectory} with map size ${config.
|
|
112
|
-
const db = await openVersionedStoreAt(fullDirectory, SingleEpochDatabase.SCHEMA_VERSION, config.l1Contracts.rollupAddress, config.
|
|
112
|
+
logger.info(`Loading broker database for epoch ${epochNumber} from ${fullDirectory} with map size ${config.dataStoreMapSizeKb}KB`);
|
|
113
|
+
const db = await openVersionedStoreAt(fullDirectory, SingleEpochDatabase.SCHEMA_VERSION, config.l1Contracts.rollupAddress, config.dataStoreMapSizeKb);
|
|
113
114
|
const epochDb = new SingleEpochDatabase(db);
|
|
114
115
|
epochs.set(epochNumber, epochDb);
|
|
115
116
|
}
|
|
@@ -133,7 +134,7 @@ export class KVBrokerDatabase {
|
|
|
133
134
|
if (!db) {
|
|
134
135
|
continue;
|
|
135
136
|
}
|
|
136
|
-
this.logger.
|
|
137
|
+
this.logger.verbose(`Deleting broker database for epoch ${old}`);
|
|
137
138
|
await db.delete();
|
|
138
139
|
this.epochs.delete(old);
|
|
139
140
|
}
|
|
@@ -172,8 +173,8 @@ export class KVBrokerDatabase {
|
|
|
172
173
|
await mkdir(newEpochDirectory, {
|
|
173
174
|
recursive: true
|
|
174
175
|
});
|
|
175
|
-
this.logger.info(`Creating broker database for epoch ${epochNumber} at ${newEpochDirectory} with map size ${this.config.
|
|
176
|
-
const db = await openVersionedStoreAt(newEpochDirectory, SingleEpochDatabase.SCHEMA_VERSION, this.config.l1Contracts.rollupAddress, this.config.
|
|
176
|
+
this.logger.info(`Creating broker database for epoch ${epochNumber} at ${newEpochDirectory} with map size ${this.config.dataStoreMapSizeKb}`);
|
|
177
|
+
const db = await openVersionedStoreAt(newEpochDirectory, SingleEpochDatabase.SCHEMA_VERSION, this.config.l1Contracts.rollupAddress, this.config.dataStoreMapSizeKb);
|
|
177
178
|
epochDb = new SingleEpochDatabase(db);
|
|
178
179
|
this.epochs.set(epochNumber, epochDb);
|
|
179
180
|
}
|
|
@@ -2,12 +2,8 @@ import type { ProvingJobId, ProvingJobInputs, ProvingJobResultsMap, ServerCircui
|
|
|
2
2
|
import { ProvingRequestType } from '@aztec/stdlib/proofs';
|
|
3
3
|
export declare enum ProvingJobControllerStatus {
|
|
4
4
|
IDLE = "idle",
|
|
5
|
-
|
|
6
|
-
DONE = "done"
|
|
7
|
-
ABORTED = "aborted"
|
|
8
|
-
}
|
|
9
|
-
interface ProvingJobCompletionCallback<T extends ProvingRequestType = ProvingRequestType> {
|
|
10
|
-
(jobId: ProvingJobId, type: T, error: Error | undefined, result: ProvingJobResultsMap[T] | undefined): void | Promise<void>;
|
|
5
|
+
RUNNING = "running",
|
|
6
|
+
DONE = "done"
|
|
11
7
|
}
|
|
12
8
|
export declare class ProvingJobController {
|
|
13
9
|
private jobId;
|
|
@@ -20,14 +16,17 @@ export declare class ProvingJobController {
|
|
|
20
16
|
private status;
|
|
21
17
|
private promise?;
|
|
22
18
|
private abortController;
|
|
23
|
-
|
|
19
|
+
private result?;
|
|
20
|
+
constructor(jobId: ProvingJobId, inputs: ProvingJobInputs, epochNumber: number, startedAt: number, circuitProver: ServerCircuitProver, onComplete: () => void, log?: import("@aztec/foundation/log").Logger);
|
|
24
21
|
start(): void;
|
|
25
22
|
getStatus(): ProvingJobControllerStatus;
|
|
23
|
+
getResult(): ProvingJobResultsMap[ProvingRequestType] | Error | undefined;
|
|
26
24
|
abort(): void;
|
|
27
25
|
getJobId(): ProvingJobId;
|
|
26
|
+
getProofType(): ProvingRequestType;
|
|
28
27
|
getStartedAt(): number;
|
|
29
28
|
getProofTypeName(): string;
|
|
29
|
+
private run;
|
|
30
30
|
private generateProof;
|
|
31
31
|
}
|
|
32
|
-
export {};
|
|
33
32
|
//# sourceMappingURL=proving_job_controller.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proving_job_controller.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_job_controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"proving_job_controller.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_job_controller.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,oBAAY,0BAA0B;IACpC,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAED,qBAAa,oBAAoB;IAO7B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,GAAG;IAZb,OAAO,CAAC,MAAM,CAA+D;IAC7E,OAAO,CAAC,OAAO,CAAC,CAAgB;IAChC,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,MAAM,CAAC,CAAmD;gBAGxD,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,mBAAmB,EAClC,UAAU,EAAE,MAAM,IAAI,EACtB,GAAG,yCAA+F;IAGrG,KAAK,IAAI,IAAI;IAmBb,SAAS,IAAI,0BAA0B;IAIvC,SAAS,IAAI,oBAAoB,CAAC,kBAAkB,CAAC,GAAG,KAAK,GAAG,SAAS;IAIzE,KAAK,IAAI,IAAI;IAeb,QAAQ,IAAI,YAAY;IAIxB,YAAY,IAAI,kBAAkB;IAIlC,YAAY,IAAI,MAAM;IAItB,gBAAgB,IAAI,MAAM;IAIjC,OAAO,CAAC,GAAG,CA4BT;YAEY,aAAa;CAmF5B"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { randomBytes } from '@aztec/foundation/crypto';
|
|
2
|
+
import { AbortError } from '@aztec/foundation/error';
|
|
1
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
2
4
|
import { ProvingRequestType } from '@aztec/stdlib/proofs';
|
|
3
5
|
export var ProvingJobControllerStatus = /*#__PURE__*/ function(ProvingJobControllerStatus) {
|
|
4
6
|
ProvingJobControllerStatus["IDLE"] = "idle";
|
|
5
|
-
ProvingJobControllerStatus["
|
|
7
|
+
ProvingJobControllerStatus["RUNNING"] = "running";
|
|
6
8
|
ProvingJobControllerStatus["DONE"] = "done";
|
|
7
|
-
ProvingJobControllerStatus["ABORTED"] = "aborted";
|
|
8
9
|
return ProvingJobControllerStatus;
|
|
9
10
|
}({});
|
|
10
11
|
export class ProvingJobController {
|
|
@@ -18,7 +19,8 @@ export class ProvingJobController {
|
|
|
18
19
|
status;
|
|
19
20
|
promise;
|
|
20
21
|
abortController;
|
|
21
|
-
|
|
22
|
+
result;
|
|
23
|
+
constructor(jobId, inputs, epochNumber, startedAt, circuitProver, onComplete, log = createLogger('prover-client:proving-agent:job-controller-' + randomBytes(4).toString('hex'))){
|
|
22
24
|
this.jobId = jobId;
|
|
23
25
|
this.inputs = inputs;
|
|
24
26
|
this.epochNumber = epochNumber;
|
|
@@ -28,134 +30,160 @@ export class ProvingJobController {
|
|
|
28
30
|
this.log = log;
|
|
29
31
|
this.status = "idle";
|
|
30
32
|
this.abortController = new AbortController();
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
if (this.
|
|
46
|
-
this.log.warn(`Job controller for jobId=${this.jobId} completed
|
|
33
|
+
this.run = async ()=>{
|
|
34
|
+
this.status = "running";
|
|
35
|
+
let result;
|
|
36
|
+
try {
|
|
37
|
+
result = await this.generateProof();
|
|
38
|
+
} catch (err) {
|
|
39
|
+
if (err && err instanceof Error) {
|
|
40
|
+
result = err;
|
|
41
|
+
} else {
|
|
42
|
+
result = new Error('Unknown proving error: ' + String(err), {
|
|
43
|
+
cause: err
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if (this.abortController.signal.aborted) {
|
|
48
|
+
this.log.warn(`Job controller for jobId=${this.jobId} completed but job was aborted`, {
|
|
47
49
|
currentStatus: this.status,
|
|
48
50
|
jobId: this.jobId
|
|
49
51
|
});
|
|
50
|
-
|
|
52
|
+
result = new AbortError('Proof was aborted');
|
|
51
53
|
}
|
|
54
|
+
this.result = result;
|
|
52
55
|
this.status = "done";
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
})
|
|
56
|
-
|
|
57
|
-
}, (error)=>{
|
|
58
|
-
if (this.status === "aborted") {
|
|
59
|
-
this.log.warn(`Job controller for jobId=${this.jobId} finished with an error but job was aborted`, {
|
|
60
|
-
currentStatus: this.status,
|
|
56
|
+
try {
|
|
57
|
+
this.onComplete();
|
|
58
|
+
} catch (err) {
|
|
59
|
+
this.log.warn(`On complete handler error: ${err}`, {
|
|
61
60
|
jobId: this.jobId
|
|
62
61
|
});
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
if (error.name === 'AbortError') {
|
|
66
|
-
// Ignore abort errors
|
|
67
|
-
return;
|
|
68
62
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
this.status
|
|
74
|
-
|
|
75
|
-
}).catch((err)=>{
|
|
76
|
-
this.log.error(`Job constroller failed to send result for jobId=${this.jobId}: ${err}`, err, {
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
start() {
|
|
66
|
+
if (this.status !== "idle") {
|
|
67
|
+
this.log.warn(`Job controller for jobId=${this.jobId} not starting because it is not idle currentStatus=${this.status}`, {
|
|
68
|
+
currentStatus: this.status,
|
|
77
69
|
jobId: this.jobId
|
|
78
70
|
});
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
this.promise = this.run();
|
|
74
|
+
this.log.info(`Job controller started jobId=${this.jobId}`, {
|
|
75
|
+
jobId: this.jobId
|
|
79
76
|
});
|
|
80
77
|
}
|
|
81
78
|
getStatus() {
|
|
82
79
|
return this.status;
|
|
83
80
|
}
|
|
81
|
+
getResult() {
|
|
82
|
+
return this.result;
|
|
83
|
+
}
|
|
84
84
|
abort() {
|
|
85
|
-
if (this.status !== "
|
|
85
|
+
if (this.status !== "running") {
|
|
86
86
|
this.log.warn(`Tried to abort job controller for jobId=${this.jobId} but it is not running`, {
|
|
87
87
|
currentStatus: this.status,
|
|
88
88
|
jobId: this.jobId
|
|
89
89
|
});
|
|
90
90
|
return;
|
|
91
91
|
}
|
|
92
|
-
this.status = "aborted";
|
|
93
92
|
this.abortController.abort();
|
|
94
|
-
this.log.
|
|
93
|
+
this.log.warn(`Aborted job controller for jobId=${this.jobId}`, {
|
|
95
94
|
jobId: this.jobId
|
|
96
95
|
});
|
|
97
96
|
}
|
|
98
97
|
getJobId() {
|
|
99
98
|
return this.jobId;
|
|
100
99
|
}
|
|
100
|
+
getProofType() {
|
|
101
|
+
return this.inputs.type;
|
|
102
|
+
}
|
|
101
103
|
getStartedAt() {
|
|
102
104
|
return this.startedAt;
|
|
103
105
|
}
|
|
104
106
|
getProofTypeName() {
|
|
105
107
|
return ProvingRequestType[this.inputs.type];
|
|
106
108
|
}
|
|
109
|
+
run;
|
|
107
110
|
async generateProof() {
|
|
108
111
|
const { type, inputs } = this.inputs;
|
|
109
112
|
const signal = this.abortController.signal;
|
|
110
113
|
switch(type){
|
|
111
114
|
case ProvingRequestType.PUBLIC_VM:
|
|
112
115
|
{
|
|
113
|
-
|
|
116
|
+
// TODO(#14234)[Unconditional PIs validation]: Remove argument "undefined".
|
|
117
|
+
return await this.circuitProver.getAvmProof(inputs, undefined, signal, this.epochNumber);
|
|
118
|
+
}
|
|
119
|
+
case ProvingRequestType.PUBLIC_CHONK_VERIFIER:
|
|
120
|
+
{
|
|
121
|
+
return await this.circuitProver.getPublicChonkVerifierProof(inputs, signal, this.epochNumber);
|
|
122
|
+
}
|
|
123
|
+
case ProvingRequestType.PRIVATE_TX_BASE_ROLLUP:
|
|
124
|
+
{
|
|
125
|
+
return await this.circuitProver.getPrivateTxBaseRollupProof(inputs, signal, this.epochNumber);
|
|
126
|
+
}
|
|
127
|
+
case ProvingRequestType.PUBLIC_TX_BASE_ROLLUP:
|
|
128
|
+
{
|
|
129
|
+
return await this.circuitProver.getPublicTxBaseRollupProof(inputs, signal, this.epochNumber);
|
|
114
130
|
}
|
|
115
|
-
case ProvingRequestType.
|
|
131
|
+
case ProvingRequestType.TX_MERGE_ROLLUP:
|
|
116
132
|
{
|
|
117
|
-
return await this.circuitProver.
|
|
133
|
+
return await this.circuitProver.getTxMergeRollupProof(inputs, signal, this.epochNumber);
|
|
118
134
|
}
|
|
119
|
-
case ProvingRequestType.
|
|
135
|
+
case ProvingRequestType.BLOCK_ROOT_FIRST_ROLLUP:
|
|
120
136
|
{
|
|
121
|
-
return await this.circuitProver.
|
|
137
|
+
return await this.circuitProver.getBlockRootFirstRollupProof(inputs, signal, this.epochNumber);
|
|
122
138
|
}
|
|
123
|
-
case ProvingRequestType.
|
|
139
|
+
case ProvingRequestType.BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP:
|
|
124
140
|
{
|
|
125
|
-
return await this.circuitProver.
|
|
141
|
+
return await this.circuitProver.getBlockRootSingleTxFirstRollupProof(inputs, signal, this.epochNumber);
|
|
126
142
|
}
|
|
127
|
-
case ProvingRequestType.
|
|
143
|
+
case ProvingRequestType.BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP:
|
|
128
144
|
{
|
|
129
|
-
return await this.circuitProver.
|
|
145
|
+
return await this.circuitProver.getBlockRootEmptyTxFirstRollupProof(inputs, signal, this.epochNumber);
|
|
130
146
|
}
|
|
131
147
|
case ProvingRequestType.BLOCK_ROOT_ROLLUP:
|
|
132
148
|
{
|
|
133
149
|
return await this.circuitProver.getBlockRootRollupProof(inputs, signal, this.epochNumber);
|
|
134
150
|
}
|
|
135
|
-
case ProvingRequestType.
|
|
151
|
+
case ProvingRequestType.BLOCK_ROOT_SINGLE_TX_ROLLUP:
|
|
136
152
|
{
|
|
137
|
-
return await this.circuitProver.
|
|
153
|
+
return await this.circuitProver.getBlockRootSingleTxRollupProof(inputs, signal, this.epochNumber);
|
|
138
154
|
}
|
|
139
155
|
case ProvingRequestType.BLOCK_MERGE_ROLLUP:
|
|
140
156
|
{
|
|
141
157
|
return await this.circuitProver.getBlockMergeRollupProof(inputs, signal, this.epochNumber);
|
|
142
158
|
}
|
|
159
|
+
case ProvingRequestType.CHECKPOINT_ROOT_ROLLUP:
|
|
160
|
+
{
|
|
161
|
+
return await this.circuitProver.getCheckpointRootRollupProof(inputs, signal, this.epochNumber);
|
|
162
|
+
}
|
|
163
|
+
case ProvingRequestType.CHECKPOINT_ROOT_SINGLE_BLOCK_ROLLUP:
|
|
164
|
+
{
|
|
165
|
+
return await this.circuitProver.getCheckpointRootSingleBlockRollupProof(inputs, signal, this.epochNumber);
|
|
166
|
+
}
|
|
167
|
+
case ProvingRequestType.CHECKPOINT_PADDING_ROLLUP:
|
|
168
|
+
{
|
|
169
|
+
return await this.circuitProver.getCheckpointPaddingRollupProof(inputs, signal, this.epochNumber);
|
|
170
|
+
}
|
|
171
|
+
case ProvingRequestType.CHECKPOINT_MERGE_ROLLUP:
|
|
172
|
+
{
|
|
173
|
+
return await this.circuitProver.getCheckpointMergeRollupProof(inputs, signal, this.epochNumber);
|
|
174
|
+
}
|
|
143
175
|
case ProvingRequestType.ROOT_ROLLUP:
|
|
144
176
|
{
|
|
145
177
|
return await this.circuitProver.getRootRollupProof(inputs, signal, this.epochNumber);
|
|
146
178
|
}
|
|
147
|
-
case ProvingRequestType.
|
|
179
|
+
case ProvingRequestType.PARITY_BASE:
|
|
148
180
|
{
|
|
149
181
|
return await this.circuitProver.getBaseParityProof(inputs, signal, this.epochNumber);
|
|
150
182
|
}
|
|
151
|
-
case ProvingRequestType.
|
|
183
|
+
case ProvingRequestType.PARITY_ROOT:
|
|
152
184
|
{
|
|
153
185
|
return await this.circuitProver.getRootParityProof(inputs, signal, this.epochNumber);
|
|
154
186
|
}
|
|
155
|
-
case ProvingRequestType.TUBE_PROOF:
|
|
156
|
-
{
|
|
157
|
-
return await this.circuitProver.getTubeProof(inputs, signal, this.epochNumber);
|
|
158
|
-
}
|
|
159
187
|
default:
|
|
160
188
|
{
|
|
161
189
|
const _exhaustive = type;
|
|
@@ -1,24 +1,22 @@
|
|
|
1
|
-
import type { SafeJsonRpcServer } from '@aztec/foundation/json-rpc/server';
|
|
2
1
|
import { type ProvingJobBroker, type ProvingJobConsumer, type ProvingJobProducer } from '@aztec/stdlib/interfaces/server';
|
|
3
2
|
import { type ApiSchemaFor } from '@aztec/stdlib/schemas';
|
|
4
3
|
import { type ComponentsVersions } from '@aztec/stdlib/versioning';
|
|
5
4
|
export declare const ProvingJobProducerSchema: ApiSchemaFor<ProvingJobProducer>;
|
|
6
5
|
export declare const ProvingJobConsumerSchema: ApiSchemaFor<ProvingJobConsumer>;
|
|
7
6
|
export declare const ProvingJobBrokerSchema: ApiSchemaFor<ProvingJobBroker>;
|
|
8
|
-
export declare function
|
|
9
|
-
export declare function createProvingJobBrokerClient(url: string, versions: Partial<ComponentsVersions>, fetch?: (host: string, rpcMethod: string, body: any, useApiEndpoints: boolean, extraHeaders?: Record<string, string> | undefined, noRetry?: boolean | undefined) => Promise<{
|
|
7
|
+
export declare function createProvingJobBrokerClient(url: string, versions: Partial<ComponentsVersions>, fetch?: (host: string, body: unknown, extraHeaders?: Record<string, string>, noRetry?: boolean) => Promise<{
|
|
10
8
|
response: any;
|
|
11
9
|
headers: {
|
|
12
10
|
get: (header: string) => string | null | undefined;
|
|
13
11
|
};
|
|
14
12
|
}>): ProvingJobBroker;
|
|
15
|
-
export declare function createProvingJobProducerClient(url: string, versions: Partial<ComponentsVersions>, fetch?: (host: string,
|
|
13
|
+
export declare function createProvingJobProducerClient(url: string, versions: Partial<ComponentsVersions>, fetch?: (host: string, body: unknown, extraHeaders?: Record<string, string>, noRetry?: boolean) => Promise<{
|
|
16
14
|
response: any;
|
|
17
15
|
headers: {
|
|
18
16
|
get: (header: string) => string | null | undefined;
|
|
19
17
|
};
|
|
20
18
|
}>): ProvingJobProducer;
|
|
21
|
-
export declare function createProvingJobConsumerClient(url: string, versions: Partial<ComponentsVersions>, fetch?: (host: string,
|
|
19
|
+
export declare function createProvingJobConsumerClient(url: string, versions: Partial<ComponentsVersions>, fetch?: (host: string, body: unknown, extraHeaders?: Record<string, string>, noRetry?: boolean) => Promise<{
|
|
22
20
|
response: any;
|
|
23
21
|
headers: {
|
|
24
22
|
get: (header: string) => string | null | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../src/proving_broker/rpc.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../src/proving_broker/rpc.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EAEvB,KAAK,kBAAkB,EAExB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,KAAK,YAAY,EAAY,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,KAAK,kBAAkB,EAAgC,MAAM,0BAA0B,CAAC;AAcjG,eAAO,MAAM,wBAAwB,EAAE,YAAY,CAAC,kBAAkB,CAKrE,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,YAAY,CAAC,kBAAkB,CAcrE,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,YAAY,CAAC,gBAAgB,CAGjE,CAAC;AAEF,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACrC,KAAK;;;;;EAAoC,GACxC,gBAAgB,CAMlB;AAED,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACrC,KAAK;;;;;EAAoC,GACxC,kBAAkB,CAMpB;AAED,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACrC,KAAK;;;;;EAAoC,GACxC,kBAAkB,CAMpB"}
|
|
@@ -3,7 +3,7 @@ import { ProofUri, ProvingJob, ProvingJobId, ProvingJobStatus } from '@aztec/std
|
|
|
3
3
|
import { ProvingRequestType } from '@aztec/stdlib/proofs';
|
|
4
4
|
import { optional } from '@aztec/stdlib/schemas';
|
|
5
5
|
import { getVersioningResponseHandler } from '@aztec/stdlib/versioning';
|
|
6
|
-
import {
|
|
6
|
+
import { makeTracedFetch } from '@aztec/telemetry-client';
|
|
7
7
|
import { z } from 'zod';
|
|
8
8
|
const ProvingJobFilterSchema = z.object({
|
|
9
9
|
allowList: z.array(z.nativeEnum(ProvingRequestType))
|
|
@@ -28,9 +28,6 @@ export const ProvingJobBrokerSchema = {
|
|
|
28
28
|
...ProvingJobConsumerSchema,
|
|
29
29
|
...ProvingJobProducerSchema
|
|
30
30
|
};
|
|
31
|
-
export function createProvingBrokerServer(broker) {
|
|
32
|
-
return createTracedJsonRpcServer(broker, ProvingJobBrokerSchema);
|
|
33
|
-
}
|
|
34
31
|
export function createProvingJobBrokerClient(url, versions, fetch = makeTracedFetch([
|
|
35
32
|
1,
|
|
36
33
|
2,
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ProvingJobId } from '@aztec/stdlib/interfaces/server';
|
|
2
|
+
import { ProvingRequestType } from '@aztec/stdlib/proofs';
|
|
3
|
+
export declare class MockProofStore {
|
|
4
|
+
private mockCounter;
|
|
5
|
+
private readonly bucketName;
|
|
6
|
+
private readonly basePath;
|
|
7
|
+
saveProofInput(jobId: ProvingJobId, type: ProvingRequestType): Promise<string>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=mock_proof_store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock_proof_store.d.ts","sourceRoot":"","sources":["../../src/test/mock_proof_store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,qBAAa,cAAc;IACzB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;IACzD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAE3C,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;CAI/E"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// Mock ProofStore for faster benchmarks with realistic Cloud Storage URIs
|
|
2
|
+
export class MockProofStore {
|
|
3
|
+
mockCounter = 0;
|
|
4
|
+
bucketName = 'aztec-proving-benchmarks';
|
|
5
|
+
basePath = 'proving-jobs';
|
|
6
|
+
saveProofInput(jobId, type) {
|
|
7
|
+
const uri = `gs://${this.bucketName}/${this.basePath}/inputs/${type}/${jobId}`;
|
|
8
|
+
return Promise.resolve(uri);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
|
|
1
|
+
import { NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH } from '@aztec/constants';
|
|
2
2
|
import type { AvmCircuitInputs } from '@aztec/stdlib/avm';
|
|
3
|
-
import { type
|
|
4
|
-
import type {
|
|
5
|
-
import type {
|
|
3
|
+
import { type ProvingJob, type ProvingJobId, type ProvingJobProducer, type ProvingJobStatus, type PublicInputsAndRecursiveProof, type ServerCircuitProver } from '@aztec/stdlib/interfaces/server';
|
|
4
|
+
import type { ParityBasePrivateInputs, ParityRootPrivateInputs } from '@aztec/stdlib/parity';
|
|
5
|
+
import type { BlockMergeRollupPrivateInputs, BlockRollupPublicInputs, BlockRootEmptyTxFirstRollupPrivateInputs, BlockRootFirstRollupPrivateInputs, BlockRootRollupPrivateInputs, BlockRootSingleTxFirstRollupPrivateInputs, BlockRootSingleTxRollupPrivateInputs, CheckpointMergeRollupPrivateInputs, CheckpointPaddingRollupPrivateInputs, CheckpointRollupPublicInputs, CheckpointRootRollupPrivateInputs, CheckpointRootSingleBlockRollupPrivateInputs, PrivateTxBaseRollupPrivateInputs, PublicChonkVerifierPrivateInputs, PublicChonkVerifierPublicInputs, PublicTxBaseRollupPrivateInputs, RootRollupPrivateInputs, RootRollupPublicInputs, TxMergeRollupPrivateInputs, TxRollupPublicInputs } from '@aztec/stdlib/rollup';
|
|
6
6
|
import { type ProofStore } from '../proving_broker/proof_store/index.js';
|
|
7
7
|
export declare class TestBroker implements ProvingJobProducer {
|
|
8
8
|
private proofStore;
|
|
@@ -19,17 +19,24 @@ export declare class TestBroker implements ProvingJobProducer {
|
|
|
19
19
|
}
|
|
20
20
|
export declare class MockProver implements ServerCircuitProver {
|
|
21
21
|
constructor();
|
|
22
|
-
getAvmProof(_inputs: AvmCircuitInputs,
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
22
|
+
getAvmProof(_inputs: AvmCircuitInputs, _skipPublicInputsValidation?: boolean, // TODO(#14234)[Unconditional PIs validation]: Remove.
|
|
23
|
+
_signal?: AbortSignal, _epochNumber?: number): Promise<import("@aztec/stdlib/interfaces/server").ProofAndVerificationKey<20000>>;
|
|
24
|
+
getBaseParityProof(_inputs: ParityBasePrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<import("@aztec/stdlib/parity").ParityPublicInputs, 457>>;
|
|
25
|
+
getRootParityProof(_inputs: ParityRootPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<import("@aztec/stdlib/parity").ParityPublicInputs, 457>>;
|
|
26
|
+
getPublicChonkVerifierProof(_inputs: PublicChonkVerifierPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<PublicChonkVerifierPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
27
|
+
getPrivateTxBaseRollupProof(_baseRollupInput: PrivateTxBaseRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
28
|
+
getPublicTxBaseRollupProof(_inputs: PublicTxBaseRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
29
|
+
getTxMergeRollupProof(_input: TxMergeRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
30
|
+
getBlockRootFirstRollupProof(_input: BlockRootFirstRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
31
|
+
getBlockRootSingleTxFirstRollupProof(_input: BlockRootSingleTxFirstRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
32
|
+
getBlockRootEmptyTxFirstRollupProof(_input: BlockRootEmptyTxFirstRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
33
|
+
getBlockRootRollupProof(_input: BlockRootRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
34
|
+
getBlockRootSingleTxRollupProof(_input: BlockRootSingleTxRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
35
|
+
getBlockMergeRollupProof(_input: BlockMergeRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, 535>>;
|
|
36
|
+
getCheckpointRootRollupProof(_input: CheckpointRootRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
37
|
+
getCheckpointRootSingleBlockRollupProof(_input: CheckpointRootSingleBlockRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
38
|
+
getCheckpointMergeRollupProof(_input: CheckpointMergeRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
39
|
+
getCheckpointPaddingRollupProof(_input: CheckpointPaddingRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
40
|
+
getRootRollupProof(_input: RootRollupPrivateInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<RootRollupPublicInputs>>;
|
|
34
41
|
}
|
|
35
42
|
//# sourceMappingURL=mock_prover.d.ts.map
|