@aztec/prover-client 0.0.1-commit.7b97ef96e → 0.0.1-commit.7cbc774

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 (82) hide show
  1. package/dest/config.d.ts +1 -1
  2. package/dest/config.d.ts.map +1 -1
  3. package/dest/config.js +16 -2
  4. package/dest/light/lightweight_checkpoint_builder.d.ts +6 -2
  5. package/dest/light/lightweight_checkpoint_builder.d.ts.map +1 -1
  6. package/dest/light/lightweight_checkpoint_builder.js +40 -11
  7. package/dest/mocks/test_context.d.ts +3 -1
  8. package/dest/mocks/test_context.d.ts.map +1 -1
  9. package/dest/mocks/test_context.js +14 -8
  10. package/dest/orchestrator/block-building-helpers.d.ts +1 -1
  11. package/dest/orchestrator/checkpoint-proving-state.d.ts +8 -1
  12. package/dest/orchestrator/checkpoint-proving-state.d.ts.map +1 -1
  13. package/dest/orchestrator/checkpoint-proving-state.js +10 -1
  14. package/dest/orchestrator/checkpoint-sub-tree-orchestrator.d.ts +107 -0
  15. package/dest/orchestrator/checkpoint-sub-tree-orchestrator.d.ts.map +1 -0
  16. package/dest/orchestrator/checkpoint-sub-tree-orchestrator.js +151 -0
  17. package/dest/orchestrator/epoch-proving-context.d.ts +51 -0
  18. package/dest/orchestrator/epoch-proving-context.d.ts.map +1 -0
  19. package/dest/orchestrator/epoch-proving-context.js +81 -0
  20. package/dest/orchestrator/epoch-proving-state.d.ts +1 -1
  21. package/dest/orchestrator/index.d.ts +4 -1
  22. package/dest/orchestrator/index.d.ts.map +1 -1
  23. package/dest/orchestrator/index.js +3 -0
  24. package/dest/orchestrator/orchestrator.d.ts +15 -25
  25. package/dest/orchestrator/orchestrator.d.ts.map +1 -1
  26. package/dest/orchestrator/orchestrator.js +33 -154
  27. package/dest/orchestrator/proving-scheduler.d.ts +72 -0
  28. package/dest/orchestrator/proving-scheduler.d.ts.map +1 -0
  29. package/dest/orchestrator/proving-scheduler.js +117 -0
  30. package/dest/orchestrator/top-tree-orchestrator.d.ts +83 -0
  31. package/dest/orchestrator/top-tree-orchestrator.d.ts.map +1 -0
  32. package/dest/orchestrator/top-tree-orchestrator.js +182 -0
  33. package/dest/orchestrator/top-tree-proving-scheduler.d.ts +62 -0
  34. package/dest/orchestrator/top-tree-proving-scheduler.d.ts.map +1 -0
  35. package/dest/orchestrator/top-tree-proving-scheduler.js +73 -0
  36. package/dest/orchestrator/top-tree-proving-state.d.ts +61 -0
  37. package/dest/orchestrator/top-tree-proving-state.d.ts.map +1 -0
  38. package/dest/orchestrator/top-tree-proving-state.js +185 -0
  39. package/dest/prover-client/prover-client.d.ts +62 -3
  40. package/dest/prover-client/prover-client.d.ts.map +1 -1
  41. package/dest/prover-client/prover-client.js +50 -2
  42. package/dest/proving_broker/broker_prover_facade.d.ts +1 -1
  43. package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
  44. package/dest/proving_broker/broker_prover_facade.js +13 -19
  45. package/dest/proving_broker/config.d.ts +9 -73
  46. package/dest/proving_broker/config.d.ts.map +1 -1
  47. package/dest/proving_broker/config.js +3 -3
  48. package/dest/proving_broker/index.d.ts +2 -1
  49. package/dest/proving_broker/index.d.ts.map +1 -1
  50. package/dest/proving_broker/index.js +1 -0
  51. package/dest/proving_broker/proving_broker.d.ts +2 -2
  52. package/dest/proving_broker/proving_broker.d.ts.map +1 -1
  53. package/dest/proving_broker/proving_broker.js +39 -10
  54. package/dest/proving_broker/proving_broker_database/persisted.js +2 -2
  55. package/dest/proving_broker/proving_broker_instrumentation.d.ts +3 -1
  56. package/dest/proving_broker/proving_broker_instrumentation.d.ts.map +1 -1
  57. package/dest/proving_broker/proving_broker_instrumentation.js +7 -0
  58. package/dest/proving_broker/rpc.d.ts +3 -1
  59. package/dest/proving_broker/rpc.d.ts.map +1 -1
  60. package/dest/proving_broker/rpc.js +80 -24
  61. package/dest/test/mock_prover.d.ts +3 -3
  62. package/package.json +18 -19
  63. package/src/config.ts +18 -2
  64. package/src/light/lightweight_checkpoint_builder.ts +46 -20
  65. package/src/mocks/test_context.ts +12 -9
  66. package/src/orchestrator/checkpoint-proving-state.ts +14 -1
  67. package/src/orchestrator/checkpoint-sub-tree-orchestrator.ts +271 -0
  68. package/src/orchestrator/epoch-proving-context.ts +101 -0
  69. package/src/orchestrator/index.ts +8 -0
  70. package/src/orchestrator/orchestrator.ts +46 -210
  71. package/src/orchestrator/proving-scheduler.ts +156 -0
  72. package/src/orchestrator/top-tree-orchestrator.ts +314 -0
  73. package/src/orchestrator/top-tree-proving-scheduler.ts +154 -0
  74. package/src/orchestrator/top-tree-proving-state.ts +220 -0
  75. package/src/prover-client/prover-client.ts +127 -2
  76. package/src/proving_broker/broker_prover_facade.ts +17 -20
  77. package/src/proving_broker/config.ts +3 -2
  78. package/src/proving_broker/index.ts +1 -0
  79. package/src/proving_broker/proving_broker.ts +34 -7
  80. package/src/proving_broker/proving_broker_database/persisted.ts +2 -2
  81. package/src/proving_broker/proving_broker_instrumentation.ts +9 -0
  82. package/src/proving_broker/rpc.ts +36 -24
