@aztec/prover-node 6.0.0-nightly.20260812 → 6.0.0-nightly.20260821

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.
@@ -1 +1 @@
1
- {"version":3,"file":"prover-node.d.ts","sourceRoot":"","sources":["../src/prover-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prover-node.d.ts","sourceRoot":"","sources":["../src/prover-node.ts"],"names":[],"mappings":"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"}
@@ -373,6 +373,7 @@ function _apply_decs_2203_r(targetClass, memberDecs, classDecs, parentClass) {
373
373
  var _initProto;
374
374
  import { BlockNumber, CheckpointNumber, EpochNumber } from '@aztec/foundation/branded-types';
375
375
  import { assertRequired, compact, pick } from '@aztec/foundation/collection';
376
+ import { Fr } from '@aztec/foundation/curves/bn254';
376
377
  import { memoize } from '@aztec/foundation/decorators';
377
378
  import { createLogger } from '@aztec/foundation/log';
378
379
  import { RunningPromise } from '@aztec/foundation/running-promise';
@@ -647,8 +648,12 @@ import { SessionManager } from './session-manager.js';
647
648
  */ async collectRegisterData(checkpoint, attestations) {
648
649
  const previousBlockNumber = BlockNumber(checkpoint.blocks[0].number - 1);
649
650
  const previousBlockHeader = await this.gatherPreviousBlockHeader(previousBlockNumber);
650
- const l1ToL2Messages = await this.l1ToL2MessageSource.getL1ToL2Messages(checkpoint.number);
651
651
  const lastBlock = checkpoint.blocks.at(-1);
652
+ // Streaming Inbox: the checkpoint's consumed messages are those between the parent
653
+ // checkpoint's consumed position and this checkpoint's last block, as a compact leaf-count range. The prover
654
+ // slices them per block.
655
+ const l1ToL2Messages = await this.l1ToL2MessageSource.getL1ToL2MessagesBetweenLeafCounts(BigInt(previousBlockHeader.state.l1ToL2MessageTree.nextAvailableLeafIndex), BigInt(lastBlock.header.state.l1ToL2MessageTree.nextAvailableLeafIndex));
656
+ const previousInboxRollingHash = await this.gatherPreviousInboxRollingHash(checkpoint.number);
652
657
  const lastBlockHash = await lastBlock.header.hash();
653
658
  await this.worldState.syncImmediate(lastBlock.number, lastBlockHash);
654
659
  const previousArchiveSiblingPath = await getLastSiblingPath(MerkleTreeId.ARCHIVE, this.worldState.getSnapshot(previousBlockNumber));
@@ -656,10 +661,27 @@ import { SessionManager } from './session-manager.js';
656
661
  attestations,
657
662
  previousBlockHeader,
658
663
  l1ToL2Messages,
664
+ previousInboxRollingHash,
659
665
  previousArchiveSiblingPath
660
666
  };
661
667
  }
662
668
  /**
669
+ * Sources the inbox rolling hash chain-start for a checkpoint: the previous checkpoint's `inboxRollingHash`, or zero
670
+ * for the genesis checkpoint. The prover threads this into the base parity circuits so the rebuilt checkpoint header
671
+ * matches the proposer's.
672
+ */ async gatherPreviousInboxRollingHash(checkpointNumber) {
673
+ if (checkpointNumber <= 1) {
674
+ return Fr.ZERO;
675
+ }
676
+ const previous = await this.l2BlockSource.getCheckpoint({
677
+ number: CheckpointNumber(checkpointNumber - 1)
678
+ });
679
+ if (!previous) {
680
+ throw new Error(`Previous checkpoint ${checkpointNumber - 1} not found when sourcing inbox rolling hash`);
681
+ }
682
+ return previous.checkpoint.header.inboxRollingHash;
683
+ }
684
+ /**
663
685
  * Marks every prover orphaned by the prune as pruned, clamps the catch-up cursor below the prune target's
664
686
  * checkpoint, and notifies the session manager. Keyed off the prune target block (the highest surviving block)
665
687
  * rather than the source's checkpointed tip, which can sit above the target after a re-checkpoint and would leave
@@ -155,4 +155,4 @@ export declare class SessionManager {
155
155
  private isProvenChainEncompassing;
156
156
  private getL1Constants;
157
157
  }
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1tYW5hZ2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc2Vzc2lvbi1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxLQUFLLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWhGLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBZSxLQUFLLGNBQWMsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUd2RixPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBUXpELE9BQU8sS0FBSyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFNUUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRSxPQUFPLEVBQ0wsWUFBWSxFQUNaLEtBQUssZ0JBQWdCLEVBQ3JCLEtBQUssaUJBQWlCLEVBRXRCLEtBQUssV0FBVyxFQUVqQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sS0FBSyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFNUUsdUNBQXVDO0FBQ3ZDLE1BQU0sTUFBTSxnQkFBZ0IsR0FDeEI7SUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFDO0lBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQTtDQUFFLEdBQzFD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
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1tYW5hZ2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc2Vzc2lvbi1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxLQUFLLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWhGLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBZSxLQUFLLGNBQWMsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUd2RixPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBUXpELE9BQU8sS0FBSyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFNUUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRSxPQUFPLEVBQ0wsWUFBWSxFQUNaLEtBQUssZ0JBQWdCLEVBQ3JCLEtBQUssaUJBQWlCLEVBRXRCLEtBQUssV0FBVyxFQUVqQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sS0FBSyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFNUUsdUNBQXVDO0FBQ3ZDLE1BQU0sTUFBTSxnQkFBZ0IsR0FDeEI7SUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFDO0lBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQTtDQUFFLEdBQzFD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
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../src/session-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../src/session-manager.ts"],"names":[],"mappings":"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"}
@@ -365,6 +365,7 @@ import { EpochSession, specKey } from './job/epoch-session.js';
365
365
  txs,
366
366
  l1ToL2Messages,
367
367
  previousBlockHeader: checkpoints[0].previousBlockHeader,
368
+ previousInboxRollingHash: checkpoints[0].previousInboxRollingHash,
368
369
  attestations: []
369
370
  };
370
371
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/prover-node",
3
- "version": "6.0.0-nightly.20260812",
3
+ "version": "6.0.0-nightly.20260821",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
@@ -56,29 +56,29 @@
56
56
  ]
57
57
  },
58
58
  "dependencies": {
59
- "@aztec/archiver": "6.0.0-nightly.20260812",
60
- "@aztec/bb-prover": "6.0.0-nightly.20260812",
61
- "@aztec/bb.js": "6.0.0-nightly.20260812",
62
- "@aztec/blob-client": "6.0.0-nightly.20260812",
63
- "@aztec/blob-lib": "6.0.0-nightly.20260812",
64
- "@aztec/constants": "6.0.0-nightly.20260812",
65
- "@aztec/epoch-cache": "6.0.0-nightly.20260812",
66
- "@aztec/ethereum": "6.0.0-nightly.20260812",
67
- "@aztec/foundation": "6.0.0-nightly.20260812",
68
- "@aztec/kv-store": "6.0.0-nightly.20260812",
69
- "@aztec/l1-artifacts": "6.0.0-nightly.20260812",
70
- "@aztec/native": "6.0.0-nightly.20260812",
71
- "@aztec/node-keystore": "6.0.0-nightly.20260812",
72
- "@aztec/node-lib": "6.0.0-nightly.20260812",
73
- "@aztec/noir-protocol-circuits-types": "6.0.0-nightly.20260812",
74
- "@aztec/p2p": "6.0.0-nightly.20260812",
75
- "@aztec/protocol-contracts": "6.0.0-nightly.20260812",
76
- "@aztec/prover-client": "6.0.0-nightly.20260812",
77
- "@aztec/sequencer-client": "6.0.0-nightly.20260812",
78
- "@aztec/simulator": "6.0.0-nightly.20260812",
79
- "@aztec/stdlib": "6.0.0-nightly.20260812",
80
- "@aztec/telemetry-client": "6.0.0-nightly.20260812",
81
- "@aztec/world-state": "6.0.0-nightly.20260812",
59
+ "@aztec/archiver": "6.0.0-nightly.20260821",
60
+ "@aztec/bb-prover": "6.0.0-nightly.20260821",
61
+ "@aztec/bb.js": "6.0.0-nightly.20260819",
62
+ "@aztec/blob-client": "6.0.0-nightly.20260821",
63
+ "@aztec/blob-lib": "6.0.0-nightly.20260821",
64
+ "@aztec/constants": "6.0.0-nightly.20260821",
65
+ "@aztec/epoch-cache": "6.0.0-nightly.20260821",
66
+ "@aztec/ethereum": "6.0.0-nightly.20260821",
67
+ "@aztec/foundation": "6.0.0-nightly.20260821",
68
+ "@aztec/kv-store": "6.0.0-nightly.20260821",
69
+ "@aztec/l1-artifacts": "6.0.0-nightly.20260819",
70
+ "@aztec/native": "6.0.0-nightly.20260821",
71
+ "@aztec/node-keystore": "6.0.0-nightly.20260821",
72
+ "@aztec/node-lib": "6.0.0-nightly.20260821",
73
+ "@aztec/noir-protocol-circuits-types": "6.0.0-nightly.20260821",
74
+ "@aztec/p2p": "6.0.0-nightly.20260821",
75
+ "@aztec/protocol-contracts": "6.0.0-nightly.20260821",
76
+ "@aztec/prover-client": "6.0.0-nightly.20260821",
77
+ "@aztec/sequencer-client": "6.0.0-nightly.20260821",
78
+ "@aztec/simulator": "6.0.0-nightly.20260821",
79
+ "@aztec/stdlib": "6.0.0-nightly.20260821",
80
+ "@aztec/telemetry-client": "6.0.0-nightly.20260821",
81
+ "@aztec/world-state": "6.0.0-nightly.20260821",
82
82
  "source-map-support": "^0.5.21",
83
83
  "tslib": "^2.4.0",
84
84
  "viem": "npm:@aztec/viem@2.38.2"
@@ -6,7 +6,7 @@ import { DateProvider } from '@aztec/foundation/timer';
6
6
  import { type ProverClientConfig, createProverClient } from '@aztec/prover-client';
7
7
  import { ProverBrokerConfig, createAndStartProvingBroker } from '@aztec/prover-client/broker';
8
8
  import { getLastSiblingPath } from '@aztec/prover-client/helpers';
9
- import { ChonkCache } from '@aztec/prover-client/orchestrator';
9
+ import { type CheckpointSubTreeProofs, ChonkCache } from '@aztec/prover-client/orchestrator';
10
10
  import { AvmSimulatorPool, PublicProcessorFactory } from '@aztec/simulator/server';
11
11
  import type { L2Block } from '@aztec/stdlib/block';
12
12
  import { getEpochAtSlot, getSlotRangeForEpoch } from '@aztec/stdlib/epoch-helpers';
@@ -86,7 +86,7 @@ export async function rerunCheckpointProvingJob(
86
86
  log: Logger,
87
87
  config: RerunConfig,
88
88
  genesis?: GenesisData,
89
- ) {
89
+ ): Promise<CheckpointSubTreeProofs['blockProofOutputs']> {
90
90
  await using ctx = await createRerunContext(localPath, log, config, genesis);
91
91
  const { jobData } = ctx;
92
92
  const checkpointNumber = jobData.checkpoints[0].number;
@@ -95,9 +95,9 @@ export async function rerunCheckpointProvingJob(
95
95
 
96
96
  const prover = await buildCheckpointProver(ctx, 0, log);
97
97
  try {
98
- const blockProofs = await prover.whenBlockProofsReady();
99
- log.info(`Completed proving for checkpoint ${checkpointNumber} with ${blockProofs.length} block proof(s)`);
100
- return blockProofs;
98
+ const { blockProofOutputs } = await prover.whenSubTreeProofsReady();
99
+ log.info(`Completed proving for checkpoint ${checkpointNumber} with ${blockProofOutputs.length} block proof(s)`);
100
+ return blockProofOutputs;
101
101
  } finally {
102
102
  prover.cancel({ routine: true });
103
103
  await prover.whenDone();
@@ -167,6 +167,8 @@ async function buildCheckpointProver(ctx: RerunContext, index: number, log: Logg
167
167
  const checkpoint = jobData.checkpoints[index];
168
168
  const previousBlockHeader =
169
169
  index === 0 ? jobData.previousBlockHeader : jobData.checkpoints[index - 1].blocks.at(-1)!.header;
170
+ const previousInboxRollingHash =
171
+ index === 0 ? jobData.previousInboxRollingHash : jobData.checkpoints[index - 1].header.inboxRollingHash;
170
172
  const l1ToL2Messages = jobData.l1ToL2Messages[checkpoint.number] ?? [];
171
173
  const previousArchiveSiblingPath = await getLastSiblingPath(
172
174
  MerkleTreeId.ARCHIVE,
@@ -180,6 +182,7 @@ async function buildCheckpointProver(ctx: RerunContext, index: number, log: Logg
180
182
  attestations,
181
183
  previousBlockHeader,
182
184
  l1ToL2Messages,
185
+ previousInboxRollingHash,
183
186
  previousArchiveSiblingPath,
184
187
  },
185
188
  {
@@ -1,6 +1,5 @@
1
- import { type ARCHIVE_HEIGHT, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/constants';
1
+ import type { ARCHIVE_HEIGHT } from '@aztec/constants';
2
2
  import { BlockNumber, type EpochNumber, type SlotNumber } from '@aztec/foundation/branded-types';
3
- import { padArrayEnd } from '@aztec/foundation/collection';
4
3
  import { Fr } from '@aztec/foundation/curves/bn254';
5
4
  import type { EthAddress } from '@aztec/foundation/eth-address';
6
5
  import type { Logger } from '@aztec/foundation/log';
@@ -10,7 +9,11 @@ import { type DateProvider, Timer } from '@aztec/foundation/timer';
10
9
  import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
11
10
  import { protocolContractsHash } from '@aztec/protocol-contracts';
12
11
  import type { EpochProverFactory } from '@aztec/prover-client';
13
- import type { CheckpointSubTreeOrchestrator, ChonkCache, SubTreeResult } from '@aztec/prover-client/orchestrator';
12
+ import type {
13
+ CheckpointSubTreeOrchestrator,
14
+ CheckpointSubTreeProofs,
15
+ ChonkCache,
16
+ } from '@aztec/prover-client/orchestrator';
14
17
  import type { PublicProcessor, PublicProcessorFactory } from '@aztec/simulator/server';
15
18
  import { PublicSimulatorConfig } from '@aztec/stdlib/avm';
16
19
  import type { CommitteeAttestation, L2Block } from '@aztec/stdlib/block';
@@ -65,6 +68,8 @@ export type CheckpointProverArgs = {
65
68
  attestations: CommitteeAttestation[];
66
69
  previousBlockHeader: BlockHeader;
67
70
  l1ToL2Messages: Fr[];
71
+ /** Inbox rolling hash of the previous checkpoint (this checkpoint's chain start); genesis is zero. */
72
+ previousInboxRollingHash: Fr;
68
73
  previousArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>;
69
74
  };
