@aztec/prover-node 0.76.4-devnet-test-rc3 → 0.77.0-testnet-ignition.17
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 -8
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +24 -51
- package/dest/factory.d.ts +6 -3
- package/dest/factory.d.ts.map +1 -1
- package/dest/factory.js +23 -45
- 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 +8 -4
- package/dest/job/epoch-proving-job.d.ts.map +1 -1
- package/dest/job/epoch-proving-job.js +233 -190
- 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 -4
- package/dest/monitors/epoch-monitor.d.ts.map +1 -1
- package/dest/monitors/epoch-monitor.js +102 -48
- package/dest/monitors/index.d.ts +0 -1
- package/dest/monitors/index.d.ts.map +1 -1
- package/dest/monitors/index.js +0 -2
- 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 -11
- package/dest/prover-node-publisher.d.ts.map +1 -1
- package/dest/prover-node-publisher.js +68 -61
- package/dest/prover-node.d.ts +23 -32
- package/dest/prover-node.d.ts.map +1 -1
- package/dest/prover-node.js +237 -289
- 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 +18 -62
- package/src/factory.ts +18 -47
- package/src/http.ts +2 -2
- package/src/job/epoch-proving-job.ts +15 -13
- package/src/metrics.ts +26 -5
- package/src/monitors/epoch-monitor.ts +57 -13
- package/src/monitors/index.ts +0 -1
- package/src/prover-coordination/factory.ts +9 -12
- package/src/prover-node-publisher.ts +29 -24
- package/src/prover-node.ts +53 -128
- package/src/test/index.ts +2 -2
- package/dest/bond/bond-manager.d.ts +0 -22
- package/dest/bond/bond-manager.d.ts.map +0 -1
- package/dest/bond/bond-manager.js +0 -42
- package/dest/bond/config.d.ts +0 -8
- package/dest/bond/config.d.ts.map +0 -1
- package/dest/bond/config.js +0 -17
- package/dest/bond/escrow-contract.d.ts +0 -19
- package/dest/bond/escrow-contract.d.ts.map +0 -1
- package/dest/bond/escrow-contract.js +0 -32
- package/dest/bond/factory.d.ts +0 -6
- package/dest/bond/factory.d.ts.map +0 -1
- package/dest/bond/factory.js +0 -17
- package/dest/bond/index.d.ts +0 -3
- package/dest/bond/index.d.ts.map +0 -1
- package/dest/bond/index.js +0 -3
- package/dest/bond/token-contract.d.ts +0 -26
- package/dest/bond/token-contract.d.ts.map +0 -1
- package/dest/bond/token-contract.js +0 -58
- package/dest/monitors/claims-monitor.d.ts +0 -24
- package/dest/monitors/claims-monitor.d.ts.map +0 -1
- package/dest/monitors/claims-monitor.js +0 -54
- package/dest/quote-provider/http.d.ts +0 -15
- package/dest/quote-provider/http.d.ts.map +0 -1
- package/dest/quote-provider/http.js +0 -33
- package/dest/quote-provider/index.d.ts +0 -6
- package/dest/quote-provider/index.d.ts.map +0 -1
- package/dest/quote-provider/index.js +0 -2
- package/dest/quote-provider/simple.d.ts +0 -9
- package/dest/quote-provider/simple.d.ts.map +0 -1
- package/dest/quote-provider/simple.js +0 -11
- package/dest/quote-provider/utils.d.ts +0 -4
- package/dest/quote-provider/utils.d.ts.map +0 -1
- package/dest/quote-provider/utils.js +0 -8
- package/dest/quote-signer.d.ts +0 -13
- package/dest/quote-signer.d.ts.map +0 -1
- package/dest/quote-signer.js +0 -18
- package/src/bond/bond-manager.ts +0 -48
- package/src/bond/config.ts +0 -25
- package/src/bond/escrow-contract.ts +0 -50
- package/src/bond/factory.ts +0 -28
- package/src/bond/index.ts +0 -2
- package/src/bond/token-contract.ts +0 -72
- package/src/monitors/claims-monitor.ts +0 -69
- package/src/quote-provider/http.ts +0 -48
- package/src/quote-provider/index.ts +0 -8
- package/src/quote-provider/simple.ts +0 -15
- package/src/quote-provider/utils.ts +0 -10
- package/src/quote-signer.ts +0 -24
|
@@ -1,212 +1,255 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
function _ts_decorate(decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
}
|
|
3
7
|
import { asyncPool } from '@aztec/foundation/async-pool';
|
|
4
8
|
import { createLogger } from '@aztec/foundation/log';
|
|
5
9
|
import { promiseWithResolvers } from '@aztec/foundation/promise';
|
|
6
10
|
import { Timer } from '@aztec/foundation/timer';
|
|
11
|
+
import { EpochProvingJobTerminalState } from '@aztec/stdlib/interfaces/server';
|
|
7
12
|
import { Attributes, trackSpan } from '@aztec/telemetry-client';
|
|
8
13
|
import * as crypto from 'node:crypto';
|
|
9
14
|
/**
|
|
10
15
|
* Job that grabs a range of blocks from the unfinalised chain from L1, gets their txs given their hashes,
|
|
11
16
|
* re-executes their public calls, generates a rollup proof, and submits it to L1. This job will update the
|
|
12
17
|
* world state as part of public call execution via the public processor.
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
18
|
+
*/ export class EpochProvingJob {
|
|
19
|
+
dbProvider;
|
|
20
|
+
epochNumber;
|
|
21
|
+
blocks;
|
|
22
|
+
txs;
|
|
23
|
+
prover;
|
|
24
|
+
publicProcessorFactory;
|
|
25
|
+
publisher;
|
|
26
|
+
l2BlockSource;
|
|
27
|
+
l1ToL2MessageSource;
|
|
28
|
+
metrics;
|
|
29
|
+
deadline;
|
|
30
|
+
config;
|
|
31
|
+
cleanUp;
|
|
32
|
+
state;
|
|
33
|
+
log;
|
|
34
|
+
uuid;
|
|
35
|
+
runPromise;
|
|
36
|
+
deadlineTimeoutHandler;
|
|
37
|
+
tracer;
|
|
38
|
+
constructor(dbProvider, epochNumber, blocks, txs, prover, publicProcessorFactory, publisher, l2BlockSource, l1ToL2MessageSource, metrics, deadline, config = {
|
|
39
|
+
parallelBlockLimit: 32
|
|
40
|
+
}, cleanUp = ()=>Promise.resolve()){
|
|
41
|
+
this.dbProvider = dbProvider;
|
|
42
|
+
this.epochNumber = epochNumber;
|
|
43
|
+
this.blocks = blocks;
|
|
44
|
+
this.txs = txs;
|
|
45
|
+
this.prover = prover;
|
|
46
|
+
this.publicProcessorFactory = publicProcessorFactory;
|
|
47
|
+
this.publisher = publisher;
|
|
48
|
+
this.l2BlockSource = l2BlockSource;
|
|
49
|
+
this.l1ToL2MessageSource = l1ToL2MessageSource;
|
|
50
|
+
this.metrics = metrics;
|
|
51
|
+
this.deadline = deadline;
|
|
52
|
+
this.config = config;
|
|
53
|
+
this.cleanUp = cleanUp;
|
|
54
|
+
this.state = 'initialized';
|
|
55
|
+
this.log = createLogger('prover-node:epoch-proving-job');
|
|
56
|
+
this.uuid = crypto.randomUUID();
|
|
57
|
+
this.tracer = metrics.client.getTracer('EpochProvingJob');
|
|
58
|
+
}
|
|
59
|
+
getId() {
|
|
60
|
+
return this.uuid;
|
|
61
|
+
}
|
|
62
|
+
getState() {
|
|
63
|
+
return this.state;
|
|
64
|
+
}
|
|
65
|
+
getEpochNumber() {
|
|
66
|
+
return this.epochNumber;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Proves the given epoch and submits the proof to L1.
|
|
70
|
+
*/ async run() {
|
|
71
|
+
this.scheduleDeadlineStop();
|
|
72
|
+
const epochNumber = Number(this.epochNumber);
|
|
73
|
+
const epochSizeBlocks = this.blocks.length;
|
|
74
|
+
const epochSizeTxs = this.blocks.reduce((total, current)=>total + current.body.txEffects.length, 0);
|
|
75
|
+
const [fromBlock, toBlock] = [
|
|
76
|
+
this.blocks[0].number,
|
|
77
|
+
this.blocks.at(-1).number
|
|
78
|
+
];
|
|
79
|
+
this.log.info(`Starting epoch ${epochNumber} proving job with blocks ${fromBlock} to ${toBlock}`, {
|
|
80
|
+
fromBlock,
|
|
81
|
+
toBlock,
|
|
82
|
+
epochSizeBlocks,
|
|
83
|
+
epochNumber,
|
|
84
|
+
uuid: this.uuid
|
|
85
|
+
});
|
|
86
|
+
this.progressState('processing');
|
|
87
|
+
const timer = new Timer();
|
|
88
|
+
const { promise, resolve } = promiseWithResolvers();
|
|
89
|
+
this.runPromise = promise;
|
|
90
|
+
try {
|
|
91
|
+
this.prover.startNewEpoch(epochNumber, fromBlock, epochSizeBlocks);
|
|
92
|
+
await this.prover.startTubeCircuits(this.txs);
|
|
93
|
+
await asyncPool(this.config.parallelBlockLimit, this.blocks, async (block)=>{
|
|
94
|
+
this.checkState();
|
|
95
|
+
const globalVariables = block.header.globalVariables;
|
|
96
|
+
const txs = await this.getTxs(block);
|
|
97
|
+
const l1ToL2Messages = await this.getL1ToL2Messages(block);
|
|
98
|
+
const previousHeader = await this.getBlockHeader(block.number - 1);
|
|
99
|
+
this.log.verbose(`Starting processing block ${block.number}`, {
|
|
100
|
+
number: block.number,
|
|
101
|
+
blockHash: (await block.hash()).toString(),
|
|
102
|
+
lastArchive: block.header.lastArchive.root,
|
|
103
|
+
noteHashTreeRoot: block.header.state.partial.noteHashTree.root,
|
|
104
|
+
nullifierTreeRoot: block.header.state.partial.nullifierTree.root,
|
|
105
|
+
publicDataTreeRoot: block.header.state.partial.publicDataTree.root,
|
|
106
|
+
previousHeader: previousHeader.hash(),
|
|
107
|
+
uuid: this.uuid,
|
|
108
|
+
...globalVariables
|
|
109
|
+
});
|
|
110
|
+
// Start block proving
|
|
111
|
+
await this.prover.startNewBlock(globalVariables, l1ToL2Messages, previousHeader);
|
|
112
|
+
// Process public fns
|
|
113
|
+
const db = await this.dbProvider.fork(block.number - 1);
|
|
114
|
+
const publicProcessor = this.publicProcessorFactory.create(db, globalVariables, true);
|
|
115
|
+
const processed = await this.processTxs(publicProcessor, txs);
|
|
116
|
+
await this.prover.addTxs(processed);
|
|
117
|
+
await db.close();
|
|
118
|
+
this.log.verbose(`Processed all ${txs.length} txs for block ${block.number}`, {
|
|
119
|
+
blockNumber: block.number,
|
|
120
|
+
blockHash: (await block.hash()).toString(),
|
|
121
|
+
uuid: this.uuid
|
|
122
|
+
});
|
|
123
|
+
// Mark block as completed to pad it
|
|
124
|
+
await this.prover.setBlockCompleted(block.number, block.header);
|
|
125
|
+
});
|
|
126
|
+
const executionTime = timer.ms();
|
|
127
|
+
this.progressState('awaiting-prover');
|
|
128
|
+
const { publicInputs, proof } = await this.prover.finaliseEpoch();
|
|
129
|
+
this.log.info(`Finalised proof for epoch ${epochNumber}`, {
|
|
130
|
+
epochNumber,
|
|
131
|
+
uuid: this.uuid,
|
|
132
|
+
duration: timer.ms()
|
|
133
|
+
});
|
|
134
|
+
this.progressState('publishing-proof');
|
|
135
|
+
const success = await this.publisher.submitEpochProof({
|
|
136
|
+
fromBlock,
|
|
137
|
+
toBlock,
|
|
138
|
+
epochNumber,
|
|
139
|
+
publicInputs,
|
|
140
|
+
proof
|
|
141
|
+
});
|
|
142
|
+
if (!success) {
|
|
143
|
+
throw new Error('Failed to submit epoch proof to L1');
|
|
37
144
|
}
|
|
38
|
-
|
|
39
|
-
|
|
145
|
+
this.log.info(`Submitted proof for epoch ${epochNumber} (blocks ${fromBlock} to ${toBlock})`, {
|
|
146
|
+
epochNumber,
|
|
147
|
+
uuid: this.uuid
|
|
148
|
+
});
|
|
149
|
+
this.state = 'completed';
|
|
150
|
+
this.metrics.recordProvingJob(executionTime, timer.ms(), epochSizeBlocks, epochSizeTxs);
|
|
151
|
+
} catch (err) {
|
|
152
|
+
if (err && err.name === 'HaltExecutionError') {
|
|
153
|
+
this.log.warn(`Halted execution of epoch ${epochNumber} prover job`, {
|
|
154
|
+
uuid: this.uuid,
|
|
155
|
+
epochNumber
|
|
156
|
+
});
|
|
157
|
+
return;
|
|
40
158
|
}
|
|
41
|
-
|
|
42
|
-
|
|
159
|
+
this.log.error(`Error running epoch ${epochNumber} prover job`, err, {
|
|
160
|
+
uuid: this.uuid,
|
|
161
|
+
epochNumber
|
|
162
|
+
});
|
|
163
|
+
this.state = 'failed';
|
|
164
|
+
} finally{
|
|
165
|
+
clearTimeout(this.deadlineTimeoutHandler);
|
|
166
|
+
await this.cleanUp(this);
|
|
167
|
+
await this.prover.stop();
|
|
168
|
+
resolve();
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
progressState(state) {
|
|
172
|
+
this.checkState();
|
|
173
|
+
this.state = state;
|
|
174
|
+
}
|
|
175
|
+
checkState() {
|
|
176
|
+
if (this.state === 'timed-out' || this.state === 'stopped' || this.state === 'failed') {
|
|
177
|
+
throw new HaltExecutionError(this.state);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
async stop(state = 'stopped') {
|
|
181
|
+
this.state = state;
|
|
182
|
+
this.prover.cancel();
|
|
183
|
+
// TODO(palla/prover): Stop the publisher as well
|
|
184
|
+
if (this.runPromise) {
|
|
185
|
+
await this.runPromise;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
scheduleDeadlineStop() {
|
|
189
|
+
const deadline = this.deadline;
|
|
190
|
+
if (deadline) {
|
|
191
|
+
const timeout = deadline.getTime() - Date.now();
|
|
192
|
+
if (timeout <= 0) {
|
|
193
|
+
throw new Error('Cannot start job with deadline in the past');
|
|
43
194
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
this.
|
|
49
|
-
const epochNumber = Number(this.epochNumber);
|
|
50
|
-
const epochSizeBlocks = this.blocks.length;
|
|
51
|
-
const epochSizeTxs = this.blocks.reduce((total, current) => total + current.body.txEffects.length, 0);
|
|
52
|
-
const [fromBlock, toBlock] = [this.blocks[0].number, this.blocks.at(-1).number];
|
|
53
|
-
this.log.info(`Starting epoch ${epochNumber} proving job with blocks ${fromBlock} to ${toBlock}`, {
|
|
54
|
-
fromBlock,
|
|
55
|
-
toBlock,
|
|
56
|
-
epochSizeBlocks,
|
|
57
|
-
epochNumber,
|
|
195
|
+
this.deadlineTimeoutHandler = setTimeout(()=>{
|
|
196
|
+
if (EpochProvingJobTerminalState.includes(this.state)) {
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
this.log.warn('Stopping job due to deadline hit', {
|
|
58
200
|
uuid: this.uuid,
|
|
201
|
+
epochNumber: this.epochNumber
|
|
59
202
|
});
|
|
60
|
-
this.
|
|
61
|
-
|
|
62
|
-
const { promise, resolve } = promiseWithResolvers();
|
|
63
|
-
this.runPromise = promise;
|
|
64
|
-
try {
|
|
65
|
-
this.prover.startNewEpoch(epochNumber, fromBlock, epochSizeBlocks);
|
|
66
|
-
await this.prover.startTubeCircuits(this.txs);
|
|
67
|
-
await asyncPool(this.config.parallelBlockLimit, this.blocks, async (block) => {
|
|
68
|
-
this.checkState();
|
|
69
|
-
const globalVariables = block.header.globalVariables;
|
|
70
|
-
const txs = await this.getTxs(block);
|
|
71
|
-
const l1ToL2Messages = await this.getL1ToL2Messages(block);
|
|
72
|
-
const previousHeader = (await this.getBlockHeader(block.number - 1));
|
|
73
|
-
this.log.verbose(`Starting processing block ${block.number}`, {
|
|
74
|
-
number: block.number,
|
|
75
|
-
blockHash: (await block.hash()).toString(),
|
|
76
|
-
lastArchive: block.header.lastArchive.root,
|
|
77
|
-
noteHashTreeRoot: block.header.state.partial.noteHashTree.root,
|
|
78
|
-
nullifierTreeRoot: block.header.state.partial.nullifierTree.root,
|
|
79
|
-
publicDataTreeRoot: block.header.state.partial.publicDataTree.root,
|
|
80
|
-
previousHeader: previousHeader.hash(),
|
|
81
|
-
uuid: this.uuid,
|
|
82
|
-
...globalVariables,
|
|
83
|
-
});
|
|
84
|
-
// Start block proving
|
|
85
|
-
await this.prover.startNewBlock(globalVariables, l1ToL2Messages, previousHeader);
|
|
86
|
-
// Process public fns
|
|
87
|
-
const db = await this.dbProvider.fork(block.number - 1);
|
|
88
|
-
const publicProcessor = this.publicProcessorFactory.create(db, globalVariables, true);
|
|
89
|
-
const processed = await this.processTxs(publicProcessor, txs);
|
|
90
|
-
await this.prover.addTxs(processed);
|
|
91
|
-
await db.close();
|
|
92
|
-
this.log.verbose(`Processed all ${txs.length} txs for block ${block.number}`, {
|
|
93
|
-
blockNumber: block.number,
|
|
94
|
-
blockHash: (await block.hash()).toString(),
|
|
95
|
-
uuid: this.uuid,
|
|
96
|
-
});
|
|
97
|
-
// Mark block as completed to pad it
|
|
98
|
-
await this.prover.setBlockCompleted(block.number, block.header);
|
|
99
|
-
});
|
|
100
|
-
const executionTime = timer.ms();
|
|
101
|
-
this.progressState('awaiting-prover');
|
|
102
|
-
const { publicInputs, proof } = await this.prover.finaliseEpoch();
|
|
103
|
-
this.log.info(`Finalised proof for epoch ${epochNumber}`, { epochNumber, uuid: this.uuid, duration: timer.ms() });
|
|
104
|
-
this.progressState('publishing-proof');
|
|
105
|
-
const success = await this.publisher.submitEpochProof({ fromBlock, toBlock, epochNumber, publicInputs, proof });
|
|
106
|
-
if (!success) {
|
|
107
|
-
throw new Error('Failed to submit epoch proof to L1');
|
|
108
|
-
}
|
|
109
|
-
this.log.info(`Submitted proof for epoch ${epochNumber} (blocks ${fromBlock} to ${toBlock})`, {
|
|
110
|
-
epochNumber,
|
|
203
|
+
this.stop('timed-out').catch((err)=>{
|
|
204
|
+
this.log.error('Error stopping job', err, {
|
|
111
205
|
uuid: this.uuid,
|
|
206
|
+
epochNumber: this.epochNumber
|
|
112
207
|
});
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
this.deadlineTimeoutHandler = setTimeout(() => {
|
|
156
|
-
if (EpochProvingJobTerminalState.includes(this.state)) {
|
|
157
|
-
return;
|
|
158
|
-
}
|
|
159
|
-
this.log.warn('Stopping job due to deadline hit', { uuid: this.uuid, epochNumber: this.epochNumber });
|
|
160
|
-
this.stop('timed-out').catch(err => {
|
|
161
|
-
this.log.error('Error stopping job', err, { uuid: this.uuid, epochNumber: this.epochNumber });
|
|
162
|
-
});
|
|
163
|
-
}, timeout);
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
/* Returns the header for the given block number, or the genesis block for block zero. */
|
|
167
|
-
async getBlockHeader(blockNumber) {
|
|
168
|
-
if (blockNumber === 0) {
|
|
169
|
-
return (await this.dbProvider.fork()).getInitialHeader();
|
|
170
|
-
}
|
|
171
|
-
return this.l2BlockSource.getBlockHeader(blockNumber);
|
|
172
|
-
}
|
|
173
|
-
async getTxs(block) {
|
|
174
|
-
const txHashes = block.body.txEffects.map(tx => tx.txHash.toBigInt());
|
|
175
|
-
const txsAndHashes = await Promise.all(this.txs.map(async (tx) => ({ tx, hash: await tx.getTxHash() })));
|
|
176
|
-
return txsAndHashes
|
|
177
|
-
.filter(txAndHash => txHashes.includes(txAndHash.hash.toBigInt()))
|
|
178
|
-
.map(txAndHash => txAndHash.tx);
|
|
179
|
-
}
|
|
180
|
-
getL1ToL2Messages(block) {
|
|
181
|
-
return this.l1ToL2MessageSource.getL1ToL2Messages(BigInt(block.number));
|
|
182
|
-
}
|
|
183
|
-
async processTxs(publicProcessor, txs) {
|
|
184
|
-
const { deadline } = this;
|
|
185
|
-
const [processedTxs, failedTxs] = await publicProcessor.process(txs, { deadline });
|
|
186
|
-
if (failedTxs.length) {
|
|
187
|
-
throw new Error(`Txs failed processing: ${failedTxs.map(({ tx, error }) => `${tx.getTxHash()} (${error})`).join(', ')}`);
|
|
188
|
-
}
|
|
189
|
-
if (processedTxs.length !== txs.length) {
|
|
190
|
-
throw new Error(`Failed to process all txs: processed ${processedTxs.length} out of ${txs.length}`);
|
|
191
|
-
}
|
|
192
|
-
return processedTxs;
|
|
193
|
-
}
|
|
194
|
-
},
|
|
195
|
-
(() => {
|
|
196
|
-
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
197
|
-
_run_decorators = [trackSpan('EpochProvingJob.run', function () {
|
|
198
|
-
return { [Attributes.EPOCH_NUMBER]: Number(this.epochNumber) };
|
|
199
|
-
})];
|
|
200
|
-
__esDecorate(_a, null, _run_decorators, { kind: "method", name: "run", static: false, private: false, access: { has: obj => "run" in obj, get: obj => obj.run }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
201
|
-
if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
202
|
-
})(),
|
|
203
|
-
_a;
|
|
204
|
-
})();
|
|
205
|
-
export { EpochProvingJob };
|
|
208
|
+
});
|
|
209
|
+
}, timeout);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
/* Returns the header for the given block number, or the genesis block for block zero. */ async getBlockHeader(blockNumber) {
|
|
213
|
+
if (blockNumber === 0) {
|
|
214
|
+
return (await this.dbProvider.fork()).getInitialHeader();
|
|
215
|
+
}
|
|
216
|
+
return this.l2BlockSource.getBlockHeader(blockNumber);
|
|
217
|
+
}
|
|
218
|
+
async getTxs(block) {
|
|
219
|
+
const txHashes = block.body.txEffects.map((tx)=>tx.txHash.toBigInt());
|
|
220
|
+
const txsAndHashes = await Promise.all(this.txs.map(async (tx)=>({
|
|
221
|
+
tx,
|
|
222
|
+
hash: await tx.getTxHash()
|
|
223
|
+
})));
|
|
224
|
+
return txsAndHashes.filter((txAndHash)=>txHashes.includes(txAndHash.hash.toBigInt())).map((txAndHash)=>txAndHash.tx);
|
|
225
|
+
}
|
|
226
|
+
getL1ToL2Messages(block) {
|
|
227
|
+
return this.l1ToL2MessageSource.getL1ToL2Messages(BigInt(block.number));
|
|
228
|
+
}
|
|
229
|
+
async processTxs(publicProcessor, txs) {
|
|
230
|
+
const { deadline } = this;
|
|
231
|
+
const [processedTxs, failedTxs] = await publicProcessor.process(txs, {
|
|
232
|
+
deadline
|
|
233
|
+
});
|
|
234
|
+
if (failedTxs.length) {
|
|
235
|
+
throw new Error(`Txs failed processing: ${failedTxs.map(({ tx, error })=>`${tx.getTxHash()} (${error})`).join(', ')}`);
|
|
236
|
+
}
|
|
237
|
+
if (processedTxs.length !== txs.length) {
|
|
238
|
+
throw new Error(`Failed to process all txs: processed ${processedTxs.length} out of ${txs.length}`);
|
|
239
|
+
}
|
|
240
|
+
return processedTxs;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
_ts_decorate([
|
|
244
|
+
trackSpan('EpochProvingJob.run', function() {
|
|
245
|
+
return {
|
|
246
|
+
[Attributes.EPOCH_NUMBER]: Number(this.epochNumber)
|
|
247
|
+
};
|
|
248
|
+
})
|
|
249
|
+
], EpochProvingJob.prototype, "run", null);
|
|
206
250
|
class HaltExecutionError extends Error {
|
|
207
|
-
constructor(state)
|
|
251
|
+
constructor(state){
|
|
208
252
|
super(`Halted execution due to state ${state}`);
|
|
209
253
|
this.name = 'HaltExecutionError';
|
|
210
254
|
}
|
|
211
255
|
}
|
|
212
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXBvY2gtcHJvdmluZy1qb2IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvam9iL2Vwb2NoLXByb3Zpbmctam9iLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBR0wsNEJBQTRCLEdBTzdCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFaEQsT0FBTyxFQUFFLFVBQVUsRUFBK0IsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFN0YsT0FBTyxLQUFLLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFLdEM7Ozs7R0FJRztJQUNVLGVBQWU7Ozs7c0JBQWYsZUFBZTtZQVUxQixZQUNVLFVBQW9DLEVBQ3BDLFdBQW1CLEVBQ25CLE1BQWlCLEVBQ2pCLEdBQVMsRUFDVCxNQUFtQixFQUNuQixzQkFBOEMsRUFDOUMsU0FBOEIsRUFDOUIsYUFBNEIsRUFDNUIsbUJBQXdDLEVBQ3hDLE9BQTBCLEVBQzFCLFFBQTBCLEVBQzFCLFNBQXlDLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxFQUFFLEVBQ25FLFVBQW1ELEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7Z0JBWjFFLGVBQVUsSUFYVCxtREFBZSxFQVdoQixVQUFVLEVBQTBCO2dCQUNwQyxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtnQkFDbkIsV0FBTSxHQUFOLE1BQU0sQ0FBVztnQkFDakIsUUFBRyxHQUFILEdBQUcsQ0FBTTtnQkFDVCxXQUFNLEdBQU4sTUFBTSxDQUFhO2dCQUNuQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO2dCQUM5QyxjQUFTLEdBQVQs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
|
package/dest/metrics.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { L1PublishProofStats } from '@aztec/stdlib/stats';
|
|
2
2
|
import { type Histogram, type TelemetryClient, type UpDownCounter } from '@aztec/telemetry-client';
|
|
3
3
|
export declare class ProverNodeMetrics {
|
|
4
4
|
readonly client: TelemetryClient;
|
|
5
|
+
private logger;
|
|
5
6
|
proverEpochExecutionDuration: Histogram;
|
|
6
7
|
provingJobDuration: Histogram;
|
|
7
8
|
provingJobBlocks: Histogram;
|
|
@@ -14,10 +15,12 @@ export declare class ProverNodeMetrics {
|
|
|
14
15
|
txCalldataGas: Histogram;
|
|
15
16
|
txBlobDataGasUsed: Histogram;
|
|
16
17
|
txBlobDataGasCost: Histogram;
|
|
17
|
-
|
|
18
|
+
private senderBalance;
|
|
19
|
+
constructor(client: TelemetryClient, name?: string, logger?: import("@aztec/foundation/log").Logger);
|
|
18
20
|
recordFailedTx(): void;
|
|
19
21
|
recordSubmitProof(durationMs: number, stats: L1PublishProofStats): void;
|
|
20
22
|
recordProvingJob(executionTimeMs: number, totalTimeMs: number, numBlocks: number, numTxs: number): void;
|
|
23
|
+
recordSenderBalance(wei: bigint, senderAddress: string): void;
|
|
21
24
|
private recordTx;
|
|
22
25
|
}
|
|
23
26
|
//# sourceMappingURL=metrics.d.ts.map
|
package/dest/metrics.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"
|
|
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,EAGL,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,SAAS,CAAC;IAC5B,sBAAsB,EAAE,SAAS,CAAC;IAElC,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"}
|