@aztec/prover-client 0.0.1-commit.993d240 → 0.0.1-commit.9a89641

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 (102) hide show
  1. package/dest/light/lightweight_checkpoint_builder.d.ts +1 -1
  2. package/dest/light/lightweight_checkpoint_builder.d.ts.map +1 -1
  3. package/dest/light/lightweight_checkpoint_builder.js +3 -1
  4. package/dest/mocks/fixtures.d.ts +1 -1
  5. package/dest/mocks/fixtures.d.ts.map +1 -1
  6. package/dest/mocks/fixtures.js +3 -3
  7. package/dest/mocks/test_context.d.ts +9 -11
  8. package/dest/mocks/test_context.d.ts.map +1 -1
  9. package/dest/mocks/test_context.js +15 -23
  10. package/dest/orchestrator/block-building-helpers.d.ts +1 -1
  11. package/dest/orchestrator/checkpoint-proving-state.d.ts +13 -36
  12. package/dest/orchestrator/checkpoint-proving-state.d.ts.map +1 -1
  13. package/dest/orchestrator/checkpoint-proving-state.js +18 -125
  14. package/dest/orchestrator/checkpoint-sub-tree-orchestrator.d.ts +116 -62
  15. package/dest/orchestrator/checkpoint-sub-tree-orchestrator.d.ts.map +1 -1
  16. package/dest/orchestrator/checkpoint-sub-tree-orchestrator.js +1005 -90
  17. package/dest/orchestrator/chonk-cache.d.ts +39 -0
  18. package/dest/orchestrator/chonk-cache.d.ts.map +1 -0
  19. package/dest/orchestrator/chonk-cache.js +80 -0
  20. package/dest/orchestrator/index.d.ts +2 -3
  21. package/dest/orchestrator/index.d.ts.map +1 -1
  22. package/dest/orchestrator/index.js +1 -2
  23. package/dest/orchestrator/proving-scheduler.d.ts +26 -17
  24. package/dest/orchestrator/proving-scheduler.d.ts.map +1 -1
  25. package/dest/orchestrator/proving-scheduler.js +28 -25
  26. package/dest/orchestrator/top-tree-orchestrator.d.ts +11 -6
  27. package/dest/orchestrator/top-tree-orchestrator.d.ts.map +1 -1
  28. package/dest/orchestrator/top-tree-orchestrator.js +71 -21
  29. package/dest/orchestrator/top-tree-proving-state.d.ts +1 -1
  30. package/dest/orchestrator/top-tree-proving-state.d.ts.map +1 -1
  31. package/dest/orchestrator/tx-proving-state.d.ts +3 -3
  32. package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
  33. package/dest/prover-client/prover-client.d.ts +17 -19
  34. package/dest/prover-client/prover-client.d.ts.map +1 -1
  35. package/dest/prover-client/prover-client.js +24 -25
  36. package/dest/proving_broker/broker_prover_facade.d.ts +3 -3
  37. package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
  38. package/dest/proving_broker/broker_prover_facade.js +13 -1
  39. package/dest/proving_broker/proving_broker.d.ts +2 -1
  40. package/dest/proving_broker/proving_broker.d.ts.map +1 -1
  41. package/dest/proving_broker/proving_broker.js +195 -77
  42. package/dest/proving_broker/proving_broker_database/memory.d.ts +5 -2
  43. package/dest/proving_broker/proving_broker_database/memory.d.ts.map +1 -1
  44. package/dest/proving_broker/proving_broker_database/memory.js +14 -1
  45. package/dest/proving_broker/proving_broker_database/persisted.d.ts +15 -2
  46. package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +1 -1
  47. package/dest/proving_broker/proving_broker_database/persisted.js +55 -4
  48. package/dest/proving_broker/proving_broker_database.d.ts +27 -1
  49. package/dest/proving_broker/proving_broker_database.d.ts.map +1 -1
  50. package/dest/proving_broker/rpc.d.ts +13 -4
  51. package/dest/proving_broker/rpc.d.ts.map +1 -1
  52. package/dest/proving_broker/rpc.js +14 -3
  53. package/dest/test/epoch_settlement.d.ts +36 -0
  54. package/dest/test/epoch_settlement.d.ts.map +1 -0
  55. package/dest/test/epoch_settlement.js +52 -0
  56. package/dest/test/index.d.ts +2 -0
  57. package/dest/test/index.d.ts.map +1 -0
  58. package/dest/test/index.js +1 -0
  59. package/dest/test/mock_prover.d.ts +1 -1
  60. package/dest/test/mock_prover.js +2 -2
  61. package/package.json +17 -16
  62. package/src/light/lightweight_checkpoint_builder.ts +2 -0
  63. package/src/mocks/fixtures.ts +2 -4
  64. package/src/mocks/test_context.ts +16 -35
  65. package/src/orchestrator/checkpoint-proving-state.ts +14 -168
  66. package/src/orchestrator/checkpoint-sub-tree-orchestrator.ts +902 -129
  67. package/src/orchestrator/chonk-cache.ts +99 -0
  68. package/src/orchestrator/index.ts +1 -2
  69. package/src/orchestrator/proving-scheduler.ts +29 -25
  70. package/src/orchestrator/top-tree-orchestrator.ts +114 -44
  71. package/src/orchestrator/top-tree-proving-state.ts +0 -1
  72. package/src/orchestrator/tx-proving-state.ts +3 -3
  73. package/src/prover-client/prover-client.ts +35 -49
  74. package/src/proving_broker/broker_prover_facade.ts +12 -3
  75. package/src/proving_broker/proving_broker.ts +186 -77
  76. package/src/proving_broker/proving_broker_database/memory.ts +16 -2
  77. package/src/proving_broker/proving_broker_database/persisted.ts +69 -6
  78. package/src/proving_broker/proving_broker_database.ts +30 -0
  79. package/src/proving_broker/rpc.ts +16 -0
  80. package/src/test/epoch_settlement.ts +82 -0
  81. package/src/test/index.ts +1 -0
  82. package/src/test/mock_prover.ts +2 -2
  83. package/dest/orchestrator/epoch-proving-context.d.ts +0 -51
  84. package/dest/orchestrator/epoch-proving-context.d.ts.map +0 -1
  85. package/dest/orchestrator/epoch-proving-context.js +0 -81
  86. package/dest/orchestrator/epoch-proving-state.d.ts +0 -75
  87. package/dest/orchestrator/epoch-proving-state.d.ts.map +0 -1
  88. package/dest/orchestrator/epoch-proving-state.js +0 -269
  89. package/dest/orchestrator/orchestrator.d.ts +0 -118
  90. package/dest/orchestrator/orchestrator.d.ts.map +0 -1
  91. package/dest/orchestrator/orchestrator.js +0 -1113
  92. package/dest/orchestrator/top-tree-proving-scheduler.d.ts +0 -62
  93. package/dest/orchestrator/top-tree-proving-scheduler.d.ts.map +0 -1
  94. package/dest/orchestrator/top-tree-proving-scheduler.js +0 -73
  95. package/dest/prover-client/server-epoch-prover.d.ts +0 -32
  96. package/dest/prover-client/server-epoch-prover.d.ts.map +0 -1
  97. package/dest/prover-client/server-epoch-prover.js +0 -40
  98. package/src/orchestrator/epoch-proving-context.ts +0 -101
  99. package/src/orchestrator/epoch-proving-state.ts +0 -380
  100. package/src/orchestrator/orchestrator.ts +0 -1111
  101. package/src/orchestrator/top-tree-proving-scheduler.ts +0 -154
  102. package/src/prover-client/server-epoch-prover.ts +0 -69
