@aztec/prover-client 0.65.2 → 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/index.d.ts +1 -2
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +2 -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 +58 -21
- 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-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/{tx-prover/tx-prover.d.ts → prover-client/prover-client.d.ts} +8 -11
- package/dest/prover-client/prover-client.d.ts.map +1 -0
- package/dest/prover-client/prover-client.js +107 -0
- package/dest/proving_broker/factory.d.ts +2 -1
- package/dest/proving_broker/factory.d.ts.map +1 -1
- package/dest/proving_broker/factory.js +4 -4
- package/dest/proving_broker/proving_agent.d.ts +5 -0
- package/dest/proving_broker/proving_agent.d.ts.map +1 -1
- package/dest/proving_broker/proving_agent.js +13 -2
- 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 +6 -1
- package/dest/proving_broker/proving_broker.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker.js +37 -4
- package/dest/proving_broker/proving_broker_database/persisted.d.ts +3 -1
- package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +1 -1
- package/dest/proving_broker/proving_broker_database/persisted.js +10 -2
- 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/test/mock_prover.d.ts +1 -1
- package/dest/test/mock_prover.d.ts.map +1 -1
- package/dest/test/mock_prover.js +4 -3
- package/package.json +14 -13
- package/src/block_builder/index.ts +6 -0
- package/src/block_builder/light.ts +117 -0
- package/src/index.ts +1 -2
- package/src/mocks/fixtures.ts +2 -14
- package/src/mocks/test_context.ts +80 -24
- 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/{tx-prover → prover-client}/factory.ts +4 -3
- package/src/prover-client/index.ts +2 -0
- package/src/{tx-prover/tx-prover.ts → prover-client/prover-client.ts} +23 -13
- package/src/proving_broker/factory.ts +7 -3
- package/src/proving_broker/proving_agent.ts +16 -1
- package/src/proving_broker/proving_agent_instrumentation.ts +21 -0
- package/src/proving_broker/proving_broker.ts +46 -3
- package/src/proving_broker/proving_broker_database/persisted.ts +17 -2
- package/src/proving_broker/proving_broker_instrumentation.ts +130 -0
- package/src/test/mock_prover.ts +3 -2
- package/dest/tx-prover/factory.d.ts +0 -6
- 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.map +0 -1
- package/dest/tx-prover/tx-prover.js +0 -110
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
import { ProvingJob, ProvingJobSettledResult } from '@aztec/circuit-types';
|
|
2
2
|
import { jsonParseWithSchema, jsonStringify } from '@aztec/foundation/json-rpc';
|
|
3
|
+
import { LmdbMetrics, Metrics } from '@aztec/telemetry-client';
|
|
3
4
|
export class KVBrokerDatabase {
|
|
4
|
-
constructor(store) {
|
|
5
|
+
constructor(store, client) {
|
|
5
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());
|
|
6
14
|
this.jobs = store.openMap('proving_jobs');
|
|
7
15
|
this.jobResults = store.openMap('proving_job_results');
|
|
8
16
|
}
|
|
@@ -32,4 +40,4 @@ export class KVBrokerDatabase {
|
|
|
32
40
|
await this.jobResults.set(id, jsonStringify(result));
|
|
33
41
|
}
|
|
34
42
|
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc2lzdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Byb3ZpbmdfYnJva2VyL3Byb3ZpbmdfYnJva2VyX2RhdGFiYXNlL3BlcnNpc3RlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFVBQVUsRUFBcUIsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFaEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQXdCLE1BQU0seUJBQXlCLENBQUM7QUFJckYsTUFBTSxPQUFPLGdCQUFnQjtJQUszQixZQUFvQixLQUFtQixFQUFFLE1BQXVCO1FBQTVDLFVBQUssR0FBTCxLQUFLLENBQWM7UUFDckMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FDNUIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxFQUNuQztZQUNFLElBQUksRUFBRSxPQUFPLENBQUMseUJBQXlCO1lBQ3ZDLFdBQVcsRUFBRSwwQ0FBMEM7U0FDeEQsRUFDRDtZQUNFLElBQUksRUFBRSxPQUFPLENBQUMsMEJBQTBCO1lBQ3hDLFdBQVcsRUFBRSwyQ0FBMkM7U0FDekQsRUFDRCxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsMEJBQTBCLEVBQUUsV0FBVyxFQUFFLHdDQUF3QyxFQUFFLEVBQ25HLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FDM0IsQ0FBQztRQUNGLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFlO1FBQ2pDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsQ0FBQyxjQUFjO1FBQ2IsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDeEMsTUFBTSxHQUFHLEdBQUcsbUJBQW1CLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3BELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM5QyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDL0YsTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVELHlCQUF5QixDQUFDLEVBQWdCO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFO1lBQ2pDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDMUIsS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsa0JBQWtCLENBQUMsRUFBZ0IsRUFBRSxNQUFjO1FBQ3ZELE1BQU0sTUFBTSxHQUE0QixFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDdkUsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxFQUFnQixFQUFFLEtBQWU7UUFDekQsTUFBTSxNQUFNLEdBQTRCLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUN2RSxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0NBQ0YifQ==
|
|
@@ -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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
|
|
@@ -16,7 +16,7 @@ export declare class TestBroker implements ProvingJobProducer {
|
|
|
16
16
|
}
|
|
17
17
|
export declare class MockProver implements ServerCircuitProver {
|
|
18
18
|
constructor();
|
|
19
|
-
getAvmProof(_inputs: AvmCircuitInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<ProofAndVerificationKey<
|
|
19
|
+
getAvmProof(_inputs: AvmCircuitInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<ProofAndVerificationKey<4161>>;
|
|
20
20
|
getBaseParityProof(_inputs: BaseParityInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<import("@aztec/circuits.js").ParityPublicInputs, 463>>;
|
|
21
21
|
getRootParityProof(_inputs: RootParityInputs, _signal?: AbortSignal, _epochNumber?: number): Promise<PublicInputsAndRecursiveProof<import("@aztec/circuits.js").ParityPublicInputs, 463>>;
|
|
22
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,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,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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"}
|
package/dest/test/mock_prover.js
CHANGED
|
@@ -2,6 +2,7 @@ import { makeProofAndVerificationKey, makePublicInputsAndRecursiveProof, } from
|
|
|
2
2
|
import { AVM_PROOF_LENGTH_IN_FIELDS, AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS, NESTED_RECURSIVE_PROOF_LENGTH, RECURSIVE_PROOF_LENGTH, TUBE_PROOF_LENGTH, VerificationKeyData, makeEmptyRecursiveProof, makeRecursiveProof, } from '@aztec/circuits.js';
|
|
3
3
|
import { makeBaseOrMergeRollupPublicInputs, makeBlockRootOrBlockMergeRollupPublicInputs, makeKernelCircuitPublicInputs, makeParityPublicInputs, makeRootRollupPublicInputs, } from '@aztec/circuits.js/testing';
|
|
4
4
|
import { times } from '@aztec/foundation/collection';
|
|
5
|
+
import { NoopTelemetryClient } from '@aztec/telemetry-client/noop';
|
|
5
6
|
import { InlineProofStore } from '../proving_broker/proof_store.js';
|
|
6
7
|
import { ProvingAgent } from '../proving_broker/proving_agent.js';
|
|
7
8
|
import { ProvingBroker } from '../proving_broker/proving_broker.js';
|
|
@@ -9,8 +10,8 @@ import { InMemoryBrokerDatabase } from '../proving_broker/proving_broker_databas
|
|
|
9
10
|
export class TestBroker {
|
|
10
11
|
constructor(agentCount, prover, proofStore = new InlineProofStore()) {
|
|
11
12
|
this.proofStore = proofStore;
|
|
12
|
-
this.broker = new ProvingBroker(new InMemoryBrokerDatabase());
|
|
13
|
-
this.agents = times(agentCount, () => new ProvingAgent(this.broker, proofStore, prover));
|
|
13
|
+
this.broker = new ProvingBroker(new InMemoryBrokerDatabase(), new NoopTelemetryClient());
|
|
14
|
+
this.agents = times(agentCount, () => new ProvingAgent(this.broker, proofStore, prover, new NoopTelemetryClient()));
|
|
14
15
|
}
|
|
15
16
|
async start() {
|
|
16
17
|
await this.broker.start();
|
|
@@ -75,4 +76,4 @@ export class MockProver {
|
|
|
75
76
|
return Promise.resolve(makeProofAndVerificationKey(makeRecursiveProof(TUBE_PROOF_LENGTH), VerificationKeyData.makeFake()));
|
|
76
77
|
}
|
|
77
78
|
}
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19wcm92ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC9tb2NrX3Byb3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBU0wsMkJBQTJCLEVBQzNCLGlDQUFpQyxHQUNsQyxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIscUNBQXFDLEVBVXJDLDZCQUE2QixFQUk3QixzQkFBc0IsRUFJdEIsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQix1QkFBdUIsRUFDdkIsa0JBQWtCLEdBQ25CLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUNMLGlDQUFpQyxFQUNqQywyQ0FBMkMsRUFDM0MsNkJBQTZCLEVBQzdCLHNCQUFzQixFQUN0QiwwQkFBMEIsR0FDM0IsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFtQixNQUFNLGtDQUFrQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFFN0YsTUFBTSxPQUFPLFVBQVU7SUFJckIsWUFDRSxVQUFrQixFQUNsQixNQUEyQixFQUNuQixhQUF5QixJQUFJLGdCQUFnQixFQUFFO1FBQS9DLGVBQVUsR0FBVixVQUFVLENBQXFDO1FBTmpELFdBQU0sR0FBRyxJQUFJLGFBQWEsQ0FBQyxJQUFJLHNCQUFzQixFQUFFLEVBQUUsSUFBSSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7UUFRMUYsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3RILENBQUM7SUFFTSxLQUFLLENBQUMsS0FBSztRQUNoQixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU0sS0FBSyxDQUFDLElBQUk7UUFDZixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFELE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU0sYUFBYTtRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEdBQWU7UUFDL0IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDRCxtQkFBbUIsQ0FBQyxFQUFnQjtRQUNsQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUNELHlCQUF5QixDQUFDLEVBQWdCO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsRUFBZ0I7UUFDakMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxVQUFVO0lBQ3JCLGdCQUFlLENBQUM7SUFFaEIsV0FBVyxDQUFDLE9BQXlCLEVBQUUsT0FBcUIsRUFBRSxZQUFxQjtRQUNqRixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQ3BCLDJCQUEyQixDQUN6Qix1QkFBdUIsQ0FBQywwQkFBMEIsQ0FBQyxFQUNuRCxtQkFBbUIsQ0FBQyxRQUFRLENBQUMscUNBQXFDLENBQUMsQ0FDcEUsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELGtCQUFrQixDQUFDLE9BQXlCLEVBQUUsT0FBcUIsRUFBRSxZQUFxQjtRQUN4RixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQ3BCLGlDQUFpQyxDQUMvQixzQkFBc0IsRUFBRSxFQUN4QixrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxFQUMxQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FDbkMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELGtCQUFrQixDQUFDLE9BQXlCLEVBQUUsT0FBcUIsRUFBRSxZQUFxQjtRQUN4RixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQ3BCLGlDQUFpQyxDQUMvQixzQkFBc0IsRUFBRSxFQUN4QixrQkFBa0IsQ0FBQyw2QkFBNkIsQ0FBQyxFQUNqRCxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FDbkMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELHlCQUF5QixDQUN2QixnQkFBeUMsRUFDekMsT0FBcUIsRUFDckIsWUFBcUI7UUFFckIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUNwQixpQ0FBaUMsQ0FDL0IsaUNBQWlDLEVBQUUsRUFDbkMsa0JBQWtCLENBQUMsc0JBQXNCLENBQUMsRUFDMUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQ25DLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCx3QkFBd0IsQ0FDdEIsT0FBK0IsRUFDL0IsT0FBcUIsRUFDckIsWUFBcUI7UUFFckIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUNwQixpQ0FBaUMsQ0FDL0IsaUNBQWlDLEVBQUUsRUFDbkMsa0JBQWtCLENBQUMsc0JBQXNCLENBQUMsRUFDMUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQ25DLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxtQkFBbUIsQ0FDakIsTUFBeUIsRUFDekIsT0FBcUIsRUFDckIsWUFBcUI7UUFFckIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUNwQixpQ0FBaUMsQ0FDL0IsaUNBQWlDLEVBQUUsRUFDbkMsa0JBQWtCLENBQUMsc0JBQXNCLENBQUMsRUFDMUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQ25DLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxNQUE4QixFQUFFLE9BQXFCLEVBQUUsWUFBcUI7UUFDbkcsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUNwQixpQ0FBaUMsQ0FDL0IsMkNBQTJDLEVBQUUsRUFDN0Msa0JBQWtCLENBQUMsc0JBQXNCLENBQUMsRUFDMUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQ25DLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCw0QkFBNEIsQ0FDMUIsTUFBa0MsRUFDbEMsT0FBcUIsRUFDckIsWUFBcUI7UUFFckIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUNwQixpQ0FBaUMsQ0FDL0IsMkNBQTJDLEVBQUUsRUFDN0Msa0JBQWtCLENBQUMsc0JBQXNCLENBQUMsRUFDMUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQ25DLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCx1QkFBdUIsQ0FDckIsTUFBNkIsRUFDN0IsT0FBcUIsRUFDckIsWUFBcUI7UUFFckIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUNwQixpQ0FBaUMsQ0FDL0IsMkNBQTJDLEVBQUUsRUFDN0Msa0JBQWtCLENBQUMsc0JBQXNCLENBQUMsRUFDMUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQ25DLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCwwQkFBMEIsQ0FDeEIsT0FBb0MsRUFDcEMsT0FBcUIsRUFDckIsWUFBcUI7UUFFckIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUNwQixpQ0FBaUMsQ0FDL0IsNkJBQTZCLEVBQUUsRUFDL0Isa0JBQWtCLENBQUMsc0JBQXNCLENBQUMsRUFDMUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQ25DLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxrQkFBa0IsQ0FDaEIsTUFBd0IsRUFDeEIsT0FBcUIsRUFDckIsWUFBcUI7UUFFckIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUNwQixpQ0FBaUMsQ0FDL0IsMEJBQTBCLEVBQUUsRUFDNUIsa0JBQWtCLENBQUMsc0JBQXNCLENBQUMsRUFDMUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQ25DLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUNwQiwyQkFBMkIsQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQ25HLENBQUM7SUFDSixDQUFDO0NBQ0YifQ==
|
package/package.json
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/prover-client",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.66.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
7
|
+
"./block-builder": "./dest/block_builder/index.js",
|
|
7
8
|
"./broker": "./dest/proving_broker/index.js",
|
|
8
9
|
"./prover-agent": "./dest/prover-agent/index.js",
|
|
9
10
|
"./orchestrator": "./dest/orchestrator/index.js",
|
|
@@ -27,8 +28,8 @@
|
|
|
27
28
|
"formatting": "run -T prettier --check ./src && run -T eslint ./src",
|
|
28
29
|
"formatting:fix": "run -T eslint --fix ./src && run -T prettier -w ./src",
|
|
29
30
|
"bb": "node --no-warnings ./dest/bb/index.js",
|
|
30
|
-
"test": "
|
|
31
|
-
"test:debug": "LOG_LEVEL=debug
|
|
31
|
+
"test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --testTimeout=1500000 --forceExit",
|
|
32
|
+
"test:debug": "LOG_LEVEL=debug NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --testTimeout=1500000 --forceExit --testNamePattern prover/bb_prover/parity"
|
|
32
33
|
},
|
|
33
34
|
"jest": {
|
|
34
35
|
"moduleNameMapper": {
|
|
@@ -65,16 +66,16 @@
|
|
|
65
66
|
]
|
|
66
67
|
},
|
|
67
68
|
"dependencies": {
|
|
68
|
-
"@aztec/bb-prover": "0.
|
|
69
|
-
"@aztec/circuit-types": "0.
|
|
70
|
-
"@aztec/circuits.js": "0.
|
|
71
|
-
"@aztec/foundation": "0.
|
|
72
|
-
"@aztec/kv-store": "0.
|
|
73
|
-
"@aztec/noir-protocol-circuits-types": "0.
|
|
74
|
-
"@aztec/protocol-contracts": "0.
|
|
75
|
-
"@aztec/simulator": "0.
|
|
76
|
-
"@aztec/telemetry-client": "0.
|
|
77
|
-
"@aztec/world-state": "0.
|
|
69
|
+
"@aztec/bb-prover": "0.66.0",
|
|
70
|
+
"@aztec/circuit-types": "0.66.0",
|
|
71
|
+
"@aztec/circuits.js": "0.66.0",
|
|
72
|
+
"@aztec/foundation": "0.66.0",
|
|
73
|
+
"@aztec/kv-store": "0.66.0",
|
|
74
|
+
"@aztec/noir-protocol-circuits-types": "0.66.0",
|
|
75
|
+
"@aztec/protocol-contracts": "0.66.0",
|
|
76
|
+
"@aztec/simulator": "0.66.0",
|
|
77
|
+
"@aztec/telemetry-client": "0.66.0",
|
|
78
|
+
"@aztec/world-state": "0.66.0",
|
|
78
79
|
"@noir-lang/types": "portal:../../noir/packages/types",
|
|
79
80
|
"commander": "^12.1.0",
|
|
80
81
|
"lodash.chunk": "^4.2.0",
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import {
|
|
2
|
+
type BlockBuilder,
|
|
3
|
+
L2Block,
|
|
4
|
+
MerkleTreeId,
|
|
5
|
+
type MerkleTreeWriteOperations,
|
|
6
|
+
type ProcessedTx,
|
|
7
|
+
makeEmptyProcessedTx,
|
|
8
|
+
} from '@aztec/circuit-types';
|
|
9
|
+
import { Fr, type GlobalVariables, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/circuits.js';
|
|
10
|
+
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
11
|
+
import { createDebugLogger } from '@aztec/foundation/log';
|
|
12
|
+
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types';
|
|
13
|
+
import { protocolContractTreeRoot } from '@aztec/protocol-contracts';
|
|
14
|
+
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
15
|
+
import { NoopTelemetryClient } from '@aztec/telemetry-client/noop';
|
|
16
|
+
|
|
17
|
+
import { inspect } from 'util';
|
|
18
|
+
|
|
19
|
+
import {
|
|
20
|
+
buildBaseRollupHints,
|
|
21
|
+
buildHeaderAndBodyFromTxs,
|
|
22
|
+
getTreeSnapshot,
|
|
23
|
+
} from '../orchestrator/block-building-helpers.js';
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Builds a block and its header from a set of processed tx without running any circuits.
|
|
27
|
+
*/
|
|
28
|
+
export class LightweightBlockBuilder implements BlockBuilder {
|
|
29
|
+
private numTxs?: number;
|
|
30
|
+
private globalVariables?: GlobalVariables;
|
|
31
|
+
private l1ToL2Messages?: Fr[];
|
|
32
|
+
|
|
33
|
+
private readonly txs: ProcessedTx[] = [];
|
|
34
|
+
|
|
35
|
+
private readonly logger = createDebugLogger('aztec:sequencer-client:block_builder_light');
|
|
36
|
+
|
|
37
|
+
constructor(private db: MerkleTreeWriteOperations, private telemetry: TelemetryClient) {}
|
|
38
|
+
|
|
39
|
+
async startNewBlock(numTxs: number, globalVariables: GlobalVariables, l1ToL2Messages: Fr[]): Promise<void> {
|
|
40
|
+
this.logger.verbose('Starting new block', { numTxs, globalVariables: inspect(globalVariables), l1ToL2Messages });
|
|
41
|
+
this.numTxs = numTxs;
|
|
42
|
+
this.globalVariables = globalVariables;
|
|
43
|
+
this.l1ToL2Messages = padArrayEnd(l1ToL2Messages, Fr.ZERO, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
44
|
+
|
|
45
|
+
// Update L1 to L2 tree
|
|
46
|
+
await this.db.appendLeaves(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, this.l1ToL2Messages!);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
async addNewTx(tx: ProcessedTx): Promise<void> {
|
|
50
|
+
this.logger.verbose('Adding new tx to block', { txHash: tx.hash.toString() });
|
|
51
|
+
this.txs.push(tx);
|
|
52
|
+
await buildBaseRollupHints(tx, this.globalVariables!, this.db);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
async setBlockCompleted(): Promise<L2Block> {
|
|
56
|
+
const paddingTxCount = this.numTxs! - this.txs.length;
|
|
57
|
+
this.logger.verbose(`Setting block as completed and adding ${paddingTxCount} padding txs`);
|
|
58
|
+
for (let i = 0; i < paddingTxCount; i++) {
|
|
59
|
+
await this.addNewTx(
|
|
60
|
+
makeEmptyProcessedTx(
|
|
61
|
+
this.db.getInitialHeader(),
|
|
62
|
+
this.globalVariables!.chainId,
|
|
63
|
+
this.globalVariables!.version,
|
|
64
|
+
getVKTreeRoot(),
|
|
65
|
+
protocolContractTreeRoot,
|
|
66
|
+
),
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return this.buildBlock();
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
private async buildBlock(): Promise<L2Block> {
|
|
74
|
+
this.logger.verbose(`Finalising block`);
|
|
75
|
+
|
|
76
|
+
const { header, body } = await buildHeaderAndBodyFromTxs(
|
|
77
|
+
this.txs,
|
|
78
|
+
this.globalVariables!,
|
|
79
|
+
this.l1ToL2Messages!,
|
|
80
|
+
this.db,
|
|
81
|
+
);
|
|
82
|
+
|
|
83
|
+
await this.db.updateArchive(header);
|
|
84
|
+
const newArchive = await getTreeSnapshot(MerkleTreeId.ARCHIVE, this.db);
|
|
85
|
+
|
|
86
|
+
const block = new L2Block(newArchive, header, body);
|
|
87
|
+
return block;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export class LightweightBlockBuilderFactory {
|
|
92
|
+
constructor(private telemetry?: TelemetryClient) {}
|
|
93
|
+
|
|
94
|
+
create(db: MerkleTreeWriteOperations): BlockBuilder {
|
|
95
|
+
return new LightweightBlockBuilder(db, this.telemetry ?? new NoopTelemetryClient());
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Creates a block builder under the hood with the given txs and messages and creates a block.
|
|
101
|
+
* Automatically adds padding txs to get to a minimum of 2 txs in the block.
|
|
102
|
+
* @param db - A db fork to use for block building.
|
|
103
|
+
*/
|
|
104
|
+
export async function buildBlock(
|
|
105
|
+
txs: ProcessedTx[],
|
|
106
|
+
globalVariables: GlobalVariables,
|
|
107
|
+
l1ToL2Messages: Fr[],
|
|
108
|
+
db: MerkleTreeWriteOperations,
|
|
109
|
+
telemetry: TelemetryClient = new NoopTelemetryClient(),
|
|
110
|
+
) {
|
|
111
|
+
const builder = new LightweightBlockBuilder(db, telemetry);
|
|
112
|
+
await builder.startNewBlock(Math.max(txs.length, 2), globalVariables, l1ToL2Messages);
|
|
113
|
+
for (const tx of txs) {
|
|
114
|
+
await builder.addNewTx(tx);
|
|
115
|
+
}
|
|
116
|
+
return await builder.setBlockCompleted();
|
|
117
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export { EpochProverManager } from '@aztec/circuit-types';
|
|
2
2
|
|
|
3
|
-
export * from './
|
|
3
|
+
export * from './prover-client/index.js';
|
|
4
4
|
export * from './config.js';
|
|
5
|
-
export * from './tx-prover/factory.js';
|
|
6
5
|
export * from './proving_broker/prover_cache/memory.js';
|
package/src/mocks/fixtures.ts
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
MerkleTreeId,
|
|
3
|
-
type MerkleTreeReadOperations,
|
|
4
|
-
type MerkleTreeWriteOperations,
|
|
5
|
-
type ProcessedTx,
|
|
6
|
-
} from '@aztec/circuit-types';
|
|
7
|
-
import { makeBloatedProcessedTx } from '@aztec/circuit-types/test';
|
|
1
|
+
import { MerkleTreeId, type MerkleTreeWriteOperations, type ProcessedTx } from '@aztec/circuit-types';
|
|
8
2
|
import {
|
|
9
3
|
AztecAddress,
|
|
10
4
|
EthAddress,
|
|
@@ -19,8 +13,6 @@ import { padArrayEnd } from '@aztec/foundation/collection';
|
|
|
19
13
|
import { randomBytes } from '@aztec/foundation/crypto';
|
|
20
14
|
import { type DebugLogger } from '@aztec/foundation/log';
|
|
21
15
|
import { fileURLToPath } from '@aztec/foundation/url';
|
|
22
|
-
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types';
|
|
23
|
-
import { protocolContractTreeRoot } from '@aztec/protocol-contracts';
|
|
24
16
|
import { NativeACVMSimulator, type SimulationProvider, WASMSimulator } from '@aztec/simulator';
|
|
25
17
|
|
|
26
18
|
import * as fs from 'fs/promises';
|
|
@@ -94,9 +86,6 @@ export async function getSimulationProvider(
|
|
|
94
86
|
return new WASMSimulator();
|
|
95
87
|
}
|
|
96
88
|
|
|
97
|
-
export const makeBloatedProcessedTxWithVKRoot = (builderDb: MerkleTreeReadOperations, seed = 0x1) =>
|
|
98
|
-
makeBloatedProcessedTx({ db: builderDb, vkTreeRoot: getVKTreeRoot(), protocolContractTreeRoot, seed });
|
|
99
|
-
|
|
100
89
|
// Updates the expectedDb trees based on the new note hashes, contracts, and nullifiers from these txs
|
|
101
90
|
export const updateExpectedTreesFromTxs = async (db: MerkleTreeWriteOperations, txs: ProcessedTx[]) => {
|
|
102
91
|
await db.appendLeaves(
|
|
@@ -109,10 +98,9 @@ export const updateExpectedTreesFromTxs = async (db: MerkleTreeWriteOperations,
|
|
|
109
98
|
NULLIFIER_TREE_HEIGHT,
|
|
110
99
|
);
|
|
111
100
|
for (const tx of txs) {
|
|
112
|
-
await db.
|
|
101
|
+
await db.sequentialInsert(
|
|
113
102
|
MerkleTreeId.PUBLIC_DATA_TREE,
|
|
114
103
|
tx.txEffect.publicDataWrites.map(write => write.toBuffer()),
|
|
115
|
-
0,
|
|
116
104
|
);
|
|
117
105
|
}
|
|
118
106
|
};
|