@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 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 & ProverClientConfig & P2PConfig & WorldStateConfig & PublisherConfig & TxSenderConfig & DataStoreConfig & ProverCoordinationConfig & SpecificProverNodeConfig & {
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
@@ -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,EACL,KAAK,kBAAkB,EAIxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,mBAAmB,CAAC;AACtE,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAGxB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,KAAK,kBAAkB,EAAgD,MAAM,6BAA6B,CAAC;AACpH,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,kBAAkB,GAClB,SAAS,GACT,gBAAgB,GAChB,eAAe,GACf,cAAc,GACd,eAAe,GACf,wBAAwB,GACxB,wBAAwB,GAAG;IACzB,yFAAyF;IACzF,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEJ,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,CAezE,CAAC;AAEF,wBAAgB,0BAA0B,IAAI,gBAAgB,CAE7D;AAED,wBAAgB,gCAAgC,IAAI,kBAAkB,CAIrE;AAED,wBAAgB,+BAA+B,IAAI,iBAAiB,GAAG,QAAQ,GAAG,UAAU,CAK3F"}
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 { booleanConfigHelper, getConfigFromMappings, numberConfigHelper } from '@aztec/foundation/config';
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
- testAccounts: {
53
- env: 'TEST_ACCOUNTS',
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 { ProverNodeConfig } from './config.js';
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(config: ProverNodeConfig & DataStoreConfig, deps?: {
13
+ export declare function createProverNode(userConfig: ProverNodeConfig & DataStoreConfig, deps?: {
14
14
  telemetry?: TelemetryClient;
15
15
  log?: Logger;
16
16
  aztecNodeTxProvider?: ProverCoordination;
@@ -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;AAG9D,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,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,UAAU,EAA0B,MAAM,kBAAkB,CAAC;AAEtE,gDAAgD;AAChD,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,gBAAgB,GAAG,eAAe,EAC1C,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,uBAgEP"}
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(config, deps = {}, options = {}) {
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;
@@ -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;aAkBV,MAAM,EAAE,eAAe;IAEvC,OAAO,CAAC,MAAM;IAnBhB,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;IAE7B,OAAO,CAAC,aAAa,CAAQ;gBAGX,MAAM,EAAE,eAAe,EACvC,IAAI,SAAe,EACX,MAAM,yCAAgD;IA2EhE,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;CA6BjB"}
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;YAgDN,4BAA4B;YA2D5B,sBAAsB;IAoDpC,OAAO,CAAC,uBAAuB;cA+Bf,kBAAkB;CAGnC"}
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"}
@@ -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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"}
@@ -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('Started ProverNode', this.options);
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) {
@@ -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;IACtB,MAAM,EAAG,kBAAkB,CAAC;IAC5B,SAAS,EAAG,mBAAmB,CAAC;CACjD;AAED,MAAM,MAAM,cAAc,GAAG,eAAe,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,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"}
@@ -1,5 +1,3 @@
1
1
  import { ProverNode } from '../prover-node.js';
2
2
  class TestProverNode_ extends ProverNode {
3
- prover;
4
- publisher;
5
3
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/prover-node",
3
- "version": "0.82.2",
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.2",
57
- "@aztec/bb-prover": "0.82.2",
58
- "@aztec/blob-sink": "0.82.2",
59
- "@aztec/constants": "0.82.2",
60
- "@aztec/epoch-cache": "0.82.2",
61
- "@aztec/ethereum": "0.82.2",
62
- "@aztec/foundation": "0.82.2",
63
- "@aztec/kv-store": "0.82.2",
64
- "@aztec/l1-artifacts": "0.82.2",
65
- "@aztec/noir-protocol-circuits-types": "0.82.2",
66
- "@aztec/p2p": "0.82.2",
67
- "@aztec/protocol-contracts": "0.82.2",
68
- "@aztec/prover-client": "0.82.2",
69
- "@aztec/sequencer-client": "0.82.2",
70
- "@aztec/simulator": "0.82.2",
71
- "@aztec/stdlib": "0.82.2",
72
- "@aztec/telemetry-client": "0.82.2",
73
- "@aztec/world-state": "0.82.2",
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
- type ConfigMappingsType,
5
- booleanConfigHelper,
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 { type ProverClientConfig, bbConfigMappings, proverClientConfigMappings } from '@aztec/prover-client/config';
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
- ProverClientConfig &
32
+ ProverClientUserConfig &
30
33
  P2PConfig &
31
34
  WorldStateConfig &
32
35
  PublisherConfig &
33
36
  TxSenderConfig &
34
37
  DataStoreConfig &
35
38
  ProverCoordinationConfig &
36
- SpecificProverNodeConfig & {
37
- /** Whether to populate the genesis state with initial fee juice for the test accounts */
38
- testAccounts: boolean;
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
- testAccounts: {
94
- env: 'TEST_ACCOUNTS',
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 { ProverNodeConfig } from './config.js';
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
- config: ProverNodeConfig & DataStoreConfig,
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
 
@@ -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('Started ProverNode', this.options);
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 override prover!: EpochProverManager;
8
- public override publisher!: ProverNodePublisher;
7
+ public declare prover: EpochProverManager;
8
+ public declare publisher: ProverNodePublisher;
9
9
  }
10
10
 
11
11
  export type TestProverNode = TestProverNode_;