@@ -1,20 +1,17 @@
1
- import { SpongeBlob, encodeCheckpointBlobDataFromBlocks } from '@aztec/blob-lib';
2
- import { BLOBS_PER_CHECKPOINT, FIELDS_PER_BLOB, NUM_MSGS_PER_BASE_PARITY } from '@aztec/constants';
1
+ import { SpongeBlob } from '@aztec/blob-lib';
2
+ import { NUM_MSGS_PER_BASE_PARITY } from '@aztec/constants';
3
3
  import { BlockNumber } from '@aztec/foundation/branded-types';
4
4
  import { padArrayEnd } from '@aztec/foundation/collection';
5
- import { BLS12Point } from '@aztec/foundation/curves/bls12';
6
5
  import { Fr } from '@aztec/foundation/curves/bn254';
7
6
  import { UnbalancedTreeStore } from '@aztec/foundation/trees';
8
- import { computeCheckpointOutHash } from '@aztec/stdlib/messaging';
9
7
  import { ParityBasePrivateInputs } from '@aztec/stdlib/parity';
10
- import { BlockMergeRollupPrivateInputs, CheckpointRootRollupHints, CheckpointRootRollupPrivateInputs, CheckpointRootSingleBlockRollupPrivateInputs } from '@aztec/stdlib/rollup';
11
- import { accumulateBlobs, buildBlobHints, toProofData } from './block-building-helpers.js';
8
+ import { BlockMergeRollupPrivateInputs } from '@aztec/stdlib/rollup';
9
+ import { toProofData } from './block-building-helpers.js';
12
10
  import { BlockProvingState } from './block-proving-state.js';
