@aztec/prover-node 0.82.2 → 0.82.3-nightly.20250403
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 +5 -5
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +13 -6
- package/dest/factory.d.ts +2 -2
- package/dest/factory.d.ts.map +1 -1
- package/dest/factory.js +5 -1
- package/dest/metrics.d.ts +1 -0
- package/dest/metrics.d.ts.map +1 -1
- package/dest/metrics.js +35 -0
- package/dest/prover-node-publisher.d.ts.map +1 -1
- package/dest/prover-node.d.ts +5 -1
- package/dest/prover-node.d.ts.map +1 -1
- package/dest/prover-node.js +7 -1
- package/dest/test/index.d.ts.map +1 -1
- package/dest/test/index.js +0 -2
- package/package.json +20 -19
- package/src/config.ts +24 -17
- package/src/factory.ts +7 -2
- package/src/metrics.ts +22 -0
- package/src/prover-node-publisher.ts +0 -1
- package/src/prover-node.ts +12 -1
- package/src/test/index.ts +2 -2
package/dest/config.d.ts
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import { type ArchiverConfig } from '@aztec/archiver/config';
|
|
2
2
|
import type { ACVMConfig, BBConfig } from '@aztec/bb-prover/config';
|
|
3
|
+
import { type GenesisStateConfig } from '@aztec/ethereum';
|
|
3
4
|
import { type ConfigMappingsType } from '@aztec/foundation/config';
|
|
4
5
|
import { type DataStoreConfig } from '@aztec/kv-store/config';
|
|
6
|
+
import { type SharedNodeConfig } from '@aztec/node-lib/config';
|
|
5
7
|
import { type P2PConfig } from '@aztec/p2p/config';
|
|
6
8
|
import { type ProverAgentConfig, type ProverBrokerConfig } from '@aztec/prover-client/broker';
|
|
7
|
-
import { type ProverClientConfig } from '@aztec/prover-client/config';
|
|
9
|
+
import { type ProverClientConfig, type ProverClientUserConfig } from '@aztec/prover-client/config';
|
|
8
10
|
import { type PublisherConfig, type TxSenderConfig } from '@aztec/sequencer-client/config';
|
|
9
11
|
import { type WorldStateConfig } from '@aztec/world-state/config';
|
|
10
12
|
import { type ProverCoordinationConfig } from './prover-coordination/config.js';
|
|
11
|
-
export type ProverNodeConfig = ArchiverConfig &
|
|
12
|
-
/** Whether to populate the genesis state with initial fee juice for the test accounts */
|
|
13
|
-
testAccounts: boolean;
|
|
14
|
-
};
|
|
13
|
+
export type ProverNodeConfig = ArchiverConfig & ProverClientUserConfig & P2PConfig & WorldStateConfig & PublisherConfig & TxSenderConfig & DataStoreConfig & ProverCoordinationConfig & SharedNodeConfig & SpecificProverNodeConfig & GenesisStateConfig;
|
|
15
14
|
type SpecificProverNodeConfig = {
|
|
16
15
|
proverNodeMaxPendingJobs: number;
|
|
17
16
|
proverNodePollingIntervalMs: number;
|
|
@@ -24,5 +23,6 @@ export declare const proverNodeConfigMappings: ConfigMappingsType<ProverNodeConf
|
|
|
24
23
|
export declare function getProverNodeConfigFromEnv(): ProverNodeConfig;
|
|
25
24
|
export declare function getProverNodeBrokerConfigFromEnv(): ProverBrokerConfig;
|
|
26
25
|
export declare function getProverNodeAgentConfigFromEnv(): ProverAgentConfig & BBConfig & ACVMConfig;
|
|
26
|
+
export declare function resolveConfig(userConfig: ProverNodeConfig): ProverNodeConfig & ProverClientConfig;
|
|
27
27
|
export {};
|
|
28
28
|
//# sourceMappingURL=config.d.ts.map
|
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,EAA0B,MAAM,wBAAwB,CAAC;AACrF,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,wBAAwB,CAAC;AACrF,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,KAAK,kBAAkB,EAAwD,MAAM,iBAAiB,CAAC;AAChH,OAAO,EAAE,KAAK,kBAAkB,EAA6C,MAAM,0BAA0B,CAAC;AAE9G,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,KAAK,gBAAgB,EAA4B,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,mBAAmB,CAAC;AACtE,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAGxB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAG5B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EAGpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,KAAK,gBAAgB,EAA4B,MAAM,2BAA2B,CAAC;AAE5F,OAAO,EAAE,KAAK,wBAAwB,EAAoC,MAAM,iCAAiC,CAAC;AAElH,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAC3C,sBAAsB,GACtB,SAAS,GACT,gBAAgB,GAChB,eAAe,GACf,cAAc,GACd,eAAe,GACf,wBAAwB,GACxB,gBAAgB,GAChB,wBAAwB,GACxB,kBAAkB,CAAC;AAErB,KAAK,wBAAwB,GAAG;IAC9B,wBAAwB,EAAE,MAAM,CAAC;IACjC,2BAA2B,EAAE,MAAM,CAAC;IACpC,mCAAmC,EAAE,MAAM,CAAC;IAC5C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,8BAA8B,EAAE,MAAM,CAAC;CACxC,CAAC;AAmCF,eAAO,MAAM,wBAAwB,EAAE,kBAAkB,CAAC,gBAAgB,CAYzE,CAAC;AAEF,wBAAgB,0BAA0B,IAAI,gBAAgB,CAE7D;AAED,wBAAgB,gCAAgC,IAAI,kBAAkB,CAIrE;AAED,wBAAgB,+BAA+B,IAAI,iBAAiB,GAAG,QAAQ,GAAG,UAAU,CAK3F;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,gBAAgB,GAAG,gBAAgB,GAAG,kBAAkB,CAMjG"}
|
package/dest/config.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { archiverConfigMappings } from '@aztec/archiver/config';
|
|
2
|
-
import {
|
|
2
|
+
import { genesisStateConfigMappings, getAddressFromPrivateKey } from '@aztec/ethereum';
|
|
3
|
+
import { getConfigFromMappings, numberConfigHelper } from '@aztec/foundation/config';
|
|
4
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
3
5
|
import { dataConfigMappings } from '@aztec/kv-store/config';
|
|
6
|
+
import { sharedNodeConfigMappings } from '@aztec/node-lib/config';
|
|
4
7
|
import { p2pConfigMappings } from '@aztec/p2p/config';
|
|
5
8
|
import { proverAgentConfigMappings, proverBrokerConfigMappings } from '@aztec/prover-client/broker';
|
|
6
9
|
import { bbConfigMappings, proverClientConfigMappings } from '@aztec/prover-client/config';
|
|
@@ -49,11 +52,8 @@ export const proverNodeConfigMappings = {
|
|
|
49
52
|
...getTxSenderConfigMappings('PROVER'),
|
|
50
53
|
...proverCoordinationConfigMappings,
|
|
51
54
|
...specificProverNodeConfigMappings,
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
description: 'Whether to populate the genesis state with initial fee juice for the test accounts.',
|
|
55
|
-
...booleanConfigHelper(false)
|
|
56
|
-
}
|
|
55
|
+
...genesisStateConfigMappings,
|
|
56
|
+
...sharedNodeConfigMappings
|
|
57
57
|
};
|
|
58
58
|
export function getProverNodeConfigFromEnv() {
|
|
59
59
|
return getConfigFromMappings(proverNodeConfigMappings);
|
|
@@ -69,3 +69,10 @@ export function getProverNodeAgentConfigFromEnv() {
|
|
|
69
69
|
...getConfigFromMappings(bbConfigMappings)
|
|
70
70
|
};
|
|
71
71
|
}
|
|
72
|
+
export function resolveConfig(userConfig) {
|
|
73
|
+
const proverId = userConfig.proverId && !userConfig.proverId.isZero() ? userConfig.proverId : Fr.fromHexString(getAddressFromPrivateKey(userConfig.publisherPrivateKey));
|
|
74
|
+
return {
|
|
75
|
+
...userConfig,
|
|
76
|
+
proverId
|
|
77
|
+
};
|
|
78
|
+
}
|
package/dest/factory.d.ts
CHANGED
|
@@ -6,11 +6,11 @@ import type { DataStoreConfig } from '@aztec/kv-store/config';
|
|
|
6
6
|
import type { ProverCoordination, ProvingJobBroker } from '@aztec/stdlib/interfaces/server';
|
|
7
7
|
import type { PublicDataTreeLeaf } from '@aztec/stdlib/trees';
|
|
8
8
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
9
|
-
import type
|
|
9
|
+
import { type ProverNodeConfig } from './config.js';
|
|
10
10
|
import { ProverNodePublisher } from './prover-node-publisher.js';
|
|
11
11
|
import { ProverNode } from './prover-node.js';
|
|
12
12
|
/** Creates a new prover node given a config. */
|
|
13
|
-
export declare function createProverNode(
|
|
13
|
+
export declare function createProverNode(userConfig: ProverNodeConfig & DataStoreConfig, deps?: {
|
|
14
14
|
telemetry?: TelemetryClient;
|
|
15
15
|
log?: Logger;
|
|
16
16
|
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,uBAAuB,EAAwB,MAAM,yBAAyB,CAAC;AAE7F,OAAO,EAAE,SAAS,EAAwD,MAAM,iBAAiB,CAAC;AAClG,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,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,uBAAuB,EAAwB,MAAM,yBAAyB,CAAC;AAE7F,OAAO,EAAE,SAAS,EAAwD,MAAM,iBAAiB,CAAC;AAClG,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAC5F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAGnF,OAAO,EAAE,KAAK,gBAAgB,EAAiB,MAAM,aAAa,CAAC;AAGnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,UAAU,EAA0B,MAAM,kBAAkB,CAAC;AAEtE,gDAAgD;AAChD,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,gBAAgB,GAAG,eAAe,EAC9C,IAAI,GAAE;IACJ,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mBAAmB,CAAC,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,cAAc,CAAC,EAAE,uBAAuB,CAAC;IACzC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;CAClB,EACN,OAAO,GAAE;IACP,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACvC,uBAoEP"}
|
package/dest/factory.js
CHANGED
|
@@ -3,18 +3,22 @@ import { createBlobSinkClient } from '@aztec/blob-sink/client';
|
|
|
3
3
|
import { EpochCache } from '@aztec/epoch-cache';
|
|
4
4
|
import { L1TxUtils, RollupContract, createEthereumChain, createL1Clients } from '@aztec/ethereum';
|
|
5
5
|
import { createLogger } from '@aztec/foundation/log';
|
|
6
|
+
import { trySnapshotSync } from '@aztec/node-lib/actions';
|
|
6
7
|
import { createProverClient } from '@aztec/prover-client';
|
|
7
8
|
import { createAndStartProvingBroker } from '@aztec/prover-client/broker';
|
|
8
9
|
import { getTelemetryClient } from '@aztec/telemetry-client';
|
|
9
10
|
import { createWorldStateSynchronizer } from '@aztec/world-state';
|
|
11
|
+
import { resolveConfig } from './config.js';
|
|
10
12
|
import { EpochMonitor } from './monitors/epoch-monitor.js';
|
|
11
13
|
import { createProverCoordination } from './prover-coordination/factory.js';
|
|
12
14
|
import { ProverNodePublisher } from './prover-node-publisher.js';
|
|
13
15
|
import { ProverNode } from './prover-node.js';
|
|
14
|
-
/** Creates a new prover node given a config. */ export async function createProverNode(
|
|
16
|
+
/** Creates a new prover node given a config. */ export async function createProverNode(userConfig, deps = {}, options = {}) {
|
|
17
|
+
const config = resolveConfig(userConfig);
|
|
15
18
|
const telemetry = deps.telemetry ?? getTelemetryClient();
|
|
16
19
|
const blobSinkClient = deps.blobSinkClient ?? createBlobSinkClient(config);
|
|
17
20
|
const log = deps.log ?? createLogger('prover-node');
|
|
21
|
+
await trySnapshotSync(config, log);
|
|
18
22
|
const archiver = deps.archiver ?? await createArchiver(config, blobSinkClient, {
|
|
19
23
|
blockUntilSync: true
|
|
20
24
|
}, telemetry);
|
package/dest/metrics.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export declare class ProverNodeMetrics {
|
|
|
15
15
|
txCalldataGas: Histogram;
|
|
16
16
|
txBlobDataGasUsed: Histogram;
|
|
17
17
|
txBlobDataGasCost: Histogram;
|
|
18
|
+
txTotalFee: Histogram;
|
|
18
19
|
private senderBalance;
|
|
19
20
|
constructor(client: TelemetryClient, name?: string, logger?: import("@aztec/foundation/log").Logger);
|
|
20
21
|
recordFailedTx(): void;
|
package/dest/metrics.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAkB,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAEL,KAAK,KAAK,EACV,KAAK,SAAS,EAEd,KAAK,eAAe,EACpB,KAAK,aAAa,EAEnB,MAAM,yBAAyB,CAAC;AAIjC,qBAAa,iBAAiB;
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAkB,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAEL,KAAK,KAAK,EACV,KAAK,SAAS,EAEd,KAAK,eAAe,EACpB,KAAK,aAAa,EAEnB,MAAM,yBAAyB,CAAC;AAIjC,qBAAa,iBAAiB;aAmBV,MAAM,EAAE,eAAe;IAEvC,OAAO,CAAC,MAAM;IApBhB,4BAA4B,EAAE,SAAS,CAAC;IACxC,kBAAkB,EAAE,SAAS,CAAC;IAC9B,gBAAgB,EAAE,KAAK,CAAC;IACxB,sBAAsB,EAAE,KAAK,CAAC;IAE9B,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,EAAE,SAAS,CAAC;IACtB,KAAK,EAAE,SAAS,CAAC;IACjB,cAAc,EAAE,SAAS,CAAC;IAC1B,aAAa,EAAE,SAAS,CAAC;IACzB,iBAAiB,EAAE,SAAS,CAAC;IAC7B,iBAAiB,EAAE,SAAS,CAAC;IAC7B,UAAU,EAAE,SAAS,CAAC;IAEtB,OAAO,CAAC,aAAa,CAAQ;gBAGX,MAAM,EAAE,eAAe,EACvC,IAAI,SAAe,EACX,MAAM,yCAAgD;IAsFhE,cAAc;IAOd,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB;IAIzD,gBAAgB,CAAC,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAOhG,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAO7D,OAAO,CAAC,QAAQ;CAuCjB"}
|
package/dest/metrics.js
CHANGED
|
@@ -16,6 +16,7 @@ export class ProverNodeMetrics {
|
|
|
16
16
|
txCalldataGas;
|
|
17
17
|
txBlobDataGasUsed;
|
|
18
18
|
txBlobDataGasCost;
|
|
19
|
+
txTotalFee;
|
|
19
20
|
senderBalance;
|
|
20
21
|
constructor(client, name = 'ProverNode', logger = createLogger('prover-node:publisher:metrics')){
|
|
21
22
|
this.client = client;
|
|
@@ -77,6 +78,32 @@ export class ProverNodeMetrics {
|
|
|
77
78
|
unit: 'gwei',
|
|
78
79
|
valueType: ValueType.INT
|
|
79
80
|
});
|
|
81
|
+
this.txTotalFee = meter.createHistogram(Metrics.L1_PUBLISHER_TX_TOTAL_FEE, {
|
|
82
|
+
description: 'How much L1 tx costs',
|
|
83
|
+
unit: 'gwei',
|
|
84
|
+
valueType: ValueType.DOUBLE,
|
|
85
|
+
advice: {
|
|
86
|
+
explicitBucketBoundaries: [
|
|
87
|
+
0.001,
|
|
88
|
+
0.002,
|
|
89
|
+
0.004,
|
|
90
|
+
0.008,
|
|
91
|
+
0.01,
|
|
92
|
+
0.02,
|
|
93
|
+
0.04,
|
|
94
|
+
0.08,
|
|
95
|
+
0.1,
|
|
96
|
+
0.2,
|
|
97
|
+
0.4,
|
|
98
|
+
0.8,
|
|
99
|
+
1,
|
|
100
|
+
1.2,
|
|
101
|
+
1.4,
|
|
102
|
+
1.8,
|
|
103
|
+
2
|
|
104
|
+
]
|
|
105
|
+
}
|
|
106
|
+
});
|
|
80
107
|
this.senderBalance = meter.createGauge(Metrics.L1_PUBLISHER_BALANCE, {
|
|
81
108
|
unit: 'eth',
|
|
82
109
|
description: 'The balance of the sender address',
|
|
@@ -125,5 +152,13 @@ export class ProverNodeMetrics {
|
|
|
125
152
|
} catch (e) {
|
|
126
153
|
// ignore
|
|
127
154
|
}
|
|
155
|
+
const executionFee = stats.gasUsed * stats.gasPrice;
|
|
156
|
+
const blobFee = stats.blobGasUsed * stats.blobDataGas;
|
|
157
|
+
const totalFee = executionFee + blobFee;
|
|
158
|
+
try {
|
|
159
|
+
this.txTotalFee.record(parseFloat(formatEther(totalFee)));
|
|
160
|
+
} catch (e) {
|
|
161
|
+
// ignore
|
|
162
|
+
}
|
|
128
163
|
}
|
|
129
164
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prover-node-publisher.d.ts","sourceRoot":"","sources":["../src/prover-node-publisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACvF,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,KAAK,KAAK,EAAqB,MAAM,6BAA6B,CAAC;AAI5E,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEjF,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAMnF;;GAEG;AACH,sEAAsE;AACtE,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,EAAE,CAAC;IACpB,UAAU,EAAE,EAAE,CAAC;IACf,iBAAiB,EAAE,EAAE,CAAC;IACtB,YAAY,EAAE,EAAE,CAAC;IACjB,YAAY,EAAE,EAAE,CAAC;IACjB,OAAO,EAAE,EAAE,CAAC;IACZ,QAAQ,EAAE,EAAE,CAAC;IACb,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,OAAO,wBAAwB,CAAC,CAAC;IAC3D,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAoB;IAEnC,SAAS,CAAC,GAAG,yCAA+C;IAE5D,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;IAEzC,SAAgB,SAAS,EAAE,SAAS,CAAC;gBAGnC,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;IAYH;;;;;OAKG;IACI,SAAS;IAKhB,wDAAwD;IACjD,OAAO;IAIP,gBAAgB;IAIV,gBAAgB,CAAC,IAAI,EAAE;QAClC,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,sBAAsB,CAAC;QACrC,KAAK,EAAE,KAAK,CAAC;KACd,GAAG,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"prover-node-publisher.d.ts","sourceRoot":"","sources":["../src/prover-node-publisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACvF,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,KAAK,KAAK,EAAqB,MAAM,6BAA6B,CAAC;AAI5E,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEjF,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAMnF;;GAEG;AACH,sEAAsE;AACtE,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,EAAE,CAAC;IACpB,UAAU,EAAE,EAAE,CAAC;IACf,iBAAiB,EAAE,EAAE,CAAC;IACtB,YAAY,EAAE,EAAE,CAAC;IACjB,YAAY,EAAE,EAAE,CAAC;IACjB,OAAO,EAAE,EAAE,CAAC;IACZ,QAAQ,EAAE,EAAE,CAAC;IACb,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,OAAO,wBAAwB,CAAC,CAAC;IAC3D,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAoB;IAEnC,SAAS,CAAC,GAAG,yCAA+C;IAE5D,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;IAEzC,SAAgB,SAAS,EAAE,SAAS,CAAC;gBAGnC,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;IAYH;;;;;OAKG;IACI,SAAS;IAKhB,wDAAwD;IACjD,OAAO;IAIP,gBAAgB;IAIV,gBAAgB,CAAC,IAAI,EAAE;QAClC,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,sBAAsB,CAAC;QACrC,KAAK,EAAE,KAAK,CAAC;KACd,GAAG,OAAO,CAAC,OAAO,CAAC;YA+CN,4BAA4B;YA2D5B,sBAAsB;IAoDpC,OAAO,CAAC,uBAAuB;cA+Bf,kBAAkB;CAGnC"}
|
package/dest/prover-node.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { P2P } from '@aztec/p2p';
|
|
|
3
3
|
import { PublicProcessorFactory } from '@aztec/simulator/server';
|
|
4
4
|
import type { L2Block, L2BlockSource } from '@aztec/stdlib/block';
|
|
5
5
|
import type { ContractDataSource } from '@aztec/stdlib/contract';
|
|
6
|
-
import { type EpochProverManager, type ProverCoordination, type ProverNodeApi, type Service, type WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
|
|
6
|
+
import { type EpochProverManager, type ProverCoordination, type ProverNodeApi, type Service, type WorldStateSyncStatus, type WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
|
|
7
7
|
import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
|
|
8
8
|
import type { P2PClientType } from '@aztec/stdlib/p2p';
|
|
9
9
|
import type { Tx } from '@aztec/stdlib/tx';
|
|
@@ -61,6 +61,10 @@ export declare class ProverNode implements EpochMonitorHandler, ProverNodeApi, T
|
|
|
61
61
|
* Stops the prover node and all its dependencies.
|
|
62
62
|
*/
|
|
63
63
|
stop(): Promise<void>;
|
|
64
|
+
/** Returns world state status. */
|
|
65
|
+
getWorldStateSyncStatus(): Promise<WorldStateSyncStatus>;
|
|
66
|
+
/** Returns archiver status. */
|
|
67
|
+
getL2Tips(): Promise<import("@aztec/stdlib/block").L2Tips>;
|
|
64
68
|
/**
|
|
65
69
|
* Starts a proving process and returns immediately.
|
|
66
70
|
*/
|
|
@@ -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
|
@@ -109,7 +109,7 @@ import { ProverNodeMetrics } from './metrics.js';
|
|
|
109
109
|
this.txFetcher.start();
|
|
110
110
|
this.epochsMonitor.start(this);
|
|
111
111
|
this.l1Metrics.start();
|
|
112
|
-
this.log.info(
|
|
112
|
+
this.log.info(`Started Prover Node with prover id ${this.prover.getProverId().toString()}`, this.options);
|
|
113
113
|
}
|
|
114
114
|
/**
|
|
115
115
|
* Stops the prover node and all its dependencies.
|
|
@@ -127,6 +127,12 @@ import { ProverNodeMetrics } from './metrics.js';
|
|
|
127
127
|
await this.telemetryClient.stop();
|
|
128
128
|
this.log.info('Stopped ProverNode');
|
|
129
129
|
}
|
|
130
|
+
/** Returns world state status. */ getWorldStateSyncStatus() {
|
|
131
|
+
return this.worldState.status().then((s)=>s.syncSummary);
|
|
132
|
+
}
|
|
133
|
+
/** Returns archiver status. */ getL2Tips() {
|
|
134
|
+
return this.l2BlockSource.getL2Tips();
|
|
135
|
+
}
|
|
130
136
|
/**
|
|
131
137
|
* Starts a proving process and returns immediately.
|
|
132
138
|
*/ async startProof(epochNumber) {
|
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,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,cAAM,eAAgB,SAAQ,UAAU;
|
|
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,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,cAAM,eAAgB,SAAQ,UAAU;IACvB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,SAAS,EAAE,mBAAmB,CAAC;CAC/C;AAED,MAAM,MAAM,cAAc,GAAG,eAAe,CAAC"}
|
package/dest/test/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/prover-node",
|
|
3
|
-
"version": "0.82.
|
|
3
|
+
"version": "0.82.3-nightly.20250403",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -53,24 +53,25 @@
|
|
|
53
53
|
]
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"@aztec/archiver": "0.82.
|
|
57
|
-
"@aztec/bb-prover": "0.82.
|
|
58
|
-
"@aztec/blob-sink": "0.82.
|
|
59
|
-
"@aztec/constants": "0.82.
|
|
60
|
-
"@aztec/epoch-cache": "0.82.
|
|
61
|
-
"@aztec/ethereum": "0.82.
|
|
62
|
-
"@aztec/foundation": "0.82.
|
|
63
|
-
"@aztec/kv-store": "0.82.
|
|
64
|
-
"@aztec/l1-artifacts": "0.82.
|
|
65
|
-
"@aztec/
|
|
66
|
-
"@aztec/
|
|
67
|
-
"@aztec/
|
|
68
|
-
"@aztec/
|
|
69
|
-
"@aztec/
|
|
70
|
-
"@aztec/
|
|
71
|
-
"@aztec/
|
|
72
|
-
"@aztec/
|
|
73
|
-
"@aztec/
|
|
56
|
+
"@aztec/archiver": "0.82.3-nightly.20250403",
|
|
57
|
+
"@aztec/bb-prover": "0.82.3-nightly.20250403",
|
|
58
|
+
"@aztec/blob-sink": "0.82.3-nightly.20250403",
|
|
59
|
+
"@aztec/constants": "0.82.3-nightly.20250403",
|
|
60
|
+
"@aztec/epoch-cache": "0.82.3-nightly.20250403",
|
|
61
|
+
"@aztec/ethereum": "0.82.3-nightly.20250403",
|
|
62
|
+
"@aztec/foundation": "0.82.3-nightly.20250403",
|
|
63
|
+
"@aztec/kv-store": "0.82.3-nightly.20250403",
|
|
64
|
+
"@aztec/l1-artifacts": "0.82.3-nightly.20250403",
|
|
65
|
+
"@aztec/node-lib": "0.82.3-nightly.20250403",
|
|
66
|
+
"@aztec/noir-protocol-circuits-types": "0.82.3-nightly.20250403",
|
|
67
|
+
"@aztec/p2p": "0.82.3-nightly.20250403",
|
|
68
|
+
"@aztec/protocol-contracts": "0.82.3-nightly.20250403",
|
|
69
|
+
"@aztec/prover-client": "0.82.3-nightly.20250403",
|
|
70
|
+
"@aztec/sequencer-client": "0.82.3-nightly.20250403",
|
|
71
|
+
"@aztec/simulator": "0.82.3-nightly.20250403",
|
|
72
|
+
"@aztec/stdlib": "0.82.3-nightly.20250403",
|
|
73
|
+
"@aztec/telemetry-client": "0.82.3-nightly.20250403",
|
|
74
|
+
"@aztec/world-state": "0.82.3-nightly.20250403",
|
|
74
75
|
"source-map-support": "^0.5.21",
|
|
75
76
|
"tslib": "^2.4.0",
|
|
76
77
|
"viem": "2.23.7"
|
package/src/config.ts
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { type ArchiverConfig, archiverConfigMappings } from '@aztec/archiver/config';
|
|
2
2
|
import type { ACVMConfig, BBConfig } from '@aztec/bb-prover/config';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
getConfigFromMappings,
|
|
7
|
-
numberConfigHelper,
|
|
8
|
-
} from '@aztec/foundation/config';
|
|
3
|
+
import { type GenesisStateConfig, genesisStateConfigMappings, getAddressFromPrivateKey } from '@aztec/ethereum';
|
|
4
|
+
import { type ConfigMappingsType, getConfigFromMappings, numberConfigHelper } from '@aztec/foundation/config';
|
|
5
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
9
6
|
import { type DataStoreConfig, dataConfigMappings } from '@aztec/kv-store/config';
|
|
7
|
+
import { type SharedNodeConfig, sharedNodeConfigMappings } from '@aztec/node-lib/config';
|
|
10
8
|
import { type P2PConfig, p2pConfigMappings } from '@aztec/p2p/config';
|
|
11
9
|
import {
|
|
12
10
|
type ProverAgentConfig,
|
|
@@ -14,7 +12,12 @@ import {
|
|
|
14
12
|
proverAgentConfigMappings,
|
|
15
13
|
proverBrokerConfigMappings,
|
|
16
14
|
} from '@aztec/prover-client/broker';
|
|
17
|
-
import {
|
|
15
|
+
import {
|
|
16
|
+
type ProverClientConfig,
|
|
17
|
+
type ProverClientUserConfig,
|
|
18
|
+
bbConfigMappings,
|
|
19
|
+
proverClientConfigMappings,
|
|
20
|
+
} from '@aztec/prover-client/config';
|
|
18
21
|
import {
|
|
19
22
|
type PublisherConfig,
|
|
20
23
|
type TxSenderConfig,
|
|
@@ -26,17 +29,16 @@ import { type WorldStateConfig, worldStateConfigMappings } from '@aztec/world-st
|
|
|
26
29
|
import { type ProverCoordinationConfig, proverCoordinationConfigMappings } from './prover-coordination/config.js';
|
|
27
30
|
|
|
28
31
|
export type ProverNodeConfig = ArchiverConfig &
|
|
29
|
-
|
|
32
|
+
ProverClientUserConfig &
|
|
30
33
|
P2PConfig &
|
|
31
34
|
WorldStateConfig &
|
|
32
35
|
PublisherConfig &
|
|
33
36
|
TxSenderConfig &
|
|
34
37
|
DataStoreConfig &
|
|
35
38
|
ProverCoordinationConfig &
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
};
|
|
39
|
+
SharedNodeConfig &
|
|
40
|
+
SpecificProverNodeConfig &
|
|
41
|
+
GenesisStateConfig;
|
|
40
42
|
|
|
41
43
|
type SpecificProverNodeConfig = {
|
|
42
44
|
proverNodeMaxPendingJobs: number;
|
|
@@ -90,11 +92,8 @@ export const proverNodeConfigMappings: ConfigMappingsType<ProverNodeConfig> = {
|
|
|
90
92
|
...getTxSenderConfigMappings('PROVER'),
|
|
91
93
|
...proverCoordinationConfigMappings,
|
|
92
94
|
...specificProverNodeConfigMappings,
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
description: 'Whether to populate the genesis state with initial fee juice for the test accounts.',
|
|
96
|
-
...booleanConfigHelper(false),
|
|
97
|
-
},
|
|
95
|
+
...genesisStateConfigMappings,
|
|
96
|
+
...sharedNodeConfigMappings,
|
|
98
97
|
};
|
|
99
98
|
|
|
100
99
|
export function getProverNodeConfigFromEnv(): ProverNodeConfig {
|
|
@@ -113,3 +112,11 @@ export function getProverNodeAgentConfigFromEnv(): ProverAgentConfig & BBConfig
|
|
|
113
112
|
...getConfigFromMappings(bbConfigMappings),
|
|
114
113
|
};
|
|
115
114
|
}
|
|
115
|
+
|
|
116
|
+
export function resolveConfig(userConfig: ProverNodeConfig): ProverNodeConfig & ProverClientConfig {
|
|
117
|
+
const proverId =
|
|
118
|
+
userConfig.proverId && !userConfig.proverId.isZero()
|
|
119
|
+
? userConfig.proverId
|
|
120
|
+
: Fr.fromHexString(getAddressFromPrivateKey(userConfig.publisherPrivateKey));
|
|
121
|
+
return { ...userConfig, proverId };
|
|
122
|
+
}
|
package/src/factory.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { EpochCache } from '@aztec/epoch-cache';
|
|
|
4
4
|
import { L1TxUtils, RollupContract, createEthereumChain, createL1Clients } from '@aztec/ethereum';
|
|
5
5
|
import { type Logger, createLogger } from '@aztec/foundation/log';
|
|
6
6
|
import type { DataStoreConfig } from '@aztec/kv-store/config';
|
|
7
|
+
import { trySnapshotSync } from '@aztec/node-lib/actions';
|
|
7
8
|
import { createProverClient } from '@aztec/prover-client';
|
|
8
9
|
import { createAndStartProvingBroker } from '@aztec/prover-client/broker';
|
|
9
10
|
import type { ProverCoordination, ProvingJobBroker } from '@aztec/stdlib/interfaces/server';
|
|
@@ -11,7 +12,7 @@ import type { PublicDataTreeLeaf } from '@aztec/stdlib/trees';
|
|
|
11
12
|
import { type TelemetryClient, getTelemetryClient } from '@aztec/telemetry-client';
|
|
12
13
|
import { createWorldStateSynchronizer } from '@aztec/world-state';
|
|
13
14
|
|
|
14
|
-
import type
|
|
15
|
+
import { type ProverNodeConfig, resolveConfig } from './config.js';
|
|
15
16
|
import { EpochMonitor } from './monitors/epoch-monitor.js';
|
|
16
17
|
import { createProverCoordination } from './prover-coordination/factory.js';
|
|
17
18
|
import { ProverNodePublisher } from './prover-node-publisher.js';
|
|
@@ -19,7 +20,7 @@ import { ProverNode, type ProverNodeOptions } from './prover-node.js';
|
|
|
19
20
|
|
|
20
21
|
/** Creates a new prover node given a config. */
|
|
21
22
|
export async function createProverNode(
|
|
22
|
-
|
|
23
|
+
userConfig: ProverNodeConfig & DataStoreConfig,
|
|
23
24
|
deps: {
|
|
24
25
|
telemetry?: TelemetryClient;
|
|
25
26
|
log?: Logger;
|
|
@@ -34,9 +35,13 @@ export async function createProverNode(
|
|
|
34
35
|
prefilledPublicData?: PublicDataTreeLeaf[];
|
|
35
36
|
} = {},
|
|
36
37
|
) {
|
|
38
|
+
const config = resolveConfig(userConfig);
|
|
37
39
|
const telemetry = deps.telemetry ?? getTelemetryClient();
|
|
38
40
|
const blobSinkClient = deps.blobSinkClient ?? createBlobSinkClient(config);
|
|
39
41
|
const log = deps.log ?? createLogger('prover-node');
|
|
42
|
+
|
|
43
|
+
await trySnapshotSync(config, log);
|
|
44
|
+
|
|
40
45
|
const archiver = deps.archiver ?? (await createArchiver(config, blobSinkClient, { blockUntilSync: true }, telemetry));
|
|
41
46
|
log.verbose(`Created archiver and synced to block ${await archiver.getBlockNumber()}`);
|
|
42
47
|
|
package/src/metrics.ts
CHANGED
|
@@ -26,6 +26,7 @@ export class ProverNodeMetrics {
|
|
|
26
26
|
txCalldataGas: Histogram;
|
|
27
27
|
txBlobDataGasUsed: Histogram;
|
|
28
28
|
txBlobDataGasCost: Histogram;
|
|
29
|
+
txTotalFee: Histogram;
|
|
29
30
|
|
|
30
31
|
private senderBalance: Gauge;
|
|
31
32
|
|
|
@@ -100,6 +101,17 @@ export class ProverNodeMetrics {
|
|
|
100
101
|
valueType: ValueType.INT,
|
|
101
102
|
});
|
|
102
103
|
|
|
104
|
+
this.txTotalFee = meter.createHistogram(Metrics.L1_PUBLISHER_TX_TOTAL_FEE, {
|
|
105
|
+
description: 'How much L1 tx costs',
|
|
106
|
+
unit: 'gwei',
|
|
107
|
+
valueType: ValueType.DOUBLE,
|
|
108
|
+
advice: {
|
|
109
|
+
explicitBucketBoundaries: [
|
|
110
|
+
0.001, 0.002, 0.004, 0.008, 0.01, 0.02, 0.04, 0.08, 0.1, 0.2, 0.4, 0.8, 1, 1.2, 1.4, 1.8, 2,
|
|
111
|
+
],
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
|
|
103
115
|
this.senderBalance = meter.createGauge(Metrics.L1_PUBLISHER_BALANCE, {
|
|
104
116
|
unit: 'eth',
|
|
105
117
|
description: 'The balance of the sender address',
|
|
@@ -160,5 +172,15 @@ export class ProverNodeMetrics {
|
|
|
160
172
|
} catch (e) {
|
|
161
173
|
// ignore
|
|
162
174
|
}
|
|
175
|
+
|
|
176
|
+
const executionFee = stats.gasUsed * stats.gasPrice;
|
|
177
|
+
const blobFee = stats.blobGasUsed * stats.blobDataGas;
|
|
178
|
+
const totalFee = executionFee + blobFee;
|
|
179
|
+
|
|
180
|
+
try {
|
|
181
|
+
this.txTotalFee.record(parseFloat(formatEther(totalFee)));
|
|
182
|
+
} catch (e) {
|
|
183
|
+
// ignore
|
|
184
|
+
}
|
|
163
185
|
}
|
|
164
186
|
}
|
|
@@ -97,7 +97,6 @@ export class ProverNodePublisher {
|
|
|
97
97
|
const ctx = { epochNumber, fromBlock, toBlock };
|
|
98
98
|
if (!this.interrupted) {
|
|
99
99
|
const timer = new Timer();
|
|
100
|
-
|
|
101
100
|
// Validate epoch proof range and hashes are correct before submitting
|
|
102
101
|
await this.validateEpochProofSubmission(args);
|
|
103
102
|
|
package/src/prover-node.ts
CHANGED
|
@@ -15,6 +15,7 @@ import {
|
|
|
15
15
|
type ProverCoordination,
|
|
16
16
|
type ProverNodeApi,
|
|
17
17
|
type Service,
|
|
18
|
+
type WorldStateSyncStatus,
|
|
18
19
|
type WorldStateSynchronizer,
|
|
19
20
|
tryStop,
|
|
20
21
|
} from '@aztec/stdlib/interfaces/server';
|
|
@@ -142,7 +143,7 @@ export class ProverNode implements EpochMonitorHandler, ProverNodeApi, Traceable
|
|
|
142
143
|
this.txFetcher.start();
|
|
143
144
|
this.epochsMonitor.start(this);
|
|
144
145
|
this.l1Metrics.start();
|
|
145
|
-
this.log.info(
|
|
146
|
+
this.log.info(`Started Prover Node with prover id ${this.prover.getProverId().toString()}`, this.options);
|
|
146
147
|
}
|
|
147
148
|
|
|
148
149
|
/**
|
|
@@ -163,6 +164,16 @@ export class ProverNode implements EpochMonitorHandler, ProverNodeApi, Traceable
|
|
|
163
164
|
this.log.info('Stopped ProverNode');
|
|
164
165
|
}
|
|
165
166
|
|
|
167
|
+
/** Returns world state status. */
|
|
168
|
+
public getWorldStateSyncStatus(): Promise<WorldStateSyncStatus> {
|
|
169
|
+
return this.worldState.status().then(s => s.syncSummary);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/** Returns archiver status. */
|
|
173
|
+
public getL2Tips() {
|
|
174
|
+
return this.l2BlockSource.getL2Tips();
|
|
175
|
+
}
|
|
176
|
+
|
|
166
177
|
/**
|
|
167
178
|
* Starts a proving process and returns immediately.
|
|
168
179
|
*/
|
package/src/test/index.ts
CHANGED
|
@@ -4,8 +4,8 @@ import type { ProverNodePublisher } from '../prover-node-publisher.js';
|
|
|
4
4
|
import { ProverNode } from '../prover-node.js';
|
|
5
5
|
|
|
6
6
|
class TestProverNode_ extends ProverNode {
|
|
7
|
-
public
|
|
8
|
-
public
|
|
7
|
+
public declare prover: EpochProverManager;
|
|
8
|
+
public declare publisher: ProverNodePublisher;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
export type TestProverNode = TestProverNode_;
|