@aztec/prover-node 0.0.1-commit.b655e406 → 0.0.1-commit.c7c42ec

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.
Files changed (46) hide show
  1. package/dest/actions/download-epoch-proving-job.d.ts +4 -4
  2. package/dest/actions/index.d.ts +1 -1
  3. package/dest/actions/rerun-epoch-proving-job.d.ts +2 -2
  4. package/dest/actions/upload-epoch-proof-failure.d.ts +1 -1
  5. package/dest/bin/run-failed-epoch.d.ts +1 -1
  6. package/dest/config.d.ts +5 -4
  7. package/dest/config.d.ts.map +1 -1
  8. package/dest/config.js +4 -3
  9. package/dest/factory.d.ts +4 -4
  10. package/dest/factory.d.ts.map +1 -1
  11. package/dest/factory.js +11 -7
  12. package/dest/index.d.ts +1 -1
  13. package/dest/job/epoch-proving-job-data.d.ts +8 -6
  14. package/dest/job/epoch-proving-job-data.d.ts.map +1 -1
  15. package/dest/job/epoch-proving-job-data.js +25 -18
  16. package/dest/job/epoch-proving-job.d.ts +5 -12
  17. package/dest/job/epoch-proving-job.d.ts.map +1 -1
  18. package/dest/job/epoch-proving-job.js +93 -83
  19. package/dest/metrics.d.ts +4 -3
  20. package/dest/metrics.d.ts.map +1 -1
  21. package/dest/metrics.js +8 -2
  22. package/dest/monitors/epoch-monitor.d.ts +3 -2
  23. package/dest/monitors/epoch-monitor.d.ts.map +1 -1
  24. package/dest/monitors/epoch-monitor.js +2 -1
  25. package/dest/monitors/index.d.ts +1 -1
  26. package/dest/prover-node-publisher.d.ts +9 -7
  27. package/dest/prover-node-publisher.d.ts.map +1 -1
  28. package/dest/prover-node-publisher.js +43 -37
  29. package/dest/prover-node.d.ts +8 -7
  30. package/dest/prover-node.d.ts.map +1 -1
  31. package/dest/prover-node.js +35 -32
  32. package/dest/prover-publisher-factory.d.ts +4 -2
  33. package/dest/prover-publisher-factory.d.ts.map +1 -1
  34. package/dest/test/index.d.ts +1 -1
  35. package/dest/test/index.d.ts.map +1 -1
  36. package/package.json +26 -25
  37. package/src/bin/run-failed-epoch.ts +1 -1
  38. package/src/config.ts +6 -4
  39. package/src/factory.ts +13 -8
  40. package/src/job/epoch-proving-job-data.ts +31 -25
  41. package/src/job/epoch-proving-job.ts +107 -100
  42. package/src/metrics.ts +15 -3
  43. package/src/monitors/epoch-monitor.ts +4 -3
  44. package/src/prover-node-publisher.ts +62 -52
  45. package/src/prover-node.ts +47 -43
  46. package/src/prover-publisher-factory.ts +3 -1
@@ -1,4 +1,5 @@
1
- import type { RollupContract } from '@aztec/ethereum';
1
+ import type { RollupContract } from '@aztec/ethereum/contracts';
2
+ import { EpochNumber } from '@aztec/foundation/branded-types';
2
3
  import type { DataStoreConfig } from '@aztec/kv-store/config';
3
4
  import type { P2PClient } from '@aztec/p2p';
4
5
  import { PublicProcessorFactory } from '@aztec/simulator/server';
@@ -50,7 +51,7 @@ export declare class ProverNode implements EpochMonitorHandler, ProverNodeApi, T
50
51
  * @param epochNumber - The epoch number that was just completed.
51
52
  * @returns false if there is an error, true otherwise
52
53
  */
53
- handleEpochReadyToProve(epochNumber: bigint): Promise<boolean>;
54
+ handleEpochReadyToProve(epochNumber: EpochNumber): Promise<boolean>;
54
55
  /**
55
56
  * Starts the prover node so it periodically checks for unproven epochs in the unfinalized chain from L1 and
56
57
  * starts proving jobs for them.
@@ -67,7 +68,7 @@ export declare class ProverNode implements EpochMonitorHandler, ProverNodeApi, T
67
68
  /**
68
69
  * Starts a proving process and returns immediately.
69
70
  */
70
- startProof(epochNumber: number | bigint): Promise<void>;
71
+ startProof(epochNumber: EpochNumber): Promise<void>;
71
72
  private runJob;
72
73
  protected tryUploadEpochFailure(job: EpochProvingJob): Promise<string | undefined>;
