@aztec/prover-node 0.68.1 → 0.69.0-devnet
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/job/epoch-proving-job.d.ts +3 -3
- package/dest/job/epoch-proving-job.d.ts.map +1 -1
- package/dest/job/epoch-proving-job.js +7 -12
- package/dest/prover-node.d.ts +6 -2
- package/dest/prover-node.d.ts.map +1 -1
- package/dest/prover-node.js +38 -13
- package/package.json +18 -23
- package/src/job/epoch-proving-job.ts +5 -16
- package/src/prover-node.ts +48 -12
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type EpochProver, type EpochProvingJobState, type ForkMerkleTreeOperations, type L1ToL2MessageSource, type L2Block, type L2BlockSource, type
|
|
1
|
+
import { type EpochProver, type EpochProvingJobState, type ForkMerkleTreeOperations, type L1ToL2MessageSource, type L2Block, type L2BlockSource, type Tx } from '@aztec/circuit-types';
|
|
2
2
|
import { type L1Publisher } from '@aztec/sequencer-client';
|
|
3
3
|
import { type PublicProcessorFactory } from '@aztec/simulator';
|
|
4
4
|
import { type Traceable, type Tracer } from '@aztec/telemetry-client';
|
|
@@ -12,12 +12,12 @@ export declare class EpochProvingJob implements Traceable {
|
|
|
12
12
|
private dbProvider;
|
|
13
13
|
private epochNumber;
|
|
14
14
|
private blocks;
|
|
15
|
+
private txs;
|
|
15
16
|
private prover;
|
|
16
17
|
private publicProcessorFactory;
|
|
17
18
|
private publisher;
|
|
18
19
|
private l2BlockSource;
|
|
19
20
|
private l1ToL2MessageSource;
|
|
20
|
-
private coordination;
|
|
21
21
|
private metrics;
|
|
22
22
|
private config;
|
|
23
23
|
private cleanUp;
|
|
@@ -26,7 +26,7 @@ export declare class EpochProvingJob implements Traceable {
|
|
|
26
26
|
private uuid;
|
|
27
27
|
private runPromise;
|
|
28
28
|
readonly tracer: Tracer;
|
|
29
|
-
constructor(dbProvider: ForkMerkleTreeOperations, epochNumber: bigint, blocks: L2Block[], prover: EpochProver, publicProcessorFactory: PublicProcessorFactory, publisher: L1Publisher, l2BlockSource: L2BlockSource, l1ToL2MessageSource: L1ToL2MessageSource,
|
|
29
|
+
constructor(dbProvider: ForkMerkleTreeOperations, epochNumber: bigint, blocks: L2Block[], txs: Tx[], prover: EpochProver, publicProcessorFactory: PublicProcessorFactory, publisher: L1Publisher, l2BlockSource: L2BlockSource, l1ToL2MessageSource: L1ToL2MessageSource, metrics: ProverNodeMetrics, config?: {
|
|
30
30
|
parallelBlockLimit: number;
|
|
31
31
|
}, cleanUp?: (job: EpochProvingJob) => Promise<void>);
|
|
32
32
|
getId(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"epoch-proving-job.d.ts","sourceRoot":"","sources":["../../src/job/epoch-proving-job.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,OAAO,EACZ,KAAK,aAAa,EAElB,KAAK,
|
|
1
|
+
{"version":3,"file":"epoch-proving-job.d.ts","sourceRoot":"","sources":["../../src/job/epoch-proving-job.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,OAAO,EACZ,KAAK,aAAa,EAElB,KAAK,EAAE,EACR,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAwB,KAAK,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,MAAM,EAAa,MAAM,yBAAyB,CAAC;AAI7F,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,SAAS;IAU7C,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,sBAAsB;IAC9B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IApBjB,OAAO,CAAC,KAAK,CAAuC;IACpD,OAAO,CAAC,GAAG,CAAiD;IAC5D,OAAO,CAAC,IAAI,CAAS;IAErB,OAAO,CAAC,UAAU,CAA4B;IAE9C,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAGrB,UAAU,EAAE,wBAAwB,EACpC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,OAAO,EAAE,EACjB,GAAG,EAAE,EAAE,EAAE,EACT,MAAM,EAAE,WAAW,EACnB,sBAAsB,EAAE,sBAAsB,EAC9C,SAAS,EAAE,WAAW,EACtB,aAAa,EAAE,aAAa,EAC5B,mBAAmB,EAAE,mBAAmB,EACxC,OAAO,EAAE,iBAAiB,EAC1B,MAAM,GAAE;QAAE,kBAAkB,EAAE,MAAM,CAAA;KAA+B,EACnE,OAAO,GAAE,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAA2B;IAM7E,KAAK,IAAI,MAAM;IAIf,QAAQ,IAAI,oBAAoB;IAIvC;;OAEG;IAIU,GAAG;IA6EH,IAAI;IAQjB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,iBAAiB;YAIX,UAAU;CAezB;AAED,OAAO,EAAE,KAAK,oBAAoB,EAAE,CAAC"}
|
|
@@ -16,16 +16,16 @@ let EpochProvingJob = (() => {
|
|
|
16
16
|
let _instanceExtraInitializers = [];
|
|
17
17
|
let _run_decorators;
|
|
18
18
|
return _a = class EpochProvingJob {
|
|
19
|
-
constructor(dbProvider, epochNumber, blocks, prover, publicProcessorFactory, publisher, l2BlockSource, l1ToL2MessageSource,
|
|
19
|
+
constructor(dbProvider, epochNumber, blocks, txs, prover, publicProcessorFactory, publisher, l2BlockSource, l1ToL2MessageSource, metrics, config = { parallelBlockLimit: 32 }, cleanUp = () => Promise.resolve()) {
|
|
20
20
|
this.dbProvider = (__runInitializers(this, _instanceExtraInitializers), dbProvider);
|
|
21
21
|
this.epochNumber = epochNumber;
|
|
22
22
|
this.blocks = blocks;
|
|
23
|
+
this.txs = txs;
|
|
23
24
|
this.prover = prover;
|
|
24
25
|
this.publicProcessorFactory = publicProcessorFactory;
|
|
25
26
|
this.publisher = publisher;
|
|
26
27
|
this.l2BlockSource = l2BlockSource;
|
|
27
28
|
this.l1ToL2MessageSource = l1ToL2MessageSource;
|
|
28
|
-
this.coordination = coordination;
|
|
29
29
|
this.metrics = metrics;
|
|
30
30
|
this.config = config;
|
|
31
31
|
this.cleanUp = cleanUp;
|
|
@@ -63,10 +63,9 @@ let EpochProvingJob = (() => {
|
|
|
63
63
|
this.prover.startNewEpoch(epochNumber, fromBlock, epochSizeBlocks);
|
|
64
64
|
await asyncPool(this.config.parallelBlockLimit, this.blocks, async (block) => {
|
|
65
65
|
const globalVariables = block.header.globalVariables;
|
|
66
|
-
const txHashes = block.body.txEffects.map(tx => tx.txHash);
|
|
67
66
|
const txCount = block.body.numberOfTxsIncludingPadded;
|
|
67
|
+
const txs = this.getTxs(block);
|
|
68
68
|
const l1ToL2Messages = await this.getL1ToL2Messages(block);
|
|
69
|
-
const txs = await this.getTxs(txHashes, block.number);
|
|
70
69
|
const previousHeader = await this.getBlockHeader(block.number - 1);
|
|
71
70
|
this.log.verbose(`Starting processing block ${block.number}`, {
|
|
72
71
|
number: block.number,
|
|
@@ -126,13 +125,9 @@ let EpochProvingJob = (() => {
|
|
|
126
125
|
}
|
|
127
126
|
return this.l2BlockSource.getBlockHeader(blockNumber);
|
|
128
127
|
}
|
|
129
|
-
|
|
130
|
-
const
|
|
131
|
-
|
|
132
|
-
if (notFound.length) {
|
|
133
|
-
throw new Error(`Txs not found for block ${blockNumber}: ${notFound.map(([txHash]) => txHash.toString()).join(', ')}`);
|
|
134
|
-
}
|
|
135
|
-
return txs.map(([_, tx]) => tx);
|
|
128
|
+
getTxs(block) {
|
|
129
|
+
const txHashes = block.body.txEffects.map(tx => tx.txHash.toBigInt());
|
|
130
|
+
return this.txs.filter(tx => txHashes.includes(tx.getTxHash().toBigInt()));
|
|
136
131
|
}
|
|
137
132
|
getL1ToL2Messages(block) {
|
|
138
133
|
return this.l1ToL2MessageSource.getL1ToL2Messages(BigInt(block.number));
|
|
@@ -156,4 +151,4 @@ let EpochProvingJob = (() => {
|
|
|
156
151
|
_a;
|
|
157
152
|
})();
|
|
158
153
|
export { EpochProvingJob };
|
|
159
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXBvY2gtcHJvdmluZy1qb2IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvam9iL2Vwb2NoLXByb3Zpbmctam9iLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEdBU2pCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHaEQsT0FBTyxFQUFFLFVBQVUsRUFBK0IsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFN0YsT0FBTyxLQUFLLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFJdEM7Ozs7R0FJRztJQUNVLGVBQWU7Ozs7c0JBQWYsZUFBZTtZQVMxQixZQUNVLFVBQW9DLEVBQ3BDLFdBQW1CLEVBQ25CLE1BQWlCLEVBQ2pCLEdBQVMsRUFDVCxNQUFtQixFQUNuQixzQkFBOEMsRUFDOUMsU0FBc0IsRUFDdEIsYUFBNEIsRUFDNUIsbUJBQXdDLEVBQ3hDLE9BQTBCLEVBQzFCLFNBQXlDLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxFQUFFLEVBQ25FLFVBQW1ELEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7Z0JBWDFFLGVBQVUsSUFWVCxtREFBZSxFQVVoQixVQUFVLEVBQTBCO2dCQUNwQyxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtnQkFDbkIsV0FBTSxHQUFOLE1BQU0sQ0FBVztnQkFDakIsUUFBRyxHQUFILEdBQUcsQ0FBTTtnQkFDVCxXQUFNLEdBQU4sTUFBTSxDQUFhO2dCQUNuQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO2dCQUM5QyxjQUFTLEdBQVQsU0FBUyxDQUFhO2dC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
|
package/dest/prover-node.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type EpochProofClaim, type EpochProofQuote, type EpochProverManager, type L1ToL2MessageSource, type L2Block, type L2BlockSource, type P2PClientType, type ProverCoordination, type ProverNodeApi, type Service, type WorldStateSynchronizer } from '@aztec/circuit-types';
|
|
1
|
+
import { type EpochProofClaim, type EpochProofQuote, type EpochProverManager, type L1ToL2MessageSource, type L2Block, type L2BlockSource, type P2PClientType, type ProverCoordination, type ProverNodeApi, type Service, type Tx, type WorldStateSynchronizer } from '@aztec/circuit-types';
|
|
2
2
|
import { type ContractDataSource } from '@aztec/circuits.js';
|
|
3
3
|
import { type Maybe } from '@aztec/foundation/types';
|
|
4
4
|
import { type P2P } from '@aztec/p2p';
|
|
@@ -40,6 +40,7 @@ export declare class ProverNode implements ClaimsMonitorHandler, EpochMonitorHan
|
|
|
40
40
|
private dateProvider;
|
|
41
41
|
private latestEpochWeAreProving;
|
|
42
42
|
private jobs;
|
|
43
|
+
private cachedEpochData;
|
|
43
44
|
private options;
|
|
44
45
|
private metrics;
|
|
45
46
|
readonly tracer: Tracer;
|
|
@@ -91,8 +92,11 @@ export declare class ProverNode implements ClaimsMonitorHandler, EpochMonitorHan
|
|
|
91
92
|
}[]>;
|
|
92
93
|
private checkMaximumPendingJobs;
|
|
93
94
|
private createProvingJob;
|
|
95
|
+
private gatherEpochData;
|
|
96
|
+
private gatherBlocks;
|
|
97
|
+
private gatherTxs;
|
|
94
98
|
/** Extracted for testing purposes. */
|
|
95
|
-
protected doCreateEpochProvingJob(epochNumber: bigint, blocks: L2Block[], publicProcessorFactory: PublicProcessorFactory, cleanUp: () => Promise<void>): EpochProvingJob;
|
|
99
|
+
protected doCreateEpochProvingJob(epochNumber: bigint, blocks: L2Block[], txs: Tx[], publicProcessorFactory: PublicProcessorFactory, cleanUp: () => Promise<void>): EpochProvingJob;
|
|
96
100
|
/** Extracted for testing purposes. */
|
|
97
101
|
protected triggerMonitors(): Promise<void>;
|
|
98
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prover-node.d.ts","sourceRoot":"","sources":["../src/prover-node.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,eAAe,EAEpB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,OAAO,EACZ,KAAK,sBAAsB,EAE5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAI7D,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAc,KAAK,eAAe,EAAE,KAAK,SAAS,EAAE,KAAK,MAAM,EAAa,MAAM,yBAAyB,CAAC;AAEnH,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAExF,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAC7F,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,yBAAyB,EAAE,MAAM,CAAC;CACnC,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,UAAW,YAAW,oBAAoB,EAAE,mBAAmB,EAAE,aAAa,EAAE,SAAS;
|
|
1
|
+
{"version":3,"file":"prover-node.d.ts","sourceRoot":"","sources":["../src/prover-node.ts"],"names":[],"mappings":"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"}
|
package/dest/prover-node.js
CHANGED
|
@@ -17,6 +17,7 @@ let ProverNode = (() => {
|
|
|
17
17
|
var _a;
|
|
18
18
|
let _instanceExtraInitializers = [];
|
|
19
19
|
let _createProvingJob_decorators;
|
|
20
|
+
let _gatherEpochData_decorators;
|
|
20
21
|
return _a = class ProverNode {
|
|
21
22
|
constructor(prover, publisher, l2BlockSource, l1ToL2MessageSource, contractDataSource, worldState, coordination, quoteProvider, quoteSigner, claimsMonitor, epochsMonitor, bondManager, telemetryClient, options = {}) {
|
|
22
23
|
this.prover = (__runInitializers(this, _instanceExtraInitializers), prover);
|
|
@@ -35,6 +36,7 @@ let ProverNode = (() => {
|
|
|
35
36
|
this.log = createLogger('prover-node');
|
|
36
37
|
this.dateProvider = new DateProvider();
|
|
37
38
|
this.jobs = new Map();
|
|
39
|
+
this.cachedEpochData = undefined;
|
|
38
40
|
this.options = {
|
|
39
41
|
pollingIntervalMs: 1000,
|
|
40
42
|
maxPendingJobs: 100,
|
|
@@ -99,12 +101,11 @@ let ProverNode = (() => {
|
|
|
99
101
|
*/
|
|
100
102
|
async handleEpochCompleted(epochNumber) {
|
|
101
103
|
try {
|
|
104
|
+
// Gather data for the epoch
|
|
105
|
+
const epochData = await this.gatherEpochData(epochNumber);
|
|
106
|
+
const { blocks } = epochData;
|
|
107
|
+
this.cachedEpochData = { epochNumber, ...epochData };
|
|
102
108
|
// Construct a quote for the epoch
|
|
103
|
-
const blocks = await this.l2BlockSource.getBlocksForEpoch(epochNumber);
|
|
104
|
-
if (blocks.length === 0) {
|
|
105
|
-
this.log.info(`No blocks found for epoch ${epochNumber}`);
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
109
|
const partialQuote = await this.quoteProvider.getQuote(Number(epochNumber), blocks);
|
|
109
110
|
if (!partialQuote) {
|
|
110
111
|
this.log.info(`No quote produced for epoch ${epochNumber}`);
|
|
@@ -198,10 +199,8 @@ let ProverNode = (() => {
|
|
|
198
199
|
throw new Error(`Maximum pending proving jobs ${this.options.maxPendingJobs} reached. Cannot create new job.`);
|
|
199
200
|
}
|
|
200
201
|
// Gather blocks for this epoch
|
|
201
|
-
const
|
|
202
|
-
|
|
203
|
-
throw new Error(`No blocks found for epoch ${epochNumber}`);
|
|
204
|
-
}
|
|
202
|
+
const cachedEpochData = this.cachedEpochData?.epochNumber === epochNumber ? this.cachedEpochData : undefined;
|
|
203
|
+
const { blocks, txs } = cachedEpochData ?? (await this.gatherEpochData(epochNumber));
|
|
205
204
|
const fromBlock = blocks[0].number;
|
|
206
205
|
const toBlock = blocks.at(-1).number;
|
|
207
206
|
// Fast forward world state to right before the target block and get a fork
|
|
@@ -213,13 +212,37 @@ let ProverNode = (() => {
|
|
|
213
212
|
this.jobs.delete(job.getId());
|
|
214
213
|
return Promise.resolve();
|
|
215
214
|
};
|
|
216
|
-
const job = this.doCreateEpochProvingJob(epochNumber, blocks, publicProcessorFactory, cleanUp);
|
|
215
|
+
const job = this.doCreateEpochProvingJob(epochNumber, blocks, txs, publicProcessorFactory, cleanUp);
|
|
217
216
|
this.jobs.set(job.getId(), job);
|
|
218
217
|
return job;
|
|
219
218
|
}
|
|
219
|
+
async gatherEpochData(epochNumber) {
|
|
220
|
+
// Gather blocks for this epoch and their txs
|
|
221
|
+
const blocks = await this.gatherBlocks(epochNumber);
|
|
222
|
+
const txs = await this.gatherTxs(epochNumber, blocks);
|
|
223
|
+
return { blocks, txs };
|
|
224
|
+
}
|
|
225
|
+
async gatherBlocks(epochNumber) {
|
|
226
|
+
const blocks = await this.l2BlockSource.getBlocksForEpoch(epochNumber);
|
|
227
|
+
if (blocks.length === 0) {
|
|
228
|
+
throw new Error(`No blocks found for epoch ${epochNumber}`);
|
|
229
|
+
}
|
|
230
|
+
return blocks;
|
|
231
|
+
}
|
|
232
|
+
async gatherTxs(epochNumber, blocks) {
|
|
233
|
+
const txs = await Promise.all(blocks.flatMap(block => block.body.txEffects
|
|
234
|
+
.map(tx => tx.txHash)
|
|
235
|
+
.map(txHash => this.coordination.getTxByHash(txHash).then(tx => [block.number, txHash, tx]))));
|
|
236
|
+
const notFound = txs.filter(([_blockNum, _txHash, tx]) => !tx);
|
|
237
|
+
if (notFound.length) {
|
|
238
|
+
const notFoundList = notFound.map(([blockNum, txHash]) => `${txHash.toString()} (block ${blockNum})`).join(', ');
|
|
239
|
+
throw new Error(`Txs not found for epoch ${epochNumber}: ${notFoundList}`);
|
|
240
|
+
}
|
|
241
|
+
return txs.map(([_blockNumber, _txHash, tx]) => tx);
|
|
242
|
+
}
|
|
220
243
|
/** Extracted for testing purposes. */
|
|
221
|
-
doCreateEpochProvingJob(epochNumber, blocks, publicProcessorFactory, cleanUp) {
|
|
222
|
-
return new EpochProvingJob(this.worldState, epochNumber, blocks, this.prover.createEpochProver(), publicProcessorFactory, this.publisher, this.l2BlockSource, this.l1ToL2MessageSource, this.
|
|
244
|
+
doCreateEpochProvingJob(epochNumber, blocks, txs, publicProcessorFactory, cleanUp) {
|
|
245
|
+
return new EpochProvingJob(this.worldState, epochNumber, blocks, txs, this.prover.createEpochProver(), publicProcessorFactory, this.publisher, this.l2BlockSource, this.l1ToL2MessageSource, this.metrics, { parallelBlockLimit: this.options.maxParallelBlocksPerEpoch }, cleanUp);
|
|
223
246
|
}
|
|
224
247
|
/** Extracted for testing purposes. */
|
|
225
248
|
async triggerMonitors() {
|
|
@@ -230,10 +253,12 @@ let ProverNode = (() => {
|
|
|
230
253
|
(() => {
|
|
231
254
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
232
255
|
_createProvingJob_decorators = [trackSpan('ProverNode.createProvingJob', epochNumber => ({ [Attributes.EPOCH_NUMBER]: Number(epochNumber) }))];
|
|
256
|
+
_gatherEpochData_decorators = [trackSpan('ProverNode.gatherEpochData', epochNumber => ({ [Attributes.EPOCH_NUMBER]: Number(epochNumber) }))];
|
|
233
257
|
__esDecorate(_a, null, _createProvingJob_decorators, { kind: "method", name: "createProvingJob", static: false, private: false, access: { has: obj => "createProvingJob" in obj, get: obj => obj.createProvingJob }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
258
|
+
__esDecorate(_a, null, _gatherEpochData_decorators, { kind: "method", name: "gatherEpochData", static: false, private: false, access: { has: obj => "gatherEpochData" in obj, get: obj => obj.gatherEpochData }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
234
259
|
if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
235
260
|
})(),
|
|
236
261
|
_a;
|
|
237
262
|
})();
|
|
238
263
|
export { ProverNode };
|
|
239
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmVyLW5vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHJvdmVyLW5vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFHTCxzQkFBc0IsRUFVdEIsT0FBTyxHQUNSLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFJdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBcUQsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHbkgsT0FBTyxFQUFFLGVBQWUsRUFBNkIsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFZakQ7Ozs7O0dBS0c7SUFDVSxVQUFVOzs7O3NCQUFWLFVBQVU7WUFXckIsWUFDbUIsTUFBMEIsRUFDMUIsU0FBc0IsRUFDdEIsYUFBNkMsRUFDN0MsbUJBQXdDLEVBQ3hDLGtCQUFzQyxFQUN0QyxVQUFrQyxFQUNsQyxZQUFpRCxFQUNqRCxhQUE0QixFQUM1QixXQUF3QixFQUN4QixhQUE0QixFQUM1QixhQUEyQixFQUMzQixXQUF3QixFQUN4QixlQUFnQyxFQUNqRCxVQUFzQyxFQUFFO2dCQWJ2QixXQUFNLElBWmQsbURBQVUsRUFZRixNQUFNLEVBQW9CO2dCQUMxQixjQUFTLEdBQVQsU0FBUyxDQUFhO2dCQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0M7Z0JBQzdDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7Z0JBQ3hDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7Z0JBQ3RDLGVBQVUsR0FBVixVQUFVLENBQXdCO2dCQUNsQyxp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
|
|
264
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmVyLW5vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHJvdmVyLW5vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFHTCxzQkFBc0IsRUFXdEIsT0FBTyxHQUNSLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFJdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBcUQsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHbkgsT0FBTyxFQUFFLGVBQWUsRUFBNkIsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFZakQ7Ozs7O0dBS0c7SUFDVSxVQUFVOzs7OztzQkFBVixVQUFVO1lBWXJCLFlBQ21CLE1BQTBCLEVBQzFCLFNBQXNCLEVBQ3RCLGFBQTZDLEVBQzdDLG1CQUF3QyxFQUN4QyxrQkFBc0MsRUFDdEMsVUFBa0MsRUFDbEMsWUFBaUQsRUFDakQsYUFBNEIsRUFDNUIsV0FBd0IsRUFDeEIsYUFBNEIsRUFDNUIsYUFBMkIsRUFDM0IsV0FBd0IsRUFDeEIsZUFBZ0MsRUFDakQsVUFBc0MsRUFBRTtnQkFidkIsV0FBTSxJQWJkLG1EQUFVLEVBYUYsTUFBTSxFQUFvQjtnQkFDMUIsY0FBUyxHQUFULFNBQVMsQ0FBYTtnQkFDdEIsa0JBQWEsR0FBYixhQUFhLENBQWdDO2dCQUM3Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO2dCQUN4Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO2dCQUN0QyxlQUFVLEdBQVYsVUFBVSxDQUF3QjtnQkFDbEMs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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/prover-node",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.69.0-devnet",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -44,12 +44,7 @@
|
|
|
44
44
|
".ts"
|
|
45
45
|
],
|
|
46
46
|
"reporters": [
|
|
47
|
-
|
|
48
|
-
"jest-silent-reporter",
|
|
49
|
-
{
|
|
50
|
-
"useDots": true
|
|
51
|
-
}
|
|
52
|
-
]
|
|
47
|
+
"default"
|
|
53
48
|
],
|
|
54
49
|
"testTimeout": 30000,
|
|
55
50
|
"setupFiles": [
|
|
@@ -57,22 +52,22 @@
|
|
|
57
52
|
]
|
|
58
53
|
},
|
|
59
54
|
"dependencies": {
|
|
60
|
-
"@aztec/archiver": "0.
|
|
61
|
-
"@aztec/bb-prover": "0.
|
|
62
|
-
"@aztec/circuit-types": "0.
|
|
63
|
-
"@aztec/circuits.js": "0.
|
|
64
|
-
"@aztec/epoch-cache": "0.
|
|
65
|
-
"@aztec/ethereum": "0.
|
|
66
|
-
"@aztec/foundation": "0.
|
|
67
|
-
"@aztec/kv-store": "0.
|
|
68
|
-
"@aztec/l1-artifacts": "0.
|
|
69
|
-
"@aztec/p2p": "0.
|
|
70
|
-
"@aztec/prover-client": "0.
|
|
71
|
-
"@aztec/sequencer-client": "0.
|
|
72
|
-
"@aztec/simulator": "0.
|
|
73
|
-
"@aztec/telemetry-client": "0.
|
|
74
|
-
"@aztec/types": "0.
|
|
75
|
-
"@aztec/world-state": "0.
|
|
55
|
+
"@aztec/archiver": "0.69.0-devnet",
|
|
56
|
+
"@aztec/bb-prover": "0.69.0-devnet",
|
|
57
|
+
"@aztec/circuit-types": "0.69.0-devnet",
|
|
58
|
+
"@aztec/circuits.js": "0.69.0-devnet",
|
|
59
|
+
"@aztec/epoch-cache": "0.69.0-devnet",
|
|
60
|
+
"@aztec/ethereum": "0.69.0-devnet",
|
|
61
|
+
"@aztec/foundation": "0.69.0-devnet",
|
|
62
|
+
"@aztec/kv-store": "0.69.0-devnet",
|
|
63
|
+
"@aztec/l1-artifacts": "0.69.0-devnet",
|
|
64
|
+
"@aztec/p2p": "0.69.0-devnet",
|
|
65
|
+
"@aztec/prover-client": "0.69.0-devnet",
|
|
66
|
+
"@aztec/sequencer-client": "0.69.0-devnet",
|
|
67
|
+
"@aztec/simulator": "0.69.0-devnet",
|
|
68
|
+
"@aztec/telemetry-client": "0.69.0-devnet",
|
|
69
|
+
"@aztec/types": "0.69.0-devnet",
|
|
70
|
+
"@aztec/world-state": "0.69.0-devnet",
|
|
76
71
|
"source-map-support": "^0.5.21",
|
|
77
72
|
"tslib": "^2.4.0",
|
|
78
73
|
"viem": "^2.7.15"
|
|
@@ -7,9 +7,7 @@ import {
|
|
|
7
7
|
type L2Block,
|
|
8
8
|
type L2BlockSource,
|
|
9
9
|
type ProcessedTx,
|
|
10
|
-
type ProverCoordination,
|
|
11
10
|
type Tx,
|
|
12
|
-
type TxHash,
|
|
13
11
|
} from '@aztec/circuit-types';
|
|
14
12
|
import { asyncPool } from '@aztec/foundation/async-pool';
|
|
15
13
|
import { createLogger } from '@aztec/foundation/log';
|
|
@@ -41,12 +39,12 @@ export class EpochProvingJob implements Traceable {
|
|
|
41
39
|
private dbProvider: ForkMerkleTreeOperations,
|
|
42
40
|
private epochNumber: bigint,
|
|
43
41
|
private blocks: L2Block[],
|
|
42
|
+
private txs: Tx[],
|
|
44
43
|
private prover: EpochProver,
|
|
45
44
|
private publicProcessorFactory: PublicProcessorFactory,
|
|
46
45
|
private publisher: L1Publisher,
|
|
47
46
|
private l2BlockSource: L2BlockSource,
|
|
48
47
|
private l1ToL2MessageSource: L1ToL2MessageSource,
|
|
49
|
-
private coordination: ProverCoordination,
|
|
50
48
|
private metrics: ProverNodeMetrics,
|
|
51
49
|
private config: { parallelBlockLimit: number } = { parallelBlockLimit: 32 },
|
|
52
50
|
private cleanUp: (job: EpochProvingJob) => Promise<void> = () => Promise.resolve(),
|
|
@@ -92,10 +90,9 @@ export class EpochProvingJob implements Traceable {
|
|
|
92
90
|
|
|
93
91
|
await asyncPool(this.config.parallelBlockLimit, this.blocks, async block => {
|
|
94
92
|
const globalVariables = block.header.globalVariables;
|
|
95
|
-
const txHashes = block.body.txEffects.map(tx => tx.txHash);
|
|
96
93
|
const txCount = block.body.numberOfTxsIncludingPadded;
|
|
94
|
+
const txs = this.getTxs(block);
|
|
97
95
|
const l1ToL2Messages = await this.getL1ToL2Messages(block);
|
|
98
|
-
const txs = await this.getTxs(txHashes, block.number);
|
|
99
96
|
const previousHeader = await this.getBlockHeader(block.number - 1);
|
|
100
97
|
|
|
101
98
|
this.log.verbose(`Starting processing block ${block.number}`, {
|
|
@@ -162,17 +159,9 @@ export class EpochProvingJob implements Traceable {
|
|
|
162
159
|
return this.l2BlockSource.getBlockHeader(blockNumber);
|
|
163
160
|
}
|
|
164
161
|
|
|
165
|
-
private
|
|
166
|
-
const
|
|
167
|
-
|
|
168
|
-
);
|
|
169
|
-
const notFound = txs.filter(([_, tx]) => !tx);
|
|
170
|
-
if (notFound.length) {
|
|
171
|
-
throw new Error(
|
|
172
|
-
`Txs not found for block ${blockNumber}: ${notFound.map(([txHash]) => txHash.toString()).join(', ')}`,
|
|
173
|
-
);
|
|
174
|
-
}
|
|
175
|
-
return txs.map(([_, tx]) => tx!);
|
|
162
|
+
private getTxs(block: L2Block): Tx[] {
|
|
163
|
+
const txHashes = block.body.txEffects.map(tx => tx.txHash.toBigInt());
|
|
164
|
+
return this.txs.filter(tx => txHashes.includes(tx.getTxHash().toBigInt()));
|
|
176
165
|
}
|
|
177
166
|
|
|
178
167
|
private getL1ToL2Messages(block: L2Block) {
|
package/src/prover-node.ts
CHANGED
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
type ProverCoordination,
|
|
11
11
|
type ProverNodeApi,
|
|
12
12
|
type Service,
|
|
13
|
+
type Tx,
|
|
13
14
|
type WorldStateSynchronizer,
|
|
14
15
|
tryStop,
|
|
15
16
|
} from '@aztec/circuit-types';
|
|
@@ -49,6 +50,7 @@ export class ProverNode implements ClaimsMonitorHandler, EpochMonitorHandler, Pr
|
|
|
49
50
|
|
|
50
51
|
private latestEpochWeAreProving: bigint | undefined;
|
|
51
52
|
private jobs: Map<string, EpochProvingJob> = new Map();
|
|
53
|
+
private cachedEpochData: { epochNumber: bigint; blocks: L2Block[]; txs: Tx[] } | undefined = undefined;
|
|
52
54
|
private options: ProverNodeOptions;
|
|
53
55
|
private metrics: ProverNodeMetrics;
|
|
54
56
|
|
|
@@ -139,13 +141,12 @@ export class ProverNode implements ClaimsMonitorHandler, EpochMonitorHandler, Pr
|
|
|
139
141
|
*/
|
|
140
142
|
async handleEpochCompleted(epochNumber: bigint): Promise<void> {
|
|
141
143
|
try {
|
|
142
|
-
//
|
|
143
|
-
const
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
return;
|
|
147
|
-
}
|
|
144
|
+
// Gather data for the epoch
|
|
145
|
+
const epochData = await this.gatherEpochData(epochNumber);
|
|
146
|
+
const { blocks } = epochData;
|
|
147
|
+
this.cachedEpochData = { epochNumber, ...epochData };
|
|
148
148
|
|
|
149
|
+
// Construct a quote for the epoch
|
|
149
150
|
const partialQuote = await this.quoteProvider.getQuote(Number(epochNumber), blocks);
|
|
150
151
|
if (!partialQuote) {
|
|
151
152
|
this.log.info(`No quote produced for epoch ${epochNumber}`);
|
|
@@ -256,10 +257,9 @@ export class ProverNode implements ClaimsMonitorHandler, EpochMonitorHandler, Pr
|
|
|
256
257
|
}
|
|
257
258
|
|
|
258
259
|
// Gather blocks for this epoch
|
|
259
|
-
const
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
}
|
|
260
|
+
const cachedEpochData = this.cachedEpochData?.epochNumber === epochNumber ? this.cachedEpochData : undefined;
|
|
261
|
+
const { blocks, txs } = cachedEpochData ?? (await this.gatherEpochData(epochNumber));
|
|
262
|
+
|
|
263
263
|
const fromBlock = blocks[0].number;
|
|
264
264
|
const toBlock = blocks.at(-1)!.number;
|
|
265
265
|
|
|
@@ -279,15 +279,51 @@ export class ProverNode implements ClaimsMonitorHandler, EpochMonitorHandler, Pr
|
|
|
279
279
|
return Promise.resolve();
|
|
280
280
|
};
|
|
281
281
|
|
|
282
|
-
const job = this.doCreateEpochProvingJob(epochNumber, blocks, publicProcessorFactory, cleanUp);
|
|
282
|
+
const job = this.doCreateEpochProvingJob(epochNumber, blocks, txs, publicProcessorFactory, cleanUp);
|
|
283
283
|
this.jobs.set(job.getId(), job);
|
|
284
284
|
return job;
|
|
285
285
|
}
|
|
286
286
|
|
|
287
|
+
@trackSpan('ProverNode.gatherEpochData', epochNumber => ({ [Attributes.EPOCH_NUMBER]: Number(epochNumber) }))
|
|
288
|
+
private async gatherEpochData(epochNumber: bigint) {
|
|
289
|
+
// Gather blocks for this epoch and their txs
|
|
290
|
+
const blocks = await this.gatherBlocks(epochNumber);
|
|
291
|
+
const txs = await this.gatherTxs(epochNumber, blocks);
|
|
292
|
+
|
|
293
|
+
return { blocks, txs };
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
private async gatherBlocks(epochNumber: bigint) {
|
|
297
|
+
const blocks = await this.l2BlockSource.getBlocksForEpoch(epochNumber);
|
|
298
|
+
if (blocks.length === 0) {
|
|
299
|
+
throw new Error(`No blocks found for epoch ${epochNumber}`);
|
|
300
|
+
}
|
|
301
|
+
return blocks;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
private async gatherTxs(epochNumber: bigint, blocks: L2Block[]) {
|
|
305
|
+
const txs = await Promise.all(
|
|
306
|
+
blocks.flatMap(block =>
|
|
307
|
+
block.body.txEffects
|
|
308
|
+
.map(tx => tx.txHash)
|
|
309
|
+
.map(txHash => this.coordination.getTxByHash(txHash).then(tx => [block.number, txHash, tx] as const)),
|
|
310
|
+
),
|
|
311
|
+
);
|
|
312
|
+
|
|
313
|
+
const notFound = txs.filter(([_blockNum, _txHash, tx]) => !tx);
|
|
314
|
+
if (notFound.length) {
|
|
315
|
+
const notFoundList = notFound.map(([blockNum, txHash]) => `${txHash.toString()} (block ${blockNum})`).join(', ');
|
|
316
|
+
throw new Error(`Txs not found for epoch ${epochNumber}: ${notFoundList}`);
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
return txs.map(([_blockNumber, _txHash, tx]) => tx!);
|
|
320
|
+
}
|
|
321
|
+
|
|
287
322
|
/** Extracted for testing purposes. */
|
|
288
323
|
protected doCreateEpochProvingJob(
|
|
289
324
|
epochNumber: bigint,
|
|
290
325
|
blocks: L2Block[],
|
|
326
|
+
txs: Tx[],
|
|
291
327
|
publicProcessorFactory: PublicProcessorFactory,
|
|
292
328
|
cleanUp: () => Promise<void>,
|
|
293
329
|
) {
|
|
@@ -295,12 +331,12 @@ export class ProverNode implements ClaimsMonitorHandler, EpochMonitorHandler, Pr
|
|
|
295
331
|
this.worldState,
|
|
296
332
|
epochNumber,
|
|
297
333
|
blocks,
|
|
334
|
+
txs,
|
|
298
335
|
this.prover.createEpochProver(),
|
|
299
336
|
publicProcessorFactory,
|
|
300
337
|
this.publisher,
|
|
301
338
|
this.l2BlockSource,
|
|
302
339
|
this.l1ToL2MessageSource,
|
|
303
|
-
this.coordination,
|
|
304
340
|
this.metrics,
|
|
305
341
|
{ parallelBlockLimit: this.options.maxParallelBlocksPerEpoch },
|
|
306
342
|
cleanUp,
|