70
75
 
@@ -78,8 +83,8 @@ export type CheckpointProverArgs = {
78
83
  * predecessor but with different content, keys to a distinct prover.
79
84
  *
80
85
  * The prover eagerly starts its own tx gather and sub-tree work in the constructor, so
81
- * callers only need to call `whenBlockProofsReady()` to obtain the resulting block-rollup
82
- * proofs.
86
+ * callers only need to call `whenSubTreeProofsReady()` to obtain the resulting block-rollup
87
+ * and InboxParity proofs.
83
88
  *
84
89
  * A CheckpointProver does not survive a prune: its sub-tree work forks world-state per
85
90
  * block, and an L1 prune of a base block faults those reads. The store therefore cancels and
@@ -97,16 +102,18 @@ export class CheckpointProver {
97
102
  readonly attestations: CommitteeAttestation[];
98
103
  readonly previousBlockHeader: BlockHeader;
99
104
  readonly l1ToL2Messages: Fr[];
105
+ readonly previousInboxRollingHash: Fr;
100
106
  readonly previousArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>;
101
107
 
102
- /** Resolved by the sub-tree on success, rejected on cancel/failure. */
103
- private readonly blockProofs: PromiseWithResolvers<SubTreeResult['blockProofOutputs']> = promiseWithResolvers();
108
+ /** Resolved by the sub-tree on success, rejected on cancel/failure. Carries the block proofs plus the checkpoint's
109
+ * InboxParity proof (which feeds the checkpoint root in the top tree). */
110
+ private readonly subTreeProofs: PromiseWithResolvers<CheckpointSubTreeProofs> = promiseWithResolvers();
104
111
 
105
112
  // Three independent lifecycle facts — deliberately not collapsed into one status enum, because several
106
113
  // combinations are legal and relied on: a prover can be `completed` and then `cancelled` (routine
107
114
  // teardown of an already-proven checkpoint), or `completed` and then `failed` (block proving was
108
115
  // enqueued, but the sub-tree subsequently faulted). Only `failed` + `cancelled` is excluded — a cancel
109
- // is not a failure (enforced in `failBlockProofs`).
116
+ // is not a failure (enforced in `failSubTreeProofs`).
110
117
  /** Block-level proving was fully *enqueued* (a progress marker; the sub-tree may still be proving). */
111
118
  private completed = false;
112
119
  /** Block proofs rejected for a genuine (non-cancel) reason — a sub-tree or prune-induced fork fault. */
@@ -133,11 +140,12 @@ export class CheckpointProver {
133
140
  this.attestations = args.attestations;
134
141
  this.previousBlockHeader = args.previousBlockHeader;
135
142
  this.l1ToL2Messages = args.l1ToL2Messages;
143
+ this.previousInboxRollingHash = args.previousInboxRollingHash;
136
144
  this.previousArchiveSiblingPath = args.previousArchiveSiblingPath;
137
145
  this.id = CheckpointProver.idFor(args.checkpoint);
138
- // Mark blockProofs as observed so a cancel that lands before any consumer awaits
146
+ // Mark subTreeProofs as observed so a cancel that lands before any consumer awaits
139
147
  // does not surface as an unhandled rejection.
140
- this.blockProofs.promise.catch(() => {});
148
+ this.subTreeProofs.promise.catch(() => {});
141
149
  deps.log.info(`Created CheckpointProver ${this.id}`, {
142
150
  checkpointNumber: this.checkpoint.number,
143
151
  epochNumber: this.epochNumber,
@@ -178,9 +186,9 @@ export class CheckpointProver {
178
186
  return this.abortController.signal;
179
187
  }
180
188
 
181
- /** Promise that resolves with the block-rollup proofs for this checkpoint (or rejects on cancel/failure). */
182
- public whenBlockProofsReady(): Promise<SubTreeResult['blockProofOutputs']> {
183
- return this.blockProofs.promise;
189
+ /** Promise that resolves with the block-rollup proofs and InboxParity proof for this checkpoint (or rejects). */
190
+ public whenSubTreeProofsReady(): Promise<CheckpointSubTreeProofs> {
191
+ return this.subTreeProofs.promise;
184
192
  }
185
193
 
186
194
  /** Resolves when all in-flight work for this prover has fully unwound. */
@@ -188,11 +196,11 @@ export class CheckpointProver {
188
196
  await this.runPromise.catch(() => {});
189
197
  // `runPromise` resolves once block-level proving is *enqueued*, but the sub-tree's proofs (and the
190
198
  // success-driven teardown they trigger) land later, on the `getSubTreeResult()` callback. Awaiting
191
- // `blockProofs` here bridges that gap: on success the callback resolves `blockProofs` and then
199
+ // `subTreeProofs` here bridges that gap: on success the callback resolves `subTreeProofs` and then
192
200
  // synchronously sets `teardownPromise` before this await resumes, so the teardown is observable
193
- // below; on failure/cancel `blockProofs` rejects and teardown is driven by the `finally`/cancel
201
+ // below; on failure/cancel `subTreeProofs` rejects and teardown is driven by the `finally`/cancel
194
202
  // paths already awaited via `runPromise`/`cancelPromise`.
195
- await this.blockProofs.promise.catch(() => {});
203
+ await this.subTreeProofs.promise.catch(() => {});
196
204
  if (this.cancelPromise) {
197
205
  await this.cancelPromise;
198
206
  }
@@ -218,16 +226,16 @@ export class CheckpointProver {
218
226
  this.deps.log.error(`Error in CheckpointProver ${this.id}`, err, {
219
227
  checkpointNumber: this.checkpoint.number,
220
228
  });
221
- this.failBlockProofs(err instanceof Error ? err : new Error(String(err)));
229
+ this.failSubTreeProofs(err instanceof Error ? err : new Error(String(err)));
222
230
  }
223
231
  }
224
232
 
225
233
  /**
226
- * Rejects the block-proof promise and, unless this is a cancellation, records the prover as failed so
234
+ * Rejects the sub-tree proof promise and, unless this is a cancellation, records the prover as failed so
227
235
  * the reconciler won't build an EpochSession over it. First rejection wins, so a later duplicate reject
228
236
  * (e.g. the executeCheckpoint `finally`) is a harmless no-op.
229
237
  */
230
- private failBlockProofs(err: Error): void {
238
+ private failSubTreeProofs(err: Error): void {
231
239
  if (!this.cancelled && !this.failed) {
232
240
  this.failed = true;
233
241
  // Notify the owner so it can upload a post-mortem for this checkpoint. Fire-and-forget: the
@@ -238,7 +246,7 @@ export class CheckpointProver {
238
246
  this.deps.log.error(`Error in CheckpointProver onFailed callback for ${this.id}`, err);
239
247
  }
240
248
  }
241
- this.blockProofs.reject(err);
249
+ this.subTreeProofs.reject(err);
242
250
  }
243
251
 
244
252
  /** Fetches every tx in this checkpoint from the tx pool (by hash, via the block tx effects). */
@@ -321,11 +329,12 @@ export class CheckpointProver {
321
329
  this.epochNumber,
322
330
  checkpointConstants,
323
331
  this.l1ToL2Messages,
332
+ this.previousInboxRollingHash,
324
333
  this.checkpoint.blocks.length,
325
334
  this.previousBlockHeader,
326
335
  );
327
336
  subTreeStarted = true;
328
- // Bridge the sub-tree's result onto blockProofs.
337
+ // Bridge the sub-tree's result onto subTreeProofs.
329
338
  void this.subTree.getSubTreeResult().then(
330
339
  result => {
331
340
  this.deps.log.info(`Sub-tree block proofs ready for checkpoint ${this.checkpoint.number}`, {
@@ -334,17 +343,20 @@ export class CheckpointProver {
334
343
  });
335
344
  // Spans processing + proving (from executeCheckpoint start, after tx gathering) to proofs ready.
336
345
  this.deps.metrics.recordCheckpointProving(checkpointTimer.ms());
337
- this.blockProofs.resolve(result.blockProofOutputs);
338
- // Release the sub-tree orchestrator now that its output is captured. The block-proof outputs
339
- // survive via the resolved promise; everything else the sub-tree held — per-tx AVM inputs, and
340
- // the base/merge/parity proof trees — is dead once proving completes, yet the prover is retained
341
- // for the whole proof-submission window. Dropping it here is what stops that retention from
342
- // accumulating across every proven checkpoint. Post-completion consumers (the top-tree job, a
343
- // rebuilt EpochSession, failure upload) read only `whenBlockProofsReady()` and this prover's own
344
- // fields (`checkpoint`, `txs`, headers, sibling paths), never the sub-tree.
346
+ this.subTreeProofs.resolve({
347
+ blockProofOutputs: result.blockProofOutputs,
348
+ inboxParityProof: result.inboxParityProof,
349
+ });
350
+ // Release the sub-tree orchestrator now that its output is captured. The block-proof and
351
+ // InboxParity proofs survive via the resolved promise; everything else the sub-tree held — per-tx
352
+ // AVM inputs, and the base/merge/parity proof trees — is dead once proving completes, yet the
353
+ // prover is retained for the whole proof-submission window. Dropping it here is what stops that
354
+ // retention from accumulating across every proven checkpoint. Post-completion consumers (the
355
+ // top-tree job, a rebuilt EpochSession, failure upload) read only `whenSubTreeProofsReady()` and
356
+ // this prover's own fields (`checkpoint`, `txs`, headers, sibling paths), never the sub-tree.
345
357
  this.teardownPromise = this.teardownSubTree();
346
358
  },
347
- err => this.failBlockProofs(err instanceof Error ? err : new Error(String(err))),
359
+ err => this.failSubTreeProofs(err instanceof Error ? err : new Error(String(err))),
348
360
  );
349
361
  if (signal.aborted) {
350
362
  return;
@@ -361,21 +373,31 @@ export class CheckpointProver {
361
373
  }
362
374
  }
363
375
 
376
+ // Streaming Inbox: the checkpoint's messages are consumed contiguously across its blocks;
377
+ // each block's slice runs from its parent block's L1-to-L2 leaf count to its own (compact indices make leaf
378
+ // count equal cumulative message count).
379
+ const l1ToL2LeafCount = (block: L2Block) => Number(block.header.state.l1ToL2MessageTree.nextAvailableLeafIndex);
380
+ const checkpointStartLeafCount = l1ToL2LeafCount(this.checkpoint.blocks.at(-1)!) - this.l1ToL2Messages.length;
381
+
364
382
  for (let blockIndex = 0; blockIndex < this.checkpoint.blocks.length; blockIndex++) {
365
383
  const blockTimer = new Timer();
366
384
  const block = this.checkpoint.blocks[blockIndex];
367
385
  const globalVariables = block.header.globalVariables;
368
386
  const blockTxs = this.getTxsForBlock(block, txs);
369
387
 
370
- await this.subTree.startNewBlock(block.number, globalVariables.timestamp, blockTxs.length);
388
+ const prevLeafCount =
389
+ blockIndex === 0 ? checkpointStartLeafCount : l1ToL2LeafCount(this.checkpoint.blocks[blockIndex - 1]);
390
+ const blockMessages = this.l1ToL2Messages.slice(
391
+ prevLeafCount - checkpointStartLeafCount,
392
+ l1ToL2LeafCount(block) - checkpointStartLeafCount,
393
+ );
394
+
395
+ await this.subTree.startNewBlock(block.number, globalVariables.timestamp, blockTxs.length, blockMessages);
371
396
  if (signal.aborted) {
372
397
  return;
373
398
  }
374
399
 
375
- const db = await this.createFork(
376
- BlockNumber(block.number - 1),
377
- blockIndex === 0 ? this.l1ToL2Messages : undefined,
378
- );
400
+ const db = await this.createFork(BlockNumber(block.number - 1), blockMessages);
379
401
  try {
380
402
  if (signal.aborted) {
381
403
  return;
@@ -424,7 +446,7 @@ export class CheckpointProver {
424
446
  if (subTreeStarted) {
425
447
  await this.teardownSubTree();
426
448
  }
427
- this.failBlockProofs(new Error(`Checkpoint ${this.id} did not complete block processing`));
449
+ this.failSubTreeProofs(new Error(`Checkpoint ${this.id} did not complete block processing`));
428
450
  }
429
451
  }
430
452
  }
@@ -457,7 +479,7 @@ export class CheckpointProver {
457
479
  });
458
480
  }
459
481
  this.abortController.abort();
460
- this.blockProofs.reject(new Error(`Checkpoint ${this.id} cancelled`));
482
+ this.subTreeProofs.reject(new Error(`Checkpoint ${this.id} cancelled`));
461
483
  this.cancelPromise = this.runCancel().catch(() => {});
462
484
  }
463
485
 
@@ -520,19 +542,10 @@ export class CheckpointProver {
520
542
  return processedTxs;
521
543
  }
522
544
 
523
- private async createFork(blockNumber: BlockNumber, l1ToL2Messages: Fr[] | undefined) {
545
+ private async createFork(blockNumber: BlockNumber, l1ToL2Messages: Fr[]) {
524
546
  const db = await this.deps.dbProvider.fork(blockNumber);
525
-
526
- if (l1ToL2Messages !== undefined) {
527
- const l1ToL2MessagesPadded = padArrayEnd<Fr, number>(
528
- l1ToL2Messages,
529
- Fr.ZERO,
530
- NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP,
531
- 'Too many L1 to L2 messages',
532
- );
533
- await db.appendLeaves(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, l1ToL2MessagesPadded);
534
- }
535
-
547
+ // Append the block's real message leaves unpadded at compact indices.
548
+ await db.appendLeaves(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, l1ToL2Messages);
536
549
  return db;
537
550
  }
538
551
  }
@@ -12,6 +12,8 @@ export type EpochProvingJobData = {
12
12
  txs: Map<string, Tx>;
13
13
  l1ToL2Messages: Record<CheckpointNumber, Fr[]>;
14
14
  previousBlockHeader: BlockHeader;
15
+ /** Inbox rolling hash of the checkpoint before the epoch's first checkpoint (its chain start); genesis is zero. */
16
+ previousInboxRollingHash: Fr;
15
17
  attestations: CommitteeAttestation[];
16
18
  };
17
19
 
@@ -48,6 +50,7 @@ export function serializeEpochProvingJobData(data: EpochProvingJobData): Buffer
48
50
  return serializeToBuffer(
49
51
  data.epochNumber,
50
52
  data.previousBlockHeader,
53
+ data.previousInboxRollingHash,
51
54
  checkpoints.length,
52
55
  ...checkpoints,
53
56
  txs.length,
@@ -63,6 +66,7 @@ export function deserializeEpochProvingJobData(buf: Buffer): EpochProvingJobData
63
66
  const reader = BufferReader.asReader(buf);
64
67
  const epochNumber = EpochNumber(reader.readNumber());
65
68
  const previousBlockHeader = reader.readObject(BlockHeader);
69
+ const previousInboxRollingHash = Fr.fromBuffer(reader);
66
70
  const checkpoints = reader.readVector(Checkpoint);
67
71
  const txArray = reader.readVector(Tx);
68
72
 
@@ -78,5 +82,13 @@ export function deserializeEpochProvingJobData(buf: Buffer): EpochProvingJobData
78
82
 
79
83
  const txs = new Map<string, Tx>(txArray.map(tx => [tx.getTxHash().toString(), tx]));
80
84
 
81
- return { epochNumber, previousBlockHeader, checkpoints, txs, l1ToL2Messages, attestations };
85
+ return {
86
+ epochNumber,
87
+ previousBlockHeader,
88
+ previousInboxRollingHash,
89
+ checkpoints,
90
+ txs,
91
+ l1ToL2Messages,
92
+ attestations,
93
+ };
82
94
  }
@@ -42,7 +42,7 @@ export type TopTreeJobHooks = {
42
42
 
43
43
  /**
44
44
  * Self-contained top-tree job. Constructed from a snapshot of `CheckpointProver`s; runs
45
- * `topTree.prove(...)` against their pending `blockProofs` promises and exposes the
45
+ * `topTree.prove(...)` against their pending `subTreeProofs` promises and exposes the
46
46
  * final epoch proof via `result`.
47
47
  *
48
48
  */
@@ -185,7 +185,7 @@ export class TopTreeJob {
185
185
  );
186
186
 
187
187
  const checkpointData: CheckpointTopTreeData[] = this.snapshot.map(j => ({
188
- blockProofs: j.whenBlockProofsReady(),
188
+ subTreeProofs: j.whenSubTreeProofsReady(),
189
189
  l2ToL1MsgsPerBlock: j.checkpoint.blocks.map(b => b.body.txEffects.map(tx => tx.l2ToL1Msgs)),
190
190
  blobFields: j.checkpoint.toBlobFields(),
191
191
  previousBlockHeader: j.previousBlockHeader,
@@ -220,14 +220,14 @@ export class ProverNodePublisher {
220
220
  const data = this.encodeSubmitEpochProofCalldata(args);
221
221
  const senderAddress = this.l1TxUtils.getSenderAddress();
222
222
 
223
- const [gasLimit, gasPrice, latestBlock] = await Promise.all([
223
+ const [gasLimit, feesPerGas, latestBlock] = await Promise.all([
224
224
  this.l1TxUtils.estimateGas(senderAddress.toString() as `0x${string}`, { to: this.proofSubmissionTarget, data }),
225
- this.l1TxUtils.getGasPrice(),
225
+ this.l1TxUtils.getFeesPerGas(),
226
226
  this.l1TxUtils.client.getBlock({ blockTag: 'latest' }),
227
227
  ]);
228
228
 
229
229
  const baseFeePerGas = latestBlock.baseFeePerGas ?? 0n;
230
- const { maxPriorityFeePerGas } = gasPrice;
230
+ const { maxPriorityFeePerGas } = feesPerGas;
231
231
 
232
232
  const effectiveFeePerGas = baseFeePerGas + maxPriorityFeePerGas;
233
233
  const estimatedTotalFee = gasLimit * effectiveFeePerGas;
@@ -333,6 +333,8 @@ export class ProverNodePublisher {
333
333
  previousArchive: args.publicInputs.previousArchiveRoot.toString(),
334
334
  endArchive: args.publicInputs.endArchiveRoot.toString(),
335
335
  outHash: args.publicInputs.outHash.toString(),
336
+ previousInboxRollingHash: args.publicInputs.previousInboxRollingHash.toString(),
337
+ endInboxRollingHash: args.publicInputs.endInboxRollingHash.toString(),
336
338
  proverId: EthAddress.fromField(args.publicInputs.constants.proverId).toString(),
337
339
  } /*_args*/,
338
340
  args.headers.map(header => header.toViem()) /*_headers*/,
@@ -375,10 +377,12 @@ export class ProverNodePublisher {
375
377
  * [0] previousArchiveRoot
376
378
  * [1] endArchiveRoot
377
379
  * [2] outHash
378
- * [3 .. 3+N-1] checkpointHeaderHashes[i] for i in 0..N-1 (N = MAX_CHECKPOINTS_PER_EPOCH)
379
- * [3+N .. 3+3N-1] fees[i] = (recipient, value) for i in 0..N-1
380
- * [3+3N .. 3+3N+4] EpochConstantData (chainId, version, vkTreeRoot, protocolContractsHash, proverId)
381
- * [3+3N+5 ..] blobPublicInputs (FinalBlobAccumulator)
380
+ * [3] previousInboxRollingHash
381
+ * [4] endInboxRollingHash
382
+ * [5 .. 5+N-1] checkpointHeaderHashes[i] for i in 0..N-1 (N = MAX_CHECKPOINTS_PER_EPOCH)
383
+ * [5+N .. 5+3N-1] fees[i] = (recipient, value) for i in 0..N-1
384
+ * [5+3N .. 5+3N+4] EpochConstantData (chainId, version, vkTreeRoot, protocolContractsHash, proverId)
385
+ * [5+3N+5 ..] blobPublicInputs (FinalBlobAccumulator)
382
386
  */
383
387
  async function reportPublicInputsMismatch(input: {
384
388
  rollupPublicInputs: readonly Fr[];
@@ -390,7 +394,8 @@ async function reportPublicInputsMismatch(input: {
390
394
  }): Promise<Error> {
391
395
  const { rollupPublicInputs, argsPublicInputs, fromCheckpoint, toCheckpoint, rollupContract, log } = input;
392
396
  const N = MAX_CHECKPOINTS_PER_EPOCH;
393
- const constantsStart = 3 + 3 * N;
397
+ const headerHashesStart = 5;
398
+ const constantsStart = headerHashesStart + 3 * N;
394
399
  const blobStart = constantsStart + 5;
395
400
  const constantLabels = ['chainId', 'version', 'vkTreeRoot', 'protocolContractsHash', 'proverId'];
396
401
 
@@ -410,11 +415,15 @@ async function reportPublicInputsMismatch(input: {
410
415
  label = 'endArchiveRoot';
411
416
  } else if (i === 2) {
412
417
  label = 'outHash';
413
- } else if (i < 3 + N) {
414
- checkpointIndex = i - 3;
418
+ } else if (i === 3) {
419
+ label = 'previousInboxRollingHash';
420
+ } else if (i === 4) {
421
+ label = 'endInboxRollingHash';
422
+ } else if (i < headerHashesStart + N) {
423
+ checkpointIndex = i - headerHashesStart;
415
424
  label = `checkpointHeaderHashes[${checkpointIndex}]`;
416
- } else if (i < 3 + 3 * N) {
417
- const feePairIndex = i - (3 + N);
425
+ } else if (i < headerHashesStart + 3 * N) {
426
+ const feePairIndex = i - (headerHashesStart + N);
418
427
  const feeIndex = Math.floor(feePairIndex / 2);
419
428
  const sub = feePairIndex % 2 === 0 ? 'recipient' : 'value';
420
429
  label = `fees[${feeIndex}].${sub}`;