@aztec/prover-node 0.0.1-commit.24de95ac → 0.0.1-commit.2606882
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/actions/download-epoch-proving-job.d.ts +4 -4
- package/dest/actions/download-epoch-proving-job.js +1 -1
- package/dest/actions/index.d.ts +1 -1
- package/dest/actions/rerun-epoch-proving-job.d.ts +5 -3
- package/dest/actions/rerun-epoch-proving-job.d.ts.map +1 -1
- package/dest/actions/rerun-epoch-proving-job.js +9 -7
- package/dest/actions/upload-epoch-proof-failure.d.ts +2 -2
- package/dest/actions/upload-epoch-proof-failure.d.ts.map +1 -1
- package/dest/bin/run-failed-epoch.d.ts +1 -1
- package/dest/bin/run-failed-epoch.js +6 -5
- package/dest/config.d.ts +8 -10
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +19 -21
- package/dest/factory.d.ts +20 -16
- package/dest/factory.d.ts.map +1 -1
- package/dest/factory.js +48 -63
- package/dest/index.d.ts +2 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +1 -0
- package/dest/job/epoch-proving-job-data.d.ts +8 -6
- package/dest/job/epoch-proving-job-data.d.ts.map +1 -1
- package/dest/job/epoch-proving-job-data.js +25 -18
- package/dest/job/epoch-proving-job.d.ts +11 -13
- package/dest/job/epoch-proving-job.d.ts.map +1 -1
- package/dest/job/epoch-proving-job.js +669 -111
- package/dest/metrics.d.ts +24 -3
- package/dest/metrics.d.ts.map +1 -1
- package/dest/metrics.js +77 -98
- package/dest/monitors/epoch-monitor.d.ts +3 -2
- package/dest/monitors/epoch-monitor.d.ts.map +1 -1
- package/dest/monitors/epoch-monitor.js +14 -20
- package/dest/monitors/index.d.ts +1 -1
- package/dest/prover-node-publisher.d.ts +33 -11
- package/dest/prover-node-publisher.d.ts.map +1 -1
- package/dest/prover-node-publisher.js +248 -46
- package/dest/prover-node.d.ts +30 -19
- package/dest/prover-node.d.ts.map +1 -1
- package/dest/prover-node.js +512 -81
- package/dest/prover-publisher-factory.d.ts +10 -6
- package/dest/prover-publisher-factory.d.ts.map +1 -1
- package/dest/prover-publisher-factory.js +7 -5
- package/dest/test/index.d.ts +1 -1
- package/dest/test/index.d.ts.map +1 -1
- package/package.json +27 -25
- package/src/actions/download-epoch-proving-job.ts +1 -1
- package/src/actions/rerun-epoch-proving-job.ts +20 -7
- package/src/actions/upload-epoch-proof-failure.ts +1 -1
- package/src/bin/run-failed-epoch.ts +5 -3
- package/src/config.ts +27 -33
- package/src/factory.ts +81 -103
- package/src/index.ts +1 -0
- package/src/job/epoch-proving-job-data.ts +31 -25
- package/src/job/epoch-proving-job.ts +228 -117
- package/src/metrics.ts +102 -82
- package/src/monitors/epoch-monitor.ts +10 -17
- package/src/prover-node-publisher.ts +302 -66
- package/src/prover-node.ts +135 -86
- package/src/prover-publisher-factory.ts +19 -11
|
@@ -1,21 +1,25 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
1
|
+
import type { RollupContract } from '@aztec/ethereum/contracts';
|
|
2
|
+
import type { L1TxUtils } from '@aztec/ethereum/l1-tx-utils';
|
|
3
|
+
import type { PublisherManager } from '@aztec/ethereum/publisher-manager';
|
|
4
|
+
import type { LoggerBindings } from '@aztec/foundation/log';
|
|
5
|
+
import type { ProverPublisherConfig, ProverTxSenderConfig } from '@aztec/sequencer-client';
|
|
3
6
|
import type { TelemetryClient } from '@aztec/telemetry-client';
|
|
4
7
|
import { ProverNodePublisher } from './prover-node-publisher.js';
|
|
5
8
|
export declare class ProverPublisherFactory {
|
|
6
9
|
private config;
|
|
7
10
|
private deps;
|
|
8
|
-
|
|
11
|
+
private bindings?;
|
|
12
|
+
constructor(config: ProverTxSenderConfig & ProverPublisherConfig, deps: {
|
|
9
13
|
rollupContract: RollupContract;
|
|
10
14
|
publisherManager: PublisherManager<L1TxUtils>;
|
|
11
15
|
telemetry?: TelemetryClient;
|
|
12
|
-
});
|
|
16
|
+
}, bindings?: LoggerBindings | undefined);
|
|
13
17
|
start(): Promise<void>;
|
|
14
|
-
stop(): void
|
|
18
|
+
stop(): Promise<void>;
|
|
15
19
|
/**
|
|
16
20
|
* Creates a new Prover Publisher instance.
|
|
17
21
|
* @returns A new ProverNodePublisher instance.
|
|
18
22
|
*/
|
|
19
23
|
create(): Promise<ProverNodePublisher>;
|
|
20
24
|
}
|
|
21
|
-
//# sourceMappingURL=
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmVyLXB1Ymxpc2hlci1mYWN0b3J5LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHJvdmVyLXB1Ymxpc2hlci1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRixPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVqRSxxQkFBYSxzQkFBc0I7SUFFL0IsT0FBTyxDQUFDLE1BQU07SUFDZCxPQUFPLENBQUMsSUFBSTtJQUtaLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFQbkIsWUFDVSxNQUFNLEVBQUUsb0JBQW9CLEdBQUcscUJBQXFCLEVBQ3BELElBQUksRUFBRTtRQUNaLGNBQWMsRUFBRSxjQUFjLENBQUM7UUFDL0IsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUMsU0FBUyxDQUFDLEVBQUUsZUFBZSxDQUFDO0tBQzdCLEVBQ08sUUFBUSxDQUFDLDRCQUFnQixFQUMvQjtJQUVTLEtBQUssa0JBRWpCO0lBRVksSUFBSSxrQkFFaEI7SUFFRDs7O09BR0c7SUFDVSxNQUFNLElBQUksT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBV2xEO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prover-publisher-factory.d.ts","sourceRoot":"","sources":["../src/prover-publisher-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"prover-publisher-factory.d.ts","sourceRoot":"","sources":["../src/prover-publisher-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC3F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,qBAAa,sBAAsB;IAE/B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,IAAI;IAKZ,OAAO,CAAC,QAAQ,CAAC;IAPnB,YACU,MAAM,EAAE,oBAAoB,GAAG,qBAAqB,EACpD,IAAI,EAAE;QACZ,cAAc,EAAE,cAAc,CAAC;QAC/B,gBAAgB,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC9C,SAAS,CAAC,EAAE,eAAe,CAAC;KAC7B,EACO,QAAQ,CAAC,4BAAgB,EAC/B;IAES,KAAK,kBAEjB;IAEY,IAAI,kBAEhB;IAED;;;OAGG;IACU,MAAM,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAWlD;CACF"}
|
|
@@ -2,15 +2,17 @@ import { ProverNodePublisher } from './prover-node-publisher.js';
|
|
|
2
2
|
export class ProverPublisherFactory {
|
|
3
3
|
config;
|
|
4
4
|
deps;
|
|
5
|
-
|
|
5
|
+
bindings;
|
|
6
|
+
constructor(config, deps, bindings){
|
|
6
7
|
this.config = config;
|
|
7
8
|
this.deps = deps;
|
|
9
|
+
this.bindings = bindings;
|
|
8
10
|
}
|
|
9
11
|
async start() {
|
|
10
|
-
await this.deps.publisherManager.
|
|
12
|
+
await this.deps.publisherManager.start();
|
|
11
13
|
}
|
|
12
|
-
stop() {
|
|
13
|
-
this.deps.publisherManager.
|
|
14
|
+
async stop() {
|
|
15
|
+
await this.deps.publisherManager.stop();
|
|
14
16
|
}
|
|
15
17
|
/**
|
|
16
18
|
* Creates a new Prover Publisher instance.
|
|
@@ -21,6 +23,6 @@ export class ProverPublisherFactory {
|
|
|
21
23
|
rollupContract: this.deps.rollupContract,
|
|
22
24
|
l1TxUtils: l1Publisher,
|
|
23
25
|
telemetry: this.deps.telemetry
|
|
24
|
-
});
|
|
26
|
+
}, this.bindings);
|
|
25
27
|
}
|
|
26
28
|
}
|
package/dest/test/index.d.ts
CHANGED
|
@@ -9,4 +9,4 @@ declare abstract class TestProverNodeClass extends ProverNode {
|
|
|
9
9
|
}
|
|
10
10
|
export type TestProverNode = TestProverNodeClass;
|
|
11
11
|
export {};
|
|
12
|
-
//# sourceMappingURL=
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFMUUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbkUsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFL0MsdUJBQWUsbUJBQW9CLFNBQVEsVUFBVTtJQUNwQyxNQUFNLEVBQUUsa0JBQWtCLENBQUM7SUFDM0IsU0FBUyxFQUFFLG1CQUFtQixDQUFDO0lBRTlDLFNBQXlCLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxlQUFlLEdBQUcsT0FBTyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FBQztDQUNuRztBQUVELE1BQU0sTUFBTSxjQUFjLEdBQUcsbUJBQW1CLENBQUMifQ==
|
package/dest/test/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,uBAAe,mBAAoB,SAAQ,UAAU;IACpC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,SAAS,EAAE,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,uBAAe,mBAAoB,SAAQ,UAAU;IACpC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,SAAS,EAAE,mBAAmB,CAAC;IAE9C,SAAyB,qBAAqB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACnG;AAED,MAAM,MAAM,cAAc,GAAG,mBAAmB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/prover-node",
|
|
3
|
-
"version": "0.0.1-commit.
|
|
3
|
+
"version": "0.0.1-commit.2606882",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
"../package.common.json"
|
|
12
12
|
],
|
|
13
13
|
"scripts": {
|
|
14
|
-
"build": "yarn clean && tsc
|
|
15
|
-
"build:dev": "tsc
|
|
14
|
+
"build": "yarn clean && ../scripts/tsc.sh",
|
|
15
|
+
"build:dev": "../scripts/tsc.sh --watch",
|
|
16
16
|
"clean": "rm -rf ./dest .tsbuildinfo",
|
|
17
17
|
"bb": "node --no-warnings ./dest/bb/index.js",
|
|
18
18
|
"test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}",
|
|
@@ -56,36 +56,38 @@
|
|
|
56
56
|
]
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"@aztec/archiver": "0.0.1-commit.
|
|
60
|
-
"@aztec/bb-prover": "0.0.1-commit.
|
|
61
|
-
"@aztec/blob-
|
|
62
|
-
"@aztec/blob-
|
|
63
|
-
"@aztec/constants": "0.0.1-commit.
|
|
64
|
-
"@aztec/epoch-cache": "0.0.1-commit.
|
|
65
|
-
"@aztec/ethereum": "0.0.1-commit.
|
|
66
|
-
"@aztec/foundation": "0.0.1-commit.
|
|
67
|
-
"@aztec/kv-store": "0.0.1-commit.
|
|
68
|
-
"@aztec/l1-artifacts": "0.0.1-commit.
|
|
69
|
-
"@aztec/
|
|
70
|
-
"@aztec/node-
|
|
71
|
-
"@aztec/
|
|
72
|
-
"@aztec/
|
|
73
|
-
"@aztec/
|
|
74
|
-
"@aztec/
|
|
75
|
-
"@aztec/
|
|
76
|
-
"@aztec/
|
|
77
|
-
"@aztec/
|
|
78
|
-
"@aztec/
|
|
79
|
-
"@aztec/
|
|
59
|
+
"@aztec/archiver": "0.0.1-commit.2606882",
|
|
60
|
+
"@aztec/bb-prover": "0.0.1-commit.2606882",
|
|
61
|
+
"@aztec/blob-client": "0.0.1-commit.2606882",
|
|
62
|
+
"@aztec/blob-lib": "0.0.1-commit.2606882",
|
|
63
|
+
"@aztec/constants": "0.0.1-commit.2606882",
|
|
64
|
+
"@aztec/epoch-cache": "0.0.1-commit.2606882",
|
|
65
|
+
"@aztec/ethereum": "0.0.1-commit.2606882",
|
|
66
|
+
"@aztec/foundation": "0.0.1-commit.2606882",
|
|
67
|
+
"@aztec/kv-store": "0.0.1-commit.2606882",
|
|
68
|
+
"@aztec/l1-artifacts": "0.0.1-commit.2606882",
|
|
69
|
+
"@aztec/native": "0.0.1-commit.2606882",
|
|
70
|
+
"@aztec/node-keystore": "0.0.1-commit.2606882",
|
|
71
|
+
"@aztec/node-lib": "0.0.1-commit.2606882",
|
|
72
|
+
"@aztec/noir-protocol-circuits-types": "0.0.1-commit.2606882",
|
|
73
|
+
"@aztec/p2p": "0.0.1-commit.2606882",
|
|
74
|
+
"@aztec/protocol-contracts": "0.0.1-commit.2606882",
|
|
75
|
+
"@aztec/prover-client": "0.0.1-commit.2606882",
|
|
76
|
+
"@aztec/sequencer-client": "0.0.1-commit.2606882",
|
|
77
|
+
"@aztec/simulator": "0.0.1-commit.2606882",
|
|
78
|
+
"@aztec/stdlib": "0.0.1-commit.2606882",
|
|
79
|
+
"@aztec/telemetry-client": "0.0.1-commit.2606882",
|
|
80
|
+
"@aztec/world-state": "0.0.1-commit.2606882",
|
|
80
81
|
"source-map-support": "^0.5.21",
|
|
81
82
|
"tslib": "^2.4.0",
|
|
82
|
-
"viem": "npm:@
|
|
83
|
+
"viem": "npm:@aztec/viem@2.38.2"
|
|
83
84
|
},
|
|
84
85
|
"devDependencies": {
|
|
85
86
|
"@jest/globals": "^30.0.0",
|
|
86
87
|
"@types/jest": "^30.0.0",
|
|
87
88
|
"@types/node": "^22.15.17",
|
|
88
89
|
"@types/source-map-support": "^0.5.10",
|
|
90
|
+
"@typescript/native-preview": "7.0.0-dev.20260113.1",
|
|
89
91
|
"jest": "^30.0.0",
|
|
90
92
|
"jest-mock-extended": "^4.0.0",
|
|
91
93
|
"ts-node": "^10.9.1",
|
|
@@ -30,7 +30,7 @@ export async function downloadEpochProvingJob(
|
|
|
30
30
|
|
|
31
31
|
const dataUrls = makeSnapshotPaths(location);
|
|
32
32
|
log.info(`Downloading state snapshot from ${location} to local data directory`, { metadata, dataUrls });
|
|
33
|
-
await snapshotSync({ dataUrls }, log, { ...config, ...metadata,
|
|
33
|
+
await snapshotSync({ dataUrls }, log, { ...config, ...metadata, fileStore });
|
|
34
34
|
|
|
35
35
|
const dataPath = urlJoin(location, 'data.bin');
|
|
36
36
|
const localPath = config.jobDataDownloadPath;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { createArchiverStore } from '@aztec/archiver';
|
|
1
|
+
import { createArchiverStore, createContractDataSource } from '@aztec/archiver';
|
|
2
|
+
import type { L1ContractsConfig } from '@aztec/ethereum/config';
|
|
2
3
|
import type { Logger } from '@aztec/foundation/log';
|
|
3
|
-
import type { DataStoreConfig } from '@aztec/kv-store/config';
|
|
4
4
|
import { type ProverClientConfig, createProverClient } from '@aztec/prover-client';
|
|
5
5
|
import { ProverBrokerConfig, createAndStartProvingBroker } from '@aztec/prover-client/broker';
|
|
6
6
|
import { PublicProcessorFactory } from '@aztec/simulator/server';
|
|
7
|
+
import type { DataStoreConfig } from '@aztec/stdlib/kv-store';
|
|
8
|
+
import type { GenesisData } from '@aztec/stdlib/world-state';
|
|
7
9
|
import { getTelemetryClient } from '@aztec/telemetry-client';
|
|
8
10
|
import { createWorldState } from '@aztec/world-state';
|
|
9
11
|
|
|
@@ -21,18 +23,28 @@ import { ProverNodeJobMetrics } from '../metrics.js';
|
|
|
21
23
|
export async function rerunEpochProvingJob(
|
|
22
24
|
localPath: string,
|
|
23
25
|
log: Logger,
|
|
24
|
-
config: DataStoreConfig & ProverBrokerConfig & ProverClientConfig,
|
|
26
|
+
config: DataStoreConfig & ProverBrokerConfig & ProverClientConfig & Pick<L1ContractsConfig, 'aztecEpochDuration'>,
|
|
27
|
+
genesis?: GenesisData,
|
|
25
28
|
) {
|
|
26
29
|
const jobData = deserializeEpochProvingJobData(readFileSync(localPath));
|
|
27
30
|
log.info(`Loaded proving job data for epoch ${jobData.epochNumber}`);
|
|
28
31
|
|
|
29
32
|
const telemetry = getTelemetryClient();
|
|
30
33
|
const metrics = new ProverNodeJobMetrics(telemetry.getMeter('prover-job'), telemetry.getTracer('prover-job'));
|
|
31
|
-
const worldState = await createWorldState(config);
|
|
32
|
-
const
|
|
33
|
-
const
|
|
34
|
+
const worldState = await createWorldState(config, genesis);
|
|
35
|
+
const initialBlockHash = await worldState.getInitialHeader().hash();
|
|
36
|
+
const archiver = await createArchiverStore(config, initialBlockHash);
|
|
37
|
+
const publicProcessorFactory = new PublicProcessorFactory(
|
|
38
|
+
createContractDataSource(archiver),
|
|
39
|
+
undefined,
|
|
40
|
+
undefined,
|
|
41
|
+
log.getBindings(),
|
|
42
|
+
);
|
|
34
43
|
|
|
35
|
-
const publisher = {
|
|
44
|
+
const publisher = {
|
|
45
|
+
submitEpochProof: () => Promise.resolve(true),
|
|
46
|
+
analyzeEpochProofSubmission: () => Promise.resolve(),
|
|
47
|
+
};
|
|
36
48
|
const l2BlockSourceForReorgDetection = undefined;
|
|
37
49
|
const deadline = undefined;
|
|
38
50
|
|
|
@@ -52,6 +64,7 @@ export async function rerunEpochProvingJob(
|
|
|
52
64
|
metrics,
|
|
53
65
|
deadline,
|
|
54
66
|
{ skipEpochCheck: true },
|
|
67
|
+
log.getBindings(),
|
|
55
68
|
);
|
|
56
69
|
|
|
57
70
|
log.info(`Rerunning epoch proving job for epoch ${jobData.epochNumber}`);
|
|
@@ -3,11 +3,11 @@ import { tryRmDir } from '@aztec/foundation/fs';
|
|
|
3
3
|
import { jsonStringify } from '@aztec/foundation/json-rpc';
|
|
4
4
|
import type { Logger } from '@aztec/foundation/log';
|
|
5
5
|
import { isoDate } from '@aztec/foundation/string';
|
|
6
|
-
import type { DataStoreConfig } from '@aztec/kv-store/config';
|
|
7
6
|
import { buildSnapshotMetadata, createBackups } from '@aztec/node-lib/actions';
|
|
8
7
|
import type { ChainConfig } from '@aztec/stdlib/config';
|
|
9
8
|
import { type FileStore, createFileStore } from '@aztec/stdlib/file-store';
|
|
10
9
|
import type { WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
|
|
10
|
+
import type { DataStoreConfig } from '@aztec/stdlib/kv-store';
|
|
11
11
|
import { type UploadSnapshotMetadata, getBasePath, uploadSnapshotData } from '@aztec/stdlib/snapshots';
|
|
12
12
|
import { WORLD_STATE_DB_VERSION } from '@aztec/world-state';
|
|
13
13
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable no-console */
|
|
2
|
-
import
|
|
2
|
+
import { getL1ContractsConfigEnvVars } from '@aztec/ethereum/config';
|
|
3
3
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
4
|
import { jsonParseWithSchema, jsonStringify } from '@aztec/foundation/json-rpc';
|
|
5
5
|
import { createLogger } from '@aztec/foundation/log';
|
|
@@ -22,8 +22,10 @@ async function rerunFailedEpoch(provingJobUrl: string, baseLocalDir: string) {
|
|
|
22
22
|
const dataDir = join(localDir, 'state');
|
|
23
23
|
|
|
24
24
|
const env = getProverNodeConfigFromEnv();
|
|
25
|
+
const l1Config = getL1ContractsConfigEnvVars();
|
|
25
26
|
const config = {
|
|
26
|
-
...
|
|
27
|
+
...env,
|
|
28
|
+
...l1Config,
|
|
27
29
|
dataDirectory: dataDir,
|
|
28
30
|
dataStoreMapSizeKb: env.dataStoreMapSizeKb ?? 1024 * 1024,
|
|
29
31
|
proverId: env.proverId ?? EthAddress.random(),
|
|
@@ -47,7 +49,7 @@ async function rerunFailedEpoch(provingJobUrl: string, baseLocalDir: string) {
|
|
|
47
49
|
logger.info(`Rerunning proving job from ${jobPath} with state from ${dataDir}`, metadata);
|
|
48
50
|
const result = await rerunEpochProvingJob(jobPath, logger, {
|
|
49
51
|
...config,
|
|
50
|
-
|
|
52
|
+
rollupAddress: metadata.rollupAddress,
|
|
51
53
|
rollupVersion: metadata.rollupVersion,
|
|
52
54
|
});
|
|
53
55
|
|
package/src/config.ts
CHANGED
|
@@ -1,42 +1,37 @@
|
|
|
1
|
-
import { type ArchiverConfig, archiverConfigMappings } from '@aztec/archiver/config';
|
|
2
1
|
import type { ACVMConfig, BBConfig } from '@aztec/bb-prover/config';
|
|
3
|
-
import { type GenesisStateConfig, genesisStateConfigMappings } from '@aztec/ethereum';
|
|
4
2
|
import {
|
|
5
3
|
type ConfigMappingsType,
|
|
6
4
|
booleanConfigHelper,
|
|
7
5
|
getConfigFromMappings,
|
|
8
6
|
numberConfigHelper,
|
|
7
|
+
pickConfigMappings,
|
|
9
8
|
} from '@aztec/foundation/config';
|
|
10
|
-
import { type
|
|
11
|
-
import {
|
|
9
|
+
import { type KeyStoreConfig, keyStoreConfigMappings } from '@aztec/node-keystore/config';
|
|
10
|
+
import { ethPrivateKeySchema } from '@aztec/node-keystore/schemas';
|
|
11
|
+
import type { KeyStore } from '@aztec/node-keystore/types';
|
|
12
12
|
import { type SharedNodeConfig, sharedNodeConfigMappings } from '@aztec/node-lib/config';
|
|
13
|
-
import { type P2PConfig, p2pConfigMappings } from '@aztec/p2p/config';
|
|
14
13
|
import {
|
|
15
14
|
type ProverAgentConfig,
|
|
16
15
|
type ProverBrokerConfig,
|
|
17
16
|
proverAgentConfigMappings,
|
|
18
17
|
proverBrokerConfigMappings,
|
|
19
|
-
} from '@aztec/prover-client/broker';
|
|
18
|
+
} from '@aztec/prover-client/broker/config';
|
|
20
19
|
import { type ProverClientUserConfig, bbConfigMappings, proverClientConfigMappings } from '@aztec/prover-client/config';
|
|
21
20
|
import {
|
|
22
|
-
type
|
|
23
|
-
type
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
type ProverPublisherConfig,
|
|
22
|
+
type ProverTxSenderConfig,
|
|
23
|
+
proverPublisherConfigMappings,
|
|
24
|
+
proverTxSenderConfigMappings,
|
|
26
25
|
} from '@aztec/sequencer-client/config';
|
|
27
|
-
import { type
|
|
28
|
-
|
|
29
|
-
export type ProverNodeConfig =
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
WorldStateConfig &
|
|
33
|
-
PublisherConfig &
|
|
34
|
-
TxSenderConfig &
|
|
26
|
+
import { type DataStoreConfig, dataConfigMappings } from '@aztec/stdlib/kv-store';
|
|
27
|
+
|
|
28
|
+
export type ProverNodeConfig = ProverClientUserConfig &
|
|
29
|
+
ProverPublisherConfig &
|
|
30
|
+
ProverTxSenderConfig &
|
|
35
31
|
DataStoreConfig &
|
|
36
32
|
KeyStoreConfig &
|
|
37
|
-
SharedNodeConfig &
|
|
38
33
|
SpecificProverNodeConfig &
|
|
39
|
-
|
|
34
|
+
Pick<SharedNodeConfig, 'web3SignerUrl'>;
|
|
40
35
|
|
|
41
36
|
export type SpecificProverNodeConfig = {
|
|
42
37
|
proverNodeMaxPendingJobs: number;
|
|
@@ -51,7 +46,7 @@ export type SpecificProverNodeConfig = {
|
|
|
51
46
|
txGatheringMaxParallelRequestsPerNode: number;
|
|
52
47
|
};
|
|
53
48
|
|
|
54
|
-
const specificProverNodeConfigMappings: ConfigMappingsType<SpecificProverNodeConfig> = {
|
|
49
|
+
export const specificProverNodeConfigMappings: ConfigMappingsType<SpecificProverNodeConfig> = {
|
|
55
50
|
proverNodeMaxPendingJobs: {
|
|
56
51
|
env: 'PROVER_NODE_MAX_PENDING_JOBS',
|
|
57
52
|
description: 'The maximum number of pending jobs for the prover node',
|
|
@@ -65,7 +60,7 @@ const specificProverNodeConfigMappings: ConfigMappingsType<SpecificProverNodeCon
|
|
|
65
60
|
proverNodeMaxParallelBlocksPerEpoch: {
|
|
66
61
|
env: 'PROVER_NODE_MAX_PARALLEL_BLOCKS_PER_EPOCH',
|
|
67
62
|
description: 'The Maximum number of blocks to process in parallel while proving an epoch',
|
|
68
|
-
...numberConfigHelper(
|
|
63
|
+
...numberConfigHelper(0),
|
|
69
64
|
},
|
|
70
65
|
proverNodeFailedEpochStore: {
|
|
71
66
|
env: 'PROVER_NODE_FAILED_EPOCH_STORE',
|
|
@@ -106,15 +101,11 @@ const specificProverNodeConfigMappings: ConfigMappingsType<SpecificProverNodeCon
|
|
|
106
101
|
export const proverNodeConfigMappings: ConfigMappingsType<ProverNodeConfig> = {
|
|
107
102
|
...dataConfigMappings,
|
|
108
103
|
...keyStoreConfigMappings,
|
|
109
|
-
...archiverConfigMappings,
|
|
110
104
|
...proverClientConfigMappings,
|
|
111
|
-
...
|
|
112
|
-
...
|
|
113
|
-
...getPublisherConfigMappings('PROVER'),
|
|
114
|
-
...getTxSenderConfigMappings('PROVER'),
|
|
105
|
+
...proverPublisherConfigMappings,
|
|
106
|
+
...proverTxSenderConfigMappings,
|
|
115
107
|
...specificProverNodeConfigMappings,
|
|
116
|
-
...
|
|
117
|
-
...sharedNodeConfigMappings,
|
|
108
|
+
...pickConfigMappings(sharedNodeConfigMappings, ['web3SignerUrl']),
|
|
118
109
|
};
|
|
119
110
|
|
|
120
111
|
export function getProverNodeConfigFromEnv(): ProverNodeConfig {
|
|
@@ -141,7 +132,7 @@ function createKeyStoreFromWeb3Signer(config: ProverNodeConfig): KeyStore | unde
|
|
|
141
132
|
}
|
|
142
133
|
|
|
143
134
|
// Also, we need at least one publisher address.
|
|
144
|
-
const publishers = config.
|
|
135
|
+
const publishers = config.proverPublisherAddresses ?? [];
|
|
145
136
|
|
|
146
137
|
if (publishers.length === 0) {
|
|
147
138
|
return undefined;
|
|
@@ -162,8 +153,8 @@ function createKeyStoreFromWeb3Signer(config: ProverNodeConfig): KeyStore | unde
|
|
|
162
153
|
|
|
163
154
|
function createKeyStoreFromPublisherKeys(config: ProverNodeConfig): KeyStore | undefined {
|
|
164
155
|
// Extract the publisher keys from the provided config.
|
|
165
|
-
const publisherKeys = config.
|
|
166
|
-
? config.
|
|
156
|
+
const publisherKeys = config.proverPublisherPrivateKeys
|
|
157
|
+
? config.proverPublisherPrivateKeys.map((k: { getValue: () => string }) => ethPrivateKeySchema.parse(k.getValue()))
|
|
167
158
|
: [];
|
|
168
159
|
|
|
169
160
|
// There must be at least 1.
|
|
@@ -192,7 +183,10 @@ function createKeyStoreFromPublisherKeys(config: ProverNodeConfig): KeyStore | u
|
|
|
192
183
|
|
|
193
184
|
export function createKeyStoreForProver(config: ProverNodeConfig): KeyStore | undefined {
|
|
194
185
|
if (config.web3SignerUrl !== undefined && config.web3SignerUrl.length > 0) {
|
|
195
|
-
|
|
186
|
+
const keyStore = createKeyStoreFromWeb3Signer(config);
|
|
187
|
+
if (keyStore) {
|
|
188
|
+
return keyStore;
|
|
189
|
+
}
|
|
196
190
|
}
|
|
197
191
|
|
|
198
192
|
return createKeyStoreFromPublisherKeys(config);
|