@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.
- package/dest/actions/rerun-epoch-proving-job.d.ts +3 -2
- package/dest/actions/rerun-epoch-proving-job.d.ts.map +1 -1
- package/dest/actions/rerun-epoch-proving-job.js +5 -3
- package/dest/job/checkpoint-prover.d.ts +15 -11
- package/dest/job/checkpoint-prover.d.ts.map +1 -1
- package/dest/job/checkpoint-prover.js +46 -38
- package/dest/job/epoch-proving-job-data.d.ts +3 -1
- package/dest/job/epoch-proving-job-data.d.ts.map +1 -1
- package/dest/job/epoch-proving-job-data.js +3 -1
- package/dest/job/top-tree-job.d.ts +1 -1
- package/dest/job/top-tree-job.js +2 -2
- package/dest/prover-node-publisher.d.ts +1 -1
- package/dest/prover-node-publisher.d.ts.map +1 -1
- package/dest/prover-node-publisher.js +21 -12
- package/dest/prover-node.d.ts +2 -1
- package/dest/prover-node.d.ts.map +1 -1
- package/dest/prover-node.js +23 -1
- package/dest/session-manager.d.ts +1 -1
- package/dest/session-manager.d.ts.map +1 -1
- package/dest/session-manager.js +1 -0
- package/package.json +24 -24
- package/src/actions/rerun-epoch-proving-job.ts +8 -5
- package/src/job/checkpoint-prover.ts +62 -49
- package/src/job/epoch-proving-job-data.ts +13 -1
- package/src/job/top-tree-job.ts +2 -2
- package/src/prover-node-publisher.ts +21 -12
- package/src/prover-node.ts +26 -1
- package/src/session-manager.ts +1 -0
|
@@ -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,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"prover-node.d.ts","sourceRoot":"","sources":["../src/prover-node.ts"],"names":[],"mappings":"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"}
|
package/dest/prover-node.js
CHANGED
|
@@ -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,
|
|
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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"}
|
package/dest/session-manager.js
CHANGED
|
@@ -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.
|
|
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.
|
|
60
|
-
"@aztec/bb-prover": "6.0.0-nightly.
|
|
61
|
-
"@aztec/bb.js": "6.0.0-nightly.
|
|
62
|
-
"@aztec/blob-client": "6.0.0-nightly.
|
|
63
|
-
"@aztec/blob-lib": "6.0.0-nightly.
|
|
64
|
-
"@aztec/constants": "6.0.0-nightly.
|
|
65
|
-
"@aztec/epoch-cache": "6.0.0-nightly.
|
|
66
|
-
"@aztec/ethereum": "6.0.0-nightly.
|
|
67
|
-
"@aztec/foundation": "6.0.0-nightly.
|
|
68
|
-
"@aztec/kv-store": "6.0.0-nightly.
|
|
69
|
-
"@aztec/l1-artifacts": "6.0.0-nightly.
|
|
70
|
-
"@aztec/native": "6.0.0-nightly.
|
|
71
|
-
"@aztec/node-keystore": "6.0.0-nightly.
|
|
72
|
-
"@aztec/node-lib": "6.0.0-nightly.
|
|
73
|
-
"@aztec/noir-protocol-circuits-types": "6.0.0-nightly.
|
|
74
|
-
"@aztec/p2p": "6.0.0-nightly.
|
|
75
|
-
"@aztec/protocol-contracts": "6.0.0-nightly.
|
|
76
|
-
"@aztec/prover-client": "6.0.0-nightly.
|
|
77
|
-
"@aztec/sequencer-client": "6.0.0-nightly.
|
|
78
|
-
"@aztec/simulator": "6.0.0-nightly.
|
|
79
|
-
"@aztec/stdlib": "6.0.0-nightly.
|
|
80
|
-
"@aztec/telemetry-client": "6.0.0-nightly.
|
|
81
|
-
"@aztec/world-state": "6.0.0-nightly.
|
|
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
|
|
99
|
-
log.info(`Completed proving for checkpoint ${checkpointNumber} with ${
|
|
100
|
-
return
|
|
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 {
|
|
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 {
|
|
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 `
|
|
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
|
-
|
|
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 `
|
|
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
|
|
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.
|
|
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
|
|
182
|
-
public
|
|
183
|
-
return this.
|
|
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
|
-
// `
|
|
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 `
|
|
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.
|
|
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.
|
|
229
|
+
this.failSubTreeProofs(err instanceof Error ? err : new Error(String(err)));
|
|
222
230
|
}
|
|
223
231
|
}
|
|
224
232
|
|
|
225
233
|
/**
|
|
226
|
-
* Rejects the
|
|
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
|
|
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.
|
|
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
|
|
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.
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
//
|
|
342
|
-
//
|
|
343
|
-
//
|
|
344
|
-
//
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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[]
|
|
545
|
+
private async createFork(blockNumber: BlockNumber, l1ToL2Messages: Fr[]) {
|
|
524
546
|
const db = await this.deps.dbProvider.fork(blockNumber);
|
|
525
|
-
|
|
526
|
-
|
|
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 {
|
|
85
|
+
return {
|
|
86
|
+
epochNumber,
|
|
87
|
+
previousBlockHeader,
|
|
88
|
+
previousInboxRollingHash,
|
|
89
|
+
checkpoints,
|
|
90
|
+
txs,
|
|
91
|
+
l1ToL2Messages,
|
|
92
|
+
attestations,
|
|
93
|
+
};
|
|
82
94
|
}
|
package/src/job/top-tree-job.ts
CHANGED
|
@@ -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 `
|
|
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
|
-
|
|
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,
|
|
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.
|
|
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 } =
|
|
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
|
|
379
|
-
* [
|
|
380
|
-
* [
|
|
381
|
-
* [
|
|
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
|
|
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
|
|
414
|
-
|
|
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 <
|
|
417
|
-
const feePairIndex = i - (
|
|
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}`;
|