@aztec/prover-node 0.82.2-alpha-testnet.4 → 0.82.3
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 -2
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +2 -2
- package/dest/factory.d.ts.map +1 -1
- package/dest/factory.js +2 -0
- 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.d.ts +5 -1
- package/dest/prover-node.d.ts.map +1 -1
- package/dest/prover-node.js +6 -0
- 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 +4 -4
- package/src/factory.ts +4 -0
- package/src/metrics.ts +22 -0
- package/src/prover-node.ts +11 -0
- package/src/test/index.ts +2 -2
package/dest/config.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
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';
|
|
4
3
|
import { type ConfigMappingsType } from '@aztec/foundation/config';
|
|
5
4
|
import { type DataStoreConfig } from '@aztec/kv-store/config';
|
|
5
|
+
import { type SharedNodeConfig } from '@aztec/node-lib/config';
|
|
6
6
|
import { type P2PConfig } from '@aztec/p2p/config';
|
|
7
7
|
import { type ProverAgentConfig, type ProverBrokerConfig } from '@aztec/prover-client/broker';
|
|
8
8
|
import { type ProverClientConfig } from '@aztec/prover-client/config';
|
|
9
9
|
import { type PublisherConfig, type TxSenderConfig } from '@aztec/sequencer-client/config';
|
|
10
10
|
import { type WorldStateConfig } from '@aztec/world-state/config';
|
|
11
11
|
import { type ProverCoordinationConfig } from './prover-coordination/config.js';
|
|
12
|
-
export type ProverNodeConfig = ArchiverConfig & ProverClientConfig & P2PConfig & WorldStateConfig & PublisherConfig & TxSenderConfig & DataStoreConfig & ProverCoordinationConfig &
|
|
12
|
+
export type ProverNodeConfig = ArchiverConfig & ProverClientConfig & P2PConfig & WorldStateConfig & PublisherConfig & TxSenderConfig & DataStoreConfig & ProverCoordinationConfig & SharedNodeConfig & SpecificProverNodeConfig;
|
|
13
13
|
type SpecificProverNodeConfig = {
|
|
14
14
|
proverNodeMaxPendingJobs: number;
|
|
15
15
|
proverNodePollingIntervalMs: number;
|
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,EAAE,KAAK,kBAAkB,
|
|
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,EAA6C,MAAM,0BAA0B,CAAC;AAC9G,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,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,gBAAgB,GAChB,wBAAwB,CAAC;AAE3B,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,CAWzE,CAAC;AAEF,wBAAgB,0BAA0B,IAAI,gBAAgB,CAE7D;AAED,wBAAgB,gCAAgC,IAAI,kBAAkB,CAIrE;AAED,wBAAgB,+BAA+B,IAAI,iBAAiB,GAAG,QAAQ,GAAG,UAAU,CAK3F"}
|
package/dest/config.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { archiverConfigMappings } from '@aztec/archiver/config';
|
|
2
|
-
import { genesisStateConfigMappings } from '@aztec/ethereum';
|
|
3
2
|
import { getConfigFromMappings, numberConfigHelper } from '@aztec/foundation/config';
|
|
4
3
|
import { dataConfigMappings } from '@aztec/kv-store/config';
|
|
4
|
+
import { sharedNodeConfigMappings } from '@aztec/node-lib/config';
|
|
5
5
|
import { p2pConfigMappings } from '@aztec/p2p/config';
|
|
6
6
|
import { proverAgentConfigMappings, proverBrokerConfigMappings } from '@aztec/prover-client/broker';
|
|
7
7
|
import { bbConfigMappings, proverClientConfigMappings } from '@aztec/prover-client/config';
|
|
@@ -50,7 +50,7 @@ export const proverNodeConfigMappings = {
|
|
|
50
50
|
...getTxSenderConfigMappings('PROVER'),
|
|
51
51
|
...proverCoordinationConfigMappings,
|
|
52
52
|
...specificProverNodeConfigMappings,
|
|
53
|
-
...
|
|
53
|
+
...sharedNodeConfigMappings
|
|
54
54
|
};
|
|
55
55
|
export function getProverNodeConfigFromEnv() {
|
|
56
56
|
return getConfigFromMappings(proverNodeConfigMappings);
|
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,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,uBAmEP"}
|
package/dest/factory.js
CHANGED
|
@@ -3,6 +3,7 @@ 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';
|
|
@@ -15,6 +16,7 @@ import { ProverNode } from './prover-node.js';
|
|
|
15
16
|
const telemetry = deps.telemetry ?? getTelemetryClient();
|
|
16
17
|
const blobSinkClient = deps.blobSinkClient ?? createBlobSinkClient(config);
|
|
17
18
|
const log = deps.log ?? createLogger('prover-node');
|
|
19
|
+
await trySnapshotSync(config, log);
|
|
18
20
|
const archiver = deps.archiver ?? await createArchiver(config, blobSinkClient, {
|
|
19
21
|
blockUntilSync: true
|
|
20
22
|
}, 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
|
}
|
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
|
@@ -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",
|
|
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",
|
|
57
|
+
"@aztec/bb-prover": "0.82.3",
|
|
58
|
+
"@aztec/blob-sink": "0.82.3",
|
|
59
|
+
"@aztec/constants": "0.82.3",
|
|
60
|
+
"@aztec/epoch-cache": "0.82.3",
|
|
61
|
+
"@aztec/ethereum": "0.82.3",
|
|
62
|
+
"@aztec/foundation": "0.82.3",
|
|
63
|
+
"@aztec/kv-store": "0.82.3",
|
|
64
|
+
"@aztec/l1-artifacts": "0.82.3",
|
|
65
|
+
"@aztec/node-lib": "0.82.3",
|
|
66
|
+
"@aztec/noir-protocol-circuits-types": "0.82.3",
|
|
67
|
+
"@aztec/p2p": "0.82.3",
|
|
68
|
+
"@aztec/protocol-contracts": "0.82.3",
|
|
69
|
+
"@aztec/prover-client": "0.82.3",
|
|
70
|
+
"@aztec/sequencer-client": "0.82.3",
|
|
71
|
+
"@aztec/simulator": "0.82.3",
|
|
72
|
+
"@aztec/stdlib": "0.82.3",
|
|
73
|
+
"@aztec/telemetry-client": "0.82.3",
|
|
74
|
+
"@aztec/world-state": "0.82.3",
|
|
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,8 +1,8 @@
|
|
|
1
1
|
import { type ArchiverConfig, archiverConfigMappings } from '@aztec/archiver/config';
|
|
2
2
|
import type { ACVMConfig, BBConfig } from '@aztec/bb-prover/config';
|
|
3
|
-
import { type GenesisStateConfig, genesisStateConfigMappings } from '@aztec/ethereum';
|
|
4
3
|
import { type ConfigMappingsType, getConfigFromMappings, numberConfigHelper } from '@aztec/foundation/config';
|
|
5
4
|
import { type DataStoreConfig, dataConfigMappings } from '@aztec/kv-store/config';
|
|
5
|
+
import { type SharedNodeConfig, sharedNodeConfigMappings } from '@aztec/node-lib/config';
|
|
6
6
|
import { type P2PConfig, p2pConfigMappings } from '@aztec/p2p/config';
|
|
7
7
|
import {
|
|
8
8
|
type ProverAgentConfig,
|
|
@@ -29,8 +29,8 @@ export type ProverNodeConfig = ArchiverConfig &
|
|
|
29
29
|
TxSenderConfig &
|
|
30
30
|
DataStoreConfig &
|
|
31
31
|
ProverCoordinationConfig &
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
SharedNodeConfig &
|
|
33
|
+
SpecificProverNodeConfig;
|
|
34
34
|
|
|
35
35
|
type SpecificProverNodeConfig = {
|
|
36
36
|
proverNodeMaxPendingJobs: number;
|
|
@@ -84,7 +84,7 @@ export const proverNodeConfigMappings: ConfigMappingsType<ProverNodeConfig> = {
|
|
|
84
84
|
...getTxSenderConfigMappings('PROVER'),
|
|
85
85
|
...proverCoordinationConfigMappings,
|
|
86
86
|
...specificProverNodeConfigMappings,
|
|
87
|
-
...
|
|
87
|
+
...sharedNodeConfigMappings,
|
|
88
88
|
};
|
|
89
89
|
|
|
90
90
|
export function getProverNodeConfigFromEnv(): ProverNodeConfig {
|
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';
|
|
@@ -37,6 +38,9 @@ export async function createProverNode(
|
|
|
37
38
|
const telemetry = deps.telemetry ?? getTelemetryClient();
|
|
38
39
|
const blobSinkClient = deps.blobSinkClient ?? createBlobSinkClient(config);
|
|
39
40
|
const log = deps.log ?? createLogger('prover-node');
|
|
41
|
+
|
|
42
|
+
await trySnapshotSync(config, log);
|
|
43
|
+
|
|
40
44
|
const archiver = deps.archiver ?? (await createArchiver(config, blobSinkClient, { blockUntilSync: true }, telemetry));
|
|
41
45
|
log.verbose(`Created archiver and synced to block ${await archiver.getBlockNumber()}`);
|
|
42
46
|
|
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
|
}
|
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';
|
|
@@ -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_;
|