@aztec/prover-client 0.0.0-test.1 → 0.0.1-fake-ceab37513c
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 +1 -1
- 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 +36 -0
- package/dest/block-factory/light.d.ts.map +1 -0
- package/dest/{block_builder → block-factory}/light.js +35 -30
- 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 +3 -3
- package/dest/mocks/fixtures.d.ts.map +1 -1
- package/dest/mocks/fixtures.js +2 -2
- package/dest/mocks/test_context.d.ts +18 -13
- package/dest/mocks/test_context.d.ts.map +1 -1
- package/dest/mocks/test_context.js +44 -38
- package/dest/orchestrator/block-building-helpers.d.ts +18 -11
- package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
- package/dest/orchestrator/block-building-helpers.js +80 -63
- package/dest/orchestrator/block-proving-state.d.ts +19 -10
- package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/block-proving-state.js +63 -46
- package/dest/orchestrator/epoch-proving-state.d.ts +13 -6
- package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/epoch-proving-state.js +40 -14
- package/dest/orchestrator/orchestrator.d.ts +7 -5
- package/dest/orchestrator/orchestrator.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator.js +78 -52
- 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 +2 -2
- package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/tx-proving-state.js +9 -20
- 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 +6 -4
- package/dest/prover-client/server-epoch-prover.d.ts.map +1 -1
- package/dest/prover-client/server-epoch-prover.js +4 -4
- package/dest/proving_broker/broker_prover_facade.d.ts +5 -3
- package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
- package/dest/proving_broker/broker_prover_facade.js +31 -21
- 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/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/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 +6 -5
- 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 +53 -45
- 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 +7 -5
- package/dest/test/mock_prover.d.ts.map +1 -1
- package/dest/test/mock_prover.js +6 -3
- package/package.json +28 -27
- package/src/bin/get-proof-inputs.ts +1 -1
- package/src/block-factory/index.ts +1 -0
- package/src/{block_builder → block-factory}/light.ts +42 -29
- package/src/config.ts +24 -8
- package/src/mocks/fixtures.ts +5 -5
- package/src/mocks/test_context.ts +79 -59
- package/src/orchestrator/block-building-helpers.ts +96 -92
- package/src/orchestrator/block-proving-state.ts +78 -52
- package/src/orchestrator/epoch-proving-state.ts +51 -20
- package/src/orchestrator/orchestrator.ts +119 -60
- package/src/orchestrator/orchestrator_metrics.ts +20 -1
- package/src/orchestrator/tx-proving-state.ts +17 -24
- package/src/prover-client/prover-client.ts +16 -14
- package/src/prover-client/server-epoch-prover.ts +16 -7
- package/src/proving_broker/broker_prover_facade.ts +52 -36
- package/src/proving_broker/config.ts +17 -6
- package/src/proving_broker/factory.ts +2 -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/inline_proof_store.ts +1 -1
- package/src/proving_broker/proving_agent.ts +89 -47
- package/src/proving_broker/proving_broker.ts +16 -15
- 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 +56 -65
- package/src/proving_broker/rpc.ts +1 -6
- package/src/test/mock_proof_store.ts +14 -0
- package/src/test/mock_prover.ts +27 -5
- 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/src/block_builder/index.ts +0 -6
- /package/dest/{block_builder → block-factory}/index.js +0 -0
|
@@ -46,9 +46,9 @@ class SingleEpochDatabase {
|
|
|
46
46
|
|
|
47
47
|
async *allProvingJobs(): AsyncIterableIterator<[ProvingJob, ProvingJobSettledResult | undefined]> {
|
|
48
48
|
for await (const jobStr of this.jobs.valuesAsync()) {
|
|
49
|
-
const job =
|
|
49
|
+
const job = jsonParseWithSchema(jobStr, ProvingJob);
|
|
50
50
|
const resultStr = await this.jobResults.getAsync(job.id);
|
|
51
|
-
const result = resultStr ?
|
|
51
|
+
const result = resultStr ? jsonParseWithSchema(resultStr, ProvingJobSettledResult) : undefined;
|
|
52
52
|
yield [job, result];
|
|
53
53
|
}
|
|
54
54
|
}
|
|
@@ -111,7 +111,8 @@ export class KVBrokerDatabase implements ProvingBrokerDatabase {
|
|
|
111
111
|
private async estimateSize() {
|
|
112
112
|
const sizes = await Promise.all(Array.from(this.epochs.values()).map(x => x.estimateSize()));
|
|
113
113
|
return {
|
|
114
|
-
mappingSize: this.config.
|
|
114
|
+
mappingSize: this.config.dataStoreMapSizeKb,
|
|
115
|
+
physicalFileSize: sizes.reduce((prev, curr) => prev + curr.physicalFileSize, 0),
|
|
115
116
|
numItems: sizes.reduce((prev, curr) => prev + curr.numItems, 0),
|
|
116
117
|
actualSize: sizes.reduce((prev, curr) => prev + curr.actualSize, 0),
|
|
117
118
|
};
|
|
@@ -136,13 +137,13 @@ export class KVBrokerDatabase implements ProvingBrokerDatabase {
|
|
|
136
137
|
continue;
|
|
137
138
|
}
|
|
138
139
|
logger.info(
|
|
139
|
-
`Loading broker database for epoch ${epochNumber} from ${fullDirectory} with map size ${config.
|
|
140
|
+
`Loading broker database for epoch ${epochNumber} from ${fullDirectory} with map size ${config.dataStoreMapSizeKb}KB`,
|
|
140
141
|
);
|
|
141
142
|
const db = await openVersionedStoreAt(
|
|
142
143
|
fullDirectory,
|
|
143
144
|
SingleEpochDatabase.SCHEMA_VERSION,
|
|
144
145
|
config.l1Contracts.rollupAddress,
|
|
145
|
-
config.
|
|
146
|
+
config.dataStoreMapSizeKb,
|
|
146
147
|
);
|
|
147
148
|
const epochDb = new SingleEpochDatabase(db);
|
|
148
149
|
epochs.set(epochNumber, epochDb);
|
|
@@ -170,7 +171,7 @@ export class KVBrokerDatabase implements ProvingBrokerDatabase {
|
|
|
170
171
|
if (!db) {
|
|
171
172
|
continue;
|
|
172
173
|
}
|
|
173
|
-
this.logger.
|
|
174
|
+
this.logger.verbose(`Deleting broker database for epoch ${old}`);
|
|
174
175
|
await db.delete();
|
|
175
176
|
this.epochs.delete(old);
|
|
176
177
|
}
|
|
@@ -201,13 +202,13 @@ export class KVBrokerDatabase implements ProvingBrokerDatabase {
|
|
|
201
202
|
const newEpochDirectory = join(this.config.dataDirectory!, epochNumber.toString());
|
|
202
203
|
await mkdir(newEpochDirectory, { recursive: true });
|
|
203
204
|
this.logger.info(
|
|
204
|
-
`Creating broker database for epoch ${epochNumber} at ${newEpochDirectory} with map size ${this.config.
|
|
205
|
+
`Creating broker database for epoch ${epochNumber} at ${newEpochDirectory} with map size ${this.config.dataStoreMapSizeKb}`,
|
|
205
206
|
);
|
|
206
207
|
const db = await openVersionedStoreAt(
|
|
207
208
|
newEpochDirectory,
|
|
208
209
|
SingleEpochDatabase.SCHEMA_VERSION,
|
|
209
210
|
this.config.l1Contracts.rollupAddress,
|
|
210
|
-
this.config.
|
|
211
|
+
this.config.dataStoreMapSizeKb,
|
|
211
212
|
);
|
|
212
213
|
epochDb = new SingleEpochDatabase(db);
|
|
213
214
|
this.epochs.set(epochNumber, epochDb);
|
|
@@ -1,3 +1,5 @@
|
|
|
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 type {
|
|
3
5
|
ProvingJobId,
|
|
@@ -9,24 +11,15 @@ import { ProvingRequestType } from '@aztec/stdlib/proofs';
|
|
|
9
11
|
|
|
10
12
|
export enum ProvingJobControllerStatus {
|
|
11
13
|
IDLE = 'idle',
|
|
12
|
-
|
|
14
|
+
RUNNING = 'running',
|
|
13
15
|
DONE = 'done',
|
|
14
|
-
ABORTED = 'aborted',
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
interface ProvingJobCompletionCallback<T extends ProvingRequestType = ProvingRequestType> {
|
|
18
|
-
(
|
|
19
|
-
jobId: ProvingJobId,
|
|
20
|
-
type: T,
|
|
21
|
-
error: Error | undefined,
|
|
22
|
-
result: ProvingJobResultsMap[T] | undefined,
|
|
23
|
-
): void | Promise<void>;
|
|
24
16
|
}
|
|
25
17
|
|
|
26
18
|
export class ProvingJobController {
|
|
27
19
|
private status: ProvingJobControllerStatus = ProvingJobControllerStatus.IDLE;
|
|
28
20
|
private promise?: Promise<void>;
|
|
29
21
|
private abortController = new AbortController();
|
|
22
|
+
private result?: ProvingJobResultsMap[ProvingRequestType] | Error;
|
|
30
23
|
|
|
31
24
|
constructor(
|
|
32
25
|
private jobId: ProvingJobId,
|
|
@@ -34,13 +27,13 @@ export class ProvingJobController {
|
|
|
34
27
|
private epochNumber: number,
|
|
35
28
|
private startedAt: number,
|
|
36
29
|
private circuitProver: ServerCircuitProver,
|
|
37
|
-
private onComplete:
|
|
38
|
-
private log = createLogger('prover-client:proving-agent:job-controller'),
|
|
30
|
+
private onComplete: () => void,
|
|
31
|
+
private log = createLogger('prover-client:proving-agent:job-controller-' + randomBytes(4).toString('hex')),
|
|
39
32
|
) {}
|
|
40
33
|
|
|
41
34
|
public start(): void {
|
|
42
35
|
if (this.status !== ProvingJobControllerStatus.IDLE) {
|
|
43
|
-
this.log.
|
|
36
|
+
this.log.warn(
|
|
44
37
|
`Job controller for jobId=${this.jobId} not starting because it is not idle currentStatus=${this.status}`,
|
|
45
38
|
{
|
|
46
39
|
currentStatus: this.status,
|
|
@@ -50,63 +43,23 @@ export class ProvingJobController {
|
|
|
50
43
|
return;
|
|
51
44
|
}
|
|
52
45
|
|
|
53
|
-
this.
|
|
54
|
-
|
|
46
|
+
this.promise = this.run();
|
|
47
|
+
|
|
48
|
+
this.log.info(`Job controller started jobId=${this.jobId}`, {
|
|
55
49
|
jobId: this.jobId,
|
|
56
50
|
});
|
|
57
|
-
|
|
58
|
-
this.promise = this.generateProof()
|
|
59
|
-
.then(
|
|
60
|
-
result => {
|
|
61
|
-
if (this.status === ProvingJobControllerStatus.ABORTED) {
|
|
62
|
-
this.log.warn(`Job controller for jobId=${this.jobId} completed successfully but job was aborted`, {
|
|
63
|
-
currentStatus: this.status,
|
|
64
|
-
jobId: this.jobId,
|
|
65
|
-
});
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
this.status = ProvingJobControllerStatus.DONE;
|
|
69
|
-
this.log.verbose(`Job controller for jobId=${this.jobId} completed successfully`, {
|
|
70
|
-
jobId: this.jobId,
|
|
71
|
-
});
|
|
72
|
-
return this.onComplete(this.jobId, this.inputs.type, undefined, result);
|
|
73
|
-
},
|
|
74
|
-
error => {
|
|
75
|
-
if (this.status === ProvingJobControllerStatus.ABORTED) {
|
|
76
|
-
this.log.warn(`Job controller for jobId=${this.jobId} finished with an error but job was aborted`, {
|
|
77
|
-
currentStatus: this.status,
|
|
78
|
-
jobId: this.jobId,
|
|
79
|
-
});
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
if (error.name === 'AbortError') {
|
|
84
|
-
// Ignore abort errors
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
this.log.verbose(`Job controller for jobId=${this.jobId} finished with an error`, {
|
|
89
|
-
jobId: this.jobId,
|
|
90
|
-
err: error,
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
this.status = ProvingJobControllerStatus.DONE;
|
|
94
|
-
return this.onComplete(this.jobId, this.inputs.type, error, undefined);
|
|
95
|
-
},
|
|
96
|
-
)
|
|
97
|
-
.catch(err => {
|
|
98
|
-
this.log.error(`Job constroller failed to send result for jobId=${this.jobId}: ${err}`, err, {
|
|
99
|
-
jobId: this.jobId,
|
|
100
|
-
});
|
|
101
|
-
});
|
|
102
51
|
}
|
|
103
52
|
|
|
104
53
|
public getStatus(): ProvingJobControllerStatus {
|
|
105
54
|
return this.status;
|
|
106
55
|
}
|
|
107
56
|
|
|
57
|
+
public getResult(): ProvingJobResultsMap[ProvingRequestType] | Error | undefined {
|
|
58
|
+
return this.result;
|
|
59
|
+
}
|
|
60
|
+
|
|
108
61
|
public abort(): void {
|
|
109
|
-
if (this.status !== ProvingJobControllerStatus.
|
|
62
|
+
if (this.status !== ProvingJobControllerStatus.RUNNING) {
|
|
110
63
|
this.log.warn(`Tried to abort job controller for jobId=${this.jobId} but it is not running`, {
|
|
111
64
|
currentStatus: this.status,
|
|
112
65
|
jobId: this.jobId,
|
|
@@ -114,9 +67,8 @@ export class ProvingJobController {
|
|
|
114
67
|
return;
|
|
115
68
|
}
|
|
116
69
|
|
|
117
|
-
this.status = ProvingJobControllerStatus.ABORTED;
|
|
118
70
|
this.abortController.abort();
|
|
119
|
-
this.log.
|
|
71
|
+
this.log.warn(`Aborted job controller for jobId=${this.jobId}`, {
|
|
120
72
|
jobId: this.jobId,
|
|
121
73
|
});
|
|
122
74
|
}
|
|
@@ -125,6 +77,10 @@ export class ProvingJobController {
|
|
|
125
77
|
return this.jobId;
|
|
126
78
|
}
|
|
127
79
|
|
|
80
|
+
public getProofType(): ProvingRequestType {
|
|
81
|
+
return this.inputs.type;
|
|
82
|
+
}
|
|
83
|
+
|
|
128
84
|
public getStartedAt(): number {
|
|
129
85
|
return this.startedAt;
|
|
130
86
|
}
|
|
@@ -133,12 +89,43 @@ export class ProvingJobController {
|
|
|
133
89
|
return ProvingRequestType[this.inputs.type];
|
|
134
90
|
}
|
|
135
91
|
|
|
92
|
+
private run = async () => {
|
|
93
|
+
this.status = ProvingJobControllerStatus.RUNNING;
|
|
94
|
+
let result: ProvingJobResultsMap[ProvingRequestType] | Error;
|
|
95
|
+
try {
|
|
96
|
+
result = await this.generateProof();
|
|
97
|
+
} catch (err) {
|
|
98
|
+
if (err && err instanceof Error) {
|
|
99
|
+
result = err;
|
|
100
|
+
} else {
|
|
101
|
+
result = new Error('Unknown proving error: ' + String(err), { cause: err });
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
if (this.abortController.signal.aborted) {
|
|
106
|
+
this.log.warn(`Job controller for jobId=${this.jobId} completed but job was aborted`, {
|
|
107
|
+
currentStatus: this.status,
|
|
108
|
+
jobId: this.jobId,
|
|
109
|
+
});
|
|
110
|
+
result = new AbortError('Proof was aborted');
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
this.result = result;
|
|
114
|
+
this.status = ProvingJobControllerStatus.DONE;
|
|
115
|
+
try {
|
|
116
|
+
this.onComplete();
|
|
117
|
+
} catch (err) {
|
|
118
|
+
this.log.warn(`On complete handler error: ${err}`, { jobId: this.jobId });
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
|
|
136
122
|
private async generateProof(): Promise<ProvingJobResultsMap[ProvingRequestType]> {
|
|
137
123
|
const { type, inputs } = this.inputs;
|
|
138
124
|
const signal = this.abortController.signal;
|
|
139
125
|
switch (type) {
|
|
140
126
|
case ProvingRequestType.PUBLIC_VM: {
|
|
141
|
-
|
|
127
|
+
// TODO(#14234)[Unconditional PIs validation]: Remove argument "undefined".
|
|
128
|
+
return await this.circuitProver.getAvmProof(inputs, undefined, signal, this.epochNumber);
|
|
142
129
|
}
|
|
143
130
|
|
|
144
131
|
case ProvingRequestType.PRIVATE_BASE_ROLLUP: {
|
|
@@ -157,6 +144,10 @@ export class ProvingJobController {
|
|
|
157
144
|
return await this.circuitProver.getEmptyBlockRootRollupProof(inputs, signal, this.epochNumber);
|
|
158
145
|
}
|
|
159
146
|
|
|
147
|
+
case ProvingRequestType.PADDING_BLOCK_ROOT_ROLLUP: {
|
|
148
|
+
return await this.circuitProver.getPaddingBlockRootRollupProof(inputs, signal, this.epochNumber);
|
|
149
|
+
}
|
|
150
|
+
|
|
160
151
|
case ProvingRequestType.BLOCK_ROOT_ROLLUP: {
|
|
161
152
|
return await this.circuitProver.getBlockRootRollupProof(inputs, signal, this.epochNumber);
|
|
162
153
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { createSafeJsonRpcClient } from '@aztec/foundation/json-rpc/client';
|
|
2
|
-
import type { SafeJsonRpcServer } from '@aztec/foundation/json-rpc/server';
|
|
3
2
|
import {
|
|
4
3
|
type GetProvingJobResponse,
|
|
5
4
|
ProofUri,
|
|
@@ -13,7 +12,7 @@ import {
|
|
|
13
12
|
import { ProvingRequestType } from '@aztec/stdlib/proofs';
|
|
14
13
|
import { type ApiSchemaFor, optional } from '@aztec/stdlib/schemas';
|
|
15
14
|
import { type ComponentsVersions, getVersioningResponseHandler } from '@aztec/stdlib/versioning';
|
|
16
|
-
import {
|
|
15
|
+
import { makeTracedFetch } from '@aztec/telemetry-client';
|
|
17
16
|
|
|
18
17
|
import { z } from 'zod';
|
|
19
18
|
|
|
@@ -54,10 +53,6 @@ export const ProvingJobBrokerSchema: ApiSchemaFor<ProvingJobBroker> = {
|
|
|
54
53
|
...ProvingJobProducerSchema,
|
|
55
54
|
};
|
|
56
55
|
|
|
57
|
-
export function createProvingBrokerServer(broker: ProvingJobBroker): SafeJsonRpcServer {
|
|
58
|
-
return createTracedJsonRpcServer(broker, ProvingJobBrokerSchema);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
56
|
export function createProvingJobBrokerClient(
|
|
62
57
|
url: string,
|
|
63
58
|
versions: Partial<ComponentsVersions>,
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ProvingJobId } from '@aztec/stdlib/interfaces/server';
|
|
2
|
+
import { ProvingRequestType } from '@aztec/stdlib/proofs';
|
|
3
|
+
|
|
4
|
+
// Mock ProofStore for faster benchmarks with realistic Cloud Storage URIs
|
|
5
|
+
export class MockProofStore {
|
|
6
|
+
private mockCounter = 0;
|
|
7
|
+
private readonly bucketName = 'aztec-proving-benchmarks';
|
|
8
|
+
private readonly basePath = 'proving-jobs';
|
|
9
|
+
|
|
10
|
+
saveProofInput(jobId: ProvingJobId, type: ProvingRequestType): Promise<string> {
|
|
11
|
+
const uri = `gs://${this.bucketName}/${this.basePath}/inputs/${type}/${jobId}`;
|
|
12
|
+
return Promise.resolve(uri as any);
|
|
13
|
+
}
|
|
14
|
+
}
|
package/src/test/mock_prover.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED,
|
|
3
|
+
AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED,
|
|
4
4
|
NESTED_RECURSIVE_PROOF_LENGTH,
|
|
5
5
|
NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
|
|
6
6
|
RECURSIVE_PROOF_LENGTH,
|
|
@@ -28,6 +28,7 @@ import type {
|
|
|
28
28
|
BlockRootRollupInputs,
|
|
29
29
|
EmptyBlockRootRollupInputs,
|
|
30
30
|
MergeRollupInputs,
|
|
31
|
+
PaddingBlockRootRollupInputs,
|
|
31
32
|
PrivateBaseRollupInputs,
|
|
32
33
|
PublicBaseRollupInputs,
|
|
33
34
|
RootRollupInputs,
|
|
@@ -96,11 +97,16 @@ export class TestBroker implements ProvingJobProducer {
|
|
|
96
97
|
export class MockProver implements ServerCircuitProver {
|
|
97
98
|
constructor() {}
|
|
98
99
|
|
|
99
|
-
getAvmProof(
|
|
100
|
+
getAvmProof(
|
|
101
|
+
_inputs: AvmCircuitInputs,
|
|
102
|
+
_skipPublicInputsValidation?: boolean, // TODO(#14234)[Unconditional PIs validation]: Remove.
|
|
103
|
+
_signal?: AbortSignal,
|
|
104
|
+
_epochNumber?: number,
|
|
105
|
+
) {
|
|
100
106
|
return Promise.resolve(
|
|
101
107
|
makeProofAndVerificationKey(
|
|
102
|
-
makeEmptyRecursiveProof(
|
|
103
|
-
VerificationKeyData.makeFake(
|
|
108
|
+
makeEmptyRecursiveProof(AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED),
|
|
109
|
+
VerificationKeyData.makeFake(AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED),
|
|
104
110
|
),
|
|
105
111
|
);
|
|
106
112
|
}
|
|
@@ -199,6 +205,22 @@ export class MockProver implements ServerCircuitProver {
|
|
|
199
205
|
);
|
|
200
206
|
}
|
|
201
207
|
|
|
208
|
+
getPaddingBlockRootRollupProof(
|
|
209
|
+
_input: PaddingBlockRootRollupInputs,
|
|
210
|
+
_signal?: AbortSignal,
|
|
211
|
+
_epochNumber?: number,
|
|
212
|
+
): Promise<
|
|
213
|
+
PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>
|
|
214
|
+
> {
|
|
215
|
+
return Promise.resolve(
|
|
216
|
+
makePublicInputsAndRecursiveProof(
|
|
217
|
+
makeBlockRootOrBlockMergeRollupPublicInputs(),
|
|
218
|
+
makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH),
|
|
219
|
+
VerificationKeyData.makeFakeRollupHonk(),
|
|
220
|
+
),
|
|
221
|
+
);
|
|
222
|
+
}
|
|
223
|
+
|
|
202
224
|
getBlockRootRollupProof(
|
|
203
225
|
_input: BlockRootRollupInputs,
|
|
204
226
|
_signal?: AbortSignal,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/block_builder/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAE9F,cAAc,YAAY,CAAC;AAC3B,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,EAAE,wBAAwB,GAAG,YAAY,CAAC;CACpD"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
2
|
-
import { L2Block } from '@aztec/stdlib/block';
|
|
3
|
-
import type { BlockBuilder, MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
|
|
4
|
-
import { type GlobalVariables, type ProcessedTx } from '@aztec/stdlib/tx';
|
|
5
|
-
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
6
|
-
/**
|
|
7
|
-
* Builds a block and its header from a set of processed tx without running any circuits.
|
|
8
|
-
*/
|
|
9
|
-
export declare class LightweightBlockBuilder implements BlockBuilder {
|
|
10
|
-
private db;
|
|
11
|
-
private telemetry;
|
|
12
|
-
private spongeBlobState?;
|
|
13
|
-
private globalVariables?;
|
|
14
|
-
private l1ToL2Messages?;
|
|
15
|
-
private txs;
|
|
16
|
-
private readonly logger;
|
|
17
|
-
constructor(db: MerkleTreeWriteOperations, telemetry?: TelemetryClient);
|
|
18
|
-
startNewBlock(globalVariables: GlobalVariables, l1ToL2Messages: Fr[]): Promise<void>;
|
|
19
|
-
addTxs(txs: ProcessedTx[]): Promise<void>;
|
|
20
|
-
setBlockCompleted(): Promise<L2Block>;
|
|
21
|
-
private buildBlock;
|
|
22
|
-
}
|
|
23
|
-
export declare class LightweightBlockBuilderFactory {
|
|
24
|
-
private telemetry;
|
|
25
|
-
constructor(telemetry?: TelemetryClient);
|
|
26
|
-
create(db: MerkleTreeWriteOperations): BlockBuilder;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Creates a block builder under the hood with the given txs and messages and creates a block.
|
|
30
|
-
* @param db - A db fork to use for block building.
|
|
31
|
-
*/
|
|
32
|
-
export declare function buildBlock(txs: ProcessedTx[], globalVariables: GlobalVariables, l1ToL2Messages: Fr[], db: MerkleTreeWriteOperations, telemetry?: TelemetryClient): Promise<L2Block>;
|
|
33
|
-
//# sourceMappingURL=light.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"light.d.ts","sourceRoot":"","sources":["../../src/block_builder/light.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAE/F,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,WAAW,EAAmB,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAQnF;;GAEG;AACH,qBAAa,uBAAwB,YAAW,YAAY;IAS9C,OAAO,CAAC,EAAE;IAA6B,OAAO,CAAC,SAAS;IARpE,OAAO,CAAC,eAAe,CAAC,CAAa;IACrC,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,cAAc,CAAC,CAAO;IAE9B,OAAO,CAAC,GAAG,CAAqB;IAEhC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+C;gBAElD,EAAE,EAAE,yBAAyB,EAAU,SAAS,GAAE,eAAsC;IAEtG,aAAa,CAAC,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAWpF,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAS/C,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;YAIvB,UAAU;CAoBzB;AAED,qBAAa,8BAA8B;IAC7B,OAAO,CAAC,SAAS;gBAAT,SAAS,GAAE,eAAsC;IAErE,MAAM,CAAC,EAAE,EAAE,yBAAyB,GAAG,YAAY;CAGpD;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,WAAW,EAAE,EAClB,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,EAAE,EAAE,EACpB,EAAE,EAAE,yBAAyB,EAC7B,SAAS,GAAE,eAAsC,oBAMlD"}
|
|
File without changes
|