@@ -0,0 +1,151 @@
1
+ import { FinalBlobBatchingChallenges } from '@aztec/blob-lib';
2
+ import { promiseWithResolvers } from '@aztec/foundation/promise';
3
+ import { getTelemetryClient } from '@aztec/telemetry-client';
4
+ import { getPublicChonkVerifierPrivateInputsFromTx } from './block-building-helpers.js';
5
+ import { ProvingOrchestrator } from './orchestrator.js';
6
+ /**
7
+ * Orchestrates block-level proving for a single checkpoint, stopping at the boundary
8
+ * where checkpoint root rollup would otherwise begin.
9
+ *
10
+ * Reuses every circuit driver in `ProvingOrchestrator` (chonk verifier, base, merge,
11
+ * block-root, parity, block-merge) but overrides the gating method that escalates to
12
+ * checkpoint root rollup. Instead of escalating, the orchestrator resolves
13
+ * `getSubTreeResult()` once every block-level proof in the checkpoint's tree is ready.
14
+ *
15
+ * Wiring: a single-checkpoint epoch is created in the constructor (epoch number sourced
16
+ * from the supplied `EpochProvingContext`). The canonical way to obtain a fully-started
17
+ * sub-tree is the `start` static factory, which also drives the single internal
18
+ * `startNewCheckpoint(0, ...)` call. The sub-tree never calls `finalizeEpochStructure`;
19
+ * the override of `checkAndEnqueueCheckpointRootRollup` resolves `getSubTreeResult` once
20
+ * block-level proving completes.
21
+ */ export class CheckpointSubTreeOrchestrator extends ProvingOrchestrator {
22
+ epochContext;
23
+ subTreeResult;
24
+ constructor(dbProvider, prover, proverId, /**
25
+ * Per-epoch shared chonk-verifier proof cache. Every chonk-verifier proof started
26
+ * by this sub-tree lives on the context and survives the sub-tree's cancellation,
27
+ * so a tx whose original checkpoint is reorged out and re-appears in a replacement
28
+ * checkpoint reuses the cached proof. The context's `epochNumber` is the epoch
29
+ * this sub-tree proves into.
30
+ */ epochContext, cancelJobsOnStop = false, enqueueConcurrency, telemetryClient = getTelemetryClient(), bindings){
31
+ super(dbProvider, prover, proverId, cancelJobsOnStop, enqueueConcurrency, telemetryClient, bindings), this.epochContext = epochContext;
32
+ // Single-checkpoint mini-epoch by construction. The total/challenges supplied to
33
+ // `super.startNewEpoch` are never read, because the sub-tree overrides
34
+ // `checkAndEnqueueCheckpointRootRollup` to short-circuit before the parent's
35
+ // checkpoint-root / finalize machinery would consume them.
36
+ super.startNewEpoch(epochContext.epochNumber, 1, FinalBlobBatchingChallenges.empty());
37
+ this.subTreeResult = promiseWithResolvers();
38
+ // Mark the rejection branch as observed so a `cancel()` or proving failure does not
39
+ // surface an unhandled rejection when no consumer awaits getSubTreeResult().
40
+ this.subTreeResult.promise.catch(()=>{});
41
+ // If the parent's proving state ever rejects, surface the failure on the sub-tree promise.
42
+ void this.provingPromise.then((result)=>{
43
+ if (result.status === 'failure') {
44
+ this.subTreeResult.reject(new Error(result.reason));
45
+ }
46
+ });
47
+ }
48
+ /**
49
+ * Constructs and starts a sub-tree for a single checkpoint. The returned sub-tree
50
+ * has had its single internal `startNewCheckpoint(0, ...)` driven; callers proceed
51
+ * directly to per-block `startNewBlock` / `addTxs` / `setBlockCompleted`.
52
+ *
53
+ * If the internal `startNewCheckpoint` rejects, the partially-constructed sub-tree
54
+ * is stopped before the error propagates, so no broker resources leak.
55
+ */ static async start(dbProvider, prover, proverId, epochContext, cancelJobsOnStop, enqueueConcurrency, checkpointConstants, l1ToL2Messages, totalNumBlocks, headerOfLastBlockInPreviousCheckpoint, telemetryClient = getTelemetryClient(), bindings) {
56
+ const subTree = new CheckpointSubTreeOrchestrator(dbProvider, prover, proverId, epochContext, cancelJobsOnStop, enqueueConcurrency, telemetryClient, bindings);
57
+ try {
58
+ await ProvingOrchestrator.prototype.startNewCheckpoint.call(subTree, 0, checkpointConstants, l1ToL2Messages, totalNumBlocks, headerOfLastBlockInPreviousCheckpoint);
59
+ return subTree;
60
+ } catch (err) {
61
+ await subTree.stop().catch(()=>{});
62
+ throw err;
63
+ }
64
+ }
65
+ /** Returns a promise that resolves when block-level proving completes for the checkpoint. */ getSubTreeResult() {
66
+ return this.subTreeResult.promise;
67
+ }
68
+ /**
69
+ * The epoch is started in the constructor.
70
+ */ startNewEpoch(_epochNumber, _totalNumCheckpoints, _finalBlobBatchingChallenges) {
71
+ throw new Error('CheckpointSubTreeOrchestrator starts its epoch in the constructor; do not call startNewEpoch.');
72
+ }
73
+ /**
74
+ * The single internal checkpoint is started by the `start` factory
75
+ */ startNewCheckpoint(_checkpointIndex, _constants, _l1ToL2Messages, _totalNumBlocks, _headerOfLastBlockInPreviousCheckpoint) {
76
+ return Promise.reject(new Error('CheckpointSubTreeOrchestrator drives its single checkpoint in `start`; do not call startNewCheckpoint.'));
77
+ }
78
+ /**
79
+ * Returns the archive sibling path captured at the internal `startNewCheckpoint`.
80
+ * Available synchronously once `start` has resolved, before block-level proving
81
+ * completes. The top-tree consumer uses this to assemble checkpoint root rollup hints
82
+ * up-front so checkpoint root proofs can pipeline against in-flight sub-tree proving.
83
+ */ getPreviousArchiveSiblingPath() {
84
+ const checkpoint = this.provingState.getCheckpointProvingState(0);
85
+ if (!checkpoint) {
86
+ throw new Error('Checkpoint not started; call CheckpointSubTreeOrchestrator.start first.');
87
+ }
88
+ return checkpoint.getLastArchiveSiblingPath();
89
+ }
90
+ /**
91
+ * Override the checkpoint-root boundary: instead of escalating to checkpoint root,
92
+ * resolve the sub-tree promise with the block-level proof outputs once they're all ready.
93
+ */ // eslint-disable-next-line require-await
94
+ async checkAndEnqueueCheckpointRootRollup(provingState) {
95
+ const proofs = provingState.getSubTreeOutputProofs();
96
+ const nonEmpty = proofs.filter((p)=>!!p);
97
+ if (proofs.length !== nonEmpty.length) {
98
+ // Block merge tree not fully resolved yet — will be retried as more block proofs land.
99
+ return;
100
+ }
101
+ this.subTreeResult.resolve({
102
+ blockProofOutputs: nonEmpty,
103
+ previousArchiveSiblingPath: provingState.getLastArchiveSiblingPath()
104
+ });
105
+ }
106
+ /**
107
+ * Kickstart chonk-verifier circuits via the shared `EpochProvingContext`. The context
108
+ * owns the broker job lifecycle, so the proof survives this sub-tree's `cancel()` —
109
+ * a tx that ends up in a replacement checkpoint after a reorg can pick the cached
110
+ * promise up and skip re-proving.
111
+ */ startChonkVerifierCircuits(txs) {
112
+ if (!this.provingState?.verifyState()) {
113
+ return Promise.reject(new Error('Sub-tree proving state is not active.'));
114
+ }
115
+ const publicTxs = txs.filter((tx)=>tx.data.forPublic);
116
+ for (const tx of publicTxs){
117
+ const txHash = tx.getTxHash().toString();
118
+ const inputs = getPublicChonkVerifierPrivateInputsFromTx(tx, this.getProverId().toField());
119
+ // Fire and forget — getOrEnqueueChonkVerifier later picks up the cached promise
120
+ // when the tx is processed inside its block.
121
+ void this.epochContext.enqueue(txHash, inputs);
122
+ }
123
+ return Promise.resolve();
124
+ }
125
+ /**
126
+ * Route the tx's chonk-verifier dependency through the per-epoch context: read the
127
+ * cached promise (or enqueue if missing), then `.then(handleResult)` to progress to
128
+ * the base rollup once the proof lands.
129
+ */ getOrEnqueueChonkVerifier(provingState, txIndex) {
130
+ if (!provingState.verifyState()) {
131
+ return;
132
+ }
133
+ const txProvingState = provingState.getTxProvingState(txIndex);
134
+ const txHash = txProvingState.processedTx.hash.toString();
135
+ const handleResult = (result)=>{
136
+ if (!provingState.verifyState()) {
137
+ return;
138
+ }
139
+ txProvingState.setPublicChonkVerifierProof(result);
140
+ this.checkAndEnqueueBaseRollup(provingState, txIndex);
141
+ };
142
+ let promise = this.epochContext.getCached(txHash);
143
+ if (!promise) {
144
+ promise = this.epochContext.enqueue(txHash, txProvingState.getPublicChonkVerifierPrivateInputs());
145
+ }
146
+ void promise.then(handleResult).catch(()=>{
147
+ // The context self-cleans on rejection; a future call (replacement sub-tree
148
+ // for this tx) will see the miss and re-enqueue. No action needed here.
149
+ });
150
+ }
151
+ }
@@ -0,0 +1,51 @@
1
+ import type { NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH } from '@aztec/constants';
2
+ import type { EpochNumber } from '@aztec/foundation/branded-types';
3
+ import { type LoggerBindings } from '@aztec/foundation/log';
4
+ import type { PublicInputsAndRecursiveProof, ServerCircuitProver } from '@aztec/stdlib/interfaces/server';
5
+ import type { PublicChonkVerifierPrivateInputs, PublicChonkVerifierPublicInputs } from '@aztec/stdlib/rollup';
6
+ /**
7
+ * Result of a chonk-verifier proof, cached per tx hash on `EpochProvingContext`.
8
+ */
9
+ export type ChonkVerifierProofResult = PublicInputsAndRecursiveProof<PublicChonkVerifierPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>;
10
+ /**
11
+ * Per-epoch state shared across every `CheckpointSubTreeOrchestrator` constructed for
12
+ * the same epoch. Owns the chonk-verifier proof cache so a tx whose checkpoint is
13
+ * reorged out and re-appears in a replacement checkpoint does not have to re-prove
14
+ * its chonk circuit.
15
+ *
16
+ * The context's chonk-verifier broker jobs are deliberately submitted **outside** the
17
+ * sub-tree's deferred-proving queue. The sub-tree's `cancel()` therefore does not abort
18
+ * them — by design, because their result is tx-scoped, not sub-tree-scoped, and a
19
+ * replacement sub-tree should be able to consume the cached proof.
20
+ *
21
+ * Callers (`EpochProvingJob`, or unit tests) construct one context per epoch and pass
22
+ * it into every sub-tree they create. `stop()` aborts every in-flight chonk job.
23
+ */
24
+ export declare class EpochProvingContext {
25
+ private readonly prover;
26
+ readonly epochNumber: EpochNumber;
27
+ private readonly cache;
28
+ /** Abort controllers for in-flight chonk jobs, keyed by tx hash. */
29
+ private readonly pending;
30
+ private readonly log;
31
+ private stopped;
32
+ constructor(prover: ServerCircuitProver, epochNumber: EpochNumber, bindings?: LoggerBindings);
33
+ /**
34
+ * Returns the cached chonk-verifier proof promise for the given tx hash, or
35
+ * `undefined` if none has been enqueued yet. Non-mutating.
36
+ */
37
+ getCached(txHash: string): Promise<ChonkVerifierProofResult> | undefined;
38
+ /**
39
+ * Enqueues a chonk-verifier proof for the given tx hash, returning the promise (or
40
+ * the already-cached one if already enqueued). The promise resolves when the broker
41
+ * delivers the result; on rejection (including `stop()`), the cache entry is removed
42
+ * so a subsequent caller can re-enqueue.
43
+ */
44
+ enqueue(txHash: string, inputs: PublicChonkVerifierPrivateInputs): Promise<ChonkVerifierProofResult>;
45
+ /**
46
+ * Aborts every in-flight chonk-verifier broker job and clears the cache. Called by
47
+ * the owning `EpochProvingJob` when the job stops.
48
+ */
49
+ stop(): void;
50
+ }
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXBvY2gtcHJvdmluZy1jb250ZXh0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb3JjaGVzdHJhdG9yL2Vwb2NoLXByb3ZpbmctY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSx5Q0FBeUMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xGLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBZSxLQUFLLGNBQWMsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RixPQUFPLEtBQUssRUFBRSw2QkFBNkIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzFHLE9BQU8sS0FBSyxFQUFFLGdDQUFnQyxFQUFFLCtCQUErQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFOUc7O0dBRUc7QUFDSCxNQUFNLE1BQU0sd0JBQXdCLEdBQUcsNkJBQTZCLENBQ2xFLCtCQUErQixFQUMvQixPQUFPLHlDQUF5QyxDQUNqRCxDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILHFCQUFhLG1CQUFtQjtJQVE1QixPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU07YUFDUCxXQUFXLEVBQUUsV0FBVztJQVIxQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBd0Q7SUFDOUUsb0VBQW9FO0lBQ3BFLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFzQztJQUM5RCxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBUztJQUM3QixPQUFPLENBQUMsT0FBTyxDQUFTO0lBRXhCLFlBQ21CLE1BQU0sRUFBRSxtQkFBbUIsRUFDNUIsV0FBVyxFQUFFLFdBQVcsRUFDeEMsUUFBUSxDQUFDLEVBQUUsY0FBYyxFQUcxQjtJQUVEOzs7T0FHRztJQUNJLFNBQVMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLFNBQVMsQ0FFOUU7SUFFRDs7Ozs7T0FLRztJQUNJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxnQ0FBZ0MsR0FBRyxPQUFPLENBQUMsd0JBQXdCLENBQUMsQ0E2QjFHO0lBRUQ7OztPQUdHO0lBQ0ksSUFBSSxTQU9WO0NBQ0YifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"epoch-proving-context.d.ts","sourceRoot":"","sources":["../../src/orchestrator/epoch-proving-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yCAAyC,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AACvF,OAAO,KAAK,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC1G,OAAO,KAAK,EAAE,gCAAgC,EAAE,+BAA+B,EAAE,MAAM,sBAAsB,CAAC;AAE9G;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,6BAA6B,CAClE,+BAA+B,EAC/B,OAAO,yCAAyC,CACjD,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,qBAAa,mBAAmB;IAQ5B,OAAO,CAAC,QAAQ,CAAC,MAAM;aACP,WAAW,EAAE,WAAW;IAR1C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwD;IAC9E,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;IAC9D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAS;IAExB,YACmB,MAAM,EAAE,mBAAmB,EAC5B,WAAW,EAAE,WAAW,EACxC,QAAQ,CAAC,EAAE,cAAc,EAG1B;IAED;;;OAGG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,GAAG,SAAS,CAE9E;IAED;;;;;OAKG;IACI,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,gCAAgC,GAAG,OAAO,CAAC,wBAAwB,CAAC,CA6B1G;IAED;;;OAGG;IACI,IAAI,SAOV;CACF"}
@@ -0,0 +1,81 @@
1
+ import { createLogger } from '@aztec/foundation/log';
2
+ /**
3
+ * Per-epoch state shared across every `CheckpointSubTreeOrchestrator` constructed for
4
+ * the same epoch. Owns the chonk-verifier proof cache so a tx whose checkpoint is
5
+ * reorged out and re-appears in a replacement checkpoint does not have to re-prove
6
+ * its chonk circuit.
7
+ *
8
+ * The context's chonk-verifier broker jobs are deliberately submitted **outside** the
9
+ * sub-tree's deferred-proving queue. The sub-tree's `cancel()` therefore does not abort
10
+ * them — by design, because their result is tx-scoped, not sub-tree-scoped, and a
11
+ * replacement sub-tree should be able to consume the cached proof.
12
+ *
13
+ * Callers (`EpochProvingJob`, or unit tests) construct one context per epoch and pass
14
+ * it into every sub-tree they create. `stop()` aborts every in-flight chonk job.
15
+ */ export class EpochProvingContext {
16
+ prover;
17
+ epochNumber;
18
+ cache;
19
+ /** Abort controllers for in-flight chonk jobs, keyed by tx hash. */ pending;
20
+ log;
21
+ stopped;
22
+ constructor(prover, epochNumber, bindings){
23
+ this.prover = prover;
24
+ this.epochNumber = epochNumber;
25
+ this.cache = new Map();
26
+ this.pending = new Map();
27
+ this.stopped = false;
28
+ this.log = createLogger('prover-client:epoch-proving-context', bindings);
29
+ }
30
+ /**
31
+ * Returns the cached chonk-verifier proof promise for the given tx hash, or
32
+ * `undefined` if none has been enqueued yet. Non-mutating.
33
+ */ getCached(txHash) {
34
+ return this.cache.get(txHash);
35
+ }
36
+ /**
37
+ * Enqueues a chonk-verifier proof for the given tx hash, returning the promise (or
38
+ * the already-cached one if already enqueued). The promise resolves when the broker
39
+ * delivers the result; on rejection (including `stop()`), the cache entry is removed
40
+ * so a subsequent caller can re-enqueue.
41
+ */ enqueue(txHash, inputs) {
42
+ if (this.stopped) {
43
+ return Promise.reject(new Error('EpochProvingContext is stopped'));
44
+ }
45
+ const cached = this.cache.get(txHash);
46
+ if (cached) {
47
+ return cached;
48
+ }
49
+ const controller = new AbortController();
50
+ this.pending.set(txHash, controller);
51
+ this.log.debug(`Enqueueing chonk-verifier circuit`, {
52
+ txHash,
53
+ epochNumber: this.epochNumber
54
+ });
55
+ const promise = this.prover.getPublicChonkVerifierProof(inputs, controller.signal, this.epochNumber).finally(()=>this.pending.delete(txHash));
56
+ // Self-clean on rejection so a future caller can re-enqueue. Mark the rejection
57
+ // path as observed to silence unhandled-rejection warnings when no consumer
58
+ // awaits the promise (e.g. when the only `.then` chain belonged to a cancelled
59
+ // sub-tree's tx-proving state).
60
+ promise.catch((err)=>{
61
+ this.cache.delete(txHash);
62
+ this.log.debug(`Chonk-verifier proof failed; evicted from cache`, {
63
+ txHash,
64
+ error: `${err}`
65
+ });
66
+ });
67
+ this.cache.set(txHash, promise);
68
+ return promise;
69
+ }
70
+ /**
71
+ * Aborts every in-flight chonk-verifier broker job and clears the cache. Called by
72
+ * the owning `EpochProvingJob` when the job stops.
73
+ */ stop() {
74
+ this.stopped = true;
75
+ for (const controller of this.pending.values()){
76
+ controller.abort();
77
+ }
78
+ this.pending.clear();
79
+ this.cache.clear();
80
+ }
81
+ }
@@ -39,7 +39,7 @@ export declare class EpochProvingState {
39
39
  private endBlobAccumulator;
40
40
  private finalBatchedBlob;
41
41
  private provingStateLifecycle;
42
- readonly cachedChonkVerifierProofs: Map<string, Promise<PublicInputsAndRecursiveProof<PublicChonkVerifierPublicInputs, 519>>>;
42
+ readonly cachedChonkVerifierProofs: Map<string, Promise<PublicInputsAndRecursiveProof<PublicChonkVerifierPublicInputs, 480>>>;
43
43
  constructor(epochNumber: EpochNumber, totalNumCheckpoints: number, finalBlobBatchingChallenges: FinalBlobBatchingChallenges, onCheckpointBlobAccumulatorSet: (checkpoint: CheckpointProvingState) => Promise<void>, completionCallback: (result: ProvingResult) => void, rejectionCallback: (reason: string) => void);
44
44
  startNewCheckpoint(checkpointIndex: number, constants: CheckpointConstantData, totalNumBlocks: number, previousBlockHeader: BlockHeader, lastArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>, l1ToL2Messages: Fr[], lastL1ToL2MessageTreeSnapshot: AppendOnlyTreeSnapshot, lastL1ToL2MessageSubtreeRootSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH>, newL1ToL2MessageTreeSnapshot: AppendOnlyTreeSnapshot, newL1ToL2MessageSubtreeRootSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH>): CheckpointProvingState;
45
45
  getCheckpointProvingState(index: number): CheckpointProvingState | undefined;
@@ -1,2 +1,5 @@
1
1
  export { ProvingOrchestrator } from './orchestrator.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUMifQ==
2
+ export { CheckpointSubTreeOrchestrator, type SubTreeResult } from './checkpoint-sub-tree-orchestrator.js';
3
+ export { EpochProvingContext, type ChonkVerifierProofResult } from './epoch-proving-context.js';
4
+ export { TopTreeOrchestrator, TopTreeCancelledError, type CheckpointTopTreeData, type TopTreeResult, } from './top-tree-orchestrator.js';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLEtBQUssYUFBYSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDMUcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLEtBQUssd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRyxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQixLQUFLLHFCQUFxQixFQUMxQixLQUFLLGFBQWEsR0FDbkIsTUFBTSw0QkFBNEIsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/orchestrator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/orchestrator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,6BAA6B,EAAE,KAAK,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC1G,OAAO,EAAE,mBAAmB,EAAE,KAAK,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAChG,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,GACnB,MAAM,4BAA4B,CAAC"}
@@ -1 +1,4 @@
1
1
  export { ProvingOrchestrator } from './orchestrator.js';
2
+ export { CheckpointSubTreeOrchestrator } from './checkpoint-sub-tree-orchestrator.js';
3
+ export { EpochProvingContext } from './epoch-proving-context.js';
4
+ export { TopTreeOrchestrator, TopTreeCancelledError } from './top-tree-orchestrator.js';
@@ -1,7 +1,7 @@
1
1
  import { BatchedBlob, FinalBlobBatchingChallenges } from '@aztec/blob-lib/types';
2
2
  import { BlockNumber, EpochNumber } from '@aztec/foundation/branded-types';
3
3
  import { Fr } from '@aztec/foundation/curves/bn254';
4
- import { type LoggerBindings } from '@aztec/foundation/log';
4
+ import type { LoggerBindings } from '@aztec/foundation/log';
5
5
  import { EthAddress } from '@aztec/stdlib/block';
6
6
  import type { EpochProver, ForkMerkleTreeOperations, ReadonlyWorldStateAccess, ServerCircuitProver } from '@aztec/stdlib/interfaces/server';
7
7
  import type { Proof } from '@aztec/stdlib/proofs';
@@ -10,6 +10,9 @@ import type { BlockHeader, ProcessedTx, Tx } from '@aztec/stdlib/tx';
10
10
  import type { UInt64 } from '@aztec/stdlib/types';
11
11
  import { type TelemetryClient, type Tracer } from '@aztec/telemetry-client';
12
12
  import type { BlockProvingState } from './block-proving-state.js';
13
+ import type { CheckpointProvingState } from './checkpoint-proving-state.js';
14
+ import { EpochProvingState, type ProvingResult } from './epoch-proving-state.js';
15
+ import { TopTreeProvingScheduler } from './top-tree-proving-scheduler.js';
13
16
  /**
14
17
  * Implements an event driven proving scheduler to build the recursive proof tree. The idea being:
15
18
  * 1. Transactions are provided to the scheduler post simulation.
@@ -23,22 +26,21 @@ import type { BlockProvingState } from './block-proving-state.js';
23
26
  /**
24
27
  * The orchestrator, managing the flow of recursive proving operations required to build the rollup proof tree.
25
28
  */
26
- export declare class ProvingOrchestrator implements EpochProver {
29
+ export declare class ProvingOrchestrator extends TopTreeProvingScheduler implements EpochProver {
27
30
  private dbProvider;
28
- private prover;
29
31
  private readonly proverId;
30
32
  private readonly cancelJobsOnStop;
31
- private provingState;
32
- private pendingProvingJobs;
33
- private provingPromise;
33
+ protected provingState: EpochProvingState | undefined;
34
+ protected provingPromise: Promise<ProvingResult> | undefined;
34
35
  private metrics;
35
36
  private dbs;
36
- private logger;
37
- constructor(dbProvider: ReadonlyWorldStateAccess & ForkMerkleTreeOperations, prover: ServerCircuitProver, proverId: EthAddress, cancelJobsOnStop?: boolean, telemetryClient?: TelemetryClient, bindings?: LoggerBindings);
37
+ constructor(dbProvider: ReadonlyWorldStateAccess & ForkMerkleTreeOperations, prover: ServerCircuitProver, proverId: EthAddress, cancelJobsOnStop: boolean | undefined, enqueueConcurrency: number, telemetryClient?: TelemetryClient, bindings?: LoggerBindings);
38
38
  get tracer(): Tracer;
39
39
  getProverId(): EthAddress;
40
40
  getNumActiveForks(): number;
41
- stop(): Promise<void>;
41
+ protected cancelInternal(): void;
42
+ protected wrapCircuitCall<T>(circuitName: string, fn: (signal: AbortSignal) => Promise<T>): (signal: AbortSignal) => Promise<T>;
43
+ protected onRootRollupComplete(state: EpochProvingState): void;
42
44
  startNewEpoch(epochNumber: EpochNumber, totalNumCheckpoints: number, finalBlobBatchingChallenges: FinalBlobBatchingChallenges): void;
43
45
  /**
44
46
  * Starts a new checkpoint.
@@ -88,17 +90,10 @@ export declare class ProvingOrchestrator implements EpochProver {
88
90
  proof: Proof;
89
91
  batchedBlobInputs: BatchedBlob;
90
92
  }>;
91
- /**
92
- * Enqueue a job to be scheduled
93
- * @param provingState - The proving state object being operated on
94
- * @param jobType - The type of job to be queued
95
- * @param job - The actual job, returns a promise notifying of the job's completion
96
- */
97
- private deferredProving;
98
93
  private updateL1ToL2MessageTree;
99
94
  private prepareBaseRollupInputs;
100
95
  private enqueueBaseRollup;
101
- private getOrEnqueueChonkVerifier;
96
+ protected getOrEnqueueChonkVerifier(provingState: BlockProvingState, txIndex: number): void;
102
97
  private doEnqueueChonkVerifier;
103
98
  private enqueueMergeRollup;
104
99
  private enqueueBlockRootRollup;
@@ -107,15 +102,10 @@ export declare class ProvingOrchestrator implements EpochProver {
107
102
  private enqueueRootParityCircuit;
108
103
  private enqueueBlockMergeRollup;
109
104
  private enqueueCheckpointRootRollup;
110
- private enqueueCheckpointMergeRollup;
111
- private enqueueEpochPadding;
112
- private enqueueRootRollup;
113
105
  private checkAndEnqueueNextMergeRollup;
114
106
  private checkAndEnqueueBlockRootRollup;
115
107
  private checkAndEnqueueNextBlockMergeRollup;
116
- private checkAndEnqueueCheckpointRootRollup;
117
- private checkAndEnqueueNextCheckpointMergeRollup;
118
- private checkAndEnqueueRootRollup;
108
+ protected checkAndEnqueueCheckpointRootRollup(provingState: CheckpointProvingState): Promise<void>;
119
109
  /**
120
110
  * Executes the VM circuit for a public function, will enqueue the corresponding kernel if the
121
111
  * previous kernel is ready
@@ -123,6 +113,6 @@ export declare class ProvingOrchestrator implements EpochProver {
123
113
  * @param txIndex - The index of the transaction being proven
124
114
  */
125
115
  private enqueueVM;
126
- private checkAndEnqueueBaseRollup;
116
+ protected checkAndEnqueueBaseRollup(provingState: BlockProvingState, txIndex: number): void;
127
117
  }
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JjaGVzdHJhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb3JjaGVzdHJhdG9yL29yY2hlc3RyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLDJCQUEyQixFQUFjLE1BQU0sdUJBQXVCLENBQUM7QUFRN0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUzRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEQsT0FBTyxFQUFlLEtBQUssY0FBYyxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBTXZGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEtBQUssRUFDVixXQUFXLEVBQ1gsd0JBQXdCLEVBR3hCLHdCQUF3QixFQUN4QixtQkFBbUIsRUFDcEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBTUwsc0JBQXNCLEVBS3RCLHNCQUFzQixFQUN2QixNQUFNLHNCQUFzQixDQUFDO0FBRzlCLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUVMLEtBQUssZUFBZSxFQUNwQixLQUFLLE1BQU0sRUFJWixNQUFNLHlCQUF5QixDQUFDO0FBZWpDLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFNbEU7Ozs7Ozs7OztHQVNHO0FBRUg7O0dBRUc7QUFDSCxxQkFBYSxtQkFBb0IsWUFBVyxXQUFXO0lBV25ELE9BQU8sQ0FBQyxVQUFVO0lBQ2xCLE9BQU8sQ0FBQyxNQUFNO0lB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
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JjaGVzdHJhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb3JjaGVzdHJhdG9yL29yY2hlc3RyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLDJCQUEyQixFQUFjLE1BQU0sdUJBQXVCLENBQUM7QUFPN0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFNNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxFQUNWLFdBQVcsRUFDWCx3QkFBd0IsRUFHeEIsd0JBQXdCLEVBQ3hCLG1CQUFtQixFQUNwQixNQUFNLGlDQUFpQyxDQUFDO0FBRXpDLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFNTCxzQkFBc0IsRUFLdEIsc0JBQXNCLEVBQ3ZCLE1BQU0sc0JBQXNCLENBQUM7QUFHOUIsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBRUwsS0FBSyxlQUFlLEVBQ3BCLEtBQUssTUFBTSxFQUlaLE1BQU0seUJBQXlCLENBQUM7QUFlakMsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxLQUFLLGFBQWEsRUFBc0IsTUFBTSwwQkFB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
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"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"}