13
11
  export class CheckpointProvingState {
14
12
  index;
15
13
  constants;
16
14
  totalNumBlocks;
17
- finalBlobBatchingChallenges;
18
15
  headerOfLastBlockInPreviousCheckpoint;
19
16
  lastArchiveSiblingPath;
20
17
  l1ToL2Messages;
@@ -22,28 +19,19 @@ export class CheckpointProvingState {
22
19
  lastL1ToL2MessageSubtreeRootSiblingPath;
23
20
  newL1ToL2MessageTreeSnapshot;
24
21
  newL1ToL2MessageSubtreeRootSiblingPath;
25
- parentEpoch;
26
- onBlobAccumulatorSet;
22
+ epochNumber;
23
+ isAlive;
24
+ onReject;
27
25
  blockProofs;
28
- checkpointRootProof;
29
26
  blocks;
30
- previousOutHashHint;
31
- outHash;
32
- // The snapshot and sibling path after the checkpoint's out hash is inserted.
33
- // Stored here to be retrieved for the next checkpoint when it's added.
34
- newOutHashHint;
35
- startBlobAccumulator;
36
- endBlobAccumulator;
37
- blobFields;
38
27
  error;
39
28
  firstBlockNumber;
40
- constructor(index, constants, totalNumBlocks, finalBlobBatchingChallenges, headerOfLastBlockInPreviousCheckpoint, lastArchiveSiblingPath, l1ToL2Messages, // The snapshot and sibling path before the new l1 to l2 message subtree is inserted.
29
+ constructor(index, constants, totalNumBlocks, headerOfLastBlockInPreviousCheckpoint, lastArchiveSiblingPath, l1ToL2Messages, // The snapshot and sibling path before the new l1 to l2 message subtree is inserted.
41
30
  lastL1ToL2MessageTreeSnapshot, lastL1ToL2MessageSubtreeRootSiblingPath, // The snapshot and sibling path after the new l1 to l2 message subtree is inserted.
42
- newL1ToL2MessageTreeSnapshot, newL1ToL2MessageSubtreeRootSiblingPath, parentEpoch, onBlobAccumulatorSet){
31
+ newL1ToL2MessageTreeSnapshot, newL1ToL2MessageSubtreeRootSiblingPath, epochNumber, /** Owner's liveness check. `verifyState()` returns false once this returns false. */ isAlive, /** Owner's failure callback. Invoked from `reject` to surface the error upward. */ onReject){
43
32
  this.index = index;
44
33
  this.constants = constants;
45
34
  this.totalNumBlocks = totalNumBlocks;
46
- this.finalBlobBatchingChallenges = finalBlobBatchingChallenges;
47
35
  this.headerOfLastBlockInPreviousCheckpoint = headerOfLastBlockInPreviousCheckpoint;
48
36
  this.lastArchiveSiblingPath = lastArchiveSiblingPath;
49
37
  this.l1ToL2Messages = l1ToL2Messages;
@@ -51,15 +39,13 @@ export class CheckpointProvingState {
51
39
  this.lastL1ToL2MessageSubtreeRootSiblingPath = lastL1ToL2MessageSubtreeRootSiblingPath;
52
40
  this.newL1ToL2MessageTreeSnapshot = newL1ToL2MessageTreeSnapshot;
53
41
  this.newL1ToL2MessageSubtreeRootSiblingPath = newL1ToL2MessageSubtreeRootSiblingPath;
54
- this.parentEpoch = parentEpoch;
55
- this.onBlobAccumulatorSet = onBlobAccumulatorSet;
42
+ this.epochNumber = epochNumber;
43
+ this.isAlive = isAlive;
44
+ this.onReject = onReject;
56
45
  this.blocks = [];
57
46
  this.blockProofs = new UnbalancedTreeStore(totalNumBlocks);
58
47
  this.firstBlockNumber = BlockNumber(headerOfLastBlockInPreviousCheckpoint.globalVariables.blockNumber + 1);
59
48
  }
60
- get epochNumber() {
61
- return this.parentEpoch.epochNumber;
62
- }
63
49
  startNewBlock(blockNumber, timestamp, totalNumTxs, lastArchiveTreeSnapshot, lastArchiveSiblingPath) {
64
50
  const index = Number(blockNumber) - Number(this.firstBlockNumber);
65
51
  if (index >= this.totalNumBlocks) {
@@ -102,61 +88,10 @@ export class CheckpointProvingState {
102
88
  provingOutput
103
89
  });
104
90
  }
105
- tryStartProvingCheckpointRoot() {
106
- if (this.checkpointRootProof?.isProving) {
107
- return false;
108
- } else {
109
- this.checkpointRootProof = {
110
- isProving: true
111
- };
112
- return true;
113
- }
114
- }
115
- setCheckpointRootRollupProof(provingOutput) {
116
- this.checkpointRootProof = {
117
- provingOutput
118
- };
119
- return this.parentEpoch.setCheckpointRootRollupProof(this.index, provingOutput);
120
- }
121
91
  getBaseParityInputs(baseParityIndex) {
122
92
  const messages = padArrayEnd(this.l1ToL2Messages.slice(baseParityIndex * NUM_MSGS_PER_BASE_PARITY, (baseParityIndex + 1) * NUM_MSGS_PER_BASE_PARITY), Fr.ZERO, NUM_MSGS_PER_BASE_PARITY);
123
93
  return new ParityBasePrivateInputs(messages, this.constants.vkTreeRoot, this.constants.proverId);
124
94
  }
125
- setOutHashHint(hint) {
126
- this.previousOutHashHint = hint;
127
- }
128
- getOutHashHint() {
129
- return this.previousOutHashHint;
130
- }
131
- accumulateBlockOutHashes() {
132
- if (this.isAcceptingBlocks() || this.blocks.some((b)=>!b?.hasEndState())) {
133
- return;
134
- }
135
- if (!this.outHash) {
136
- const messagesPerBlock = this.blocks.map((b)=>b.getTxEffects().map((tx)=>tx.l2ToL1Msgs));
137
- this.outHash = computeCheckpointOutHash(messagesPerBlock);
138
- }
139
- return this.outHash;
140
- }
141
- setOutHashHintForNextCheckpoint(hint) {
142
- this.newOutHashHint = hint;
143
- }
144
- getOutHashHintForNextCheckpoint() {
145
- return this.newOutHashHint;
146
- }
147
- async accumulateBlobs(startBlobAccumulator) {
148
- if (this.isAcceptingBlocks() || this.blocks.some((b)=>!b?.hasEndState())) {
149
- return;
150
- }
151
- this.blobFields = encodeCheckpointBlobDataFromBlocks(this.blocks.map((b)=>b.getBlockBlobData()));
152
- this.endBlobAccumulator = await accumulateBlobs(this.blobFields, startBlobAccumulator);
153
- this.startBlobAccumulator = startBlobAccumulator;
154
- await this.onBlobAccumulatorSet(this);
155
- return this.endBlobAccumulator;
156
- }
157
- getEndBlobAccumulator() {
158
- return this.endBlobAccumulator;
159
- }
160
95
  getParentLocation(location) {
161
96
  return this.blockProofs.getParentLocation(location);
162
97
  }
@@ -170,41 +105,6 @@ export class CheckpointProvingState {
170
105
  toProofData(right)
171
106
  ]);
172
107
  }
173
- getCheckpointRootRollupType() {
174
- return this.totalNumBlocks === 1 ? 'rollup-checkpoint-root-single-block' : 'rollup-checkpoint-root';
175
- }
176
- async getCheckpointRootRollupInputs() {
177
- const proofs = this.#getChildProofsForRoot();
178
- const nonEmptyProofs = proofs.filter((p)=>!!p);
179
- if (proofs.length !== nonEmptyProofs.length) {
180
- throw new Error('At least one child is not ready for the checkpoint root rollup.');
181
- }
182
- if (!this.previousOutHashHint) {
183
- throw new Error('Out hash hint is not set.');
184
- }
185
- if (!this.startBlobAccumulator) {
186
- throw new Error('Start blob accumulator is not set.');
187
- }
188
- // `blobFields` must've been set if `startBlobAccumulator` is set (in `accumulateBlobs`).
189
- const blobFields = this.blobFields;
190
- const { blobCommitments, blobsHash } = await buildBlobHints(blobFields);
191
- const hints = CheckpointRootRollupHints.from({
192
- previousBlockHeader: this.headerOfLastBlockInPreviousCheckpoint,
193
- previousArchiveSiblingPath: this.lastArchiveSiblingPath,
194
- previousOutHash: this.previousOutHashHint.treeSnapshot,
195
- newOutHashSiblingPath: this.previousOutHashHint.siblingPath,
196
- startBlobAccumulator: this.startBlobAccumulator.toBlobAccumulator(),
197
- finalBlobChallenges: this.finalBlobBatchingChallenges,
198
- blobFields: padArrayEnd(blobFields, Fr.ZERO, FIELDS_PER_BLOB * BLOBS_PER_CHECKPOINT),
199
- blobCommitments: padArrayEnd(blobCommitments, BLS12Point.ZERO, BLOBS_PER_CHECKPOINT),
200
- blobsHash
201
- });
202
- const [left, right] = nonEmptyProofs.map((p)=>toProofData(p));
203
- return !right ? new CheckpointRootSingleBlockRollupPrivateInputs(left, hints) : new CheckpointRootRollupPrivateInputs([
204
- left,
205
- right
206
- ], hints);
207
- }
208
108
  getBlockProvingStateByBlockNumber(blockNumber) {
209
109
  const index = Number(blockNumber) - Number(this.firstBlockNumber);
210
110
  return this.blocks[index];
@@ -212,12 +112,8 @@ export class CheckpointProvingState {
212
112
  isReadyForBlockMerge(location) {
213
113
  return !!this.blockProofs.getSibling(location)?.provingOutput;
214
114
  }
215
- isReadyForCheckpointRoot() {
216
- const allChildProofsReady = this.#getChildProofsForRoot().every((p)=>!!p);
217
- return allChildProofsReady && !!this.previousOutHashHint && !!this.startBlobAccumulator;
218
- }
219
115
  verifyState() {
220
- return this.parentEpoch.verifyState();
116
+ return this.isAlive();
221
117
  }
222
118
  getError() {
223
119
  return this.error;
@@ -228,9 +124,12 @@ export class CheckpointProvingState {
228
124
  }
229
125
  reject(reason) {
230
126
  this.error = reason;
231
- this.parentEpoch.reject(reason);
127
+ this.onReject(reason);
232
128
  }
233
- #getChildProofsForRoot() {
129
+ /**
130
+ * Returns the block-level proof outputs that feed into the checkpoint root rollup.
131
+ * Used by `CheckpointSubTreeOrchestrator` to surface its sub-tree result.
132
+ */ getSubTreeOutputProofs() {
234
133
  const rootLocation = {
235
134
  level: 0,
236
135
  index: 0
@@ -240,12 +139,6 @@ export class CheckpointProvingState {
240
139
  ] // If there's only 1 block, its proof will be stored at the root.
241
140
  : this.blockProofs.getChildren(rootLocation).map((c)=>c?.provingOutput);
242
141
  }
243
- /**
244
- * Returns the block-level proof outputs that feed into the checkpoint root rollup.
245
- * Used by `CheckpointSubTreeOrchestrator` to surface its sub-tree result.
246
- */ getSubTreeOutputProofs() {
247
- return this.#getChildProofsForRoot();
248
- }
249
142
  /** Sibling path of the archive tree captured before any block in this checkpoint landed. */ getLastArchiveSiblingPath() {
250
143
  return this.lastArchiveSiblingPath;
251
144
  }
@@ -1,18 +1,19 @@
1
- import { FinalBlobBatchingChallenges } from '@aztec/blob-lib';
2
- import type { ARCHIVE_HEIGHT, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH } from '@aztec/constants';
3
- import type { EpochNumber } from '@aztec/foundation/branded-types';
1
+ import { type ARCHIVE_HEIGHT, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH } from '@aztec/constants';
2
+ import { BlockNumber, type EpochNumber } from '@aztec/foundation/branded-types';
4
3
  import { Fr } from '@aztec/foundation/curves/bn254';
5
4
  import type { LoggerBindings } from '@aztec/foundation/log';
6
- import type { Tuple } from '@aztec/foundation/serialize';
7
- import type { EthAddress } from '@aztec/stdlib/block';
5
+ import type { SerialQueue } from '@aztec/foundation/queue';
6
+ import { type Tuple } from '@aztec/foundation/serialize';
7
+ import { EthAddress } from '@aztec/stdlib/block';
8
8
  import type { ForkMerkleTreeOperations, PublicInputsAndRecursiveProof, ReadonlyWorldStateAccess, ServerCircuitProver } from '@aztec/stdlib/interfaces/server';
9
- import type { BlockRollupPublicInputs, CheckpointConstantData } from '@aztec/stdlib/rollup';
10
- import type { BlockHeader, Tx } from '@aztec/stdlib/tx';
11
- import { type TelemetryClient } from '@aztec/telemetry-client';
9
+ import { type BlockRollupPublicInputs, CheckpointConstantData } from '@aztec/stdlib/rollup';
10
+ import type { BlockHeader, ProcessedTx, Tx } from '@aztec/stdlib/tx';
11
+ import type { UInt64 } from '@aztec/stdlib/types';
12
+ import { type TelemetryClient, type Tracer } from '@aztec/telemetry-client';
12
13
  import type { BlockProvingState } from './block-proving-state.js';
13
- import type { CheckpointProvingState } from './checkpoint-proving-state.js';
14
- import type { EpochProvingContext } from './epoch-proving-context.js';
15
- import { ProvingOrchestrator } from './orchestrator.js';
14
+ import { CheckpointProvingState } from './checkpoint-proving-state.js';
15
+ import type { ChonkCache } from './chonk-cache.js';
16
+ import { ProvingScheduler } from './proving-scheduler.js';
16
17
  /**
17
18
  * Result of proving a single checkpoint's block-level sub-tree.
18
19
  *
@@ -26,82 +27,135 @@ export type SubTreeResult = {
26
27
  };
27
28
  /**
28
29
  * Orchestrates block-level proving for a single checkpoint, stopping at the boundary
29
- * where checkpoint root rollup would otherwise begin.
30
+ * where checkpoint root rollup would otherwise begin. Used by the per-checkpoint
31
+ * `CheckpointProver` in production; the top-tree orchestrator then composes the
32
+ * sub-tree's block proofs into the epoch proof.
30
33
  *
31
- * Reuses every circuit driver in `ProvingOrchestrator` (chonk verifier, base, merge,
32
- * block-root, parity, block-merge) but overrides the gating method that escalates to
33
- * checkpoint root rollup. Instead of escalating, the orchestrator resolves
34
- * `getSubTreeResult()` once every block-level proof in the checkpoint's tree is ready.
35
- *
36
- * Wiring: a single-checkpoint epoch is created in the constructor (epoch number sourced
37
- * from the supplied `EpochProvingContext`). The canonical way to obtain a fully-started
38
- * sub-tree is the `start` static factory, which also drives the single internal
39
- * `startNewCheckpoint(0, ...)` call. The sub-tree never calls `finalizeEpochStructure`;
40
- * the override of `checkAndEnqueueCheckpointRootRollup` resolves `getSubTreeResult` once
41
- * block-level proving completes.
34
+ * Wiring: a single-checkpoint mini-proving session is owned by the constructor. The
35
+ * canonical way to obtain a fully-started sub-tree is the `start` static factory,
36
+ * which also drives the single internal `startCheckpoint` call. The sub-tree never
37
+ * escalates past the checkpoint root boundary; `getSubTreeResult()` resolves once
38
+ * every block-level proof in the checkpoint's tree is ready.
42
39
  */
43
- export declare class CheckpointSubTreeOrchestrator extends ProvingOrchestrator {
40
+ export declare class CheckpointSubTreeOrchestrator extends ProvingScheduler {
41
+ private readonly dbProvider;
42
+ protected readonly prover: ServerCircuitProver;
43
+ private readonly proverId;
44
44
  /**
45
- * Per-epoch shared chonk-verifier proof cache. Every chonk-verifier proof started
46
- * by this sub-tree lives on the context and survives the sub-tree's cancellation,
47
- * so a tx whose original checkpoint is reorged out and re-appears in a replacement
48
- * checkpoint reuses the cached proof. The context's `epochNumber` is the epoch
49
- * this sub-tree proves into.
45
+ * Shared chonk-verifier proof cache. Every chonk-verifier proof started by this
46
+ * sub-tree lives on the cache and survives the sub-tree's cancellation, so a tx
47
+ * whose original checkpoint is reorged out and re-appears in a replacement
48
+ * checkpoint reuses the cached proof.
50
49
  */
51
- private readonly epochContext;
50
+ private readonly chonkCache;
51
+ /** The epoch this sub-tree proves into. */
52
+ private readonly epochNumber;
53
+ private readonly cancelJobsOnStop;
54
+ /** The single checkpoint proving state this sub-tree owns. Allocated in the `start` factory. */
55
+ protected provingState: CheckpointProvingState | undefined;
52
56
  private readonly subTreeResult;
57
+ private readonly metrics;
58
+ private dbs;
53
59
  constructor(dbProvider: ReadonlyWorldStateAccess & ForkMerkleTreeOperations, prover: ServerCircuitProver, proverId: EthAddress,
54
60
  /**
55
- * Per-epoch shared chonk-verifier proof cache. Every chonk-verifier proof started
56
- * by this sub-tree lives on the context and survives the sub-tree's cancellation,
57
- * so a tx whose original checkpoint is reorged out and re-appears in a replacement
58
- * checkpoint reuses the cached proof. The context's `epochNumber` is the epoch
59
- * this sub-tree proves into.
61
+ * Shared chonk-verifier proof cache. Every chonk-verifier proof started by this
62
+ * sub-tree lives on the cache and survives the sub-tree's cancellation, so a tx
63
+ * whose original checkpoint is reorged out and re-appears in a replacement
64
+ * checkpoint reuses the cached proof.
65
+ */
66
+ chonkCache: ChonkCache,
67
+ /** The epoch this sub-tree proves into. */
68
+ epochNumber: EpochNumber, cancelJobsOnStop: boolean | undefined, deferredJobQueue: SerialQueue, telemetryClient?: TelemetryClient, bindings?: LoggerBindings);
69
+ /** Tracks whether `cancel()` has been called; flows into the checkpoint state's isAlive hook. */
70
+ private cancelled;
71
+ get tracer(): Tracer;
72
+ getProverId(): EthAddress;
73
+ getNumActiveForks(): number;
74
+ /** Returns a promise that resolves when block-level proving completes for the checkpoint. */
75
+ getSubTreeResult(): Promise<SubTreeResult>;
76
+ /**
77
+ * Returns the archive sibling path captured at the internal checkpoint start.
78
+ * Available synchronously once `start` has resolved, before block-level proving
79
+ * completes. The top-tree consumer uses this to assemble checkpoint root rollup hints
80
+ * up-front so checkpoint root proofs can pipeline against in-flight sub-tree proving.
60
81
  */
61
- epochContext: EpochProvingContext, cancelJobsOnStop: boolean | undefined, enqueueConcurrency: number, telemetryClient?: TelemetryClient, bindings?: LoggerBindings);
82
+ getPreviousArchiveSiblingPath(): Tuple<Fr, typeof ARCHIVE_HEIGHT>;
62
83
  /**
63
84
  * Constructs and starts a sub-tree for a single checkpoint. The returned sub-tree
64
- * has had its single internal `startNewCheckpoint(0, ...)` driven; callers proceed
65
- * directly to per-block `startNewBlock` / `addTxs` / `setBlockCompleted`.
85
+ * has had its single internal checkpoint state allocated; callers proceed directly
86
+ * to per-block `startNewBlock` / `addTxs` / `setBlockCompleted`.
66
87
  *
67
- * If the internal `startNewCheckpoint` rejects, the partially-constructed sub-tree
68
- * is stopped before the error propagates, so no broker resources leak.
88
+ * If the internal start rejects, the partially-constructed sub-tree is stopped
89
+ * before the error propagates, so no broker resources leak.
69
90
  */
70
- static start(dbProvider: ReadonlyWorldStateAccess & ForkMerkleTreeOperations, prover: ServerCircuitProver, proverId: EthAddress, epochContext: EpochProvingContext, cancelJobsOnStop: boolean, enqueueConcurrency: number, checkpointConstants: CheckpointConstantData, l1ToL2Messages: Fr[], totalNumBlocks: number, headerOfLastBlockInPreviousCheckpoint: BlockHeader, telemetryClient?: TelemetryClient, bindings?: LoggerBindings): Promise<CheckpointSubTreeOrchestrator>;
71
- /** Returns a promise that resolves when block-level proving completes for the checkpoint. */
72
- getSubTreeResult(): Promise<SubTreeResult>;
91
+ static start(dbProvider: ReadonlyWorldStateAccess & ForkMerkleTreeOperations, prover: ServerCircuitProver, proverId: EthAddress, chonkCache: ChonkCache, epochNumber: EpochNumber, cancelJobsOnStop: boolean, deferredJobQueue: SerialQueue, checkpointConstants: CheckpointConstantData, l1ToL2Messages: Fr[], totalNumBlocks: number, headerOfLastBlockInPreviousCheckpoint: BlockHeader, telemetryClient?: TelemetryClient, bindings?: LoggerBindings): Promise<CheckpointSubTreeOrchestrator>;
73
92
  /**
74
- * The epoch is started in the constructor.
93
+ * Kickstart chonk-verifier circuits via the shared `ChonkCache`. The cache owns the
94
+ * broker job lifecycle, so the proof survives this sub-tree's `cancel()` — a tx that
95
+ * ends up in a replacement checkpoint after a reorg can pick the cached promise up
96
+ * and skip re-proving.
75
97
  */
76
- startNewEpoch(_epochNumber: EpochNumber, _totalNumCheckpoints: number, _finalBlobBatchingChallenges: FinalBlobBatchingChallenges): void;
98
+ startChonkVerifierCircuits(txs: Tx[]): Promise<void>;
77
99
  /**
78
- * The single internal checkpoint is started by the `start` factory
100
+ * Starts off a new block.
101
+ * @param blockNumber - The block number
102
+ * @param timestamp - The timestamp of the block. Required for empty blocks to construct private inputs.
103
+ * @param totalNumTxs - The total number of txs in the block.
79
104
  */
80
- startNewCheckpoint(_checkpointIndex: number, _constants: CheckpointConstantData, _l1ToL2Messages: Fr[], _totalNumBlocks: number, _headerOfLastBlockInPreviousCheckpoint: BlockHeader): Promise<void>;
105
+ startNewBlock(blockNumber: BlockNumber, timestamp: UInt64, totalNumTxs: number): Promise<void>;
81
106
  /**
82
- * Returns the archive sibling path captured at the internal `startNewCheckpoint`.
83
- * Available synchronously once `start` has resolved, before block-level proving
84
- * completes. The top-tree consumer uses this to assemble checkpoint root rollup hints
85
- * up-front so checkpoint root proofs can pipeline against in-flight sub-tree proving.
107
+ * The interface to add simulated transactions to the scheduler. Called at most once per block.
108
+ * @param txs - The transactions to be proven
86
109
  */
87
- getPreviousArchiveSiblingPath(): Tuple<Fr, typeof ARCHIVE_HEIGHT>;
110
+ addTxs(txs: ProcessedTx[]): Promise<void>;
88
111
  /**
89
- * Override the checkpoint-root boundary: instead of escalating to checkpoint root,
90
- * resolve the sub-tree promise with the block-level proof outputs once they're all ready.
112
+ * Marks the block as completed.
113
+ * Computes the block header and updates the archive tree.
91
114
  */
92
- protected checkAndEnqueueCheckpointRootRollup(provingState: CheckpointProvingState): Promise<void>;
115
+ setBlockCompleted(blockNumber: BlockNumber, expectedHeader?: BlockHeader): Promise<BlockHeader>;
93
116
  /**
94
- * Kickstart chonk-verifier circuits via the shared `EpochProvingContext`. The context
95
- * owns the broker job lifecycle, so the proof survives this sub-tree's `cancel()`
96
- * a tx that ends up in a replacement checkpoint after a reorg can pick the cached
97
- * promise up and skip re-proving.
117
+ * Cancels any further proving. If `cancelJobsOnStop` was set, aborts all pending broker jobs
118
+ * (used on reorg). Otherwise jobs remain in the broker queue and can be reused on restart.
98
119
  */
99
- startChonkVerifierCircuits(txs: Tx[]): Promise<void>;
120
+ cancel(): void;
121
+ protected cancelInternal(): void;
122
+ private startCheckpoint;
123
+ private updateL1ToL2MessageTree;
124
+ private prepareBaseRollupInputs;
125
+ private enqueueBaseRollup;
100
126
  /**
101
127
  * Route the tx's chonk-verifier dependency through the per-epoch context: read the
102
128
  * cached promise (or enqueue if missing), then `.then(handleResult)` to progress to
103
129
  * the base rollup once the proof lands.
104
130
  */
105
- protected getOrEnqueueChonkVerifier(provingState: BlockProvingState, txIndex: number): void;
131
+ private getOrEnqueueChonkVerifier;
132
+ private enqueueMergeRollup;
133
+ private enqueueBlockRootRollup;
134
+ private enqueueBaseParityCircuit;
135
+ private checkAndEnqueueRootParityCircuit;
136
+ private enqueueRootParityCircuit;
137
+ private enqueueBlockMergeRollup;
138
+ private checkAndEnqueueNextMergeRollup;
139
+ private checkAndEnqueueBlockRootRollup;
140
+ private checkAndEnqueueNextBlockMergeRollup;
141
+ /**
142
+ * Sub-tree analogue of the orchestrator's `checkAndEnqueueCheckpointRootRollup`:
143
+ * resolves the sub-tree promise with the block-level proof outputs once they're all ready,
144
+ * instead of escalating to the checkpoint root rollup.
145
+ */
146
+ private checkAndEnqueueSubTreeResolution;
147
+ /**
148
+ * Executes the VM circuit for a public function. Enqueues the base rollup once the
149
+ * tx's chonk-verifier + VM proofs are both ready.
150
+ */
151
+ private enqueueVM;
152
+ private checkAndEnqueueBaseRollup;
153
+ protected verifyBuiltBlockAgainstSyncedState(provingState: BlockProvingState): Promise<void>;
154
+ private getDbForBlock;
155
+ /**
156
+ * Wraps a circuit call with a tracer span and circuit attributes. Replaces the
157
+ * `ProvingScheduler.wrapCircuitCall` indirection that used to live on the abstract base.
158
+ */
159
+ private wrapCircuitCall;
106
160
  }
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludC1zdWItdHJlZS1vcmNoZXN0cmF0b3IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvY2hlY2twb2ludC1zdWItdHJlZS1vcmNoZXN0cmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLHlDQUF5QyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEcsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVELE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sS0FBSyxFQUNWLHdCQUF3QixFQUN4Qiw2QkFBNkIsRUFDN0Isd0JBQXdCLEVBQ3hCLG1CQUFtQixFQUNwQixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxFQUNWLHVCQUF1QixFQUN2QixzQkFBc0IsRUFFdkIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEQsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFzQixNQUFNLHlCQUF5QixDQUFDO0FBR25GLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLEtBQUssRUFBRSxtQkFBbUIs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
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludC1zdWItdHJlZS1vcmNoZXN0cmF0b3IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvY2hlY2twb2ludC1zdWItdHJlZS1vcmNoZXN0cmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLEtBQUssY0FBYyxFQUduQix5Q0FBeUMsRUFFMUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxLQUFLLEtBQUssRUFBZ0IsTUFBTSw2QkFBNkIsQ0FBQztBQUV2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxLQUFLLEVBQ1Ysd0JBQXdCLEVBRXhCLDZCQUE2QixFQUM3Qix3QkFBd0IsRUFDeEIsbUJBQW1CLEVBQ3BCLE1BQU0saUNBQWlDLENBQUM7QUFFekMsT0FBTyxFQUVMLEtBQUssdUJBQXVCLEVBSzVCLHNCQUFzQixFQUd2QixNQUFNLHNCQUFzQixDQUFDO0FBRzlCLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUVMLEtBQUssZUFBZSxFQUNwQixLQUFLLE1BQU0sRUFJWixNQUFNLHlCQUF5QixDQUFDO0FBZWpDLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBC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
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint-sub-tree-orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/checkpoint-sub-tree-orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkpoint-sub-tree-orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/checkpoint-sub-tree-orchestrator.ts"],"names":[],"mappings":"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"}