@aztec/prover-node 0.67.1-devnet → 0.68.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/factory.d.ts.map +1 -1
- package/dest/factory.js +4 -1
- package/dest/job/epoch-proving-job.d.ts.map +1 -1
- package/dest/job/epoch-proving-job.js +7 -6
- package/dest/metrics.d.ts +3 -1
- package/dest/metrics.d.ts.map +1 -1
- package/dest/metrics.js +12 -2
- package/dest/prover-coordination/factory.d.ts +2 -0
- package/dest/prover-coordination/factory.d.ts.map +1 -1
- package/dest/prover-coordination/factory.js +3 -3
- package/package.json +20 -19
- package/src/factory.ts +4 -0
- package/src/job/epoch-proving-job.ts +6 -5
- package/src/metrics.ts +13 -1
- package/src/prover-coordination/factory.ts +4 -1
package/dest/factory.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAkB,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAkB,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAItF,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAO/D,OAAO,EAAE,KAAK,gBAAgB,EAA4B,MAAM,aAAa,CAAC;AAI9E,OAAO,EAAE,UAAU,EAA0B,MAAM,kBAAkB,CAAC;AAKtE,gDAAgD;AAChD,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,gBAAgB,GAAG,eAAe,EAC1C,IAAI,GAAE;IACJ,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mBAAmB,CAAC,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,MAAM,CAAC,EAAE,gBAAgB,CAAC;CACtB,uBA6DP"}
|
package/dest/factory.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { createArchiver } from '@aztec/archiver';
|
|
2
|
+
import { EpochCache } from '@aztec/epoch-cache';
|
|
2
3
|
import { createEthereumChain } from '@aztec/ethereum';
|
|
3
4
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
4
5
|
import { createLogger } from '@aztec/foundation/log';
|
|
@@ -30,12 +31,14 @@ export async function createProverNode(config, deps = {}) {
|
|
|
30
31
|
const prover = await createProverClient(config, worldStateSynchronizer, broker, telemetry);
|
|
31
32
|
// REFACTOR: Move publisher out of sequencer package and into an L1-related package
|
|
32
33
|
const publisher = deps.publisher ?? new L1Publisher(config, telemetry);
|
|
34
|
+
const epochCache = await EpochCache.create(config.l1Contracts.rollupAddress, config);
|
|
33
35
|
// If config.p2pEnabled is true, createProverCoordination will create a p2p client where quotes will be shared and tx's requested
|
|
34
36
|
// If config.p2pEnabled is false, createProverCoordination request information from the AztecNode
|
|
35
37
|
const proverCoordination = await createProverCoordination(config, {
|
|
36
38
|
aztecNodeTxProvider: deps.aztecNodeTxProvider,
|
|
37
39
|
worldStateSynchronizer,
|
|
38
40
|
archiver,
|
|
41
|
+
epochCache,
|
|
39
42
|
telemetry,
|
|
40
43
|
});
|
|
41
44
|
const quoteProvider = createQuoteProvider(config);
|
|
@@ -67,4 +70,4 @@ function createQuoteSigner(config) {
|
|
|
67
70
|
const privateKey = config.publisherPrivateKey;
|
|
68
71
|
return QuoteSigner.new(Buffer32.fromString(privateKey), rollupContract);
|
|
69
72
|
}
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQWUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsVUFBVSxFQUEwQixNQUFNLGtCQUFrQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxpQkFB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
|
|
@@ -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,kBAAkB,EAGxB,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,MAAM;IACd,OAAO,CAAC,sBAAsB;IAC9B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,YAAY;IACpB,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,MAAM,EAAE,WAAW,EACnB,sBAAsB,EAAE,sBAAsB,EAC9C,SAAS,EAAE,WAAW,EACtB,aAAa,EAAE,aAAa,EAC5B,mBAAmB,EAAE,mBAAmB,EACxC,YAAY,EAAE,kBAAkB,EAChC,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;
|
|
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,kBAAkB,EAGxB,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,MAAM;IACd,OAAO,CAAC,sBAAsB;IAC9B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,YAAY;IACpB,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,MAAM,EAAE,WAAW,EACnB,sBAAsB,EAAE,sBAAsB,EAC9C,SAAS,EAAE,WAAW,EACtB,aAAa,EAAE,aAAa,EAC5B,mBAAmB,EAAE,mBAAmB,EACxC,YAAY,EAAE,kBAAkB,EAChC,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;IA8EH,IAAI;IAQjB,OAAO,CAAC,cAAc;YAOR,MAAM;IAapB,OAAO,CAAC,iBAAiB;YAIX,UAAU;CAezB;AAED,OAAO,EAAE,KAAK,oBAAoB,EAAE,CAAC"}
|
|
@@ -45,12 +45,13 @@ let EpochProvingJob = (() => {
|
|
|
45
45
|
*/
|
|
46
46
|
async run() {
|
|
47
47
|
const epochNumber = Number(this.epochNumber);
|
|
48
|
-
const
|
|
48
|
+
const epochSizeBlocks = this.blocks.length;
|
|
49
|
+
const epochSizeTxs = this.blocks.reduce((total, current) => total + current.body.numberOfTxsIncludingPadded, 0);
|
|
49
50
|
const [fromBlock, toBlock] = [this.blocks[0].number, this.blocks.at(-1).number];
|
|
50
51
|
this.log.info(`Starting epoch ${epochNumber} proving job with blocks ${fromBlock} to ${toBlock}`, {
|
|
51
52
|
fromBlock,
|
|
52
53
|
toBlock,
|
|
53
|
-
|
|
54
|
+
epochSizeBlocks,
|
|
54
55
|
epochNumber,
|
|
55
56
|
uuid: this.uuid,
|
|
56
57
|
});
|
|
@@ -59,7 +60,7 @@ let EpochProvingJob = (() => {
|
|
|
59
60
|
const { promise, resolve } = promiseWithResolvers();
|
|
60
61
|
this.runPromise = promise;
|
|
61
62
|
try {
|
|
62
|
-
this.prover.startNewEpoch(epochNumber, fromBlock,
|
|
63
|
+
this.prover.startNewEpoch(epochNumber, fromBlock, epochSizeBlocks);
|
|
63
64
|
await asyncPool(this.config.parallelBlockLimit, this.blocks, async (block) => {
|
|
64
65
|
const globalVariables = block.header.globalVariables;
|
|
65
66
|
const txHashes = block.body.txEffects.map(tx => tx.txHash);
|
|
@@ -82,7 +83,7 @@ let EpochProvingJob = (() => {
|
|
|
82
83
|
await this.prover.startNewBlock(globalVariables, l1ToL2Messages);
|
|
83
84
|
// Process public fns
|
|
84
85
|
const db = await this.dbProvider.fork(block.number - 1);
|
|
85
|
-
const publicProcessor = this.publicProcessorFactory.create(db, previousHeader, globalVariables);
|
|
86
|
+
const publicProcessor = this.publicProcessorFactory.create(db, previousHeader, globalVariables, true);
|
|
86
87
|
const processed = await this.processTxs(publicProcessor, txs, txCount);
|
|
87
88
|
await this.prover.addTxs(processed);
|
|
88
89
|
await db.close();
|
|
@@ -101,7 +102,7 @@ let EpochProvingJob = (() => {
|
|
|
101
102
|
await this.publisher.submitEpochProof({ fromBlock, toBlock, epochNumber, publicInputs, proof });
|
|
102
103
|
this.log.info(`Submitted proof for epoch`, { epochNumber, uuid: this.uuid });
|
|
103
104
|
this.state = 'completed';
|
|
104
|
-
this.metrics.recordProvingJob(timer);
|
|
105
|
+
this.metrics.recordProvingJob(timer, epochSizeBlocks, epochSizeTxs);
|
|
105
106
|
}
|
|
106
107
|
catch (err) {
|
|
107
108
|
this.log.error(`Error running epoch ${epochNumber} prover job`, err, { uuid: this.uuid, epochNumber });
|
|
@@ -155,4 +156,4 @@ let EpochProvingJob = (() => {
|
|
|
155
156
|
_a;
|
|
156
157
|
})();
|
|
157
158
|
export { EpochProvingJob };
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXBvY2gtcHJvdmluZy1qb2IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvam9iL2Vwb2NoLXByb3Zpbmctam9iLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEdBV2pCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHaEQsT0FBTyxFQUFFLFVBQVUsRUFBK0IsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFN0YsT0FBTyxLQUFLLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFJdEM7Ozs7R0FJRztJQUNVLGVBQWU7Ozs7c0JBQWYsZUFBZTtZQVMxQixZQUNVLFVBQW9DLEVBQ3BDLFdBQW1CLEVBQ25CLE1BQWlCLEVBQ2pCLE1BQW1CLEVBQ25CLHNCQUE4QyxFQUM5QyxTQUFzQixFQUN0QixhQUE0QixFQUM1QixtQkFBd0MsRUFDeEMsWUFBZ0MsRUFDaEMsT0FBMEIsRUFDMUIsU0FBeUMsRUFBRSxrQkFBa0IsRUFBRSxFQUFFLEVBQUUsRUFDbkUsVUFBbUQsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTtnQkFYMUUsZUFBVSxJQVZULG1EQUFlLEVBVWhCLFVBQVUsRUFBMEI7Z0JBQ3BDLGdCQUFXLEdBQVgsV0FBVyxDQUFRO2dCQUNuQixXQUFNLEdBQU4sTUFBTSxDQUFXO2dCQUNqQixXQUFNLEdBQU4sTUFBTSxDQUFhO2dCQUNuQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO2dCQUM5QyxjQUFTLEdBQVQsU0FBUyxDQUFhO2dCQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FB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
|
package/dest/metrics.d.ts
CHANGED
|
@@ -3,7 +3,9 @@ import { type Histogram, type TelemetryClient } from '@aztec/telemetry-client';
|
|
|
3
3
|
export declare class ProverNodeMetrics {
|
|
4
4
|
readonly client: TelemetryClient;
|
|
5
5
|
provingJobDuration: Histogram;
|
|
6
|
+
provingJobBlocks: Histogram;
|
|
7
|
+
provingJobTransactions: Histogram;
|
|
6
8
|
constructor(client: TelemetryClient, name?: string);
|
|
7
|
-
recordProvingJob(timerOrMs: Timer | number): void;
|
|
9
|
+
recordProvingJob(timerOrMs: Timer | number, numBlocks: number, numTxs: number): void;
|
|
8
10
|
}
|
|
9
11
|
//# sourceMappingURL=metrics.d.ts.map
|
package/dest/metrics.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,KAAK,SAAS,EAAW,KAAK,eAAe,EAAa,MAAM,yBAAyB,CAAC;AAEnG,qBAAa,iBAAiB;
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,KAAK,SAAS,EAAW,KAAK,eAAe,EAAa,MAAM,yBAAyB,CAAC;AAEnG,qBAAa,iBAAiB;aAKA,MAAM,EAAE,eAAe;IAJnD,kBAAkB,EAAE,SAAS,CAAC;IAC9B,gBAAgB,EAAE,SAAS,CAAC;IAC5B,sBAAsB,EAAE,SAAS,CAAC;gBAEN,MAAM,EAAE,eAAe,EAAE,IAAI,SAAe;IAiBjE,gBAAgB,CAAC,SAAS,EAAE,KAAK,GAAG,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAMrF"}
|
package/dest/metrics.js
CHANGED
|
@@ -8,10 +8,20 @@ export class ProverNodeMetrics {
|
|
|
8
8
|
unit: 'ms',
|
|
9
9
|
valueType: ValueType.INT,
|
|
10
10
|
});
|
|
11
|
+
this.provingJobBlocks = meter.createHistogram(Metrics.PROVER_NODE_JOB_BLOCKS, {
|
|
12
|
+
description: 'Number of blocks in a proven epoch',
|
|
13
|
+
valueType: ValueType.INT,
|
|
14
|
+
});
|
|
15
|
+
this.provingJobTransactions = meter.createHistogram(Metrics.PROVER_NODE_JOB_TRANSACTIONS, {
|
|
16
|
+
description: 'Number of transactions in a proven epoch',
|
|
17
|
+
valueType: ValueType.INT,
|
|
18
|
+
});
|
|
11
19
|
}
|
|
12
|
-
recordProvingJob(timerOrMs) {
|
|
20
|
+
recordProvingJob(timerOrMs, numBlocks, numTxs) {
|
|
13
21
|
const ms = Math.ceil(typeof timerOrMs === 'number' ? timerOrMs : timerOrMs.ms());
|
|
14
22
|
this.provingJobDuration.record(ms);
|
|
23
|
+
this.provingJobBlocks.record(Math.floor(numBlocks));
|
|
24
|
+
this.provingJobTransactions.record(Math.floor(numTxs));
|
|
15
25
|
}
|
|
16
26
|
}
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0cmljcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXRyaWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBa0IsT0FBTyxFQUF3QixTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRyxNQUFNLE9BQU8saUJBQWlCO0lBSzVCLFlBQTRCLE1BQXVCLEVBQUUsSUFBSSxHQUFHLFlBQVk7UUFBNUMsV0FBTSxHQUFOLE1BQU0sQ0FBaUI7UUFDakQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLEVBQUU7WUFDaEYsV0FBVyxFQUFFLHlCQUF5QjtZQUN0QyxJQUFJLEVBQUUsSUFBSTtZQUNWLFNBQVMsRUFBRSxTQUFTLENBQUMsR0FBRztTQUN6QixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUU7WUFDNUUsV0FBVyxFQUFFLG9DQUFvQztZQUNqRCxTQUFTLEVBQUUsU0FBUyxDQUFDLEdBQUc7U0FDekIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLHNCQUFzQixHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLDRCQUE0QixFQUFFO1lBQ3hGLFdBQVcsRUFBRSwwQ0FBMEM7WUFDdkQsU0FBUyxFQUFFLFNBQVMsQ0FBQyxHQUFHO1NBQ3pCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxTQUF5QixFQUFFLFNBQWlCLEVBQUUsTUFBYztRQUNsRixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sU0FBUyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7Q0FDRiJ9
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type ArchiveSource, type Archiver } from '@aztec/archiver';
|
|
2
2
|
import { type ProverCoordination, type WorldStateSynchronizer } from '@aztec/circuit-types';
|
|
3
|
+
import { type EpochCache } from '@aztec/epoch-cache';
|
|
3
4
|
import { type DataStoreConfig } from '@aztec/kv-store/config';
|
|
4
5
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
5
6
|
import { type ProverNodeConfig } from '../config.js';
|
|
@@ -8,6 +9,7 @@ type ProverCoordinationDeps = {
|
|
|
8
9
|
worldStateSynchronizer?: WorldStateSynchronizer;
|
|
9
10
|
archiver?: Archiver | ArchiveSource;
|
|
10
11
|
telemetry?: TelemetryClient;
|
|
12
|
+
epochCache?: EpochCache;
|
|
11
13
|
};
|
|
12
14
|
/**
|
|
13
15
|
* Creates a prover coordination service.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/prover-coordination/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAE5B,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/prover-coordination/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAE5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGrD,KAAK,sBAAsB,GAAG;IAC5B,mBAAmB,CAAC,EAAE,kBAAkB,CAAC;IACzC,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD,QAAQ,CAAC,EAAE,QAAQ,GAAG,aAAa,CAAC;IACpC,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,gBAAgB,GAAG,eAAe,EAC1C,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CAoC7B"}
|
|
@@ -16,11 +16,11 @@ export async function createProverCoordination(config, deps) {
|
|
|
16
16
|
}
|
|
17
17
|
if (config.p2pEnabled) {
|
|
18
18
|
log.info('Using prover coordination via p2p');
|
|
19
|
-
if (!deps.archiver || !deps.worldStateSynchronizer || !deps.telemetry) {
|
|
19
|
+
if (!deps.archiver || !deps.worldStateSynchronizer || !deps.telemetry || !deps.epochCache) {
|
|
20
20
|
throw new Error('Missing dependencies for p2p prover coordination');
|
|
21
21
|
}
|
|
22
22
|
const proofVerifier = config.realProofs ? await BBCircuitVerifier.new(config) : new TestCircuitVerifier();
|
|
23
|
-
const p2pClient = await createP2PClient(P2PClientType.Prover, config, deps.archiver, proofVerifier, deps.worldStateSynchronizer, deps.telemetry);
|
|
23
|
+
const p2pClient = await createP2PClient(P2PClientType.Prover, config, deps.archiver, proofVerifier, deps.worldStateSynchronizer, deps.epochCache, deps.telemetry);
|
|
24
24
|
await p2pClient.start();
|
|
25
25
|
return p2pClient;
|
|
26
26
|
}
|
|
@@ -32,4 +32,4 @@ export async function createProverCoordination(config, deps) {
|
|
|
32
32
|
throw new Error(`Aztec Node URL for Tx Provider is not set.`);
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92ZXItY29vcmRpbmF0aW9uL2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUUsT0FBTyxFQUNMLGFBQWEsRUFHYixxQkFBcUIsR0FDdEIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQWM3Qzs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsd0JBQXdCLENBQzVDLE1BQTBDLEVBQzFDLElBQTRCO0lBRTVCLE1BQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBRTVELElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDN0IsR0FBRyxDQUFDLElBQUksQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1FBQ3JELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN0QixHQUFHLENBQUMsSUFBSSxDQUFDLG1DQUFtQyxDQUFDLENBQUM7UUFFOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzFGLE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWtELENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksbUJBQW1CLEVBQUUsQ0FBQztRQUMxRyxNQUFNLFNBQVMsR0FBRyxNQUFNLGVBQWUsQ0FDckMsYUFBYSxDQUFDLE1BQU0sRUFDcEIsTUFBTSxFQUNOLElBQUksQ0FBQyxRQUFRLEVBQ2IsYUFBYSxFQUNiLElBQUksQ0FBQyxzQkFBc0IsRUFDM0IsSUFBSSxDQUFDLFVBQVUsRUFDZixJQUFJLENBQUMsU0FBUyxDQUNmLENBQUM7UUFDRixNQUFNLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUV4QixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUNyQyxHQUFHLENBQUMsSUFBSSxDQUFDLHdDQUF3QyxDQUFDLENBQUM7UUFDbkQsT0FBTyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUNqRSxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0FBQ0gsQ0FBQyJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/prover-node",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.68.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"formatting": "run -T prettier --check ./src && run -T eslint ./src",
|
|
17
17
|
"formatting:fix": "run -T eslint --fix ./src && run -T prettier -w ./src",
|
|
18
18
|
"bb": "node --no-warnings ./dest/bb/index.js",
|
|
19
|
-
"test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests"
|
|
19
|
+
"test": "HARDWARE_CONCURRENCY=16 RAYON_NUM_THREADS=4 NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=8"
|
|
20
20
|
},
|
|
21
21
|
"jest": {
|
|
22
22
|
"moduleNameMapper": {
|
|
@@ -45,9 +45,9 @@
|
|
|
45
45
|
],
|
|
46
46
|
"reporters": [
|
|
47
47
|
[
|
|
48
|
-
"
|
|
48
|
+
"jest-silent-reporter",
|
|
49
49
|
{
|
|
50
|
-
"
|
|
50
|
+
"useDots": true
|
|
51
51
|
}
|
|
52
52
|
]
|
|
53
53
|
],
|
|
@@ -57,21 +57,22 @@
|
|
|
57
57
|
]
|
|
58
58
|
},
|
|
59
59
|
"dependencies": {
|
|
60
|
-
"@aztec/archiver": "0.
|
|
61
|
-
"@aztec/bb-prover": "0.
|
|
62
|
-
"@aztec/circuit-types": "0.
|
|
63
|
-
"@aztec/circuits.js": "0.
|
|
64
|
-
"@aztec/
|
|
65
|
-
"@aztec/
|
|
66
|
-
"@aztec/
|
|
67
|
-
"@aztec/
|
|
68
|
-
"@aztec/
|
|
69
|
-
"@aztec/
|
|
70
|
-
"@aztec/
|
|
71
|
-
"@aztec/
|
|
72
|
-
"@aztec/
|
|
73
|
-
"@aztec/
|
|
74
|
-
"@aztec/
|
|
60
|
+
"@aztec/archiver": "0.68.0",
|
|
61
|
+
"@aztec/bb-prover": "0.68.0",
|
|
62
|
+
"@aztec/circuit-types": "0.68.0",
|
|
63
|
+
"@aztec/circuits.js": "0.68.0",
|
|
64
|
+
"@aztec/epoch-cache": "0.68.0",
|
|
65
|
+
"@aztec/ethereum": "0.68.0",
|
|
66
|
+
"@aztec/foundation": "0.68.0",
|
|
67
|
+
"@aztec/kv-store": "0.68.0",
|
|
68
|
+
"@aztec/l1-artifacts": "0.68.0",
|
|
69
|
+
"@aztec/p2p": "0.68.0",
|
|
70
|
+
"@aztec/prover-client": "0.68.0",
|
|
71
|
+
"@aztec/sequencer-client": "0.68.0",
|
|
72
|
+
"@aztec/simulator": "0.68.0",
|
|
73
|
+
"@aztec/telemetry-client": "0.68.0",
|
|
74
|
+
"@aztec/types": "0.68.0",
|
|
75
|
+
"@aztec/world-state": "0.68.0",
|
|
75
76
|
"source-map-support": "^0.5.21",
|
|
76
77
|
"tslib": "^2.4.0",
|
|
77
78
|
"viem": "^2.7.15"
|
package/src/factory.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type Archiver, createArchiver } from '@aztec/archiver';
|
|
2
2
|
import { type ProverCoordination, type ProvingJobBroker } from '@aztec/circuit-types';
|
|
3
|
+
import { EpochCache } from '@aztec/epoch-cache';
|
|
3
4
|
import { createEthereumChain } from '@aztec/ethereum';
|
|
4
5
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
5
6
|
import { type Logger, createLogger } from '@aztec/foundation/log';
|
|
@@ -51,12 +52,15 @@ export async function createProverNode(
|
|
|
51
52
|
// REFACTOR: Move publisher out of sequencer package and into an L1-related package
|
|
52
53
|
const publisher = deps.publisher ?? new L1Publisher(config, telemetry);
|
|
53
54
|
|
|
55
|
+
const epochCache = await EpochCache.create(config.l1Contracts.rollupAddress, config);
|
|
56
|
+
|
|
54
57
|
// If config.p2pEnabled is true, createProverCoordination will create a p2p client where quotes will be shared and tx's requested
|
|
55
58
|
// If config.p2pEnabled is false, createProverCoordination request information from the AztecNode
|
|
56
59
|
const proverCoordination = await createProverCoordination(config, {
|
|
57
60
|
aztecNodeTxProvider: deps.aztecNodeTxProvider,
|
|
58
61
|
worldStateSynchronizer,
|
|
59
62
|
archiver,
|
|
63
|
+
epochCache,
|
|
60
64
|
telemetry,
|
|
61
65
|
});
|
|
62
66
|
|
|
@@ -71,12 +71,13 @@ export class EpochProvingJob implements Traceable {
|
|
|
71
71
|
})
|
|
72
72
|
public async run() {
|
|
73
73
|
const epochNumber = Number(this.epochNumber);
|
|
74
|
-
const
|
|
74
|
+
const epochSizeBlocks = this.blocks.length;
|
|
75
|
+
const epochSizeTxs = this.blocks.reduce((total, current) => total + current.body.numberOfTxsIncludingPadded, 0);
|
|
75
76
|
const [fromBlock, toBlock] = [this.blocks[0].number, this.blocks.at(-1)!.number];
|
|
76
77
|
this.log.info(`Starting epoch ${epochNumber} proving job with blocks ${fromBlock} to ${toBlock}`, {
|
|
77
78
|
fromBlock,
|
|
78
79
|
toBlock,
|
|
79
|
-
|
|
80
|
+
epochSizeBlocks,
|
|
80
81
|
epochNumber,
|
|
81
82
|
uuid: this.uuid,
|
|
82
83
|
});
|
|
@@ -87,7 +88,7 @@ export class EpochProvingJob implements Traceable {
|
|
|
87
88
|
this.runPromise = promise;
|
|
88
89
|
|
|
89
90
|
try {
|
|
90
|
-
this.prover.startNewEpoch(epochNumber, fromBlock,
|
|
91
|
+
this.prover.startNewEpoch(epochNumber, fromBlock, epochSizeBlocks);
|
|
91
92
|
|
|
92
93
|
await asyncPool(this.config.parallelBlockLimit, this.blocks, async block => {
|
|
93
94
|
const globalVariables = block.header.globalVariables;
|
|
@@ -113,7 +114,7 @@ export class EpochProvingJob implements Traceable {
|
|
|
113
114
|
|
|
114
115
|
// Process public fns
|
|
115
116
|
const db = await this.dbProvider.fork(block.number - 1);
|
|
116
|
-
const publicProcessor = this.publicProcessorFactory.create(db, previousHeader, globalVariables);
|
|
117
|
+
const publicProcessor = this.publicProcessorFactory.create(db, previousHeader, globalVariables, true);
|
|
117
118
|
const processed = await this.processTxs(publicProcessor, txs, txCount);
|
|
118
119
|
await this.prover.addTxs(processed);
|
|
119
120
|
await db.close();
|
|
@@ -136,7 +137,7 @@ export class EpochProvingJob implements Traceable {
|
|
|
136
137
|
this.log.info(`Submitted proof for epoch`, { epochNumber, uuid: this.uuid });
|
|
137
138
|
|
|
138
139
|
this.state = 'completed';
|
|
139
|
-
this.metrics.recordProvingJob(timer);
|
|
140
|
+
this.metrics.recordProvingJob(timer, epochSizeBlocks, epochSizeTxs);
|
|
140
141
|
} catch (err) {
|
|
141
142
|
this.log.error(`Error running epoch ${epochNumber} prover job`, err, { uuid: this.uuid, epochNumber });
|
|
142
143
|
this.state = 'failed';
|
package/src/metrics.ts
CHANGED
|
@@ -3,6 +3,8 @@ import { type Histogram, Metrics, type TelemetryClient, ValueType } from '@aztec
|
|
|
3
3
|
|
|
4
4
|
export class ProverNodeMetrics {
|
|
5
5
|
provingJobDuration: Histogram;
|
|
6
|
+
provingJobBlocks: Histogram;
|
|
7
|
+
provingJobTransactions: Histogram;
|
|
6
8
|
|
|
7
9
|
constructor(public readonly client: TelemetryClient, name = 'ProverNode') {
|
|
8
10
|
const meter = client.getMeter(name);
|
|
@@ -11,10 +13,20 @@ export class ProverNodeMetrics {
|
|
|
11
13
|
unit: 'ms',
|
|
12
14
|
valueType: ValueType.INT,
|
|
13
15
|
});
|
|
16
|
+
this.provingJobBlocks = meter.createHistogram(Metrics.PROVER_NODE_JOB_BLOCKS, {
|
|
17
|
+
description: 'Number of blocks in a proven epoch',
|
|
18
|
+
valueType: ValueType.INT,
|
|
19
|
+
});
|
|
20
|
+
this.provingJobTransactions = meter.createHistogram(Metrics.PROVER_NODE_JOB_TRANSACTIONS, {
|
|
21
|
+
description: 'Number of transactions in a proven epoch',
|
|
22
|
+
valueType: ValueType.INT,
|
|
23
|
+
});
|
|
14
24
|
}
|
|
15
25
|
|
|
16
|
-
public recordProvingJob(timerOrMs: Timer | number) {
|
|
26
|
+
public recordProvingJob(timerOrMs: Timer | number, numBlocks: number, numTxs: number) {
|
|
17
27
|
const ms = Math.ceil(typeof timerOrMs === 'number' ? timerOrMs : timerOrMs.ms());
|
|
18
28
|
this.provingJobDuration.record(ms);
|
|
29
|
+
this.provingJobBlocks.record(Math.floor(numBlocks));
|
|
30
|
+
this.provingJobTransactions.record(Math.floor(numTxs));
|
|
19
31
|
}
|
|
20
32
|
}
|
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
type WorldStateSynchronizer,
|
|
7
7
|
createAztecNodeClient,
|
|
8
8
|
} from '@aztec/circuit-types';
|
|
9
|
+
import { type EpochCache } from '@aztec/epoch-cache';
|
|
9
10
|
import { createLogger } from '@aztec/foundation/log';
|
|
10
11
|
import { type DataStoreConfig } from '@aztec/kv-store/config';
|
|
11
12
|
import { createP2PClient } from '@aztec/p2p';
|
|
@@ -19,6 +20,7 @@ type ProverCoordinationDeps = {
|
|
|
19
20
|
worldStateSynchronizer?: WorldStateSynchronizer;
|
|
20
21
|
archiver?: Archiver | ArchiveSource;
|
|
21
22
|
telemetry?: TelemetryClient;
|
|
23
|
+
epochCache?: EpochCache;
|
|
22
24
|
};
|
|
23
25
|
|
|
24
26
|
/**
|
|
@@ -41,7 +43,7 @@ export async function createProverCoordination(
|
|
|
41
43
|
if (config.p2pEnabled) {
|
|
42
44
|
log.info('Using prover coordination via p2p');
|
|
43
45
|
|
|
44
|
-
if (!deps.archiver || !deps.worldStateSynchronizer || !deps.telemetry) {
|
|
46
|
+
if (!deps.archiver || !deps.worldStateSynchronizer || !deps.telemetry || !deps.epochCache) {
|
|
45
47
|
throw new Error('Missing dependencies for p2p prover coordination');
|
|
46
48
|
}
|
|
47
49
|
|
|
@@ -52,6 +54,7 @@ export async function createProverCoordination(
|
|
|
52
54
|
deps.archiver,
|
|
53
55
|
proofVerifier,
|
|
54
56
|
deps.worldStateSynchronizer,
|
|
57
|
+
deps.epochCache,
|
|
55
58
|
deps.telemetry,
|
|
56
59
|
);
|
|
57
60
|
await p2pClient.start();
|