@aztec/prover-node 0.85.0-nightly.20250418 → 0.85.0-nightly.20250421
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/monitors/epoch-monitor.d.ts +1 -1
- package/dest/monitors/epoch-monitor.d.ts.map +1 -1
- package/dest/monitors/epoch-monitor.js +7 -2
- package/dest/prover-node.d.ts +2 -1
- package/dest/prover-node.d.ts.map +1 -1
- package/dest/prover-node.js +4 -1
- package/package.json +20 -20
- package/src/monitors/epoch-monitor.ts +5 -3
- package/src/prover-node.ts +5 -2
|
@@ -2,7 +2,7 @@ import type { L2BlockSource } from '@aztec/stdlib/block';
|
|
|
2
2
|
import { type L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
|
|
3
3
|
import { type TelemetryClient, type Traceable, type Tracer } from '@aztec/telemetry-client';
|
|
4
4
|
export interface EpochMonitorHandler {
|
|
5
|
-
handleEpochReadyToProve(epochNumber: bigint): Promise<
|
|
5
|
+
handleEpochReadyToProve(epochNumber: bigint): Promise<boolean>;
|
|
6
6
|
}
|
|
7
7
|
/**
|
|
8
8
|
* Fires an event when a new epoch ready to prove is detected.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"epoch-monitor.d.ts","sourceRoot":"","sources":["../../src/monitors/epoch-monitor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,KAAK,iBAAiB,EAAkB,MAAM,6BAA6B,CAAC;AACrF,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,mBAAmB;IAClC,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"epoch-monitor.d.ts","sourceRoot":"","sources":["../../src/monitors/epoch-monitor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,KAAK,iBAAiB,EAAkB,MAAM,6BAA6B,CAAC;AACrF,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,mBAAmB;IAClC,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAChE;AAED;;;;;;;;;;GAUG;AACH,qBAAa,YAAa,YAAW,SAAS;IAS1C,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,OAAO;IAVjB,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,GAAG,CAA6C;IACxD,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,iBAAiB,CAAqB;gBAG3B,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,EAC9D,OAAO,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAA;KAAE,EAC9C,SAAS,GAAE,eAAsC;WAM/B,MAAM,CACxB,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAA;KAAE,EACtC,SAAS,GAAE,eAAsC,GAChD,OAAO,CAAC,YAAY,CAAC;IAKjB,KAAK,CAAC,OAAO,EAAE,mBAAmB;IAMzC,0BAA0B;IACnB,UAAU,CAAC,OAAO,EAAE,mBAAmB;IAIjC,IAAI;IAMJ,IAAI;YAwBH,qBAAqB;CAYpC"}
|
|
@@ -53,6 +53,10 @@ import { getTelemetryClient, trackSpan } from '@aztec/telemetry-client';
|
|
|
53
53
|
}
|
|
54
54
|
async work() {
|
|
55
55
|
const { epochToProve, blockNumber, slotNumber } = await this.getEpochNumberToProve();
|
|
56
|
+
this.log.debug(`Epoch to prove: ${epochToProve}`, {
|
|
57
|
+
blockNumber,
|
|
58
|
+
slotNumber
|
|
59
|
+
});
|
|
56
60
|
if (epochToProve === undefined) {
|
|
57
61
|
this.log.trace(`Next block to prove ${blockNumber} not yet mined`, {
|
|
58
62
|
blockNumber
|
|
@@ -77,8 +81,9 @@ import { getTelemetryClient, trackSpan } from '@aztec/telemetry-client';
|
|
|
77
81
|
return;
|
|
78
82
|
}
|
|
79
83
|
this.log.debug(`Epoch ${epochToProve} is ready to be proven`);
|
|
80
|
-
await this.handler?.handleEpochReadyToProve(epochToProve)
|
|
81
|
-
|
|
84
|
+
if (await this.handler?.handleEpochReadyToProve(epochToProve)) {
|
|
85
|
+
this.latestEpochNumber = epochToProve;
|
|
86
|
+
}
|
|
82
87
|
}
|
|
83
88
|
async getEpochNumberToProve() {
|
|
84
89
|
const lastBlockProven = await this.l2BlockSource.getProvenBlockNumber();
|
package/dest/prover-node.d.ts
CHANGED
|
@@ -51,8 +51,9 @@ export declare class ProverNode implements EpochMonitorHandler, ProverNodeApi, T
|
|
|
51
51
|
/**
|
|
52
52
|
* Handles an epoch being completed by starting a proof for it if there are no active jobs for it.
|
|
53
53
|
* @param epochNumber - The epoch number that was just completed.
|
|
54
|
+
* @returns false if there is an error, true otherwise
|
|
54
55
|
*/
|
|
55
|
-
handleEpochReadyToProve(epochNumber: bigint): Promise<
|
|
56
|
+
handleEpochReadyToProve(epochNumber: bigint): Promise<boolean>;
|
|
56
57
|
/**
|
|
57
58
|
* Starts the prover node so it periodically checks for unproven epochs in the unfinalised chain from L1 and
|
|
58
59
|
* starts proving jobs for them.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prover-node.d.ts","sourceRoot":"","sources":["../src/prover-node.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"prover-node.d.ts","sourceRoot":"","sources":["../src/prover-node.ts"],"names":[],"mappings":"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"}
|
package/dest/prover-node.js
CHANGED
|
@@ -85,6 +85,7 @@ import { ProverNodeJobMetrics, ProverNodeRewardsMetrics } from './metrics.js';
|
|
|
85
85
|
/**
|
|
86
86
|
* Handles an epoch being completed by starting a proof for it if there are no active jobs for it.
|
|
87
87
|
* @param epochNumber - The epoch number that was just completed.
|
|
88
|
+
* @returns false if there is an error, true otherwise
|
|
88
89
|
*/ async handleEpochReadyToProve(epochNumber) {
|
|
89
90
|
try {
|
|
90
91
|
this.log.debug(`Running jobs as ${epochNumber} is ready to prove`, {
|
|
@@ -95,15 +96,17 @@ import { ProverNodeJobMetrics, ProverNodeRewardsMetrics } from './metrics.js';
|
|
|
95
96
|
this.log.warn(`Not starting proof for ${epochNumber} since there are active jobs for the epoch`, {
|
|
96
97
|
activeJobs: activeJobs.map((job)=>job.uuid)
|
|
97
98
|
});
|
|
98
|
-
return;
|
|
99
|
+
return true;
|
|
99
100
|
}
|
|
100
101
|
await this.startProof(epochNumber);
|
|
102
|
+
return true;
|
|
101
103
|
} catch (err) {
|
|
102
104
|
if (err instanceof EmptyEpochError) {
|
|
103
105
|
this.log.info(`Not starting proof for ${epochNumber} since no blocks were found`);
|
|
104
106
|
} else {
|
|
105
107
|
this.log.error(`Error handling epoch completed`, err);
|
|
106
108
|
}
|
|
109
|
+
return false;
|
|
107
110
|
}
|
|
108
111
|
}
|
|
109
112
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/prover-node",
|
|
3
|
-
"version": "0.85.0-nightly.
|
|
3
|
+
"version": "0.85.0-nightly.20250421",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -51,25 +51,25 @@
|
|
|
51
51
|
]
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@aztec/archiver": "0.85.0-nightly.
|
|
55
|
-
"@aztec/bb-prover": "0.85.0-nightly.
|
|
56
|
-
"@aztec/blob-sink": "0.85.0-nightly.
|
|
57
|
-
"@aztec/constants": "0.85.0-nightly.
|
|
58
|
-
"@aztec/epoch-cache": "0.85.0-nightly.
|
|
59
|
-
"@aztec/ethereum": "0.85.0-nightly.
|
|
60
|
-
"@aztec/foundation": "0.85.0-nightly.
|
|
61
|
-
"@aztec/kv-store": "0.85.0-nightly.
|
|
62
|
-
"@aztec/l1-artifacts": "0.85.0-nightly.
|
|
63
|
-
"@aztec/node-lib": "0.85.0-nightly.
|
|
64
|
-
"@aztec/noir-protocol-circuits-types": "0.85.0-nightly.
|
|
65
|
-
"@aztec/p2p": "0.85.0-nightly.
|
|
66
|
-
"@aztec/protocol-contracts": "0.85.0-nightly.
|
|
67
|
-
"@aztec/prover-client": "0.85.0-nightly.
|
|
68
|
-
"@aztec/sequencer-client": "0.85.0-nightly.
|
|
69
|
-
"@aztec/simulator": "0.85.0-nightly.
|
|
70
|
-
"@aztec/stdlib": "0.85.0-nightly.
|
|
71
|
-
"@aztec/telemetry-client": "0.85.0-nightly.
|
|
72
|
-
"@aztec/world-state": "0.85.0-nightly.
|
|
54
|
+
"@aztec/archiver": "0.85.0-nightly.20250421",
|
|
55
|
+
"@aztec/bb-prover": "0.85.0-nightly.20250421",
|
|
56
|
+
"@aztec/blob-sink": "0.85.0-nightly.20250421",
|
|
57
|
+
"@aztec/constants": "0.85.0-nightly.20250421",
|
|
58
|
+
"@aztec/epoch-cache": "0.85.0-nightly.20250421",
|
|
59
|
+
"@aztec/ethereum": "0.85.0-nightly.20250421",
|
|
60
|
+
"@aztec/foundation": "0.85.0-nightly.20250421",
|
|
61
|
+
"@aztec/kv-store": "0.85.0-nightly.20250421",
|
|
62
|
+
"@aztec/l1-artifacts": "0.85.0-nightly.20250421",
|
|
63
|
+
"@aztec/node-lib": "0.85.0-nightly.20250421",
|
|
64
|
+
"@aztec/noir-protocol-circuits-types": "0.85.0-nightly.20250421",
|
|
65
|
+
"@aztec/p2p": "0.85.0-nightly.20250421",
|
|
66
|
+
"@aztec/protocol-contracts": "0.85.0-nightly.20250421",
|
|
67
|
+
"@aztec/prover-client": "0.85.0-nightly.20250421",
|
|
68
|
+
"@aztec/sequencer-client": "0.85.0-nightly.20250421",
|
|
69
|
+
"@aztec/simulator": "0.85.0-nightly.20250421",
|
|
70
|
+
"@aztec/stdlib": "0.85.0-nightly.20250421",
|
|
71
|
+
"@aztec/telemetry-client": "0.85.0-nightly.20250421",
|
|
72
|
+
"@aztec/world-state": "0.85.0-nightly.20250421",
|
|
73
73
|
"source-map-support": "^0.5.21",
|
|
74
74
|
"tslib": "^2.4.0",
|
|
75
75
|
"viem": "2.23.7"
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
} from '@aztec/telemetry-client';
|
|
12
12
|
|
|
13
13
|
export interface EpochMonitorHandler {
|
|
14
|
-
handleEpochReadyToProve(epochNumber: bigint): Promise<
|
|
14
|
+
handleEpochReadyToProve(epochNumber: bigint): Promise<boolean>;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
/**
|
|
@@ -71,6 +71,7 @@ export class EpochMonitor implements Traceable {
|
|
|
71
71
|
@trackSpan('EpochMonitor.work')
|
|
72
72
|
public async work() {
|
|
73
73
|
const { epochToProve, blockNumber, slotNumber } = await this.getEpochNumberToProve();
|
|
74
|
+
this.log.debug(`Epoch to prove: ${epochToProve}`, { blockNumber, slotNumber });
|
|
74
75
|
if (epochToProve === undefined) {
|
|
75
76
|
this.log.trace(`Next block to prove ${blockNumber} not yet mined`, { blockNumber });
|
|
76
77
|
return;
|
|
@@ -87,8 +88,9 @@ export class EpochMonitor implements Traceable {
|
|
|
87
88
|
}
|
|
88
89
|
|
|
89
90
|
this.log.debug(`Epoch ${epochToProve} is ready to be proven`);
|
|
90
|
-
await this.handler?.handleEpochReadyToProve(epochToProve)
|
|
91
|
-
|
|
91
|
+
if (await this.handler?.handleEpochReadyToProve(epochToProve)) {
|
|
92
|
+
this.latestEpochNumber = epochToProve;
|
|
93
|
+
}
|
|
92
94
|
}
|
|
93
95
|
|
|
94
96
|
private async getEpochNumberToProve() {
|
package/src/prover-node.ts
CHANGED
|
@@ -123,8 +123,9 @@ export class ProverNode implements EpochMonitorHandler, ProverNodeApi, Traceable
|
|
|
123
123
|
/**
|
|
124
124
|
* Handles an epoch being completed by starting a proof for it if there are no active jobs for it.
|
|
125
125
|
* @param epochNumber - The epoch number that was just completed.
|
|
126
|
+
* @returns false if there is an error, true otherwise
|
|
126
127
|
*/
|
|
127
|
-
async handleEpochReadyToProve(epochNumber: bigint): Promise<
|
|
128
|
+
async handleEpochReadyToProve(epochNumber: bigint): Promise<boolean> {
|
|
128
129
|
try {
|
|
129
130
|
this.log.debug(`Running jobs as ${epochNumber} is ready to prove`, {
|
|
130
131
|
jobs: Array.from(this.jobs.values()).map(job => `${job.getEpochNumber()}:${job.getId()}`),
|
|
@@ -134,15 +135,17 @@ export class ProverNode implements EpochMonitorHandler, ProverNodeApi, Traceable
|
|
|
134
135
|
this.log.warn(`Not starting proof for ${epochNumber} since there are active jobs for the epoch`, {
|
|
135
136
|
activeJobs: activeJobs.map(job => job.uuid),
|
|
136
137
|
});
|
|
137
|
-
return;
|
|
138
|
+
return true;
|
|
138
139
|
}
|
|
139
140
|
await this.startProof(epochNumber);
|
|
141
|
+
return true;
|
|
140
142
|
} catch (err) {
|
|
141
143
|
if (err instanceof EmptyEpochError) {
|
|
142
144
|
this.log.info(`Not starting proof for ${epochNumber} since no blocks were found`);
|
|
143
145
|
} else {
|
|
144
146
|
this.log.error(`Error handling epoch completed`, err);
|
|
145
147
|
}
|
|
148
|
+
return false;
|
|
146
149
|
}
|
|
147
150
|
}
|
|
148
151
|
|