@aztec/prover-node 0.76.4 → 0.77.0-testnet-ignition.21
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 -2
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +24 -30
- package/dest/factory.d.ts +6 -3
- package/dest/factory.d.ts.map +1 -1
- package/dest/factory.js +21 -14
- package/dest/http.d.ts +1 -1
- package/dest/http.d.ts.map +1 -1
- package/dest/http.js +2 -4
- package/dest/index.js +0 -1
- package/dest/job/epoch-proving-job.d.ts +7 -4
- package/dest/job/epoch-proving-job.d.ts.map +1 -1
- package/dest/job/epoch-proving-job.js +233 -193
- package/dest/metrics.d.ts +5 -2
- package/dest/metrics.d.ts.map +1 -1
- package/dest/metrics.js +50 -25
- package/dest/monitors/epoch-monitor.d.ts +22 -3
- package/dest/monitors/epoch-monitor.d.ts.map +1 -1
- package/dest/monitors/epoch-monitor.js +102 -48
- package/dest/monitors/index.js +0 -1
- package/dest/prover-coordination/config.js +2 -3
- package/dest/prover-coordination/factory.d.ts +5 -5
- package/dest/prover-coordination/factory.d.ts.map +1 -1
- package/dest/prover-coordination/factory.js +11 -8
- package/dest/prover-coordination/index.js +0 -1
- package/dest/prover-node-publisher.d.ts +5 -4
- package/dest/prover-node-publisher.d.ts.map +1 -1
- package/dest/prover-node-publisher.js +60 -52
- package/dest/prover-node.d.ts +12 -7
- package/dest/prover-node.d.ts.map +1 -1
- package/dest/prover-node.js +237 -224
- package/dest/test/index.d.ts +2 -2
- package/dest/test/index.d.ts.map +1 -1
- package/dest/test/index.js +2 -1
- package/package.json +21 -22
- package/src/config.ts +23 -31
- package/src/factory.ts +17 -8
- package/src/http.ts +2 -2
- package/src/job/epoch-proving-job.ts +11 -13
- package/src/metrics.ts +26 -5
- package/src/monitors/epoch-monitor.ts +57 -12
- package/src/prover-coordination/factory.ts +9 -12
- package/src/prover-node-publisher.ts +21 -14
- package/src/prover-node.ts +24 -22
- package/src/test/index.ts +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AGGREGATION_OBJECT_LENGTH, AZTEC_MAX_EPOCH_DURATION } from '@aztec/
|
|
1
|
+
import { AGGREGATION_OBJECT_LENGTH, AZTEC_MAX_EPOCH_DURATION } from '@aztec/constants';
|
|
2
2
|
import { makeTuple } from '@aztec/foundation/array';
|
|
3
3
|
import { areArraysEqual, times } from '@aztec/foundation/collection';
|
|
4
4
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
@@ -12,28 +12,30 @@ import { getTelemetryClient } from '@aztec/telemetry-client';
|
|
|
12
12
|
import { encodeFunctionData } from 'viem';
|
|
13
13
|
import { ProverNodeMetrics } from './metrics.js';
|
|
14
14
|
export class ProverNodePublisher {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
interruptibleSleep = new InterruptibleSleep();
|
|
16
|
+
sleepTimeMs;
|
|
17
|
+
interrupted = false;
|
|
18
|
+
metrics;
|
|
19
|
+
log = createLogger('prover-node:l1-tx-publisher');
|
|
20
|
+
rollupContract;
|
|
21
|
+
l1TxUtils;
|
|
22
|
+
constructor(config, deps){
|
|
23
|
+
this.sleepTimeMs = config?.l1PublishRetryIntervalMS ?? 60_000;
|
|
20
24
|
const telemetry = deps.telemetry ?? getTelemetryClient();
|
|
21
25
|
this.metrics = new ProverNodeMetrics(telemetry, 'ProverNode');
|
|
22
26
|
this.rollupContract = deps.rollupContract;
|
|
23
27
|
this.l1TxUtils = deps.l1TxUtils;
|
|
24
28
|
}
|
|
25
29
|
/**
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
interrupt() {
|
|
30
|
+
* Calling `interrupt` will cause any in progress call to `publishRollup` to return `false` asap.
|
|
31
|
+
* Be warned, the call may return false even if the tx subsequently gets successfully mined.
|
|
32
|
+
* In practice this shouldn't matter, as we'll only ever be calling `interrupt` when we know it's going to fail.
|
|
33
|
+
* A call to `restart` is required before you can continue publishing.
|
|
34
|
+
*/ interrupt() {
|
|
32
35
|
this.interrupted = true;
|
|
33
36
|
this.interruptibleSleep.interrupt();
|
|
34
37
|
}
|
|
35
|
-
/** Restarts the publisher after calling `interrupt`. */
|
|
36
|
-
restart() {
|
|
38
|
+
/** Restarts the publisher after calling `interrupt`. */ restart() {
|
|
37
39
|
this.interrupted = false;
|
|
38
40
|
}
|
|
39
41
|
getSenderAddress() {
|
|
@@ -41,7 +43,11 @@ export class ProverNodePublisher {
|
|
|
41
43
|
}
|
|
42
44
|
async submitEpochProof(args) {
|
|
43
45
|
const { epochNumber, fromBlock, toBlock } = args;
|
|
44
|
-
const ctx = {
|
|
46
|
+
const ctx = {
|
|
47
|
+
epochNumber,
|
|
48
|
+
fromBlock,
|
|
49
|
+
toBlock
|
|
50
|
+
};
|
|
45
51
|
if (!this.interrupted) {
|
|
46
52
|
const timer = new Timer();
|
|
47
53
|
// Validate epoch proof range and hashes are correct before submitting
|
|
@@ -50,6 +56,11 @@ export class ProverNodePublisher {
|
|
|
50
56
|
if (!txReceipt) {
|
|
51
57
|
return false;
|
|
52
58
|
}
|
|
59
|
+
try {
|
|
60
|
+
this.metrics.recordSenderBalance(await this.l1TxUtils.getSenderBalance(), this.l1TxUtils.getSenderAddress());
|
|
61
|
+
} catch (err) {
|
|
62
|
+
this.log.warn(`Failed to record the ETH balance of the prover node: ${err}`);
|
|
63
|
+
}
|
|
53
64
|
// Tx was mined successfully
|
|
54
65
|
if (txReceipt.status) {
|
|
55
66
|
const tx = await this.l1TxUtils.getTransactionStats(txReceipt.transactionHash);
|
|
@@ -62,9 +73,12 @@ export class ProverNodePublisher {
|
|
|
62
73
|
sender: tx.sender,
|
|
63
74
|
blobDataGas: 0n,
|
|
64
75
|
blobGasUsed: 0n,
|
|
65
|
-
eventName: 'proof-published-to-l1'
|
|
76
|
+
eventName: 'proof-published-to-l1'
|
|
66
77
|
};
|
|
67
|
-
this.log.info(`Published epoch proof to L1 rollup contract`, {
|
|
78
|
+
this.log.info(`Published epoch proof to L1 rollup contract`, {
|
|
79
|
+
...stats,
|
|
80
|
+
...ctx
|
|
81
|
+
});
|
|
68
82
|
this.metrics.recordSubmitProof(timer.ms(), stats);
|
|
69
83
|
return true;
|
|
70
84
|
}
|
|
@@ -104,12 +118,13 @@ export class ProverNodePublisher {
|
|
|
104
118
|
}
|
|
105
119
|
// Compare the public inputs computed by the contract with the ones injected
|
|
106
120
|
const rollupPublicInputs = await this.rollupContract.getEpochProofPublicInputs(this.getSubmitEpochProofArgs(args));
|
|
107
|
-
const aggregationObject = proof.isEmpty()
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
121
|
+
const aggregationObject = proof.isEmpty() ? times(AGGREGATION_OBJECT_LENGTH, Fr.zero) : proof.extractAggregationObject();
|
|
122
|
+
const argsPublicInputs = [
|
|
123
|
+
...publicInputs.toFields(),
|
|
124
|
+
...aggregationObject
|
|
125
|
+
];
|
|
126
|
+
if (!areArraysEqual(rollupPublicInputs.map(Fr.fromHexString), argsPublicInputs, (a, b)=>a.equals(b))) {
|
|
127
|
+
const fmt = (inputs)=>inputs.map((x)=>x.toString()).join(', ');
|
|
113
128
|
throw new Error(`Root rollup public inputs mismatch:\nRollup: ${fmt(rollupPublicInputs)}\nComputed:${fmt(argsPublicInputs)}`);
|
|
114
129
|
}
|
|
115
130
|
}
|
|
@@ -124,32 +139,31 @@ export class ProverNodePublisher {
|
|
|
124
139
|
fees: argsArray[3],
|
|
125
140
|
blobPublicInputs: argsArray[4],
|
|
126
141
|
aggregationObject: argsArray[5],
|
|
127
|
-
proof: proofHex
|
|
128
|
-
}
|
|
142
|
+
proof: proofHex
|
|
143
|
+
}
|
|
129
144
|
];
|
|
130
145
|
this.log.info(`SubmitEpochProof proofSize=${args.proof.withoutPublicInputs().length} bytes`);
|
|
131
146
|
const data = encodeFunctionData({
|
|
132
147
|
abi: RollupAbi,
|
|
133
148
|
functionName: 'submitEpochRootProof',
|
|
134
|
-
args: txArgs
|
|
149
|
+
args: txArgs
|
|
135
150
|
});
|
|
136
151
|
try {
|
|
137
152
|
const { receipt } = await this.l1TxUtils.sendAndMonitorTransaction({
|
|
138
153
|
to: this.rollupContract.address,
|
|
139
|
-
data
|
|
154
|
+
data
|
|
140
155
|
});
|
|
141
156
|
return receipt;
|
|
142
|
-
}
|
|
143
|
-
catch (err) {
|
|
157
|
+
} catch (err) {
|
|
144
158
|
this.log.error(`Rollup submit epoch proof failed`, err);
|
|
145
159
|
const errorMsg = await this.l1TxUtils.tryGetErrorFromRevertedTx(data, {
|
|
146
|
-
args: [
|
|
160
|
+
args: [
|
|
161
|
+
...txArgs
|
|
162
|
+
],
|
|
147
163
|
functionName: 'submitEpochRootProof',
|
|
148
164
|
abi: RollupAbi,
|
|
149
|
-
address: this.rollupContract.address
|
|
150
|
-
},
|
|
151
|
-
/*blobInputs*/ undefined,
|
|
152
|
-
/*stateOverride*/ []);
|
|
165
|
+
address: this.rollupContract.address
|
|
166
|
+
}, /*blobInputs*/ undefined, /*stateOverride*/ []);
|
|
153
167
|
this.log.error(`Rollup submit epoch proof tx reverted. ${errorMsg}`);
|
|
154
168
|
return undefined;
|
|
155
169
|
}
|
|
@@ -158,27 +172,21 @@ export class ProverNodePublisher {
|
|
|
158
172
|
return [
|
|
159
173
|
BigInt(args.fromBlock),
|
|
160
174
|
BigInt(args.toBlock),
|
|
161
|
-
|
|
162
|
-
args.publicInputs.previousArchive.root.toString(),
|
|
163
|
-
args.publicInputs.endArchive.root.toString(),
|
|
164
|
-
args.publicInputs.previousBlockHash.toString(),
|
|
165
|
-
args.publicInputs.endBlockHash.toString(),
|
|
166
|
-
args.publicInputs.endTimestamp.
|
|
167
|
-
args.publicInputs.outHash.toString(),
|
|
168
|
-
args.publicInputs.proverId.toString()
|
|
169
|
-
|
|
170
|
-
makeTuple(AZTEC_MAX_EPOCH_DURATION * 2, i
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
`0x${args.publicInputs.blobPublicInputs
|
|
174
|
-
.filter((_, i) => i < args.toBlock - args.fromBlock + 1)
|
|
175
|
-
.map(b => b.toString())
|
|
176
|
-
.join(``)}`,
|
|
177
|
-
`0x${serializeToBuffer(args.proof.extractAggregationObject()).toString('hex')}`,
|
|
175
|
+
{
|
|
176
|
+
previousArchive: args.publicInputs.previousArchive.root.toString(),
|
|
177
|
+
endArchive: args.publicInputs.endArchive.root.toString(),
|
|
178
|
+
previousBlockHash: args.publicInputs.previousBlockHash.toString(),
|
|
179
|
+
endBlockHash: args.publicInputs.endBlockHash.toString(),
|
|
180
|
+
endTimestamp: args.publicInputs.endTimestamp.toBigInt(),
|
|
181
|
+
outHash: args.publicInputs.outHash.toString(),
|
|
182
|
+
proverId: EthAddress.fromField(args.publicInputs.proverId).toString()
|
|
183
|
+
},
|
|
184
|
+
makeTuple(AZTEC_MAX_EPOCH_DURATION * 2, (i)=>i % 2 === 0 ? args.publicInputs.fees[i / 2].recipient.toField().toString() : args.publicInputs.fees[(i - 1) / 2].value.toString()),
|
|
185
|
+
`0x${args.publicInputs.blobPublicInputs.filter((_, i)=>i < args.toBlock - args.fromBlock + 1).map((b)=>b.toString()).join(``)}`,
|
|
186
|
+
`0x${serializeToBuffer(args.proof.extractAggregationObject()).toString('hex')}`
|
|
178
187
|
];
|
|
179
188
|
}
|
|
180
189
|
async sleepOrInterrupted() {
|
|
181
190
|
await this.interruptibleSleep.sleep(this.sleepTimeMs);
|
|
182
191
|
}
|
|
183
192
|
}
|
|
184
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmVyLW5vZGUtcHVibGlzaGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Byb3Zlci1ub2RlLXB1Ymxpc2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsd0JBQXdCLEVBQWMsTUFBTSxvQkFBb0IsQ0FBQztBQUdyRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQWMsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWhELE9BQU8sRUFBd0Isa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRixPQUFPLEVBQXFDLGtCQUFrQixFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTdFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQW1CakQsTUFBTSxPQUFPLG1CQUFtQjtJQVk5QixZQUNFLE1BQXdDLEVBQ3hDLElBSUM7UUFqQkssdUJBQWtCLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBRTlDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBR2xCLFFBQUcsR0FBRyxZQUFZLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQWMxRCxJQUFJLENBQUMs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
|
package/dest/prover-node.d.ts
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import { type Maybe } from '@aztec/foundation/types';
|
|
4
|
-
import { type P2P } from '@aztec/p2p';
|
|
1
|
+
import type { Maybe } from '@aztec/foundation/types';
|
|
2
|
+
import type { P2P } from '@aztec/p2p';
|
|
5
3
|
import { PublicProcessorFactory } from '@aztec/simulator/server';
|
|
4
|
+
import type { L2Block, L2BlockSource } from '@aztec/stdlib/block';
|
|
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';
|
|
7
|
+
import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
|
|
8
|
+
import type { P2PClientType } from '@aztec/stdlib/p2p';
|
|
9
|
+
import type { Tx } from '@aztec/stdlib/tx';
|
|
6
10
|
import { type TelemetryClient, type Traceable, type Tracer } from '@aztec/telemetry-client';
|
|
7
11
|
import { EpochProvingJob, type EpochProvingJobState } from './job/epoch-proving-job.js';
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
12
|
+
import type { EpochMonitor, EpochMonitorHandler } from './monitors/epoch-monitor.js';
|
|
13
|
+
import type { ProverNodePublisher } from './prover-node-publisher.js';
|
|
10
14
|
export type ProverNodeOptions = {
|
|
11
15
|
pollingIntervalMs: number;
|
|
12
16
|
maxPendingJobs: number;
|
|
@@ -42,12 +46,13 @@ export declare class ProverNode implements EpochMonitorHandler, ProverNodeApi, T
|
|
|
42
46
|
private lastBlockNumber;
|
|
43
47
|
readonly tracer: Tracer;
|
|
44
48
|
constructor(prover: EpochProverManager, publisher: ProverNodePublisher, l2BlockSource: L2BlockSource & Maybe<Service>, l1ToL2MessageSource: L1ToL2MessageSource, contractDataSource: ContractDataSource, worldState: WorldStateSynchronizer, coordination: ProverCoordination & Maybe<Service>, epochsMonitor: EpochMonitor, options?: Partial<ProverNodeOptions>, telemetryClient?: TelemetryClient);
|
|
49
|
+
getProverId(): import("@aztec/aztec.js").Fr;
|
|
45
50
|
getP2P(): P2P<P2PClientType.Prover> | undefined;
|
|
46
51
|
/**
|
|
47
52
|
* Handles an epoch being completed by starting a proof for it if there are no active jobs for it.
|
|
48
53
|
* @param epochNumber - The epoch number that was just completed.
|
|
49
54
|
*/
|
|
50
|
-
|
|
55
|
+
handleEpochReadyToProve(epochNumber: bigint): Promise<void>;
|
|
51
56
|
/**
|
|
52
57
|
* Starts the prover node so it periodically checks for unproven epochs in the unfinalised chain from L1 and
|
|
53
58
|
* starts proving jobs for them.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prover-node.d.ts","sourceRoot":"","sources":["../src/prover-node.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prover-node.d.ts","sourceRoot":"","sources":["../src/prover-node.ts"],"names":[],"mappings":"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"}
|