73
74
  /**
@@ -80,9 +81,9 @@ export declare class ProverNode implements EpochMonitorHandler, ProverNodeApi, T
80
81
  getJobs(): Promise<{
81
82
  uuid: string;
82
83
  status: EpochProvingJobState;
83
- epochNumber: number;
84
+ epochNumber: EpochNumber;
84
85
  }[]>;
85
- protected getActiveJobsForEpoch(epochBigInt: bigint): Promise<{
86
+ protected getActiveJobsForEpoch(epochNumber: EpochNumber): Promise<{
86
87
  uuid: string;
87
88
  status: EpochProvingJobState;
88
89
  }[]>;
@@ -90,7 +91,7 @@ export declare class ProverNode implements EpochMonitorHandler, ProverNodeApi, T
90
91
  private createProvingJob;
91
92
  private getL1Constants;
92
93
  private gatherEpochData;
93
- private gatherBlocks;
94
+ private gatherCheckpoints;
94
95
  private gatherTxs;
95
96
  private gatherMessages;
96
97
  private gatherPreviousBlockHeader;
@@ -103,4 +104,4 @@ export declare class ProverNode implements EpochMonitorHandler, ProverNodeApi, T
103
104
  private validateConfig;
104
105
  }
105
106
  export {};
106
- //# sourceMappingURL=prover-node.d.ts.map
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmVyLW5vZGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm92ZXItbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQWlDLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBTTdGLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV6RCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWpFLE9BQU8sRUFDTCxLQUFLLGtCQUFrQixFQUV2QixLQUFLLGFBQWEsRUFDbEIsS0FBSyxPQUFPLEVBQ1osS0FBSyxvQkFBb0IsRUFDekIsS0FBSyxzQkFBc0IsRUFFNUIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25FLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXZELE9BQU8sRUFFTCxTQUFTLEVBQ1QsS0FBSyxlQUFlLEVBQ3BCLEtBQUssU0FBUyxFQUNkLEtBQUssTUFBTSxFQUdaLE1BQU0seUJBQXlCLENBQUM7QUFHakMsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUQsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRSxP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
@@ -1 +1 @@
1
- {"version":3,"file":"prover-node.d.ts","sourceRoot":"","sources":["../src/prover-node.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAMtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAW,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EACL,KAAK,kBAAkB,EAEvB,KAAK,aAAa,EAClB,KAAK,OAAO,EACZ,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAE5B,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAEL,SAAS,EACT,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAExF,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAE5E,KAAK,iBAAiB,GAAG,wBAAwB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAC9E,KAAK,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,eAAe,CAAC,CAAC;AAElH;;;;GAIG;AACH,qBAAa,UAAW,YAAW,mBAAmB,EAAE,aAAa,EAAE,SAAS;IAc5E,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,kBAAkB;IAC7C,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB;IAC3D,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAClE,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB;IAC3D,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB;IACzD,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,sBAAsB;IACrD,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IACvG,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,YAAY;IAC9C,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc;IACjD,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS;IAEvC,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe;IAxBrD,OAAO,CAAC,GAAG,CAA+B;IAC1C,OAAO,CAAC,YAAY,CAAsB;IAE1C,OAAO,CAAC,IAAI,CAA2C;IACvD,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,cAAc,CAA2B;IAEjD,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,SAAS,CAAC,SAAS,EAAE,mBAAmB,GAAG,SAAS,CAAC;gBAGhC,MAAM,EAAE,kBAAkB,EAC1B,gBAAgB,EAAE,sBAAsB,EACxC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,EAC/C,mBAAmB,EAAE,mBAAmB,EACxC,kBAAkB,EAAE,kBAAkB,EACtC,UAAU,EAAE,sBAAsB,EAClC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,EACpF,aAAa,EAAE,YAAY,EAC3B,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAE,SAAS,EACvC,MAAM,GAAE,OAAO,CAAC,iBAAiB,CAAM,EACpB,eAAe,GAAE,eAAsC;IAyBrE,WAAW;IAIX,MAAM;IAIb;;;;OAIG;IACG,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAwBpE;;;OAGG;IACG,KAAK;IASX;;OAEG;IACG,IAAI;IAgBV,kCAAkC;IACrB,uBAAuB,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAKrE,+BAA+B;IACxB,SAAS;IAIhB;;OAEG;IACU,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;YAKtC,MAAM;cAyBJ,qBAAqB,CAAC,GAAG,EAAE,eAAe;IAc1D;;OAEG;IACI,SAAS;IAIhB;;OAEG;IACI,OAAO,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,oBAAoB,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;cAUhF,qBAAqB,CACnC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,oBAAoB,CAAA;KAAE,EAAE,CAAC;IAM5D,OAAO,CAAC,uBAAuB;YAQjB,gBAAgB;IAgC9B,OAAO,CAAC,cAAc;YAKR,eAAe;YAYf,YAAY;YAQZ,SAAS;YAeT,cAAc;YAWd,yBAAyB;IAcvC,sCAAsC;IACtC,SAAS,CAAC,uBAAuB,CAC/B,IAAI,EAAE,mBAAmB,EACzB,QAAQ,EAAE,IAAI,GAAG,SAAS,EAC1B,sBAAsB,EAAE,sBAAsB,EAC9C,SAAS,EAAE,mBAAmB,EAC9B,IAAI,GAAE;QAAE,cAAc,CAAC,EAAE,OAAO,CAAA;KAAO;IAgBzC,sCAAsC;cACtB,eAAe;IAI/B,OAAO,CAAC,cAAc;CAcvB"}
1
+ {"version":3,"file":"prover-node.d.ts","sourceRoot":"","sources":["../src/prover-node.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ function _ts_decorate(decorators, target, key, desc) {
4
4
  else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  }
7
+ import { BlockNumber } from '@aztec/foundation/branded-types';
7
8
  import { assertRequired, compact, pick, sum } from '@aztec/foundation/collection';
8
9
  import { memoize } from '@aztec/foundation/decorators';
9
10
  import { createLogger } from '@aztec/foundation/log';
@@ -143,7 +144,7 @@ import { ProverNodeJobMetrics, ProverNodeRewardsMetrics } from './metrics.js';
143
144
  /**
144
145
  * Starts a proving process and returns immediately.
145
146
  */ async startProof(epochNumber) {
146
- const job = await this.createProvingJob(BigInt(epochNumber), {
147
+ const job = await this.createProvingJob(epochNumber, {
147
148
  skipEpochCheck: true
148
149
  });
149
150
  void this.runJob(job);
@@ -190,12 +191,11 @@ import { ProverNodeJobMetrics, ProverNodeRewardsMetrics } from './metrics.js';
190
191
  return Promise.resolve(Array.from(this.jobs.entries()).map(([uuid, job])=>({
191
192
  uuid,
192
193
  status: job.getState(),
193
- epochNumber: Number(job.getEpochNumber())
194
+ epochNumber: job.getEpochNumber()
194
195
  })));
195
196
  }
196
- async getActiveJobsForEpoch(epochBigInt) {
197
+ async getActiveJobsForEpoch(epochNumber) {
197
198
  const jobs = await this.getJobs();
198
- const epochNumber = Number(epochBigInt);
199
199
  return jobs.filter((job)=>job.epochNumber === epochNumber && !EpochProvingJobTerminalState.includes(job.status));
200
200
  }
201
201
  checkMaximumPendingJobs() {
@@ -209,9 +209,11 @@ import { ProverNodeJobMetrics, ProverNodeRewardsMetrics } from './metrics.js';
209
209
  this.publisher = await this.publisherFactory.create();
210
210
  // Gather all data for this epoch
211
211
  const epochData = await this.gatherEpochData(epochNumber);
212
- const fromBlock = epochData.blocks[0].number;
213
- const toBlock = epochData.blocks.at(-1).number;
214
- this.log.verbose(`Creating proving job for epoch ${epochNumber} for block range ${fromBlock} to ${toBlock}`);
212
+ const fromCheckpoint = epochData.checkpoints[0].number;
213
+ const toCheckpoint = epochData.checkpoints.at(-1).number;
214
+ const fromBlock = epochData.checkpoints[0].blocks[0].number;
215
+ const toBlock = epochData.checkpoints.at(-1).blocks.at(-1).number;
216
+ this.log.verbose(`Creating proving job for epoch ${epochNumber} for checkpoint range ${fromCheckpoint} to ${toCheckpoint} and block range ${fromBlock} to ${toBlock}`);
215
217
  // Fast forward world state to right before the target block and get a fork
216
218
  await this.worldState.syncImmediate(toBlock);
217
219
  // Create a processor factory
@@ -227,18 +229,19 @@ import { ProverNodeJobMetrics, ProverNodeRewardsMetrics } from './metrics.js';
227
229
  return this.l2BlockSource.getL1Constants();
228
230
  }
229
231
  async gatherEpochData(epochNumber) {
230
- const blocks = await this.gatherBlocks(epochNumber);
231
- const txArray = await this.gatherTxs(epochNumber, blocks);
232
+ const checkpoints = await this.gatherCheckpoints(epochNumber);
233
+ const txArray = await this.gatherTxs(epochNumber, checkpoints);
232
234
  const txs = new Map(txArray.map((tx)=>[
233
235
  tx.getTxHash().toString(),
234
236
  tx
235
237
  ]));
236
- const l1ToL2Messages = await this.gatherMessages(epochNumber, blocks);
237
- const previousBlockHeader = await this.gatherPreviousBlockHeader(epochNumber, blocks[0]);
238
- const [lastBlock] = await this.l2BlockSource.getPublishedBlocks(blocks.at(-1).number, 1);
239
- const attestations = lastBlock?.attestations ?? [];
238
+ const l1ToL2Messages = await this.gatherMessages(epochNumber, checkpoints);
239
+ const [firstBlock] = checkpoints[0].blocks;
240
+ const previousBlockHeader = await this.gatherPreviousBlockHeader(epochNumber, firstBlock.number - 1);
241
+ const [lastPublishedCheckpoint] = await this.l2BlockSource.getPublishedCheckpoints(checkpoints.at(-1).number, 1);
242
+ const attestations = lastPublishedCheckpoint?.attestations ?? [];
240
243
  return {
241
- blocks,
244
+ checkpoints,
242
245
  txs,
243
246
  l1ToL2Messages,
244
247
  epochNumber,
@@ -246,16 +249,17 @@ import { ProverNodeJobMetrics, ProverNodeRewardsMetrics } from './metrics.js';
246
249
  attestations
247
250
  };
248
251
  }
249
- async gatherBlocks(epochNumber) {
250
- const blocks = await this.l2BlockSource.getBlocksForEpoch(epochNumber);
251
- if (blocks.length === 0) {
252
+ async gatherCheckpoints(epochNumber) {
253
+ const checkpoints = await this.l2BlockSource.getCheckpointsForEpoch(epochNumber);
254
+ if (checkpoints.length === 0) {
252
255
  throw new EmptyEpochError(epochNumber);
253
256
  }
254
- return blocks;
257
+ return checkpoints;
255
258
  }
256
- async gatherTxs(epochNumber, blocks) {
259
+ async gatherTxs(epochNumber, checkpoints) {
257
260
  const deadline = new Date(this.dateProvider.now() + this.config.txGatheringTimeoutMs);
258
261
  const txProvider = this.p2pClient.getTxProvider();
262
+ const blocks = checkpoints.flatMap((checkpoint)=>checkpoint.blocks);
259
263
  const txsByBlock = await Promise.all(blocks.map((block)=>txProvider.getTxsForBlock(block, {
260
264
  deadline
261
265
  })));
@@ -269,23 +273,22 @@ import { ProverNodeJobMetrics, ProverNodeRewardsMetrics } from './metrics.js';
269
273
  }
270
274
  throw new Error(`Txs not found for epoch ${epochNumber}: ${missingTxs.map((hash)=>hash.toString()).join(', ')}`);
271
275
  }
272
- async gatherMessages(epochNumber, blocks) {
273
- const messages = await Promise.all(blocks.map((b)=>this.l1ToL2MessageSource.getL1ToL2Messages(b.number)));
276
+ async gatherMessages(epochNumber, checkpoints) {
277
+ const messages = await Promise.all(checkpoints.map((c)=>this.l1ToL2MessageSource.getL1ToL2Messages(c.number)));
274
278
  const messageCount = sum(messages.map((m)=>m.length));
275
279
  this.log.verbose(`Gathered all ${messageCount} messages for epoch ${epochNumber}`, {
276
280
  epochNumber
277
281
  });
278
- const messagesByBlock = {};
279
- for(let i = 0; i < blocks.length; i++){
280
- messagesByBlock[blocks[i].number] = messages[i];
282
+ const messagesByCheckpoint = {};
283
+ for(let i = 0; i < checkpoints.length; i++){
284
+ messagesByCheckpoint[checkpoints[i].number] = messages[i];
281
285
  }
282
- return messagesByBlock;
286
+ return messagesByCheckpoint;
283
287
  }
284
- async gatherPreviousBlockHeader(epochNumber, initialBlock) {
285
- const previousBlockNumber = initialBlock.number - 1;
286
- const header = await (previousBlockNumber === 0 ? this.worldState.getCommitted().getInitialHeader() : this.l2BlockSource.getBlockHeader(previousBlockNumber));
288
+ async gatherPreviousBlockHeader(epochNumber, previousBlockNumber) {
289
+ const header = await (previousBlockNumber === 0 ? this.worldState.getCommitted().getInitialHeader() : this.l2BlockSource.getBlockHeader(BlockNumber(previousBlockNumber)));
287
290
  if (!header) {
288
- throw new Error(`Previous block header ${initialBlock.number} not found for proving epoch ${epochNumber}`);
291
+ throw new Error(`Previous block header ${previousBlockNumber} not found for proving epoch ${epochNumber}`);
289
292
  }
290
293
  this.log.verbose(`Gathered previous block header ${header.getBlockNumber()} for epoch ${epochNumber}`);
291
294
  return header;
@@ -302,7 +305,7 @@ import { ProverNodeJobMetrics, ProverNodeRewardsMetrics } from './metrics.js';
302
305
  await this.epochsMonitor.work();
303
306
  }
304
307
  validateConfig() {
305
- if (this.config.proverNodeFailedEpochStore && (!this.config.dataDirectory || !this.config.l1ChainId || !this.config.rollupVersion)) {
308
+ if (this.config.proverNodeFailedEpochStore && (!this.config.dataDirectory || !this.config.l1ChainId || this.config.rollupVersion === undefined)) {
306
309
  this.log.warn(`Invalid prover-node config (missing dataDirectory, l1ChainId, or rollupVersion)`, pick(this.config, 'proverNodeFailedEpochStore', 'dataDirectory', 'l1ChainId', 'rollupVersion'));
307
310
  throw new Error('All of dataDirectory, l1ChainId, and rollupVersion are required if proverNodeFailedEpochStore is set.');
308
311
  }
@@ -310,7 +313,7 @@ import { ProverNodeJobMetrics, ProverNodeRewardsMetrics } from './metrics.js';
310
313
  }
311
314
  _ts_decorate([
312
315
  trackSpan('ProverNode.createProvingJob', (epochNumber)=>({
313
- [Attributes.EPOCH_NUMBER]: Number(epochNumber)
316
+ [Attributes.EPOCH_NUMBER]: epochNumber
314
317
  }))
315
318
  ], ProverNode.prototype, "createProvingJob", null);
316
319
  _ts_decorate([
@@ -318,7 +321,7 @@ _ts_decorate([
318
321
  ], ProverNode.prototype, "getL1Constants", null);
319
322
  _ts_decorate([
320
323
  trackSpan('ProverNode.gatherEpochData', (epochNumber)=>({
321
- [Attributes.EPOCH_NUMBER]: Number(epochNumber)
324
+ [Attributes.EPOCH_NUMBER]: epochNumber
322
325
  }))
323
326
  ], ProverNode.prototype, "gatherEpochData", null);
324
327
  class EmptyEpochError extends Error {
@@ -1,4 +1,6 @@
1
- import type { L1TxUtils, PublisherManager, RollupContract } from '@aztec/ethereum';
1
+ import type { RollupContract } from '@aztec/ethereum/contracts';
2
+ import type { L1TxUtils } from '@aztec/ethereum/l1-tx-utils';
3
+ import type { PublisherManager } from '@aztec/ethereum/publisher-manager';
2
4
  import type { PublisherConfig, TxSenderConfig } from '@aztec/sequencer-client';
3
5
  import type { TelemetryClient } from '@aztec/telemetry-client';
4
6
  import { ProverNodePublisher } from './prover-node-publisher.js';
@@ -18,4 +20,4 @@ export declare class ProverPublisherFactory {
18
20
  */
19
21
  create(): Promise<ProverNodePublisher>;
20
22
  }
21
- //# sourceMappingURL=prover-publisher-factory.d.ts.map
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmVyLXB1Ymxpc2hlci1mYWN0b3J5LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHJvdmVyLXB1Ymxpc2hlci1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9FLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRS9ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWpFLHFCQUFhLHNCQUFzQjtJQUUvQixPQUFPLENBQUMsTUFBTTtJQUNkLE9BQU8sQ0FBQyxJQUFJO0lBRmQsWUFDVSxNQUFNLEVBQUUsY0FBYyxHQUFHLGVBQWUsRUFDeEMsSUFBSSxFQUFFO1FBQ1osY0FBYyxFQUFFLGNBQWMsQ0FBQztRQUMvQixnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QyxTQUFTLENBQUMsRUFBRSxlQUFlLENBQUM7S0FDN0IsRUFDQztJQUVTLEtBQUssa0JBRWpCO0lBRU0sSUFBSSxTQUVWO0lBRUQ7OztPQUdHO0lBQ1UsTUFBTSxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQU9sRDtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"prover-publisher-factory.d.ts","sourceRoot":"","sources":["../src/prover-publisher-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,qBAAa,sBAAsB;IAE/B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,IAAI;gBADJ,MAAM,EAAE,cAAc,GAAG,eAAe,EACxC,IAAI,EAAE;QACZ,cAAc,EAAE,cAAc,CAAC;QAC/B,gBAAgB,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC9C,SAAS,CAAC,EAAE,eAAe,CAAC;KAC7B;IAGU,KAAK;IAIX,IAAI;IAIX;;;OAGG;IACU,MAAM,IAAI,OAAO,CAAC,mBAAmB,CAAC;CAQpD"}
1
+ {"version":3,"file":"prover-publisher-factory.d.ts","sourceRoot":"","sources":["../src/prover-publisher-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,qBAAa,sBAAsB;IAE/B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,IAAI;IAFd,YACU,MAAM,EAAE,cAAc,GAAG,eAAe,EACxC,IAAI,EAAE;QACZ,cAAc,EAAE,cAAc,CAAC;QAC/B,gBAAgB,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC9C,SAAS,CAAC,EAAE,eAAe,CAAC;KAC7B,EACC;IAES,KAAK,kBAEjB;IAEM,IAAI,SAEV;IAED;;;OAGG;IACU,MAAM,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAOlD;CACF"}
@@ -9,4 +9,4 @@ declare abstract class TestProverNodeClass extends ProverNode {
9
9
  }
10
10
  export type TestProverNode = TestProverNodeClass;
11
11
  export {};
12
- //# sourceMappingURL=index.d.ts.map
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFMUUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbkUsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFL0MsdUJBQWUsbUJBQW9CLFNBQVEsVUFBVTtJQUNwQyxNQUFNLEVBQUUsa0JBQWtCLENBQUM7SUFDM0IsU0FBUyxFQUFFLG1CQUFtQixDQUFDO0lBRTlDLFNBQXlCLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxlQUFlLEdBQUcsT0FBTyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FBQztDQUNuRztBQUVELE1BQU0sTUFBTSxjQUFjLEdBQUcsbUJBQW1CLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,uBAAe,mBAAoB,SAAQ,UAAU;IACpC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,SAAS,EAAE,mBAAmB,CAAC;aAErB,qBAAqB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAClG;AAED,MAAM,MAAM,cAAc,GAAG,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,uBAAe,mBAAoB,SAAQ,UAAU;IACpC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,SAAS,EAAE,mBAAmB,CAAC;IAE9C,SAAyB,qBAAqB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACnG;AAED,MAAM,MAAM,cAAc,GAAG,mBAAmB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/prover-node",
3
- "version": "0.0.1-commit.b655e406",
3
+ "version": "0.0.1-commit.c7c42ec",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
@@ -11,8 +11,8 @@
11
11
  "../package.common.json"
12
12
  ],
13
13
  "scripts": {
14
- "build": "yarn clean && tsc -b",
15
- "build:dev": "tsc -b --watch",
14
+ "build": "yarn clean && ../scripts/tsc.sh",
15
+ "build:dev": "../scripts/tsc.sh --watch",
16
16
  "clean": "rm -rf ./dest .tsbuildinfo",
17
17
  "bb": "node --no-warnings ./dest/bb/index.js",
18
18
  "test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}",
@@ -56,36 +56,37 @@
56
56
  ]
57
57
  },
58
58
  "dependencies": {
59
- "@aztec/archiver": "0.0.1-commit.b655e406",
60
- "@aztec/bb-prover": "0.0.1-commit.b655e406",
61
- "@aztec/blob-lib": "0.0.1-commit.b655e406",
62
- "@aztec/blob-sink": "0.0.1-commit.b655e406",
63
- "@aztec/constants": "0.0.1-commit.b655e406",
64
- "@aztec/epoch-cache": "0.0.1-commit.b655e406",
65
- "@aztec/ethereum": "0.0.1-commit.b655e406",
66
- "@aztec/foundation": "0.0.1-commit.b655e406",
67
- "@aztec/kv-store": "0.0.1-commit.b655e406",
68
- "@aztec/l1-artifacts": "0.0.1-commit.b655e406",
69
- "@aztec/node-keystore": "0.0.1-commit.b655e406",
70
- "@aztec/node-lib": "0.0.1-commit.b655e406",
71
- "@aztec/noir-protocol-circuits-types": "0.0.1-commit.b655e406",
72
- "@aztec/p2p": "0.0.1-commit.b655e406",
73
- "@aztec/protocol-contracts": "0.0.1-commit.b655e406",
74
- "@aztec/prover-client": "0.0.1-commit.b655e406",
75
- "@aztec/sequencer-client": "0.0.1-commit.b655e406",
76
- "@aztec/simulator": "0.0.1-commit.b655e406",
77
- "@aztec/stdlib": "0.0.1-commit.b655e406",
78
- "@aztec/telemetry-client": "0.0.1-commit.b655e406",
79
- "@aztec/world-state": "0.0.1-commit.b655e406",
59
+ "@aztec/archiver": "0.0.1-commit.c7c42ec",
60
+ "@aztec/bb-prover": "0.0.1-commit.c7c42ec",
61
+ "@aztec/blob-client": "0.0.1-commit.c7c42ec",
62
+ "@aztec/blob-lib": "0.0.1-commit.c7c42ec",
63
+ "@aztec/constants": "0.0.1-commit.c7c42ec",
64
+ "@aztec/epoch-cache": "0.0.1-commit.c7c42ec",
65
+ "@aztec/ethereum": "0.0.1-commit.c7c42ec",
66
+ "@aztec/foundation": "0.0.1-commit.c7c42ec",
67
+ "@aztec/kv-store": "0.0.1-commit.c7c42ec",
68
+ "@aztec/l1-artifacts": "0.0.1-commit.c7c42ec",
69
+ "@aztec/node-keystore": "0.0.1-commit.c7c42ec",
70
+ "@aztec/node-lib": "0.0.1-commit.c7c42ec",
71
+ "@aztec/noir-protocol-circuits-types": "0.0.1-commit.c7c42ec",
72
+ "@aztec/p2p": "0.0.1-commit.c7c42ec",
73
+ "@aztec/protocol-contracts": "0.0.1-commit.c7c42ec",
74
+ "@aztec/prover-client": "0.0.1-commit.c7c42ec",
75
+ "@aztec/sequencer-client": "0.0.1-commit.c7c42ec",
76
+ "@aztec/simulator": "0.0.1-commit.c7c42ec",
77
+ "@aztec/stdlib": "0.0.1-commit.c7c42ec",
78
+ "@aztec/telemetry-client": "0.0.1-commit.c7c42ec",
79
+ "@aztec/world-state": "0.0.1-commit.c7c42ec",
80
80
  "source-map-support": "^0.5.21",
81
81
  "tslib": "^2.4.0",
82
- "viem": "npm:@spalladino/viem@2.38.2-eip7594.0"
82
+ "viem": "npm:@aztec/viem@2.38.2"
83
83
  },
84
84
  "devDependencies": {
85
85
  "@jest/globals": "^30.0.0",
86
86
  "@types/jest": "^30.0.0",
87
87
  "@types/node": "^22.15.17",
88
88
  "@types/source-map-support": "^0.5.10",
89
+ "@typescript/native-preview": "7.0.0-dev.20251126.1",
89
90
  "jest": "^30.0.0",
90
91
  "jest-mock-extended": "^4.0.0",
91
92
  "ts-node": "^10.9.1",
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable no-console */
2
- import type { L1ContractAddresses } from '@aztec/ethereum';
2
+ import type { L1ContractAddresses } from '@aztec/ethereum/l1-contract-addresses';
3
3
  import { EthAddress } from '@aztec/foundation/eth-address';
4
4
  import { jsonParseWithSchema, jsonStringify } from '@aztec/foundation/json-rpc';
5
5
  import { createLogger } from '@aztec/foundation/log';
package/src/config.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { type ArchiverConfig, archiverConfigMappings } from '@aztec/archiver/config';
2
2
  import type { ACVMConfig, BBConfig } from '@aztec/bb-prover/config';
3
- import { type GenesisStateConfig, genesisStateConfigMappings } from '@aztec/ethereum';
3
+ import { type GenesisStateConfig, genesisStateConfigMappings } from '@aztec/ethereum/config';
4
4
  import {
5
5
  type ConfigMappingsType,
6
6
  booleanConfigHelper,
@@ -8,7 +8,9 @@ import {
8
8
  numberConfigHelper,
9
9
  } from '@aztec/foundation/config';
10
10
  import { type DataStoreConfig, dataConfigMappings } from '@aztec/kv-store/config';
11
- import { type KeyStore, type KeyStoreConfig, ethPrivateKeySchema, keyStoreConfigMappings } from '@aztec/node-keystore';
11
+ import { type KeyStoreConfig, keyStoreConfigMappings } from '@aztec/node-keystore/config';
12
+ import { ethPrivateKeySchema } from '@aztec/node-keystore/schemas';
13
+ import type { KeyStore } from '@aztec/node-keystore/types';
12
14
  import { type SharedNodeConfig, sharedNodeConfigMappings } from '@aztec/node-lib/config';
13
15
  import { type P2PConfig, p2pConfigMappings } from '@aztec/p2p/config';
14
16
  import {
@@ -16,7 +18,7 @@ import {
16
18
  type ProverBrokerConfig,
17
19
  proverAgentConfigMappings,
18
20
  proverBrokerConfigMappings,
19
- } from '@aztec/prover-client/broker';
21
+ } from '@aztec/prover-client/broker/config';
20
22
  import { type ProverClientUserConfig, bbConfigMappings, proverClientConfigMappings } from '@aztec/prover-client/config';
21
23
  import {
22
24
  type PublisherConfig,
@@ -163,7 +165,7 @@ function createKeyStoreFromWeb3Signer(config: ProverNodeConfig): KeyStore | unde
163
165
  function createKeyStoreFromPublisherKeys(config: ProverNodeConfig): KeyStore | undefined {
164
166
  // Extract the publisher keys from the provided config.
165
167
  const publisherKeys = config.publisherPrivateKeys
166
- ? config.publisherPrivateKeys.map(k => ethPrivateKeySchema.parse(k.getValue()))
168
+ ? config.publisherPrivateKeys.map((k: { getValue: () => string }) => ethPrivateKeySchema.parse(k.getValue()))
167
169
  : [];
168
170
 
169
171
  // There must be at least 1.
package/src/factory.ts CHANGED
@@ -1,8 +1,11 @@
1
1
  import { type Archiver, createArchiver } from '@aztec/archiver';
2
2
  import { BBCircuitVerifier, QueuedIVCVerifier, TestCircuitVerifier } from '@aztec/bb-prover';
3
- import { type BlobSinkClientInterface, createBlobSinkClient } from '@aztec/blob-sink/client';
3
+ import { type BlobClientInterface, createBlobClient } from '@aztec/blob-client/client';
4
4
  import { EpochCache } from '@aztec/epoch-cache';
5
- import { L1TxUtils, PublisherManager, RollupContract, createEthereumChain } from '@aztec/ethereum';
5
+ import { createEthereumChain } from '@aztec/ethereum/chain';
6
+ import { RollupContract } from '@aztec/ethereum/contracts';
7
+ import { L1TxUtils } from '@aztec/ethereum/l1-tx-utils';
8
+ import { PublisherManager } from '@aztec/ethereum/publisher-manager';
6
9
  import { pick } from '@aztec/foundation/collection';
7
10
  import { type Logger, createLogger } from '@aztec/foundation/log';
8
11
  import { DateProvider } from '@aztec/foundation/timer';
@@ -33,7 +36,7 @@ export type ProverNodeDeps = {
33
36
  aztecNodeTxProvider?: Pick<AztecNode, 'getTxsByHash'>;
34
37
  archiver?: Archiver;
35
38
  publisherFactory?: ProverPublisherFactory;
36
- blobSinkClient?: BlobSinkClientInterface;
39
+ blobClient?: BlobClientInterface;
37
40
  broker?: ProvingJobBroker;
38
41
  l1TxUtils?: L1TxUtils;
39
42
  dateProvider?: DateProvider;
@@ -50,8 +53,8 @@ export async function createProverNode(
50
53
  const config = { ...userConfig };
51
54
  const telemetry = deps.telemetry ?? getTelemetryClient();
52
55
  const dateProvider = deps.dateProvider ?? new DateProvider();
53
- const blobSinkClient =
54
- deps.blobSinkClient ?? createBlobSinkClient(config, { logger: createLogger('prover-node:blob-sink:client') });
56
+ const blobClient =
57
+ deps.blobClient ?? createBlobClient(config, { logger: createLogger('prover-node:blob-client:client') });
55
58
  const log = deps.log ?? createLogger('prover-node');
56
59
 
57
60
  // Build a key store from file if given or from environment otherwise
@@ -102,7 +105,7 @@ export async function createProverNode(
102
105
 
103
106
  const archiver =
104
107
  deps.archiver ??
105
- (await createArchiver(config, { blobSinkClient, epochCache, telemetry, dateProvider }, { blockUntilSync: true }));
108
+ (await createArchiver(config, { blobClient, epochCache, telemetry, dateProvider }, { blockUntilSync: true }));
106
109
  log.verbose(`Created archiver and synced to block ${await archiver.getBlockNumber()}`);
107
110
 
108
111
  const worldStateConfig = { ...config, worldStateProvenBlocksOnly: false };
@@ -123,7 +126,7 @@ export async function createProverNode(
123
126
 
124
127
  const publicClient = createPublicClient({
125
128
  chain: chain.chainInfo,
126
- transport: fallback(config.l1RpcUrls.map((url: string) => http(url))),
129
+ transport: fallback(config.l1RpcUrls.map((url: string) => http(url, { batch: false }))),
127
130
  pollingInterval: config.viemPollingIntervalMS,
128
131
  });
129
132
 
@@ -148,7 +151,9 @@ export async function createProverNode(
148
151
 
149
152
  const proofVerifier = new QueuedIVCVerifier(
150
153
  config,
151
- config.realProofs ? await BBCircuitVerifier.new(config) : new TestCircuitVerifier(),
154
+ config.realProofs || config.debugForceTxProofVerification
155
+ ? await BBCircuitVerifier.new(config)
156
+ : new TestCircuitVerifier(config.proverTestVerificationDelayMs),
152
157
  );
153
158
 
154
159
  const p2pClient = await createP2PClient(
@@ -1,49 +1,55 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { CheckpointNumber, EpochNumber } from '@aztec/foundation/branded-types';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
3
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
3
- import { CommitteeAttestation, L2Block } from '@aztec/stdlib/block';
4
+ import { CommitteeAttestation } from '@aztec/stdlib/block';
5
+ import { Checkpoint } from '@aztec/stdlib/checkpoint';
4
6
  import { BlockHeader, Tx } from '@aztec/stdlib/tx';
5
7
 
6
8
  /** All data from an epoch used in proving. */
7
9
  export type EpochProvingJobData = {
8
- epochNumber: bigint;
9
- blocks: L2Block[];
10
+ epochNumber: EpochNumber;
11
+ checkpoints: Checkpoint[];
10
12
  txs: Map<string, Tx>;
11
- l1ToL2Messages: Record<number, Fr[]>;
13
+ l1ToL2Messages: Record<CheckpointNumber, Fr[]>;
12
14
  previousBlockHeader: BlockHeader;
13
15
  attestations: CommitteeAttestation[];
14
16
  };
15
17
 
16
18
  export function validateEpochProvingJobData(data: EpochProvingJobData) {
17
- if (data.blocks.length > 0 && data.previousBlockHeader.getBlockNumber() + 1 !== data.blocks[0].number) {
19
+ if (data.checkpoints.length === 0) {
20
+ throw new Error('No checkpoints to prove');
21
+ }
22
+
23
+ const firstBlockNumber = data.checkpoints[0].blocks[0].number;
24
+ const previousBlockNumber = data.previousBlockHeader.getBlockNumber();
25
+ if (previousBlockNumber + 1 !== firstBlockNumber) {
18
26
  throw new Error(
19
- `Initial block number ${
20
- data.blocks[0].number
21
- } does not match previous block header ${data.previousBlockHeader.getBlockNumber()}`,
27
+ `Initial block number ${firstBlockNumber} does not match previous block header ${previousBlockNumber}`,
22
28
  );
23
29
  }
24
30
 
25
- for (const blockNumber of data.blocks.map(block => block.number)) {
26
- if (!(blockNumber in data.l1ToL2Messages)) {
27
- throw new Error(`Missing L1 to L2 messages for block number ${blockNumber}`);
31
+ for (const checkpoint of data.checkpoints) {
32
+ if (!(checkpoint.number in data.l1ToL2Messages)) {
33
+ throw new Error(`Missing L1 to L2 messages for checkpoint number ${checkpoint.number}`);
28
34
  }
29
35
  }
30
36
  }
31
37
 
32
38
  export function serializeEpochProvingJobData(data: EpochProvingJobData): Buffer {
33
- const blocks = data.blocks.map(block => block.toBuffer());
39
+ const checkpoints = data.checkpoints.map(checkpoint => checkpoint.toBuffer());
34
40
  const txs = Array.from(data.txs.values()).map(tx => tx.toBuffer());
35
- const l1ToL2Messages = Object.entries(data.l1ToL2Messages).map(([blockNumber, messages]) => [
36
- Number(blockNumber),
41
+ const l1ToL2Messages = Object.entries(data.l1ToL2Messages).map(([checkpointNumber, messages]) => [
42
+ Number(checkpointNumber),
37
43
  messages.length,
38
44
  ...messages,
39
45
  ]);
40
46
  const attestations = data.attestations.map(attestation => attestation.toBuffer());
41
47
 
42
48
  return serializeToBuffer(
43
- Number(data.epochNumber),
49
+ data.epochNumber,
44
50
  data.previousBlockHeader,
45
- blocks.length,
46
- ...blocks,
51
+ checkpoints.length,
52
+ ...checkpoints,
47
53
  txs.length,
48
54
  ...txs,
49
55
  l1ToL2Messages.length,
@@ -55,22 +61,22 @@ export function serializeEpochProvingJobData(data: EpochProvingJobData): Buffer
55
61
 
56
62
  export function deserializeEpochProvingJobData(buf: Buffer): EpochProvingJobData {
57
63
  const reader = BufferReader.asReader(buf);
58
- const epochNumber = BigInt(reader.readNumber());
64
+ const epochNumber = EpochNumber(reader.readNumber());
59
65
  const previousBlockHeader = reader.readObject(BlockHeader);
60
- const blocks = reader.readVector(L2Block);
66
+ const checkpoints = reader.readVector(Checkpoint);
61
67
  const txArray = reader.readVector(Tx);
62
68
 
63
- const l1ToL2MessageBlockCount = reader.readNumber();
69
+ const l1ToL2MessageCheckpointCount = reader.readNumber();
64
70
  const l1ToL2Messages: Record<number, Fr[]> = {};
65
- for (let i = 0; i < l1ToL2MessageBlockCount; i++) {
66
- const blockNumber = reader.readNumber();
71
+ for (let i = 0; i < l1ToL2MessageCheckpointCount; i++) {
72
+ const checkpointNumber = CheckpointNumber(reader.readNumber());
67
73
  const messages = reader.readVector(Fr);
68
- l1ToL2Messages[blockNumber] = messages;
74
+ l1ToL2Messages[checkpointNumber] = messages;
69
75
  }
70
76
 
71
77
  const attestations = reader.readVector(CommitteeAttestation);
72
78
 
73
79
  const txs = new Map<string, Tx>(txArray.map(tx => [tx.getTxHash().toString(), tx]));
74
80
 
75
- return { epochNumber, previousBlockHeader, blocks, txs, l1ToL2Messages, attestations };
81
+ return { epochNumber, previousBlockHeader, checkpoints, txs, l1ToL2Messages, attestations };
76
82
  }