@aztec/prover-node 0.62.0 → 0.63.1
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/config.d.ts +2 -1
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +4 -1
- package/dest/factory.d.ts +2 -1
- package/dest/factory.d.ts.map +1 -1
- package/dest/factory.js +1 -1
- package/dest/http.d.ts +1 -2
- package/dest/http.d.ts.map +1 -1
- package/dest/http.js +4 -12
- package/dest/job/epoch-proving-job.d.ts +3 -2
- package/dest/job/epoch-proving-job.d.ts.map +1 -1
- package/dest/job/epoch-proving-job.js +15 -2
- package/dest/prover-coordination/factory.d.ts +2 -1
- package/dest/prover-coordination/factory.d.ts.map +1 -1
- package/dest/prover-coordination/factory.js +1 -1
- package/dest/prover-node.d.ts +8 -7
- package/dest/prover-node.d.ts.map +1 -1
- package/dest/prover-node.js +18 -13
- package/package.json +16 -16
- package/src/config.ts +4 -0
- package/src/factory.ts +2 -1
- package/src/http.ts +3 -15
- package/src/job/epoch-proving-job.ts +36 -7
- package/src/prover-coordination/factory.ts +2 -1
- package/src/prover-node.ts +25 -19
package/dest/config.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { type ArchiverConfig } from '@aztec/archiver';
|
|
2
2
|
import { type ConfigMappingsType } from '@aztec/foundation/config';
|
|
3
|
+
import { type DataStoreConfig } from '@aztec/kv-store/config';
|
|
3
4
|
import { type P2PConfig } from '@aztec/p2p';
|
|
4
5
|
import { type ProverClientConfig } from '@aztec/prover-client';
|
|
5
6
|
import { type PublisherConfig, type TxSenderConfig } from '@aztec/sequencer-client';
|
|
6
7
|
import { type WorldStateConfig } from '@aztec/world-state';
|
|
7
8
|
import { type ProverBondManagerConfig } from './bond/config.js';
|
|
8
9
|
import { type ProverCoordinationConfig } from './prover-coordination/config.js';
|
|
9
|
-
export type ProverNodeConfig = ArchiverConfig & ProverClientConfig & P2PConfig & WorldStateConfig & PublisherConfig & TxSenderConfig & ProverCoordinationConfig & ProverBondManagerConfig & QuoteProviderConfig & {
|
|
10
|
+
export type ProverNodeConfig = ArchiverConfig & ProverClientConfig & P2PConfig & WorldStateConfig & PublisherConfig & TxSenderConfig & DataStoreConfig & ProverCoordinationConfig & ProverBondManagerConfig & QuoteProviderConfig & {
|
|
10
11
|
proverNodeMaxPendingJobs: number;
|
|
11
12
|
proverNodePollingIntervalMs: number;
|
|
12
13
|
};
|
package/dest/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAoD,MAAM,iBAAiB,CAAC;AACxG,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,SAAS,EAA0C,MAAM,YAAY,CAAC;AACpF,OAAO,EAAE,KAAK,kBAAkB,EAAgD,MAAM,sBAAsB,CAAC;AAC7G,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EAKpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,gBAAgB,EAAwD,MAAM,oBAAoB,CAAC;AAEjH,OAAO,EAAE,KAAK,uBAAuB,EAAmC,MAAM,kBAAkB,CAAC;AACjG,OAAO,EACL,KAAK,wBAAwB,EAG9B,MAAM,iCAAiC,CAAC;AAEzC,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAC3C,kBAAkB,GAClB,SAAS,GACT,gBAAgB,GAChB,eAAe,GACf,cAAc,GACd,wBAAwB,GACxB,uBAAuB,GACvB,mBAAmB,GAAG;IACpB,wBAAwB,EAAE,MAAM,CAAC;IACjC,2BAA2B,EAAE,MAAM,CAAC;CACrC,CAAC;AAEJ,MAAM,MAAM,mBAAmB,GAAG;IAChC,0BAA0B,EAAE,MAAM,CAAC;IACnC,uBAAuB,EAAE,MAAM,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAmCF,eAAO,MAAM,wBAAwB,EAAE,kBAAkB,CAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAoD,MAAM,iBAAiB,CAAC;AACxG,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,eAAe,EAA4C,MAAM,wBAAwB,CAAC;AACxG,OAAO,EAAE,KAAK,SAAS,EAA0C,MAAM,YAAY,CAAC;AACpF,OAAO,EAAE,KAAK,kBAAkB,EAAgD,MAAM,sBAAsB,CAAC;AAC7G,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EAKpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,gBAAgB,EAAwD,MAAM,oBAAoB,CAAC;AAEjH,OAAO,EAAE,KAAK,uBAAuB,EAAmC,MAAM,kBAAkB,CAAC;AACjG,OAAO,EACL,KAAK,wBAAwB,EAG9B,MAAM,iCAAiC,CAAC;AAEzC,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAC3C,kBAAkB,GAClB,SAAS,GACT,gBAAgB,GAChB,eAAe,GACf,cAAc,GACd,eAAe,GACf,wBAAwB,GACxB,uBAAuB,GACvB,mBAAmB,GAAG;IACpB,wBAAwB,EAAE,MAAM,CAAC;IACjC,2BAA2B,EAAE,MAAM,CAAC;CACrC,CAAC;AAEJ,MAAM,MAAM,mBAAmB,GAAG;IAChC,0BAA0B,EAAE,MAAM,CAAC;IACnC,uBAAuB,EAAE,MAAM,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAmCF,eAAO,MAAM,wBAAwB,EAAE,kBAAkB,CAAC,gBAAgB,CAYzE,CAAC;AAEF,wBAAgB,0BAA0B,IAAI,gBAAgB,CAc7D"}
|
package/dest/config.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { archiverConfigMappings, getArchiverConfigFromEnv } from '@aztec/archiver';
|
|
2
2
|
import { bigintConfigHelper, getConfigFromMappings, numberConfigHelper, } from '@aztec/foundation/config';
|
|
3
|
+
import { dataConfigMappings, getDataConfigFromEnv } from '@aztec/kv-store/config';
|
|
3
4
|
import { getP2PConfigFromEnv, p2pConfigMappings } from '@aztec/p2p';
|
|
4
5
|
import { getProverEnvVars, proverClientConfigMappings } from '@aztec/prover-client';
|
|
5
6
|
import { getPublisherConfigFromEnv, getPublisherConfigMappings, getTxSenderConfigFromEnv, getTxSenderConfigMappings, } from '@aztec/sequencer-client';
|
|
@@ -35,6 +36,7 @@ const quoteProviderConfigMappings = {
|
|
|
35
36
|
},
|
|
36
37
|
};
|
|
37
38
|
export const proverNodeConfigMappings = {
|
|
39
|
+
...dataConfigMappings,
|
|
38
40
|
...archiverConfigMappings,
|
|
39
41
|
...proverClientConfigMappings,
|
|
40
42
|
...p2pConfigMappings,
|
|
@@ -48,6 +50,7 @@ export const proverNodeConfigMappings = {
|
|
|
48
50
|
};
|
|
49
51
|
export function getProverNodeConfigFromEnv() {
|
|
50
52
|
return {
|
|
53
|
+
...getDataConfigFromEnv(),
|
|
51
54
|
...getArchiverConfigFromEnv(),
|
|
52
55
|
...getProverEnvVars(),
|
|
53
56
|
...getP2PConfigFromEnv(),
|
|
@@ -60,4 +63,4 @@ export function getProverNodeConfigFromEnv() {
|
|
|
60
63
|
...getConfigFromMappings(proverBondManagerConfigMappings),
|
|
61
64
|
};
|
|
62
65
|
}
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLHNCQUFzQixFQUFFLHdCQUF3QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEcsT0FBTyxFQUVMLGtCQUFrQixFQUNsQixxQkFBcUIsRUFDckIsa0JBQWtCLEdBQ25CLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUF3QixrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hHLE9BQU8sRUFBa0IsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDcEYsT0FBTyxFQUEyQixnQkFBZ0IsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdHLE9BQU8sRUFHTCx5QkFBeUIsRUFDekIsMEJBQTBCLEVBQzFCLHdCQUF3QixFQUN4Qix5QkFBeUIsR0FDMUIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQXlCLDBCQUEwQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFakgsT0FBTyxFQUFnQywrQkFBK0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pHLE9BQU8sRUFFTCwwQkFBMEIsRUFDMUIsZ0NBQWdDLEdBQ2pDLE1BQU0saUNBQWlDLENBQUM7QUFzQnpDLE1BQU0sZ0NBQWdDLEdBRWxDO0lBQ0Ysd0JBQXdCLEVBQUU7UUFDeEIsR0FBRyxFQUFFLDhCQUE4QjtRQUNuQyxXQUFXLEVBQUUsd0RBQXdEO1FBQ3JFLEdBQUcsa0JBQWtCLENBQUMsRUFBRSxDQUFDO0tBQzFCO0lBQ0QsMkJBQTJCLEVBQUU7UUFDM0IsR0FBRyxFQUFFLGlDQUFpQztRQUN0QyxXQUFXLEVBQUUsbURBQW1EO1FBQ2hFLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDO0tBQzVCO0NBQ0YsQ0FBQztBQUVGLE1BQU0sMkJBQTJCLEdBQTRDO0lBQzNFLDBCQUEwQixFQUFFO1FBQzFCLEdBQUcsRUFBRSxnQ0FBZ0M7UUFDckMsV0FBVyxFQUFFLG9EQUFvRDtRQUNqRSxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQztLQUMzQjtJQUNELHVCQUF1QixFQUFFO1FBQ3ZCLEdBQUcsRUFBRSw0QkFBNEI7UUFDakMsV0FBVyxFQUFFLGdEQUFnRDtRQUM3RCxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQztLQUM3QjtJQUNELGdCQUFnQixFQUFFO1FBQ2hCLEdBQUcsRUFBRSxvQkFBb0I7UUFDekIsV0FBVyxFQUNULGdIQUFnSDtLQUNuSDtDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBeUM7SUFDNUUsR0FBRyxrQkFBa0I7SUFDckIsR0FBRyxzQkFBc0I7SUFDekIsR0FBRywwQkFBMEI7SUFDN0IsR0FBRyxpQkFBaUI7SUFDcEIsR0FBRyx3QkFBd0I7SUFDM0IsR0FBRywwQkFBMEIsQ0FBQyxRQUFRLENBQUM7SUFDdkMsR0FBRyx5QkFBeUIsQ0FBQyxRQUFRLENBQUM7SUFDdEMsR0FBRyxnQ0FBZ0M7SUFDbkMsR0FBRywyQkFBMkI7SUFDOUIsR0FBRywrQkFBK0I7SUFDbEMsR0FBRyxnQ0FBZ0M7Q0FDcEMsQ0FBQztBQUVGLE1BQU0sVUFBVSwwQkFBMEI7SUFDeEMsT0FBTztRQUNMLEdBQUcsb0JBQW9CLEVBQUU7UUFDekIsR0FBRyx3QkFBd0IsRUFBRTtRQUM3QixHQUFHLGdCQUFnQixFQUFFO1FBQ3JCLEdBQUcsbUJBQW1CLEVBQUU7UUFDeEIsR0FBRywwQkFBMEIsRUFBRTtRQUMvQixHQUFHLHlCQUF5QixDQUFDLFFBQVEsQ0FBQztRQUN0QyxHQUFHLHdCQUF3QixDQUFDLFFBQVEsQ0FBQztRQUNyQyxHQUFHLDBCQUEwQixFQUFFO1FBQy9CLEdBQUcscUJBQXFCLENBQUMsMkJBQTJCLENBQUM7UUFDckQsR0FBRyxxQkFBcUIsQ0FBQyxnQ0FBZ0MsQ0FBQztRQUMxRCxHQUFHLHFCQUFxQixDQUFDLCtCQUErQixDQUFDO0tBQzFELENBQUM7QUFDSixDQUFDIn0=
|
package/dest/factory.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { type Archiver } from '@aztec/archiver';
|
|
2
2
|
import { type ProverCoordination } from '@aztec/circuit-types';
|
|
3
3
|
import { type DebugLogger } from '@aztec/foundation/log';
|
|
4
|
+
import { type DataStoreConfig } from '@aztec/kv-store/config';
|
|
4
5
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
5
6
|
import { type ProverNodeConfig } from './config.js';
|
|
6
7
|
import { ProverNode } from './prover-node.js';
|
|
7
8
|
/** Creates a new prover node given a config. */
|
|
8
|
-
export declare function createProverNode(config: ProverNodeConfig, deps?: {
|
|
9
|
+
export declare function createProverNode(config: ProverNodeConfig & DataStoreConfig, deps?: {
|
|
9
10
|
telemetry?: TelemetryClient;
|
|
10
11
|
log?: DebugLogger;
|
|
11
12
|
aztecNodeTxProvider?: ProverCoordination;
|
package/dest/factory.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAkB,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG/D,OAAO,EAAE,KAAK,WAAW,EAAqB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAkB,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG/D,OAAO,EAAE,KAAK,WAAW,EAAqB,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAK9D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAO/D,OAAO,EAAE,KAAK,gBAAgB,EAA4B,MAAM,aAAa,CAAC;AAI9E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAK9C,gDAAgD;AAChD,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,gBAAgB,GAAG,eAAe,EAC1C,IAAI,GAAE;IACJ,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,mBAAmB,CAAC,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CAChB,uBA2DP"}
|
package/dest/factory.js
CHANGED
|
@@ -66,4 +66,4 @@ function createQuoteSigner(config) {
|
|
|
66
66
|
const privateKey = config.publisherPrivateKey;
|
|
67
67
|
return QuoteSigner.new(Buffer32.fromString(privateKey), rollupContract);
|
|
68
68
|
}
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sRUFBb0IsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUs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
|
package/dest/http.d.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { JsonRpcServer } from '@aztec/foundation/json-rpc/server';
|
|
2
1
|
import { type ProverNode } from './prover-node.js';
|
|
3
2
|
/**
|
|
4
3
|
* Wrap a ProverNode instance with a JSON RPC HTTP server.
|
|
5
4
|
* @param node - The ProverNode
|
|
6
5
|
* @returns An JSON-RPC HTTP server
|
|
7
6
|
*/
|
|
8
|
-
export declare function createProverNodeRpcServer(node: ProverNode):
|
|
7
|
+
export declare function createProverNodeRpcServer(node: ProverNode): import("@aztec/foundation/json-rpc/server").SafeJsonRpcServer;
|
|
9
8
|
//# sourceMappingURL=http.d.ts.map
|
package/dest/http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,UAAU,iEAEzD"}
|
package/dest/http.js
CHANGED
|
@@ -1,19 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { ProverNodeApiSchema } from '@aztec/circuit-types';
|
|
2
|
+
import { createSafeJsonRpcServer } from '@aztec/foundation/json-rpc/server';
|
|
3
3
|
/**
|
|
4
4
|
* Wrap a ProverNode instance with a JSON RPC HTTP server.
|
|
5
5
|
* @param node - The ProverNode
|
|
6
6
|
* @returns An JSON-RPC HTTP server
|
|
7
7
|
*/
|
|
8
8
|
export function createProverNodeRpcServer(node) {
|
|
9
|
-
|
|
10
|
-
AztecAddress,
|
|
11
|
-
EthAddress,
|
|
12
|
-
Fr,
|
|
13
|
-
Header,
|
|
14
|
-
}, {},
|
|
15
|
-
// disable methods not part of the AztecNode interface
|
|
16
|
-
['start', 'stop', 'createProvingJob', 'work', 'getProver']);
|
|
17
|
-
return rpc;
|
|
9
|
+
return createSafeJsonRpcServer(node, ProverNodeApiSchema);
|
|
18
10
|
}
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9odHRwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBSTVFOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUseUJBQXlCLENBQUMsSUFBZ0I7SUFDeEQsT0FBTyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztBQUM1RCxDQUFDIn0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type EpochProver, type L1ToL2MessageSource, type L2Block, type L2BlockSource, type MerkleTreeWriteOperations, type ProverCoordination } from '@aztec/circuit-types';
|
|
1
|
+
import { type EpochProver, type EpochProvingJobState, type L1ToL2MessageSource, type L2Block, type L2BlockSource, type MerkleTreeWriteOperations, type ProverCoordination } from '@aztec/circuit-types';
|
|
2
2
|
import { type L1Publisher } from '@aztec/sequencer-client';
|
|
3
3
|
import { type PublicProcessorFactory } from '@aztec/simulator';
|
|
4
4
|
import { type ProverNodeMetrics } from '../metrics.js';
|
|
@@ -34,6 +34,7 @@ export declare class EpochProvingJob {
|
|
|
34
34
|
private getTxs;
|
|
35
35
|
private getL1ToL2Messages;
|
|
36
36
|
private processTxs;
|
|
37
|
+
private addPaddingTxState;
|
|
37
38
|
}
|
|
38
|
-
export type EpochProvingJobState
|
|
39
|
+
export { type EpochProvingJobState };
|
|
39
40
|
//# sourceMappingURL=epoch-proving-job.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"epoch-proving-job.d.ts","sourceRoot":"","sources":["../../src/job/epoch-proving-job.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,OAAO,EACZ,KAAK,aAAa,
|
|
1
|
+
{"version":3,"file":"epoch-proving-job.d.ts","sourceRoot":"","sources":["../../src/job/epoch-proving-job.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,OAAO,EACZ,KAAK,aAAa,EAElB,KAAK,yBAAyB,EAE9B,KAAK,kBAAkB,EAGxB,MAAM,sBAAsB,CAAC;AAY9B,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAwB,KAAK,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAIrF,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD;;;;GAIG;AACH,qBAAa,eAAe;IAQxB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,sBAAsB;IAC9B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,OAAO;IAjBjB,OAAO,CAAC,KAAK,CAAuC;IACpD,OAAO,CAAC,GAAG,CAAgD;IAC3D,OAAO,CAAC,IAAI,CAAS;IAErB,OAAO,CAAC,UAAU,CAA4B;gBAGpC,EAAE,EAAE,yBAAyB,EAC7B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,OAAO,EAAE,EACjB,MAAM,EAAE,WAAW,EACnB,sBAAsB,EAAE,sBAAsB,EAC9C,SAAS,EAAE,WAAW,EACtB,aAAa,EAAE,aAAa,EAC5B,mBAAmB,EAAE,mBAAmB,EACxC,YAAY,EAAE,kBAAkB,EAChC,OAAO,EAAE,iBAAiB,EAC1B,OAAO,GAAE,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAA2B;IAK7E,KAAK,IAAI,MAAM;IAIf,QAAQ,IAAI,oBAAoB;IAIvC;;OAEG;IACU,GAAG;IAiFH,IAAI;YAOH,MAAM;IAWpB,OAAO,CAAC,iBAAiB;YAIX,UAAU;YAqBV,iBAAiB;CAmBhC;AAED,OAAO,EAAE,KAAK,oBAAoB,EAAE,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { EmptyTxValidator, } from '@aztec/circuit-types';
|
|
1
|
+
import { EmptyTxValidator, MerkleTreeId, } from '@aztec/circuit-types';
|
|
2
|
+
import { KernelCircuitPublicInputs, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, NULLIFIER_SUBTREE_HEIGHT, PUBLIC_DATA_SUBTREE_HEIGHT, PublicDataTreeLeaf, } from '@aztec/circuits.js';
|
|
3
|
+
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
2
4
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
3
5
|
import { promiseWithResolvers } from '@aztec/foundation/promise';
|
|
4
6
|
import { Timer } from '@aztec/foundation/timer';
|
|
@@ -76,6 +78,10 @@ export class EpochProvingJob {
|
|
|
76
78
|
blockHash: block.hash().toString(),
|
|
77
79
|
uuid: this.uuid,
|
|
78
80
|
});
|
|
81
|
+
if (txCount > txs.length) {
|
|
82
|
+
// If this block has a padding tx, ensure that the public processor's db has its state
|
|
83
|
+
await this.addPaddingTxState();
|
|
84
|
+
}
|
|
79
85
|
// Mark block as completed and update archive tree
|
|
80
86
|
await this.prover.setBlockCompleted(block.header);
|
|
81
87
|
previousHeader = block.header;
|
|
@@ -123,5 +129,12 @@ export class EpochProvingJob {
|
|
|
123
129
|
}
|
|
124
130
|
return processedTxs;
|
|
125
131
|
}
|
|
132
|
+
async addPaddingTxState() {
|
|
133
|
+
const emptyKernelOutput = KernelCircuitPublicInputs.empty();
|
|
134
|
+
await this.db.appendLeaves(MerkleTreeId.NOTE_HASH_TREE, emptyKernelOutput.end.noteHashes);
|
|
135
|
+
await this.db.batchInsert(MerkleTreeId.NULLIFIER_TREE, emptyKernelOutput.end.nullifiers.map(n => n.toBuffer()), NULLIFIER_SUBTREE_HEIGHT);
|
|
136
|
+
const allPublicDataWrites = padArrayEnd(emptyKernelOutput.end.publicDataWrites.map(({ leafSlot, value }) => new PublicDataTreeLeaf(leafSlot, value)), PublicDataTreeLeaf.empty(), MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX);
|
|
137
|
+
await this.db.batchInsert(MerkleTreeId.PUBLIC_DATA_TREE, allPublicDataWrites.map(x => x.toBuffer()), PUBLIC_DATA_SUBTREE_HEIGHT);
|
|
138
|
+
}
|
|
126
139
|
}
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXBvY2gtcHJvdmluZy1qb2IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvam9iL2Vwb2NoLXByb3Zpbmctam9iLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFNaEIsWUFBWSxHQU1iLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUNMLHlCQUF5QixFQUN6Qiw0Q0FBNEMsRUFDNUMsd0JBQXdCLEVBQ3hCLDBCQUEwQixFQUMxQixrQkFBa0IsR0FDbkIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSWhELE9BQU8sS0FBSyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBSXRDOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQU8xQixZQUNVLEVBQTZCLEVBQzdCLFdBQW1CLEVBQ25CLE1BQWlCLEVBQ2pCLE1BQW1CLEVBQ25CLHNCQUE4QyxFQUM5QyxTQUFzQixFQUN0QixhQUE0QixFQUM1QixtQkFBd0MsRUFDeEMsWUFBZ0MsRUFDaEMsT0FBMEIsRUFDMUIsVUFBbUQsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTtRQVYxRSxPQUFFLEdBQUYsRUFBRSxDQUEyQjtRQUM3QixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLFdBQU0sR0FBTixNQUFNLENBQWE7UUFDbkIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUM5QyxjQUFTLEdBQVQsU0FBUyxDQUFhO1FBQ3RCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVC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
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type ArchiveSource, type Archiver } from '@aztec/archiver';
|
|
2
2
|
import { type ProverCoordination, type WorldStateSynchronizer } from '@aztec/circuit-types';
|
|
3
|
+
import { type DataStoreConfig } from '@aztec/kv-store/config';
|
|
3
4
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
4
5
|
import { type ProverNodeConfig } from '../config.js';
|
|
5
6
|
type ProverCoordinationDeps = {
|
|
@@ -14,6 +15,6 @@ type ProverCoordinationDeps = {
|
|
|
14
15
|
* If an Aztec node URL is provided, prover coordination is done via the Aztec node over http.
|
|
15
16
|
* If an aztec node is provided, it is returned directly.
|
|
16
17
|
*/
|
|
17
|
-
export declare function createProverCoordination(config: ProverNodeConfig, deps: ProverCoordinationDeps): Promise<ProverCoordination>;
|
|
18
|
+
export declare function createProverCoordination(config: ProverNodeConfig & DataStoreConfig, deps: ProverCoordinationDeps): Promise<ProverCoordination>;
|
|
18
19
|
export {};
|
|
19
20
|
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/prover-coordination/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,sBAAsB,EAAyB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/prover-coordination/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,sBAAsB,EAAyB,MAAM,sBAAsB,CAAC;AAEnH,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGrD,KAAK,sBAAsB,GAAG;IAC5B,mBAAmB,CAAC,EAAE,kBAAkB,CAAC;IACzC,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD,QAAQ,CAAC,EAAE,QAAQ,GAAG,aAAa,CAAC;IACpC,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,gBAAgB,GAAG,eAAe,EAC1C,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CAkC7B"}
|
|
@@ -32,4 +32,4 @@ export async function createProverCoordination(config, deps) {
|
|
|
32
32
|
throw new Error(`Aztec Node URL for Tx Provider is not set.`);
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92ZXItY29vcmRpbmF0aW9uL2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUUsT0FBTyxFQUF3RCxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFhN0M7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLHdCQUF3QixDQUM1QyxNQUEwQyxFQUMxQyxJQUE0QjtJQUU1QixNQUFNLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO0lBRWhFLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDN0IsR0FBRyxDQUFDLElBQUksQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1FBQ3JELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN0QixHQUFHLENBQUMsSUFBSSxDQUFDLG1DQUFtQyxDQUFDLENBQUM7UUFFOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDdEUsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7UUFFRCxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1FBQzFHLE1BQU0sU0FBUyxHQUFHLE1BQU0sZUFBZSxDQUNyQyxNQUFNLEVBQ04sSUFBSSxDQUFDLFFBQVEsRUFDYixhQUFhLEVBQ2IsSUFBSSxDQUFDLHNCQUFzQixFQUMzQixJQUFJLENBQUMsU0FBUyxDQUNmLENBQUM7UUFDRixNQUFNLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUV4QixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUNyQyxHQUFHLENBQUMsSUFBSSxDQUFDLHdDQUF3QyxDQUFDLENBQUM7UUFDbkQsT0FBTyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUNqRSxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0FBQ0gsQ0FBQyJ9
|
package/dest/prover-node.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { type EpochProofClaim, type EpochProofQuote, type EpochProverManager, type L1ToL2MessageSource, type L2Block, type L2BlockSource, type MerkleTreeWriteOperations, type ProverCoordination, type WorldStateSynchronizer } from '@aztec/circuit-types';
|
|
1
|
+
import { type EpochProofClaim, type EpochProofQuote, type EpochProverManager, type L1ToL2MessageSource, type L2Block, type L2BlockSource, type MerkleTreeWriteOperations, type ProverCoordination, type ProverNodeApi, type Service, type WorldStateSynchronizer } from '@aztec/circuit-types';
|
|
2
2
|
import { type ContractDataSource } from '@aztec/circuits.js';
|
|
3
|
+
import { type Maybe } from '@aztec/foundation/types';
|
|
3
4
|
import { type L1Publisher } from '@aztec/sequencer-client';
|
|
4
5
|
import { PublicProcessorFactory, type SimulationProvider } from '@aztec/simulator';
|
|
5
6
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
@@ -19,7 +20,7 @@ export type ProverNodeOptions = {
|
|
|
19
20
|
* from a tx source in the p2p network or an external node, re-executes their public functions, creates a rollup
|
|
20
21
|
* proof for the epoch, and submits it to L1.
|
|
21
22
|
*/
|
|
22
|
-
export declare class ProverNode implements ClaimsMonitorHandler, EpochMonitorHandler {
|
|
23
|
+
export declare class ProverNode implements ClaimsMonitorHandler, EpochMonitorHandler, ProverNodeApi {
|
|
23
24
|
private readonly prover;
|
|
24
25
|
private readonly publisher;
|
|
25
26
|
private readonly l2BlockSource;
|
|
@@ -27,7 +28,7 @@ export declare class ProverNode implements ClaimsMonitorHandler, EpochMonitorHan
|
|
|
27
28
|
private readonly contractDataSource;
|
|
28
29
|
private readonly worldState;
|
|
29
30
|
private readonly coordination;
|
|
30
|
-
private readonly
|
|
31
|
+
private readonly _simulator;
|
|
31
32
|
private readonly quoteProvider;
|
|
32
33
|
private readonly quoteSigner;
|
|
33
34
|
private readonly claimsMonitor;
|
|
@@ -39,7 +40,7 @@ export declare class ProverNode implements ClaimsMonitorHandler, EpochMonitorHan
|
|
|
39
40
|
private jobs;
|
|
40
41
|
private options;
|
|
41
42
|
private metrics;
|
|
42
|
-
constructor(prover: EpochProverManager, publisher: L1Publisher, l2BlockSource: L2BlockSource
|
|
43
|
+
constructor(prover: EpochProverManager, publisher: L1Publisher, l2BlockSource: L2BlockSource & Maybe<Service>, l1ToL2MessageSource: L1ToL2MessageSource, contractDataSource: ContractDataSource, worldState: WorldStateSynchronizer, coordination: ProverCoordination & Maybe<Service>, _simulator: SimulationProvider, quoteProvider: QuoteProvider, quoteSigner: QuoteSigner, claimsMonitor: ClaimsMonitor, epochsMonitor: EpochMonitor, bondManager: BondManager, telemetryClient: TelemetryClient, options?: Partial<ProverNodeOptions>);
|
|
43
44
|
handleClaim(proofClaim: EpochProofClaim): Promise<void>;
|
|
44
45
|
/**
|
|
45
46
|
* Handles the epoch number to prove when the prover node starts by checking if there
|
|
@@ -81,14 +82,14 @@ export declare class ProverNode implements ClaimsMonitorHandler, EpochMonitorHan
|
|
|
81
82
|
/**
|
|
82
83
|
* Returns an array of jobs being processed.
|
|
83
84
|
*/
|
|
84
|
-
getJobs(): {
|
|
85
|
+
getJobs(): Promise<{
|
|
85
86
|
uuid: string;
|
|
86
87
|
status: EpochProvingJobState;
|
|
87
|
-
}[]
|
|
88
|
+
}[]>;
|
|
88
89
|
private checkMaximumPendingJobs;
|
|
89
90
|
private createProvingJob;
|
|
90
91
|
/** Extracted for testing purposes. */
|
|
91
|
-
protected doCreateEpochProvingJob(epochNumber: bigint, blocks: L2Block[],
|
|
92
|
+
protected doCreateEpochProvingJob(epochNumber: bigint, blocks: L2Block[], publicDb: MerkleTreeWriteOperations, proverDb: MerkleTreeWriteOperations, publicProcessorFactory: PublicProcessorFactory, cleanUp: () => Promise<void>): EpochProvingJob;
|
|
92
93
|
/** Extracted for testing purposes. */
|
|
93
94
|
protected triggerMonitors(): Promise<void>;
|
|
94
95
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prover-node.d.ts","sourceRoot":"","sources":["../src/prover-node.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,eAAe,EAEpB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,yBAAyB,EAC9B,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,
|
|
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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EpochProofQuotePayload, } from '@aztec/circuit-types';
|
|
1
|
+
import { EpochProofQuotePayload, tryStop, } from '@aztec/circuit-types';
|
|
2
2
|
import { compact } from '@aztec/foundation/collection';
|
|
3
3
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
4
4
|
import { PublicProcessorFactory } from '@aztec/simulator';
|
|
@@ -11,7 +11,7 @@ import { ProverNodeMetrics } from './metrics.js';
|
|
|
11
11
|
* proof for the epoch, and submits it to L1.
|
|
12
12
|
*/
|
|
13
13
|
export class ProverNode {
|
|
14
|
-
constructor(prover, publisher, l2BlockSource, l1ToL2MessageSource, contractDataSource, worldState, coordination,
|
|
14
|
+
constructor(prover, publisher, l2BlockSource, l1ToL2MessageSource, contractDataSource, worldState, coordination, _simulator, quoteProvider, quoteSigner, claimsMonitor, epochsMonitor, bondManager, telemetryClient, options = {}) {
|
|
15
15
|
this.prover = prover;
|
|
16
16
|
this.publisher = publisher;
|
|
17
17
|
this.l2BlockSource = l2BlockSource;
|
|
@@ -19,7 +19,7 @@ export class ProverNode {
|
|
|
19
19
|
this.contractDataSource = contractDataSource;
|
|
20
20
|
this.worldState = worldState;
|
|
21
21
|
this.coordination = coordination;
|
|
22
|
-
this.
|
|
22
|
+
this._simulator = _simulator;
|
|
23
23
|
this.quoteProvider = quoteProvider;
|
|
24
24
|
this.quoteSigner = quoteSigner;
|
|
25
25
|
this.claimsMonitor = claimsMonitor;
|
|
@@ -126,11 +126,12 @@ export class ProverNode {
|
|
|
126
126
|
await this.epochsMonitor.stop();
|
|
127
127
|
await this.claimsMonitor.stop();
|
|
128
128
|
await this.prover.stop();
|
|
129
|
-
await this.l2BlockSource
|
|
129
|
+
await tryStop(this.l2BlockSource);
|
|
130
130
|
this.publisher.interrupt();
|
|
131
131
|
await Promise.all(Array.from(this.jobs.values()).map(job => job.stop()));
|
|
132
132
|
await this.worldState.stop();
|
|
133
|
-
await this.coordination
|
|
133
|
+
await tryStop(this.coordination);
|
|
134
|
+
await this.telemetryClient.stop();
|
|
134
135
|
this.log.info('Stopped ProverNode');
|
|
135
136
|
}
|
|
136
137
|
/**
|
|
@@ -164,7 +165,7 @@ export class ProverNode {
|
|
|
164
165
|
* Returns an array of jobs being processed.
|
|
165
166
|
*/
|
|
166
167
|
getJobs() {
|
|
167
|
-
return Array.from(this.jobs.entries()).map(([uuid, job]) => ({ uuid, status: job.getState() }));
|
|
168
|
+
return Promise.resolve(Array.from(this.jobs.entries()).map(([uuid, job]) => ({ uuid, status: job.getState() })));
|
|
168
169
|
}
|
|
169
170
|
checkMaximumPendingJobs() {
|
|
170
171
|
const { maxPendingJobs } = this.options;
|
|
@@ -184,20 +185,24 @@ export class ProverNode {
|
|
|
184
185
|
// Fast forward world state to right before the target block and get a fork
|
|
185
186
|
this.log.verbose(`Creating proving job for epoch ${epochNumber} for block range ${fromBlock} to ${toBlock}`);
|
|
186
187
|
await this.worldState.syncImmediate(fromBlock - 1);
|
|
187
|
-
|
|
188
|
+
// NB: separated the dbs as both a block builder and public processor need to track and update tree state
|
|
189
|
+
// see public_processor.ts for context
|
|
190
|
+
const publicDb = await this.worldState.fork(fromBlock - 1);
|
|
191
|
+
const proverDb = await this.worldState.fork(fromBlock - 1);
|
|
188
192
|
// Create a processor using the forked world state
|
|
189
|
-
const publicProcessorFactory = new PublicProcessorFactory(this.contractDataSource, this.
|
|
193
|
+
const publicProcessorFactory = new PublicProcessorFactory(this.contractDataSource, this.telemetryClient);
|
|
190
194
|
const cleanUp = async () => {
|
|
191
|
-
await
|
|
195
|
+
await publicDb.close();
|
|
196
|
+
await proverDb.close();
|
|
192
197
|
this.jobs.delete(job.getId());
|
|
193
198
|
};
|
|
194
|
-
const job = this.doCreateEpochProvingJob(epochNumber, blocks,
|
|
199
|
+
const job = this.doCreateEpochProvingJob(epochNumber, blocks, publicDb, proverDb, publicProcessorFactory, cleanUp);
|
|
195
200
|
this.jobs.set(job.getId(), job);
|
|
196
201
|
return job;
|
|
197
202
|
}
|
|
198
203
|
/** Extracted for testing purposes. */
|
|
199
|
-
doCreateEpochProvingJob(epochNumber, blocks,
|
|
200
|
-
return new EpochProvingJob(
|
|
204
|
+
doCreateEpochProvingJob(epochNumber, blocks, publicDb, proverDb, publicProcessorFactory, cleanUp) {
|
|
205
|
+
return new EpochProvingJob(publicDb, epochNumber, blocks, this.prover.createEpochProver(proverDb), publicProcessorFactory, this.publisher, this.l2BlockSource, this.l1ToL2MessageSource, this.coordination, this.metrics, cleanUp);
|
|
201
206
|
}
|
|
202
207
|
/** Extracted for testing purposes. */
|
|
203
208
|
async triggerMonitors() {
|
|
@@ -205,4 +210,4 @@ export class ProverNode {
|
|
|
205
210
|
await this.claimsMonitor.work();
|
|
206
211
|
}
|
|
207
212
|
}
|
|
208
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmVyLW5vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHJvdmVyLW5vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLHNCQUFzQixFQVV0QixPQUFPLEdBQ1IsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHMUQsT0FBTyxFQUFFLHNCQUFzQixFQUEyQixNQUFNLGtCQUFrQixDQUFDO0FBSW5GLE9BQU8sRUFBRSxlQUFlLEVBQTZCLE1BQU0sNEJBQTRCLENBQUM7QUFDeEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBV2pEOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFPLFVBQVU7SUFRckIsWUFDbUIsTUFBMEIsRUFDMUIsU0FBc0IsRUFDdEIsYUFBNkMsRUFDN0MsbUJBQXdDLEVBQ3hDLGtCQUFzQyxFQUN0QyxVQUFrQyxFQUNsQyxZQUFpRCxFQUNqRCxVQUE4QixFQUM5QixhQUE0QixFQUM1QixXQUF3QixFQUN4QixhQUE0QixFQUM1QixhQUEyQixFQUMzQixXQUF3QixFQUN4QixlQUFnQyxFQUNqRCxVQUFzQyxFQUFFO1FBZHZCLFdBQU0sR0FBTixNQUFNLENBQW9CO1FBQzFCLGNBQVMsR0FBVCxTQUFTLENBQWE7UUFDdEIsa0JBQWEsR0FBYixhQUFhLENBQWdDO1FBQzdDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxlQUFVLEdBQVYsVUFBVSxDQUF3QjtRQUNsQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUM7UUFDakQsZUFBVSxHQUFWLFVBQVUsQ0FBb0I7UUFDOUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFD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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/prover-node",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.63.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js"
|
|
@@ -52,21 +52,21 @@
|
|
|
52
52
|
]
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@aztec/archiver": "0.
|
|
56
|
-
"@aztec/bb-prover": "0.
|
|
57
|
-
"@aztec/circuit-types": "0.
|
|
58
|
-
"@aztec/circuits.js": "0.
|
|
59
|
-
"@aztec/ethereum": "0.
|
|
60
|
-
"@aztec/foundation": "0.
|
|
61
|
-
"@aztec/kv-store": "0.
|
|
62
|
-
"@aztec/l1-artifacts": "0.
|
|
63
|
-
"@aztec/p2p": "0.
|
|
64
|
-
"@aztec/prover-client": "0.
|
|
65
|
-
"@aztec/sequencer-client": "0.
|
|
66
|
-
"@aztec/simulator": "0.
|
|
67
|
-
"@aztec/telemetry-client": "0.
|
|
68
|
-
"@aztec/types": "0.
|
|
69
|
-
"@aztec/world-state": "0.
|
|
55
|
+
"@aztec/archiver": "0.63.1",
|
|
56
|
+
"@aztec/bb-prover": "0.63.1",
|
|
57
|
+
"@aztec/circuit-types": "0.63.1",
|
|
58
|
+
"@aztec/circuits.js": "0.63.1",
|
|
59
|
+
"@aztec/ethereum": "0.63.1",
|
|
60
|
+
"@aztec/foundation": "0.63.1",
|
|
61
|
+
"@aztec/kv-store": "0.63.1",
|
|
62
|
+
"@aztec/l1-artifacts": "0.63.1",
|
|
63
|
+
"@aztec/p2p": "0.63.1",
|
|
64
|
+
"@aztec/prover-client": "0.63.1",
|
|
65
|
+
"@aztec/sequencer-client": "0.63.1",
|
|
66
|
+
"@aztec/simulator": "0.63.1",
|
|
67
|
+
"@aztec/telemetry-client": "0.63.1",
|
|
68
|
+
"@aztec/types": "0.63.1",
|
|
69
|
+
"@aztec/world-state": "0.63.1",
|
|
70
70
|
"source-map-support": "^0.5.21",
|
|
71
71
|
"tslib": "^2.4.0",
|
|
72
72
|
"viem": "^2.7.15"
|
package/src/config.ts
CHANGED
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
getConfigFromMappings,
|
|
6
6
|
numberConfigHelper,
|
|
7
7
|
} from '@aztec/foundation/config';
|
|
8
|
+
import { type DataStoreConfig, dataConfigMappings, getDataConfigFromEnv } from '@aztec/kv-store/config';
|
|
8
9
|
import { type P2PConfig, getP2PConfigFromEnv, p2pConfigMappings } from '@aztec/p2p';
|
|
9
10
|
import { type ProverClientConfig, getProverEnvVars, proverClientConfigMappings } from '@aztec/prover-client';
|
|
10
11
|
import {
|
|
@@ -30,6 +31,7 @@ export type ProverNodeConfig = ArchiverConfig &
|
|
|
30
31
|
WorldStateConfig &
|
|
31
32
|
PublisherConfig &
|
|
32
33
|
TxSenderConfig &
|
|
34
|
+
DataStoreConfig &
|
|
33
35
|
ProverCoordinationConfig &
|
|
34
36
|
ProverBondManagerConfig &
|
|
35
37
|
QuoteProviderConfig & {
|
|
@@ -77,6 +79,7 @@ const quoteProviderConfigMappings: ConfigMappingsType<QuoteProviderConfig> = {
|
|
|
77
79
|
};
|
|
78
80
|
|
|
79
81
|
export const proverNodeConfigMappings: ConfigMappingsType<ProverNodeConfig> = {
|
|
82
|
+
...dataConfigMappings,
|
|
80
83
|
...archiverConfigMappings,
|
|
81
84
|
...proverClientConfigMappings,
|
|
82
85
|
...p2pConfigMappings,
|
|
@@ -91,6 +94,7 @@ export const proverNodeConfigMappings: ConfigMappingsType<ProverNodeConfig> = {
|
|
|
91
94
|
|
|
92
95
|
export function getProverNodeConfigFromEnv(): ProverNodeConfig {
|
|
93
96
|
return {
|
|
97
|
+
...getDataConfigFromEnv(),
|
|
94
98
|
...getArchiverConfigFromEnv(),
|
|
95
99
|
...getProverEnvVars(),
|
|
96
100
|
...getP2PConfigFromEnv(),
|
package/src/factory.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { type ProverCoordination } from '@aztec/circuit-types';
|
|
|
3
3
|
import { createEthereumChain } from '@aztec/ethereum';
|
|
4
4
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
5
5
|
import { type DebugLogger, createDebugLogger } from '@aztec/foundation/log';
|
|
6
|
+
import { type DataStoreConfig } from '@aztec/kv-store/config';
|
|
6
7
|
import { RollupAbi } from '@aztec/l1-artifacts';
|
|
7
8
|
import { createProverClient } from '@aztec/prover-client';
|
|
8
9
|
import { L1Publisher } from '@aztec/sequencer-client';
|
|
@@ -25,7 +26,7 @@ import { QuoteSigner } from './quote-signer.js';
|
|
|
25
26
|
|
|
26
27
|
/** Creates a new prover node given a config. */
|
|
27
28
|
export async function createProverNode(
|
|
28
|
-
config: ProverNodeConfig,
|
|
29
|
+
config: ProverNodeConfig & DataStoreConfig,
|
|
29
30
|
deps: {
|
|
30
31
|
telemetry?: TelemetryClient;
|
|
31
32
|
log?: DebugLogger;
|
package/src/http.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { ProverNodeApiSchema } from '@aztec/circuit-types';
|
|
2
|
+
import { createSafeJsonRpcServer } from '@aztec/foundation/json-rpc/server';
|
|
3
3
|
|
|
4
4
|
import { type ProverNode } from './prover-node.js';
|
|
5
5
|
|
|
@@ -9,17 +9,5 @@ import { type ProverNode } from './prover-node.js';
|
|
|
9
9
|
* @returns An JSON-RPC HTTP server
|
|
10
10
|
*/
|
|
11
11
|
export function createProverNodeRpcServer(node: ProverNode) {
|
|
12
|
-
|
|
13
|
-
node,
|
|
14
|
-
{
|
|
15
|
-
AztecAddress,
|
|
16
|
-
EthAddress,
|
|
17
|
-
Fr,
|
|
18
|
-
Header,
|
|
19
|
-
},
|
|
20
|
-
{},
|
|
21
|
-
// disable methods not part of the AztecNode interface
|
|
22
|
-
['start', 'stop', 'createProvingJob', 'work', 'getProver'],
|
|
23
|
-
);
|
|
24
|
-
return rpc;
|
|
12
|
+
return createSafeJsonRpcServer(node, ProverNodeApiSchema);
|
|
25
13
|
}
|
|
@@ -1,15 +1,25 @@
|
|
|
1
1
|
import {
|
|
2
2
|
EmptyTxValidator,
|
|
3
3
|
type EpochProver,
|
|
4
|
+
type EpochProvingJobState,
|
|
4
5
|
type L1ToL2MessageSource,
|
|
5
6
|
type L2Block,
|
|
6
7
|
type L2BlockSource,
|
|
8
|
+
MerkleTreeId,
|
|
7
9
|
type MerkleTreeWriteOperations,
|
|
8
10
|
type ProcessedTx,
|
|
9
11
|
type ProverCoordination,
|
|
10
12
|
type Tx,
|
|
11
13
|
type TxHash,
|
|
12
14
|
} from '@aztec/circuit-types';
|
|
15
|
+
import {
|
|
16
|
+
KernelCircuitPublicInputs,
|
|
17
|
+
MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
|
|
18
|
+
NULLIFIER_SUBTREE_HEIGHT,
|
|
19
|
+
PUBLIC_DATA_SUBTREE_HEIGHT,
|
|
20
|
+
PublicDataTreeLeaf,
|
|
21
|
+
} from '@aztec/circuits.js';
|
|
22
|
+
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
13
23
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
14
24
|
import { promiseWithResolvers } from '@aztec/foundation/promise';
|
|
15
25
|
import { Timer } from '@aztec/foundation/timer';
|
|
@@ -110,6 +120,11 @@ export class EpochProvingJob {
|
|
|
110
120
|
uuid: this.uuid,
|
|
111
121
|
});
|
|
112
122
|
|
|
123
|
+
if (txCount > txs.length) {
|
|
124
|
+
// If this block has a padding tx, ensure that the public processor's db has its state
|
|
125
|
+
await this.addPaddingTxState();
|
|
126
|
+
}
|
|
127
|
+
|
|
113
128
|
// Mark block as completed and update archive tree
|
|
114
129
|
await this.prover.setBlockCompleted(block.header);
|
|
115
130
|
previousHeader = block.header;
|
|
@@ -177,12 +192,26 @@ export class EpochProvingJob {
|
|
|
177
192
|
|
|
178
193
|
return processedTxs;
|
|
179
194
|
}
|
|
195
|
+
|
|
196
|
+
private async addPaddingTxState() {
|
|
197
|
+
const emptyKernelOutput = KernelCircuitPublicInputs.empty();
|
|
198
|
+
await this.db.appendLeaves(MerkleTreeId.NOTE_HASH_TREE, emptyKernelOutput.end.noteHashes);
|
|
199
|
+
await this.db.batchInsert(
|
|
200
|
+
MerkleTreeId.NULLIFIER_TREE,
|
|
201
|
+
emptyKernelOutput.end.nullifiers.map(n => n.toBuffer()),
|
|
202
|
+
NULLIFIER_SUBTREE_HEIGHT,
|
|
203
|
+
);
|
|
204
|
+
const allPublicDataWrites = padArrayEnd(
|
|
205
|
+
emptyKernelOutput.end.publicDataWrites.map(({ leafSlot, value }) => new PublicDataTreeLeaf(leafSlot, value)),
|
|
206
|
+
PublicDataTreeLeaf.empty(),
|
|
207
|
+
MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
|
|
208
|
+
);
|
|
209
|
+
await this.db.batchInsert(
|
|
210
|
+
MerkleTreeId.PUBLIC_DATA_TREE,
|
|
211
|
+
allPublicDataWrites.map(x => x.toBuffer()),
|
|
212
|
+
PUBLIC_DATA_SUBTREE_HEIGHT,
|
|
213
|
+
);
|
|
214
|
+
}
|
|
180
215
|
}
|
|
181
216
|
|
|
182
|
-
export type EpochProvingJobState
|
|
183
|
-
| 'initialized'
|
|
184
|
-
| 'processing'
|
|
185
|
-
| 'awaiting-prover'
|
|
186
|
-
| 'publishing-proof'
|
|
187
|
-
| 'completed'
|
|
188
|
-
| 'failed';
|
|
217
|
+
export { type EpochProvingJobState };
|
|
@@ -2,6 +2,7 @@ import { type ArchiveSource, type Archiver } from '@aztec/archiver';
|
|
|
2
2
|
import { BBCircuitVerifier, TestCircuitVerifier } from '@aztec/bb-prover';
|
|
3
3
|
import { type ProverCoordination, type WorldStateSynchronizer, createAztecNodeClient } from '@aztec/circuit-types';
|
|
4
4
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
5
|
+
import { type DataStoreConfig } from '@aztec/kv-store/config';
|
|
5
6
|
import { createP2PClient } from '@aztec/p2p';
|
|
6
7
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
7
8
|
|
|
@@ -22,7 +23,7 @@ type ProverCoordinationDeps = {
|
|
|
22
23
|
* If an aztec node is provided, it is returned directly.
|
|
23
24
|
*/
|
|
24
25
|
export async function createProverCoordination(
|
|
25
|
-
config: ProverNodeConfig,
|
|
26
|
+
config: ProverNodeConfig & DataStoreConfig,
|
|
26
27
|
deps: ProverCoordinationDeps,
|
|
27
28
|
): Promise<ProverCoordination> {
|
|
28
29
|
const log = createDebugLogger('aztec:createProverCoordination');
|
package/src/prover-node.ts
CHANGED
|
@@ -8,11 +8,15 @@ import {
|
|
|
8
8
|
type L2BlockSource,
|
|
9
9
|
type MerkleTreeWriteOperations,
|
|
10
10
|
type ProverCoordination,
|
|
11
|
+
type ProverNodeApi,
|
|
12
|
+
type Service,
|
|
11
13
|
type WorldStateSynchronizer,
|
|
14
|
+
tryStop,
|
|
12
15
|
} from '@aztec/circuit-types';
|
|
13
16
|
import { type ContractDataSource } from '@aztec/circuits.js';
|
|
14
17
|
import { compact } from '@aztec/foundation/collection';
|
|
15
18
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
19
|
+
import { type Maybe } from '@aztec/foundation/types';
|
|
16
20
|
import { type L1Publisher } from '@aztec/sequencer-client';
|
|
17
21
|
import { PublicProcessorFactory, type SimulationProvider } from '@aztec/simulator';
|
|
18
22
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
@@ -36,7 +40,7 @@ export type ProverNodeOptions = {
|
|
|
36
40
|
* from a tx source in the p2p network or an external node, re-executes their public functions, creates a rollup
|
|
37
41
|
* proof for the epoch, and submits it to L1.
|
|
38
42
|
*/
|
|
39
|
-
export class ProverNode implements ClaimsMonitorHandler, EpochMonitorHandler {
|
|
43
|
+
export class ProverNode implements ClaimsMonitorHandler, EpochMonitorHandler, ProverNodeApi {
|
|
40
44
|
private log = createDebugLogger('aztec:prover-node');
|
|
41
45
|
|
|
42
46
|
private latestEpochWeAreProving: bigint | undefined;
|
|
@@ -47,12 +51,12 @@ export class ProverNode implements ClaimsMonitorHandler, EpochMonitorHandler {
|
|
|
47
51
|
constructor(
|
|
48
52
|
private readonly prover: EpochProverManager,
|
|
49
53
|
private readonly publisher: L1Publisher,
|
|
50
|
-
private readonly l2BlockSource: L2BlockSource
|
|
54
|
+
private readonly l2BlockSource: L2BlockSource & Maybe<Service>,
|
|
51
55
|
private readonly l1ToL2MessageSource: L1ToL2MessageSource,
|
|
52
56
|
private readonly contractDataSource: ContractDataSource,
|
|
53
57
|
private readonly worldState: WorldStateSynchronizer,
|
|
54
|
-
private readonly coordination: ProverCoordination
|
|
55
|
-
private readonly
|
|
58
|
+
private readonly coordination: ProverCoordination & Maybe<Service>,
|
|
59
|
+
private readonly _simulator: SimulationProvider,
|
|
56
60
|
private readonly quoteProvider: QuoteProvider,
|
|
57
61
|
private readonly quoteSigner: QuoteSigner,
|
|
58
62
|
private readonly claimsMonitor: ClaimsMonitor,
|
|
@@ -165,11 +169,12 @@ export class ProverNode implements ClaimsMonitorHandler, EpochMonitorHandler {
|
|
|
165
169
|
await this.epochsMonitor.stop();
|
|
166
170
|
await this.claimsMonitor.stop();
|
|
167
171
|
await this.prover.stop();
|
|
168
|
-
await this.l2BlockSource
|
|
172
|
+
await tryStop(this.l2BlockSource);
|
|
169
173
|
this.publisher.interrupt();
|
|
170
174
|
await Promise.all(Array.from(this.jobs.values()).map(job => job.stop()));
|
|
171
175
|
await this.worldState.stop();
|
|
172
|
-
await this.coordination
|
|
176
|
+
await tryStop(this.coordination);
|
|
177
|
+
await this.telemetryClient.stop();
|
|
173
178
|
this.log.info('Stopped ProverNode');
|
|
174
179
|
}
|
|
175
180
|
|
|
@@ -207,8 +212,8 @@ export class ProverNode implements ClaimsMonitorHandler, EpochMonitorHandler {
|
|
|
207
212
|
/**
|
|
208
213
|
* Returns an array of jobs being processed.
|
|
209
214
|
*/
|
|
210
|
-
public getJobs(): { uuid: string; status: EpochProvingJobState }[] {
|
|
211
|
-
return Array.from(this.jobs.entries()).map(([uuid, job]) => ({ uuid, status: job.getState() }));
|
|
215
|
+
public getJobs(): Promise<{ uuid: string; status: EpochProvingJobState }[]> {
|
|
216
|
+
return Promise.resolve(Array.from(this.jobs.entries()).map(([uuid, job]) => ({ uuid, status: job.getState() })));
|
|
212
217
|
}
|
|
213
218
|
|
|
214
219
|
private checkMaximumPendingJobs() {
|
|
@@ -232,21 +237,21 @@ export class ProverNode implements ClaimsMonitorHandler, EpochMonitorHandler {
|
|
|
232
237
|
// Fast forward world state to right before the target block and get a fork
|
|
233
238
|
this.log.verbose(`Creating proving job for epoch ${epochNumber} for block range ${fromBlock} to ${toBlock}`);
|
|
234
239
|
await this.worldState.syncImmediate(fromBlock - 1);
|
|
235
|
-
|
|
240
|
+
// NB: separated the dbs as both a block builder and public processor need to track and update tree state
|
|
241
|
+
// see public_processor.ts for context
|
|
242
|
+
const publicDb = await this.worldState.fork(fromBlock - 1);
|
|
243
|
+
const proverDb = await this.worldState.fork(fromBlock - 1);
|
|
236
244
|
|
|
237
245
|
// Create a processor using the forked world state
|
|
238
|
-
const publicProcessorFactory = new PublicProcessorFactory(
|
|
239
|
-
this.contractDataSource,
|
|
240
|
-
this.simulator,
|
|
241
|
-
this.telemetryClient,
|
|
242
|
-
);
|
|
246
|
+
const publicProcessorFactory = new PublicProcessorFactory(this.contractDataSource, this.telemetryClient);
|
|
243
247
|
|
|
244
248
|
const cleanUp = async () => {
|
|
245
|
-
await
|
|
249
|
+
await publicDb.close();
|
|
250
|
+
await proverDb.close();
|
|
246
251
|
this.jobs.delete(job.getId());
|
|
247
252
|
};
|
|
248
253
|
|
|
249
|
-
const job = this.doCreateEpochProvingJob(epochNumber, blocks,
|
|
254
|
+
const job = this.doCreateEpochProvingJob(epochNumber, blocks, publicDb, proverDb, publicProcessorFactory, cleanUp);
|
|
250
255
|
this.jobs.set(job.getId(), job);
|
|
251
256
|
return job;
|
|
252
257
|
}
|
|
@@ -255,15 +260,16 @@ export class ProverNode implements ClaimsMonitorHandler, EpochMonitorHandler {
|
|
|
255
260
|
protected doCreateEpochProvingJob(
|
|
256
261
|
epochNumber: bigint,
|
|
257
262
|
blocks: L2Block[],
|
|
258
|
-
|
|
263
|
+
publicDb: MerkleTreeWriteOperations,
|
|
264
|
+
proverDb: MerkleTreeWriteOperations,
|
|
259
265
|
publicProcessorFactory: PublicProcessorFactory,
|
|
260
266
|
cleanUp: () => Promise<void>,
|
|
261
267
|
) {
|
|
262
268
|
return new EpochProvingJob(
|
|
263
|
-
|
|
269
|
+
publicDb,
|
|
264
270
|
epochNumber,
|
|
265
271
|
blocks,
|
|
266
|
-
this.prover.createEpochProver(
|
|
272
|
+
this.prover.createEpochProver(proverDb),
|
|
267
273
|
publicProcessorFactory,
|
|
268
274
|
this.publisher,
|
|
269
275
|
this.l2BlockSource,
|