@aztec/prover-node 5.0.0-rc.1 → 5.0.0
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/README.md +73 -68
- package/dest/actions/rerun-epoch-proving-job.d.ts +2 -2
- package/dest/actions/rerun-epoch-proving-job.d.ts.map +1 -1
- package/dest/checkpoint-store.d.ts +42 -37
- package/dest/checkpoint-store.d.ts.map +1 -1
- package/dest/checkpoint-store.js +65 -77
- package/dest/job/checkpoint-prover.d.ts +6 -16
- package/dest/job/checkpoint-prover.d.ts.map +1 -1
- package/dest/job/checkpoint-prover.js +15 -35
- package/dest/job/epoch-session.d.ts +2 -2
- package/dest/job/epoch-session.d.ts.map +1 -1
- package/dest/job/epoch-session.js +20 -9
- package/dest/metrics.d.ts +7 -4
- package/dest/metrics.d.ts.map +1 -1
- package/dest/metrics.js +14 -6
- package/dest/proof-publishing-service.d.ts +4 -2
- package/dest/proof-publishing-service.d.ts.map +1 -1
- package/dest/proof-publishing-service.js +1 -0
- package/dest/prover-node-publisher.d.ts +5 -5
- package/dest/prover-node-publisher.d.ts.map +1 -1
- package/dest/prover-node-publisher.js +2 -3
- package/dest/prover-node.d.ts +25 -15
- package/dest/prover-node.d.ts.map +1 -1
- package/dest/prover-node.js +152 -51
- package/dest/session-manager.d.ts +2 -2
- package/dest/session-manager.d.ts.map +1 -1
- package/dest/session-manager.js +38 -8
- package/package.json +23 -23
- package/src/checkpoint-store.ts +66 -85
- package/src/job/checkpoint-prover.ts +17 -40
- package/src/job/epoch-session.ts +21 -9
- package/src/metrics.ts +15 -12
- package/src/proof-publishing-service.ts +4 -1
- package/src/prover-node-publisher.ts +11 -10
- package/src/prover-node.ts +170 -60
- package/src/session-manager.ts +38 -7
package/dest/metrics.js
CHANGED
|
@@ -5,7 +5,6 @@ export class ProverNodeJobMetrics {
|
|
|
5
5
|
meter;
|
|
6
6
|
tracer;
|
|
7
7
|
logger;
|
|
8
|
-
proverEpochExecutionDuration;
|
|
9
8
|
provingJobDuration;
|
|
10
9
|
provingJobCheckpoints;
|
|
11
10
|
provingJobBlocks;
|
|
@@ -13,6 +12,9 @@ export class ProverNodeJobMetrics {
|
|
|
13
12
|
blobProcessingDuration;
|
|
14
13
|
blockProcessingDuration;
|
|
15
14
|
checkpointProcessingDuration;
|
|
15
|
+
checkpointProvingDuration;
|
|
16
|
+
checkpointBlocks;
|
|
17
|
+
checkpointTransactions;
|
|
16
18
|
/** Observable gauges for live state. Registered via `observeState(...)` once the
|
|
17
19
|
* CheckpointStore and SessionManager are available. */ activeCheckpoints;
|
|
18
20
|
activeEpochSessions;
|
|
@@ -23,7 +25,6 @@ export class ProverNodeJobMetrics {
|
|
|
23
25
|
this.tracer = tracer;
|
|
24
26
|
this.logger = logger;
|
|
25
27
|
this.stateObservedMetrics = [];
|
|
26
|
-
this.proverEpochExecutionDuration = this.meter.createHistogram(Metrics.PROVER_NODE_EXECUTION_DURATION);
|
|
27
28
|
this.provingJobDuration = this.meter.createHistogram(Metrics.PROVER_NODE_JOB_DURATION);
|
|
28
29
|
this.provingJobCheckpoints = this.meter.createGauge(Metrics.PROVER_NODE_JOB_CHECKPOINTS);
|
|
29
30
|
this.provingJobBlocks = this.meter.createGauge(Metrics.PROVER_NODE_JOB_BLOCKS);
|
|
@@ -31,9 +32,11 @@ export class ProverNodeJobMetrics {
|
|
|
31
32
|
this.blobProcessingDuration = this.meter.createGauge(Metrics.PROVER_NODE_BLOB_PROCESSING_LAST_DURATION);
|
|
32
33
|
this.blockProcessingDuration = this.meter.createHistogram(Metrics.PROVER_NODE_BLOCK_PROCESSING_DURATION);
|
|
33
34
|
this.checkpointProcessingDuration = this.meter.createHistogram(Metrics.PROVER_NODE_CHECKPOINT_PROCESSING_DURATION);
|
|
35
|
+
this.checkpointProvingDuration = this.meter.createHistogram(Metrics.PROVER_NODE_CHECKPOINT_PROVING_DURATION);
|
|
36
|
+
this.checkpointBlocks = this.meter.createHistogram(Metrics.PROVER_NODE_CHECKPOINT_BLOCKS);
|
|
37
|
+
this.checkpointTransactions = this.meter.createHistogram(Metrics.PROVER_NODE_CHECKPOINT_TRANSACTIONS);
|
|
34
38
|
}
|
|
35
|
-
recordProvingJob(
|
|
36
|
-
this.proverEpochExecutionDuration.record(Math.ceil(executionTimeMs));
|
|
39
|
+
recordProvingJob(totalTimeMs, numCheckpoints, numBlocks, numTxs) {
|
|
37
40
|
this.provingJobDuration.record(totalTimeMs / 1000);
|
|
38
41
|
this.provingJobCheckpoints.record(Math.floor(numCheckpoints));
|
|
39
42
|
this.provingJobBlocks.record(Math.floor(numBlocks));
|
|
@@ -45,8 +48,13 @@ export class ProverNodeJobMetrics {
|
|
|
45
48
|
recordBlockProcessing(durationMs) {
|
|
46
49
|
this.blockProcessingDuration.record(Math.ceil(durationMs));
|
|
47
50
|
}
|
|
48
|
-
recordCheckpointProcessing(durationMs) {
|
|
51
|
+
recordCheckpointProcessing(durationMs, numBlocks, numTxs) {
|
|
49
52
|
this.checkpointProcessingDuration.record(Math.ceil(durationMs));
|
|
53
|
+
this.checkpointBlocks.record(Math.floor(numBlocks));
|
|
54
|
+
this.checkpointTransactions.record(Math.floor(numTxs));
|
|
55
|
+
}
|
|
56
|
+
recordCheckpointProving(durationMs) {
|
|
57
|
+
this.checkpointProvingDuration.record(Math.ceil(durationMs));
|
|
50
58
|
}
|
|
51
59
|
/**
|
|
52
60
|
* Registers observable gauges for the prover-node's live state: how many canonical
|
|
@@ -59,7 +67,7 @@ export class ProverNodeJobMetrics {
|
|
|
59
67
|
this.activeCheckpoints = this.meter.createObservableGauge(Metrics.PROVER_NODE_ACTIVE_CHECKPOINTS);
|
|
60
68
|
this.activeEpochSessions = this.meter.createObservableGauge(Metrics.PROVER_NODE_ACTIVE_EPOCH_SESSIONS);
|
|
61
69
|
this.stateObserver = (observer)=>{
|
|
62
|
-
observer.observe(this.activeCheckpoints, checkpointStore.
|
|
70
|
+
observer.observe(this.activeCheckpoints, checkpointStore.listAll().length);
|
|
63
71
|
let full = 0;
|
|
64
72
|
let partial = 0;
|
|
65
73
|
for (const session of sessionManager.allSessions()){
|
|
@@ -6,7 +6,7 @@ import { SerialQueue } from '@aztec/foundation/queue';
|
|
|
6
6
|
import type { DateProvider } from '@aztec/foundation/timer';
|
|
7
7
|
import type { L2BlockSource } from '@aztec/stdlib/block';
|
|
8
8
|
import type { Proof } from '@aztec/stdlib/proofs';
|
|
9
|
-
import type { RootRollupPublicInputs } from '@aztec/stdlib/rollup';
|
|
9
|
+
import type { CheckpointHeader, RootRollupPublicInputs } from '@aztec/stdlib/rollup';
|
|
10
10
|
import type { ProverNodePublisher } from './prover-node-publisher.js';
|
|
11
11
|
import type { ProverPublisherFactory } from './prover-publisher-factory.js';
|
|
12
12
|
/** A single proof candidate offered to the publishing service by an `EpochSession`. */
|
|
@@ -42,6 +42,8 @@ export type PublishCandidate = {
|
|
|
42
42
|
proof: Proof;
|
|
43
43
|
batchedBlobInputs: BatchedBlob;
|
|
44
44
|
attestations: ViemCommitteeAttestation[];
|
|
45
|
+
/** Committee-attested checkpoint headers for the range, supplying the L1-verified fee recipient/value. */
|
|
46
|
+
headers: CheckpointHeader[];
|
|
45
47
|
};
|
|
46
48
|
/** Terminal outcome for a candidate. The promise from `submit()` resolves with one of these. */
|
|
47
49
|
export type PublishOutcome = 'published' | 'superseded' | 'failed' | 'withdrawn' | 'expired';
|
|
@@ -156,4 +158,4 @@ export declare class ProofPublishingService {
|
|
|
156
158
|
protected handleExpiry(candidateId: string): void;
|
|
157
159
|
private readProvenBlockNumber;
|
|
158
160
|
}
|
|
159
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvb2YtcHVibGlzaGluZy1zZXJ2aWNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHJvb2YtcHVibGlzaGluZy1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sS0FBSyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxLQUFLLGdCQUFnQixFQUFFLEtBQUssV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdkcsT0FBTyxFQUFlLEtBQUssY0FBYyxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBRXZGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXJGLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU1RSx1RkFBdUY7QUFDdkYsTUFBTSxNQUFNLGdCQUFnQixHQUFHO0lBQzdCLHNGQUFzRjtJQUN0RixFQUFFLEVBQUUsTUFBTSxDQUFDO0lBQ1gsS0FBSyxFQUFFLFdBQVcsQ0FBQztJQUNuQjs7Ozs7OztPQU9HO0lBQ0gsSUFBSSxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDekIsK0NBQStDO0lBQy9DLFVBQVUsRUFBRSxXQUFX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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proof-publishing-service.d.ts","sourceRoot":"","sources":["../src/proof-publishing-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACvG,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAEvF,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"proof-publishing-service.d.ts","sourceRoot":"","sources":["../src/proof-publishing-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -244,6 +244,7 @@ import { SerialQueue } from '@aztec/foundation/queue';
|
|
|
244
244
|
proof: candidate.proof,
|
|
245
245
|
batchedBlobInputs: candidate.batchedBlobInputs,
|
|
246
246
|
attestations: candidate.attestations,
|
|
247
|
+
headers: candidate.headers,
|
|
247
248
|
// Stop the L1 tx retrying past the candidate's submission-window deadline.
|
|
248
249
|
deadline: candidate.deadline
|
|
249
250
|
};
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import { BatchedBlob } from '@aztec/blob-lib';
|
|
2
|
-
import { MAX_CHECKPOINTS_PER_EPOCH } from '@aztec/constants';
|
|
3
2
|
import type { RollupContract, ViemCommitteeAttestation } from '@aztec/ethereum/contracts';
|
|
4
3
|
import type { L1TxUtils } from '@aztec/ethereum/l1-tx-utils';
|
|
5
4
|
import { CheckpointNumber, EpochNumber } from '@aztec/foundation/branded-types';
|
|
6
5
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
7
6
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
8
7
|
import { type Logger, type LoggerBindings } from '@aztec/foundation/log';
|
|
9
|
-
import type { Tuple } from '@aztec/foundation/serialize';
|
|
10
8
|
import type { PublisherConfig, TxSenderConfig } from '@aztec/sequencer-client';
|
|
11
9
|
import type { Proof } from '@aztec/stdlib/proofs';
|
|
12
|
-
import type {
|
|
10
|
+
import type { CheckpointHeader, RootRollupPublicInputs } from '@aztec/stdlib/rollup';
|
|
13
11
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
14
12
|
/** Arguments to the submitEpochProof method of the rollup contract */
|
|
15
13
|
export type L1SubmitEpochProofArgs = {
|
|
@@ -19,7 +17,7 @@ export type L1SubmitEpochProofArgs = {
|
|
|
19
17
|
endTimestamp: Fr;
|
|
20
18
|
outHash: Fr;
|
|
21
19
|
proverId: Fr;
|
|
22
|
-
|
|
20
|
+
headers: CheckpointHeader[];
|
|
23
21
|
proof: Proof;
|
|
24
22
|
};
|
|
25
23
|
export declare class ProverNodePublisher {
|
|
@@ -42,6 +40,7 @@ export declare class ProverNodePublisher {
|
|
|
42
40
|
proof: Proof;
|
|
43
41
|
batchedBlobInputs: BatchedBlob;
|
|
44
42
|
attestations: ViemCommitteeAttestation[];
|
|
43
|
+
headers: CheckpointHeader[];
|
|
45
44
|
/** Wall-clock deadline (proof-submission window end) past which the L1 tx should stop retrying. */
|
|
46
45
|
deadline?: Date;
|
|
47
46
|
}): Promise<boolean>;
|
|
@@ -59,10 +58,11 @@ export declare class ProverNodePublisher {
|
|
|
59
58
|
proof: Proof;
|
|
60
59
|
batchedBlobInputs: BatchedBlob;
|
|
61
60
|
attestations: ViemCommitteeAttestation[];
|
|
61
|
+
headers: CheckpointHeader[];
|
|
62
62
|
}): Promise<void>;
|
|
63
63
|
private encodeSubmitEpochProofCalldata;
|
|
64
64
|
private sendSubmitEpochProofTx;
|
|
65
65
|
private getEpochProofPublicInputsArgs;
|
|
66
66
|
private getSubmitEpochProofArgs;
|
|
67
67
|
}
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmVyLW5vZGUtcHVibGlzaGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHJvdmVyLW5vZGUtcHVibGlzaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQThCLE1BQU0saUJBQWlCLENBQUM7QUFFMUUsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUYsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWhGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFFLEtBQUssY0FBYyxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBR3ZGLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUvRSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXJGLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQU9uRixzRUFBc0U7QUFDdEUsTUFBTSxNQUFNLHNCQUFzQixHQUFHO0lBQ25DLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsZUFBZSxFQUFFLEVBQUUsQ0FBQztJQUNwQixVQUFVLEVBQUUsRUFBRSxDQUFDO0lBQ2YsWUFBWSxFQUFFLEVBQUUsQ0FBQztJQUNqQixPQUFPLEVBQUUsRUFBRSxDQUFDO0lBQ1osUUFBUSxFQUFFLEVBQUUsQ0FBQztJQUNiLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO0lBQzVCLEtBQUssRUFBRSxLQUFLLENBQUM7Q0FDZCxDQUFDO0FBRUYscUJBQWEsbUJBQW1CO0lBQzlCLE9BQU8sQ0FBQyxPQUFPLENBQTZCO0lBRTVDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDO0lBRXRCLFNBQVMsQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDO0lBRXpDLFNBQWdCLFNBQVMsRUFBRSxTQUFTLENBQUM7SUFFckMsWUFDRSxNQUFNLEVBQUUsY0FBYyxHQUFHLGVBQWUsRUFDeEMsSUFBSSxFQUFFO1FBQ0osY0FBYyxFQUFFLGNBQWMsQ0FBQztRQUMvQixTQUFTLEVBQUUsU0FBUyxDQUFDO1FBQ3JCLFNBQVMsQ0FBQyxFQUFFLGVBQWUsQ0FBQztLQUM3QixFQUNELFFBQVEsQ0FBQyxFQUFFLGNBQWMsRUFTMUI7SUFFTSxpQkFBaUIsbUJBRXZCO0lBRU0sZ0JBQWdCLGVBRXRCO0lBRVksZ0JBQWdCLENBQUMsSUFBSSxFQUFFO1FBQ2xDLFdBQVcsRUFBRSxXQUFXLENBQUM7UUFDekIsY0FBYyxFQUFFLGdCQUFnQixDQUFDO1FBQ2pDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQztRQUMvQixZQUFZLEVBQUUsc0JBQXNCLENBQUM7UUFDckMsS0FBSyxFQUFFLEtBQUssQ0FBQztRQUNiLGlCQUFpQixFQUFFLFdBQVcsQ0FBQztRQUMvQixZQUFZLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQztRQUN6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQztRQUM1QixtR0FBbUc7UUFDbkcsUUFBUSxDQUFDLEVBQUUsSUFBSSxDQUFDO0tBQ2pCLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQTZDbkI7WUFFYSw0QkFBNEI7SUFvRTFDOzs7O09BSUc7SUFDVSwyQkFBMkIsQ0FBQyxJQUFJLEVBQUU7UUFDN0MsV0FBVyxFQUFFLFdBQVcsQ0FBQztRQUN6QixjQUFjLEVBQUUsZ0JBQWdCLENBQUM7UUFDakMsWUFBWSxFQUFFLGdCQUFnQixDQUFDO1FBQy9CLFlBQVksRUFBRSxzQkFBc0IsQ0FBQztRQUNyQyxLQUFLLEVBQUUsS0FBSyxDQUFDO1FBQ2IsaUJBQWlCLEVBQUUsV0FBVyxDQUFDO1FBQy9CLFlBQVksRUFBRSx3QkFBd0IsRUFBRSxDQUFDO1FBQ3pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO0tBQzdCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQXNDaEI7SUFFRCxPQUFPLENBQUMsOEJBQThCO1lBZ0J4QixzQkFBc0I7SUFpRHBDLE9BQU8sQ0FBQyw2QkFBNkI7SUF1QnJDLE9BQU8sQ0FBQyx1QkFBdUI7Q0F3QmhDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prover-node-publisher.d.ts","sourceRoot":"","sources":["../src/prover-node-publisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA8B,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"prover-node-publisher.d.ts","sourceRoot":"","sources":["../src/prover-node-publisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA8B,MAAM,iBAAiB,CAAC;AAE1E,OAAO,KAAK,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC1F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAEhF,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAGvF,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAErF,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAOnF,sEAAsE;AACtE,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,EAAE,CAAC;IACpB,UAAU,EAAE,EAAE,CAAC;IACf,YAAY,EAAE,EAAE,CAAC;IACjB,OAAO,EAAE,EAAE,CAAC;IACZ,QAAQ,EAAE,EAAE,CAAC;IACb,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,OAAO,CAA6B;IAE5C,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC;IAEtB,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;IAEzC,SAAgB,SAAS,EAAE,SAAS,CAAC;IAErC,YACE,MAAM,EAAE,cAAc,GAAG,eAAe,EACxC,IAAI,EAAE;QACJ,cAAc,EAAE,cAAc,CAAC;QAC/B,SAAS,EAAE,SAAS,CAAC;QACrB,SAAS,CAAC,EAAE,eAAe,CAAC;KAC7B,EACD,QAAQ,CAAC,EAAE,cAAc,EAS1B;IAEM,iBAAiB,mBAEvB;IAEM,gBAAgB,eAEtB;IAEY,gBAAgB,CAAC,IAAI,EAAE;QAClC,WAAW,EAAE,WAAW,CAAC;QACzB,cAAc,EAAE,gBAAgB,CAAC;QACjC,YAAY,EAAE,gBAAgB,CAAC;QAC/B,YAAY,EAAE,sBAAsB,CAAC;QACrC,KAAK,EAAE,KAAK,CAAC;QACb,iBAAiB,EAAE,WAAW,CAAC;QAC/B,YAAY,EAAE,wBAAwB,EAAE,CAAC;QACzC,OAAO,EAAE,gBAAgB,EAAE,CAAC;QAC5B,mGAAmG;QACnG,QAAQ,CAAC,EAAE,IAAI,CAAC;KACjB,GAAG,OAAO,CAAC,OAAO,CAAC,CA6CnB;YAEa,4BAA4B;IAoE1C;;;;OAIG;IACU,2BAA2B,CAAC,IAAI,EAAE;QAC7C,WAAW,EAAE,WAAW,CAAC;QACzB,cAAc,EAAE,gBAAgB,CAAC;QACjC,YAAY,EAAE,gBAAgB,CAAC;QAC/B,YAAY,EAAE,sBAAsB,CAAC;QACrC,KAAK,EAAE,KAAK,CAAC;QACb,iBAAiB,EAAE,WAAW,CAAC;QAC/B,YAAY,EAAE,wBAAwB,EAAE,CAAC;QACzC,OAAO,EAAE,gBAAgB,EAAE,CAAC;KAC7B,GAAG,OAAO,CAAC,IAAI,CAAC,CAsChB;IAED,OAAO,CAAC,8BAA8B;YAgBxB,sBAAsB;IAiDpC,OAAO,CAAC,6BAA6B;IAuBrC,OAAO,CAAC,uBAAuB;CAwBhC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { getEthBlobEvaluationInputs } from '@aztec/blob-lib';
|
|
2
2
|
import { MAX_CHECKPOINTS_PER_EPOCH } from '@aztec/constants';
|
|
3
|
-
import { makeTuple } from '@aztec/foundation/array';
|
|
4
3
|
import { CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
5
4
|
import { areArraysEqual } from '@aztec/foundation/collection';
|
|
6
5
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
@@ -218,7 +217,7 @@ export class ProverNodePublisher {
|
|
|
218
217
|
outHash: args.publicInputs.outHash.toString(),
|
|
219
218
|
proverId: EthAddress.fromField(args.publicInputs.constants.proverId).toString()
|
|
220
219
|
} /*_args*/ ,
|
|
221
|
-
|
|
220
|
+
args.headers.map((header)=>header.toViem()),
|
|
222
221
|
getEthBlobEvaluationInputs(args.batchedBlobInputs)
|
|
223
222
|
];
|
|
224
223
|
}
|
|
@@ -230,7 +229,7 @@ export class ProverNodePublisher {
|
|
|
230
229
|
start: argsArray[0],
|
|
231
230
|
end: argsArray[1],
|
|
232
231
|
args: argsArray[2],
|
|
233
|
-
|
|
232
|
+
headers: argsArray[3],
|
|
234
233
|
attestations: CommitteeAttestationsAndSigners.packAttestations(args.attestations.map((a)=>CommitteeAttestation.fromViem(a))),
|
|
235
234
|
blobInputs: argsArray[4],
|
|
236
235
|
proof: proofHex
|
package/dest/prover-node.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { RollupContract } from '@aztec/ethereum/contracts';
|
|
2
2
|
import type { Delayer } from '@aztec/ethereum/l1-tx-utils';
|
|
3
|
-
import { BlockNumber, EpochNumber } from '@aztec/foundation/branded-types';
|
|
3
|
+
import { BlockNumber, CheckpointNumber, EpochNumber } from '@aztec/foundation/branded-types';
|
|
4
4
|
import { DateProvider } from '@aztec/foundation/timer';
|
|
5
5
|
import type { EpochProverFactory } from '@aztec/prover-client';
|
|
6
6
|
import { ChonkCache } from '@aztec/prover-client/orchestrator';
|
|
@@ -8,7 +8,7 @@ import { type L2BlockSource, type L2BlockStreamEvent, type L2BlockStreamEventHan
|
|
|
8
8
|
import type { ChainConfig } from '@aztec/stdlib/config';
|
|
9
9
|
import type { ContractDataSource } from '@aztec/stdlib/contract';
|
|
10
10
|
import { type L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
|
|
11
|
-
import { type EpochProverManager, type EpochProvingJobState, EpochProvingJobTerminalState, type ITxProvider, type ProverNodeApi, type Service, type
|
|
11
|
+
import { type EpochProverManager, type EpochProvingJobState, EpochProvingJobTerminalState, type ITxProvider, type ProverNodeApi, type Service, type WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
|
|
12
12
|
import type { DataStoreConfig } from '@aztec/stdlib/kv-store';
|
|
13
13
|
import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
|
|
14
14
|
import { L1Metrics, type TelemetryClient, type Traceable, type Tracer } from '@aztec/telemetry-client';
|
|
@@ -63,6 +63,15 @@ export declare class ProverNode implements L2BlockStreamEventHandler, ProverNode
|
|
|
63
63
|
* submission deadline. Protected so tests can verify the start() seeding.
|
|
64
64
|
*/
|
|
65
65
|
protected lastExpiredEpoch: EpochNumber | undefined;
|
|
66
|
+
/**
|
|
67
|
+
* Highest checkpoint number whose proving-side handling has completed (or that was legitimately skipped).
|
|
68
|
+
* The catch-up loop walks from here to each `chain-checkpointed` tip event. Seeded at start() from the last
|
|
69
|
+
* checkpoint of the last fully-proven epoch (or 0), so a restart reprocesses the partially-proven epoch rather
|
|
70
|
+
* than trusting a checkpointed tip that may sit ahead of unproven checkpoints. Clamped down on a prune.
|
|
71
|
+
*/
|
|
72
|
+
protected lastProcessedCheckpoint: CheckpointNumber;
|
|
73
|
+
/** Periodic tick that runs the epoch-expiry sweep during idle periods when no block-stream events arrive. */
|
|
74
|
+
private expiryTicker;
|
|
66
75
|
readonly tracer: Tracer;
|
|
67
76
|
protected publishingService: ProofPublishingService | undefined;
|
|
68
77
|
constructor(prover: EpochProverManager & EpochProverFactory, publisherFactory: ProverPublisherFactory, l2BlockSource: L2BlockSource & Partial<Service>, l1ToL2MessageSource: L1ToL2MessageSource, contractDataSource: ContractDataSource, worldState: WorldStateSynchronizer, p2pClient: {
|
|
@@ -86,14 +95,11 @@ export declare class ProverNode implements L2BlockStreamEventHandler, ProverNode
|
|
|
86
95
|
getChonkCache(): ChonkCache;
|
|
87
96
|
/** Tests inspect this when looking up live sessions. */
|
|
88
97
|
getSessionManager(): SessionManager;
|
|
89
|
-
/** Returns world state status. */
|
|
90
|
-
getWorldStateSyncStatus(): Promise<WorldStateSyncStatus>;
|
|
91
|
-
/** Returns archiver status. */
|
|
92
|
-
getL2Tips(): Promise<import("@aztec/stdlib/block").L2Tips>;
|
|
93
98
|
/** Returns the underlying prover instance. */
|
|
94
99
|
getProver(): EpochProverManager & EpochProverFactory;
|
|
95
100
|
handleBlockStreamEvent(event: L2BlockStreamEvent): Promise<void>;
|
|
96
|
-
private
|
|
101
|
+
private processCheckpointJump;
|
|
102
|
+
private registerCheckpoint;
|
|
97
103
|
private collectRegisterData;
|
|
98
104
|
private handlePruneEvent;
|
|
99
105
|
private isEpochPastProofSubmissionWindow;
|
|
@@ -128,18 +134,22 @@ export declare class ProverNode implements L2BlockStreamEventHandler, ProverNode
|
|
|
128
134
|
/** Protected for direct unit-test access. */
|
|
129
135
|
protected isProvenBlockLastOfItsEpoch(provenBlockNumber: BlockNumber, provenEpoch: EpochNumber, l1Constants: Pick<L1RollupConstants, 'epochDuration'>): Promise<boolean>;
|
|
130
136
|
/**
|
|
131
|
-
* Resolves the
|
|
132
|
-
*
|
|
133
|
-
*
|
|
134
|
-
*
|
|
135
|
-
* `provenEpoch - 1`, or `undefined` if no block is proven yet.
|
|
137
|
+
* Resolves the last fully-proven epoch from L1 proven state, used to seed the catch-up cursor (via
|
|
138
|
+
* `computeStartingCheckpoint`) and `lastExpiredEpoch`. The fully-proven epoch is `provenEpoch` when the
|
|
139
|
+
* proven tip is the last block of its epoch, otherwise `provenEpoch - 1`, or `undefined` if no block is
|
|
140
|
+
* proven yet (so a restart reprocesses the partially-proven epoch rather than trusting a stale tip).
|
|
136
141
|
*/
|
|
137
|
-
protected
|
|
138
|
-
startingBlock: BlockNumber;
|
|
142
|
+
protected resolveLastFullyProvenEpoch(): Promise<{
|
|
139
143
|
lastFullyProvenEpoch: EpochNumber | undefined;
|
|
140
144
|
}>;
|
|
145
|
+
/**
|
|
146
|
+
* Resolves the catch-up cursor seed: the last checkpoint of the last fully-proven epoch, or 0 if none. Seeding
|
|
147
|
+
* from a checkpoint (rather than a checkpointed tip) guarantees a restart reprocesses every checkpoint of the
|
|
148
|
+
* partially-proven epoch, since the checkpointed tip can sit ahead of the last fully-proven checkpoint.
|
|
149
|
+
*/
|
|
150
|
+
protected computeStartingCheckpoint(lastFullyProvenEpoch: EpochNumber | undefined): Promise<CheckpointNumber>;
|
|
141
151
|
private gatherPreviousBlockHeader;
|
|
142
152
|
private validateConfig;
|
|
143
153
|
}
|
|
144
154
|
export { EpochProvingJobTerminalState };
|
|
145
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmVyLW5vZGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm92ZXItbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBSzdGLE9BQU8sRUFBRSxZQUFZLEVBQWtCLE1BQU0seUJBQXlCLENBQUM7QUFDdkUsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFL0QsT0FBTyxFQUdMLEtBQUssYUFBYSxFQUNsQixLQUFLLGtCQUFrQixFQUN2QixLQUFLLHlCQUF5QixFQUUvQixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakUsT0FBTyxFQUFFLEtBQUssaUJBQWlCLEVBQW1ELE1BQU0sNkJBQTZCLENBQUM7QUFDdEgsT0FBTyxFQUNMLEtBQUssa0JBQWtCLEVBQ3ZCLEtBQUssb0JBQW9CLEVBQ3pCLDRCQUE0QixFQUM1QixLQUFLLFdBQVcsRUFDaEIsS0FBSyxhQUFhLEVBQ2xCLEtBQUssT0FBTyxFQUNaLEtBQUssc0JBQXNCLEVBRTVCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUQsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRSxPQUFP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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prover-node.d.ts","sourceRoot":"","sources":["../src/prover-node.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"prover-node.d.ts","sourceRoot":"","sources":["../src/prover-node.ts"],"names":[],"mappings":"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"}
|