@aztec/sequencer-client 2.1.10-rc.2 → 2.1.11-rc.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.
|
@@ -28,6 +28,9 @@ export declare class SequencerMetrics {
|
|
|
28
28
|
private fishermanTimeBeforeBlock;
|
|
29
29
|
private fishermanPendingBlobTxCount;
|
|
30
30
|
private fishermanIncludedBlobTxCount;
|
|
31
|
+
private fishermanPendingBlobCount;
|
|
32
|
+
private fishermanIncludedBlobCount;
|
|
33
|
+
private fishermanBlockBlobsFull;
|
|
31
34
|
private fishermanCalculatedPriorityFee;
|
|
32
35
|
private fishermanPriorityFeeDelta;
|
|
33
36
|
private fishermanEstimatedCost;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/sequencer/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAML,KAAK,eAAe,EACpB,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,KAAK,GAAG,EAAe,MAAM,MAAM,CAAC;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,qBAAa,gBAAgB;
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/sequencer/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAML,KAAK,eAAe,EACpB,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,KAAK,GAAG,EAAe,MAAM,MAAM,CAAC;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,qBAAa,gBAAgB;IA4CzB,OAAO,CAAC,MAAM;IA3ChB,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,OAAO,CAAC,KAAK,CAAQ;IAErB,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,kBAAkB,CAAY;IACtC,OAAO,CAAC,uBAAuB,CAAQ;IACvC,OAAO,CAAC,6BAA6B,CAAY;IAGjD,OAAO,CAAC,yBAAyB,CAAQ;IACzC,OAAO,CAAC,8BAA8B,CAAQ;IAC9C,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,mBAAmB,CAAQ;IAEnC,OAAO,CAAC,OAAO,CAAQ;IAEvB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,WAAW,CAAgB;IAEnC,OAAO,CAAC,mBAAmB,CAAgB;IAC3C,OAAO,CAAC,oBAAoB,CAAgB;IAC5C,OAAO,CAAC,2BAA2B,CAAgB;IACnD,OAAO,CAAC,gBAAgB,CAAgB;IAExC,OAAO,CAAC,YAAY,CAAC,CAAS;IAG9B,OAAO,CAAC,wBAAwB,CAAgB;IAChD,OAAO,CAAC,wBAAwB,CAAY;IAC5C,OAAO,CAAC,2BAA2B,CAAY;IAC/C,OAAO,CAAC,4BAA4B,CAAY;IAChD,OAAO,CAAC,yBAAyB,CAAY;IAC7C,OAAO,CAAC,0BAA0B,CAAY;IAC9C,OAAO,CAAC,uBAAuB,CAAgB;IAC/C,OAAO,CAAC,8BAA8B,CAAY;IAClD,OAAO,CAAC,yBAAyB,CAAY;IAC7C,OAAO,CAAC,sBAAsB,CAAY;IAC1C,OAAO,CAAC,6BAA6B,CAAY;IACjD,OAAO,CAAC,+BAA+B,CAAY;IACnD,OAAO,CAAC,6BAA6B,CAAY;gBAG/C,MAAM,EAAE,eAAe,EACf,MAAM,EAAE,cAAc,EAC9B,IAAI,SAAc;IA4Mb,0BAA0B,CAAC,yBAAyB,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IASjF,2BAA2B,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAKpE,gBAAgB,CAAC,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAQ3D,iBAAiB;IAMjB,6BAA6B,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc;IAMvE,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAapC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB5F,yBAAyB,CAAC,MAAM,CAAC,EAAE,MAAM;IAMzC,0BAA0B;IAI1B,iCAAiC,CAAC,SAAS,EAAE,MAAM;IAMnD,qBAAqB,CAAC,WAAW,EAAE,MAAM;IAIzC;;;OAGG;IACH,0BAA0B,CAAC,QAAQ,EAAE,mBAAmB;CA+FzD"}
|
|
@@ -26,6 +26,9 @@ export class SequencerMetrics {
|
|
|
26
26
|
fishermanTimeBeforeBlock;
|
|
27
27
|
fishermanPendingBlobTxCount;
|
|
28
28
|
fishermanIncludedBlobTxCount;
|
|
29
|
+
fishermanPendingBlobCount;
|
|
30
|
+
fishermanIncludedBlobCount;
|
|
31
|
+
fishermanBlockBlobsFull;
|
|
29
32
|
fishermanCalculatedPriorityFee;
|
|
30
33
|
fishermanPriorityFeeDelta;
|
|
31
34
|
fishermanEstimatedCost;
|
|
@@ -156,6 +159,25 @@ export class SequencerMetrics {
|
|
|
156
159
|
description: 'Total cost in ETH for blob transactions in mined blocks',
|
|
157
160
|
valueType: ValueType.DOUBLE
|
|
158
161
|
});
|
|
162
|
+
this.fishermanPendingBlobCount = this.meter.createHistogram(Metrics.FISHERMAN_FEE_ANALYSIS_PENDING_BLOB_COUNT, {
|
|
163
|
+
description: 'Number of blobs seen in the pending block',
|
|
164
|
+
valueType: ValueType.INT
|
|
165
|
+
});
|
|
166
|
+
this.fishermanIncludedBlobCount = this.meter.createHistogram(Metrics.FISHERMAN_FEE_ANALYSIS_INCLUDED_BLOB_COUNT, {
|
|
167
|
+
description: 'Number of blobs that got included in the mined block',
|
|
168
|
+
valueType: ValueType.INT
|
|
169
|
+
});
|
|
170
|
+
this.fishermanBlockBlobsFull = this.meter.createUpDownCounter(Metrics.FISHERMAN_FEE_ANALYSIS_BLOCK_BLOBS_FULL, {
|
|
171
|
+
valueType: ValueType.INT,
|
|
172
|
+
description: 'Whether the mined block reached 100% blob capacity'
|
|
173
|
+
});
|
|
174
|
+
// Initialize the counter
|
|
175
|
+
this.fishermanBlockBlobsFull.add(0, {
|
|
176
|
+
[Attributes.OK]: true
|
|
177
|
+
});
|
|
178
|
+
this.fishermanBlockBlobsFull.add(0, {
|
|
179
|
+
[Attributes.OK]: false
|
|
180
|
+
});
|
|
159
181
|
}
|
|
160
182
|
recordRequiredAttestations(requiredAttestationsCount, allowanceMs) {
|
|
161
183
|
this.requiredAttestions.record(requiredAttestationsCount);
|
|
@@ -247,9 +269,11 @@ export class SequencerMetrics {
|
|
|
247
269
|
};
|
|
248
270
|
// Record pending block snapshot data (once per strategy for comparison)
|
|
249
271
|
this.fishermanPendingBlobTxCount.record(analysis.pendingSnapshot.pendingBlobTxCount, strategyAttributes);
|
|
272
|
+
this.fishermanPendingBlobCount.record(analysis.pendingSnapshot.pendingBlobCount, strategyAttributes);
|
|
250
273
|
// Record mined block data if available
|
|
251
274
|
if (analysis.minedBlock) {
|
|
252
275
|
this.fishermanIncludedBlobTxCount.record(analysis.minedBlock.includedBlobTxCount, strategyAttributes);
|
|
276
|
+
this.fishermanIncludedBlobCount.record(analysis.minedBlock.includedBlobCount, strategyAttributes);
|
|
253
277
|
// Record actual fees from blob transactions in the mined block
|
|
254
278
|
for (const blobTx of analysis.minedBlock.includedBlobTxs){
|
|
255
279
|
// Record priority fee per gas in Gwei
|
|
@@ -274,6 +298,18 @@ export class SequencerMetrics {
|
|
|
274
298
|
// Record analysis results if available
|
|
275
299
|
if (analysis.analysis) {
|
|
276
300
|
this.fishermanTimeBeforeBlock.record(Math.ceil(analysis.analysis.timeBeforeBlockMs), strategyAttributes);
|
|
301
|
+
// Record whether the block reached 100% blob capacity
|
|
302
|
+
if (analysis.analysis.blockBlobsFull) {
|
|
303
|
+
this.fishermanBlockBlobsFull.add(1, {
|
|
304
|
+
...strategyAttributes,
|
|
305
|
+
[Attributes.OK]: true
|
|
306
|
+
});
|
|
307
|
+
} else {
|
|
308
|
+
this.fishermanBlockBlobsFull.add(1, {
|
|
309
|
+
...strategyAttributes,
|
|
310
|
+
[Attributes.OK]: false
|
|
311
|
+
});
|
|
312
|
+
}
|
|
277
313
|
// Record strategy-specific inclusion result
|
|
278
314
|
if (strategyResult.wouldBeIncluded !== undefined) {
|
|
279
315
|
if (strategyResult.wouldBeIncluded) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/sequencer-client",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.11-rc.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -26,37 +26,37 @@
|
|
|
26
26
|
"test:integration:run": "NODE_NO_WARNINGS=1 node --experimental-vm-modules $(yarn bin jest) --no-cache --config jest.integration.config.json"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@aztec/aztec.js": "2.1.
|
|
30
|
-
"@aztec/bb-prover": "2.1.
|
|
31
|
-
"@aztec/blob-lib": "2.1.
|
|
32
|
-
"@aztec/blob-sink": "2.1.
|
|
33
|
-
"@aztec/constants": "2.1.
|
|
34
|
-
"@aztec/epoch-cache": "2.1.
|
|
35
|
-
"@aztec/ethereum": "2.1.
|
|
36
|
-
"@aztec/foundation": "2.1.
|
|
37
|
-
"@aztec/l1-artifacts": "2.1.
|
|
38
|
-
"@aztec/merkle-tree": "2.1.
|
|
39
|
-
"@aztec/node-keystore": "2.1.
|
|
40
|
-
"@aztec/noir-acvm_js": "2.1.
|
|
41
|
-
"@aztec/noir-contracts.js": "2.1.
|
|
42
|
-
"@aztec/noir-protocol-circuits-types": "2.1.
|
|
43
|
-
"@aztec/noir-types": "2.1.
|
|
44
|
-
"@aztec/p2p": "2.1.
|
|
45
|
-
"@aztec/protocol-contracts": "2.1.
|
|
46
|
-
"@aztec/prover-client": "2.1.
|
|
47
|
-
"@aztec/simulator": "2.1.
|
|
48
|
-
"@aztec/slasher": "2.1.
|
|
49
|
-
"@aztec/stdlib": "2.1.
|
|
50
|
-
"@aztec/telemetry-client": "2.1.
|
|
51
|
-
"@aztec/validator-client": "2.1.
|
|
52
|
-
"@aztec/world-state": "2.1.
|
|
29
|
+
"@aztec/aztec.js": "2.1.11-rc.3",
|
|
30
|
+
"@aztec/bb-prover": "2.1.11-rc.3",
|
|
31
|
+
"@aztec/blob-lib": "2.1.11-rc.3",
|
|
32
|
+
"@aztec/blob-sink": "2.1.11-rc.3",
|
|
33
|
+
"@aztec/constants": "2.1.11-rc.3",
|
|
34
|
+
"@aztec/epoch-cache": "2.1.11-rc.3",
|
|
35
|
+
"@aztec/ethereum": "2.1.11-rc.3",
|
|
36
|
+
"@aztec/foundation": "2.1.11-rc.3",
|
|
37
|
+
"@aztec/l1-artifacts": "2.1.11-rc.3",
|
|
38
|
+
"@aztec/merkle-tree": "2.1.11-rc.3",
|
|
39
|
+
"@aztec/node-keystore": "2.1.11-rc.3",
|
|
40
|
+
"@aztec/noir-acvm_js": "2.1.11-rc.3",
|
|
41
|
+
"@aztec/noir-contracts.js": "2.1.11-rc.3",
|
|
42
|
+
"@aztec/noir-protocol-circuits-types": "2.1.11-rc.3",
|
|
43
|
+
"@aztec/noir-types": "2.1.11-rc.3",
|
|
44
|
+
"@aztec/p2p": "2.1.11-rc.3",
|
|
45
|
+
"@aztec/protocol-contracts": "2.1.11-rc.3",
|
|
46
|
+
"@aztec/prover-client": "2.1.11-rc.3",
|
|
47
|
+
"@aztec/simulator": "2.1.11-rc.3",
|
|
48
|
+
"@aztec/slasher": "2.1.11-rc.3",
|
|
49
|
+
"@aztec/stdlib": "2.1.11-rc.3",
|
|
50
|
+
"@aztec/telemetry-client": "2.1.11-rc.3",
|
|
51
|
+
"@aztec/validator-client": "2.1.11-rc.3",
|
|
52
|
+
"@aztec/world-state": "2.1.11-rc.3",
|
|
53
53
|
"lodash.chunk": "^4.2.0",
|
|
54
54
|
"tslib": "^2.4.0",
|
|
55
55
|
"viem": "npm:@aztec/viem@2.38.2"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
|
-
"@aztec/archiver": "2.1.
|
|
59
|
-
"@aztec/kv-store": "2.1.
|
|
58
|
+
"@aztec/archiver": "2.1.11-rc.3",
|
|
59
|
+
"@aztec/kv-store": "2.1.11-rc.3",
|
|
60
60
|
"@jest/globals": "^30.0.0",
|
|
61
61
|
"@types/jest": "^30.0.0",
|
|
62
62
|
"@types/lodash.chunk": "^4.2.7",
|
package/src/sequencer/metrics.ts
CHANGED
|
@@ -49,6 +49,9 @@ export class SequencerMetrics {
|
|
|
49
49
|
private fishermanTimeBeforeBlock: Histogram;
|
|
50
50
|
private fishermanPendingBlobTxCount: Histogram;
|
|
51
51
|
private fishermanIncludedBlobTxCount: Histogram;
|
|
52
|
+
private fishermanPendingBlobCount: Histogram;
|
|
53
|
+
private fishermanIncludedBlobCount: Histogram;
|
|
54
|
+
private fishermanBlockBlobsFull: UpDownCounter;
|
|
52
55
|
private fishermanCalculatedPriorityFee: Histogram;
|
|
53
56
|
private fishermanPriorityFeeDelta: Histogram;
|
|
54
57
|
private fishermanEstimatedCost: Histogram;
|
|
@@ -238,6 +241,29 @@ export class SequencerMetrics {
|
|
|
238
241
|
valueType: ValueType.DOUBLE,
|
|
239
242
|
},
|
|
240
243
|
);
|
|
244
|
+
|
|
245
|
+
this.fishermanPendingBlobCount = this.meter.createHistogram(Metrics.FISHERMAN_FEE_ANALYSIS_PENDING_BLOB_COUNT, {
|
|
246
|
+
description: 'Number of blobs seen in the pending block',
|
|
247
|
+
valueType: ValueType.INT,
|
|
248
|
+
});
|
|
249
|
+
|
|
250
|
+
this.fishermanIncludedBlobCount = this.meter.createHistogram(Metrics.FISHERMAN_FEE_ANALYSIS_INCLUDED_BLOB_COUNT, {
|
|
251
|
+
description: 'Number of blobs that got included in the mined block',
|
|
252
|
+
valueType: ValueType.INT,
|
|
253
|
+
});
|
|
254
|
+
|
|
255
|
+
this.fishermanBlockBlobsFull = this.meter.createUpDownCounter(Metrics.FISHERMAN_FEE_ANALYSIS_BLOCK_BLOBS_FULL, {
|
|
256
|
+
valueType: ValueType.INT,
|
|
257
|
+
description: 'Whether the mined block reached 100% blob capacity',
|
|
258
|
+
});
|
|
259
|
+
|
|
260
|
+
// Initialize the counter
|
|
261
|
+
this.fishermanBlockBlobsFull.add(0, {
|
|
262
|
+
[Attributes.OK]: true,
|
|
263
|
+
});
|
|
264
|
+
this.fishermanBlockBlobsFull.add(0, {
|
|
265
|
+
[Attributes.OK]: false,
|
|
266
|
+
});
|
|
241
267
|
}
|
|
242
268
|
|
|
243
269
|
public recordRequiredAttestations(requiredAttestationsCount: number, allowanceMs: number) {
|
|
@@ -348,10 +374,12 @@ export class SequencerMetrics {
|
|
|
348
374
|
|
|
349
375
|
// Record pending block snapshot data (once per strategy for comparison)
|
|
350
376
|
this.fishermanPendingBlobTxCount.record(analysis.pendingSnapshot.pendingBlobTxCount, strategyAttributes);
|
|
377
|
+
this.fishermanPendingBlobCount.record(analysis.pendingSnapshot.pendingBlobCount, strategyAttributes);
|
|
351
378
|
|
|
352
379
|
// Record mined block data if available
|
|
353
380
|
if (analysis.minedBlock) {
|
|
354
381
|
this.fishermanIncludedBlobTxCount.record(analysis.minedBlock.includedBlobTxCount, strategyAttributes);
|
|
382
|
+
this.fishermanIncludedBlobCount.record(analysis.minedBlock.includedBlobCount, strategyAttributes);
|
|
355
383
|
|
|
356
384
|
// Record actual fees from blob transactions in the mined block
|
|
357
385
|
for (const blobTx of analysis.minedBlock.includedBlobTxs) {
|
|
@@ -385,6 +413,13 @@ export class SequencerMetrics {
|
|
|
385
413
|
if (analysis.analysis) {
|
|
386
414
|
this.fishermanTimeBeforeBlock.record(Math.ceil(analysis.analysis.timeBeforeBlockMs), strategyAttributes);
|
|
387
415
|
|
|
416
|
+
// Record whether the block reached 100% blob capacity
|
|
417
|
+
if (analysis.analysis.blockBlobsFull) {
|
|
418
|
+
this.fishermanBlockBlobsFull.add(1, { ...strategyAttributes, [Attributes.OK]: true });
|
|
419
|
+
} else {
|
|
420
|
+
this.fishermanBlockBlobsFull.add(1, { ...strategyAttributes, [Attributes.OK]: false });
|
|
421
|
+
}
|
|
422
|
+
|
|
388
423
|
// Record strategy-specific inclusion result
|
|
389
424
|
if (strategyResult.wouldBeIncluded !== undefined) {
|
|
390
425
|
if (strategyResult.wouldBeIncluded) {
|