@aztec/validator-client 0.85.0-alpha-testnet.2 → 0.85.0-alpha-testnet.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/metrics.d.ts +4 -0
- package/dest/metrics.d.ts.map +1 -1
- package/dest/metrics.js +18 -0
- package/dest/validator.d.ts.map +1 -1
- package/dest/validator.js +7 -0
- package/package.json +7 -7
- package/src/metrics.ts +22 -0
- package/src/validator.ts +8 -0
package/dest/metrics.d.ts
CHANGED
|
@@ -3,9 +3,13 @@ import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
|
3
3
|
export declare class ValidatorMetrics {
|
|
4
4
|
private reExecutionTime;
|
|
5
5
|
private failedReexecutionCounter;
|
|
6
|
+
private attestationsCount;
|
|
7
|
+
private failedAttestationsCount;
|
|
6
8
|
constructor(telemetryClient: TelemetryClient);
|
|
7
9
|
reExecutionTimer(): () => void;
|
|
8
10
|
recordReExecutionTime(time: number): void;
|
|
9
11
|
recordFailedReexecution(proposal: BlockProposal): Promise<void>;
|
|
12
|
+
incAttestations(): void;
|
|
13
|
+
incFailedAttestations(reason: string): void;
|
|
10
14
|
}
|
|
11
15
|
//# 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":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAIL,KAAK,eAAe,EAGrB,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,wBAAwB,CAAgB;
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAIL,KAAK,eAAe,EAGrB,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,wBAAwB,CAAgB;IAChD,OAAO,CAAC,iBAAiB,CAAgB;IACzC,OAAO,CAAC,uBAAuB,CAAgB;gBAEnC,eAAe,EAAE,eAAe;IA0BrC,gBAAgB,IAAI,MAAM,IAAI;IAQ9B,qBAAqB,CAAC,IAAI,EAAE,MAAM;IAI5B,uBAAuB,CAAC,QAAQ,EAAE,aAAa;IAOrD,eAAe;IAIf,qBAAqB,CAAC,MAAM,EAAE,MAAM;CAK5C"}
|
package/dest/metrics.js
CHANGED
|
@@ -2,6 +2,8 @@ import { Attributes, Metrics, ValueType } from '@aztec/telemetry-client';
|
|
|
2
2
|
export class ValidatorMetrics {
|
|
3
3
|
reExecutionTime;
|
|
4
4
|
failedReexecutionCounter;
|
|
5
|
+
attestationsCount;
|
|
6
|
+
failedAttestationsCount;
|
|
5
7
|
constructor(telemetryClient){
|
|
6
8
|
const meter = telemetryClient.getMeter('Validator');
|
|
7
9
|
this.failedReexecutionCounter = meter.createUpDownCounter(Metrics.VALIDATOR_FAILED_REEXECUTION_COUNT, {
|
|
@@ -14,6 +16,14 @@ export class ValidatorMetrics {
|
|
|
14
16
|
unit: 'ms',
|
|
15
17
|
valueType: ValueType.DOUBLE
|
|
16
18
|
});
|
|
19
|
+
this.attestationsCount = meter.createUpDownCounter(Metrics.VALIDATOR_ATTESTATION_COUNT, {
|
|
20
|
+
description: 'The number of attestations',
|
|
21
|
+
valueType: ValueType.INT
|
|
22
|
+
});
|
|
23
|
+
this.failedAttestationsCount = meter.createUpDownCounter(Metrics.VALIDATOR_FAILED_ATTESTATION_COUNT, {
|
|
24
|
+
description: 'The number of failed attestations',
|
|
25
|
+
valueType: ValueType.INT
|
|
26
|
+
});
|
|
17
27
|
}
|
|
18
28
|
reExecutionTimer() {
|
|
19
29
|
const start = performance.now();
|
|
@@ -31,4 +41,12 @@ export class ValidatorMetrics {
|
|
|
31
41
|
[Attributes.BLOCK_PROPOSER]: (await proposal.getSender())?.toString()
|
|
32
42
|
});
|
|
33
43
|
}
|
|
44
|
+
incAttestations() {
|
|
45
|
+
this.attestationsCount.add(1);
|
|
46
|
+
}
|
|
47
|
+
incFailedAttestations(reason) {
|
|
48
|
+
this.failedAttestationsCount.add(1, {
|
|
49
|
+
[Attributes.ERROR_TYPE]: reason
|
|
50
|
+
});
|
|
51
|
+
}
|
|
34
52
|
}
|
package/dest/validator.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"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"}
|
package/dest/validator.js
CHANGED
|
@@ -116,6 +116,7 @@ import { ValidatorMetrics } from './metrics.js';
|
|
|
116
116
|
const invalidProposal = await this.blockProposalValidator.validate(proposal);
|
|
117
117
|
if (invalidProposal) {
|
|
118
118
|
this.log.verbose(`Proposal is not valid, skipping attestation`);
|
|
119
|
+
this.metrics.incFailedAttestations('invalid_proposal');
|
|
119
120
|
return undefined;
|
|
120
121
|
}
|
|
121
122
|
// Check that all of the transactions in the proposal are available in the tx pool before attesting
|
|
@@ -127,6 +128,11 @@ import { ValidatorMetrics } from './metrics.js';
|
|
|
127
128
|
await this.reExecuteTransactions(proposal);
|
|
128
129
|
}
|
|
129
130
|
} catch (error) {
|
|
131
|
+
if (error instanceof Error) {
|
|
132
|
+
this.metrics.incFailedAttestations(error.name);
|
|
133
|
+
} else {
|
|
134
|
+
this.metrics.incFailedAttestations('unknown');
|
|
135
|
+
}
|
|
130
136
|
// If the transactions are not available, then we should not attempt to attest
|
|
131
137
|
if (error instanceof TransactionsNotAvailableError) {
|
|
132
138
|
this.log.error(`Transactions not available, skipping attestation`, error, proposalInfo);
|
|
@@ -139,6 +145,7 @@ import { ValidatorMetrics } from './metrics.js';
|
|
|
139
145
|
}
|
|
140
146
|
// Provided all of the above checks pass, we can attest to the proposal
|
|
141
147
|
this.log.info(`Attesting to proposal for slot ${slotNumber}`, proposalInfo);
|
|
148
|
+
this.metrics.incAttestations();
|
|
142
149
|
// If the above function does not throw an error, then we can attest to the proposal
|
|
143
150
|
return this.doAttestToProposal(proposal);
|
|
144
151
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/validator-client",
|
|
3
|
-
"version": "0.85.0-alpha-testnet.
|
|
3
|
+
"version": "0.85.0-alpha-testnet.3",
|
|
4
4
|
"main": "dest/index.js",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -62,12 +62,12 @@
|
|
|
62
62
|
]
|
|
63
63
|
},
|
|
64
64
|
"dependencies": {
|
|
65
|
-
"@aztec/epoch-cache": "0.85.0-alpha-testnet.
|
|
66
|
-
"@aztec/ethereum": "0.85.0-alpha-testnet.
|
|
67
|
-
"@aztec/foundation": "0.85.0-alpha-testnet.
|
|
68
|
-
"@aztec/p2p": "0.85.0-alpha-testnet.
|
|
69
|
-
"@aztec/stdlib": "0.85.0-alpha-testnet.
|
|
70
|
-
"@aztec/telemetry-client": "0.85.0-alpha-testnet.
|
|
65
|
+
"@aztec/epoch-cache": "0.85.0-alpha-testnet.3",
|
|
66
|
+
"@aztec/ethereum": "0.85.0-alpha-testnet.3",
|
|
67
|
+
"@aztec/foundation": "0.85.0-alpha-testnet.3",
|
|
68
|
+
"@aztec/p2p": "0.85.0-alpha-testnet.3",
|
|
69
|
+
"@aztec/stdlib": "0.85.0-alpha-testnet.3",
|
|
70
|
+
"@aztec/telemetry-client": "0.85.0-alpha-testnet.3",
|
|
71
71
|
"koa": "^2.16.1",
|
|
72
72
|
"koa-router": "^12.0.0",
|
|
73
73
|
"tslib": "^2.4.0",
|
package/src/metrics.ts
CHANGED
|
@@ -11,6 +11,8 @@ import {
|
|
|
11
11
|
export class ValidatorMetrics {
|
|
12
12
|
private reExecutionTime: Gauge;
|
|
13
13
|
private failedReexecutionCounter: UpDownCounter;
|
|
14
|
+
private attestationsCount: UpDownCounter;
|
|
15
|
+
private failedAttestationsCount: UpDownCounter;
|
|
14
16
|
|
|
15
17
|
constructor(telemetryClient: TelemetryClient) {
|
|
16
18
|
const meter = telemetryClient.getMeter('Validator');
|
|
@@ -26,6 +28,16 @@ export class ValidatorMetrics {
|
|
|
26
28
|
unit: 'ms',
|
|
27
29
|
valueType: ValueType.DOUBLE,
|
|
28
30
|
});
|
|
31
|
+
|
|
32
|
+
this.attestationsCount = meter.createUpDownCounter(Metrics.VALIDATOR_ATTESTATION_COUNT, {
|
|
33
|
+
description: 'The number of attestations',
|
|
34
|
+
valueType: ValueType.INT,
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
this.failedAttestationsCount = meter.createUpDownCounter(Metrics.VALIDATOR_FAILED_ATTESTATION_COUNT, {
|
|
38
|
+
description: 'The number of failed attestations',
|
|
39
|
+
valueType: ValueType.INT,
|
|
40
|
+
});
|
|
29
41
|
}
|
|
30
42
|
|
|
31
43
|
public reExecutionTimer(): () => void {
|
|
@@ -46,4 +58,14 @@ export class ValidatorMetrics {
|
|
|
46
58
|
[Attributes.BLOCK_PROPOSER]: (await proposal.getSender())?.toString(),
|
|
47
59
|
});
|
|
48
60
|
}
|
|
61
|
+
|
|
62
|
+
public incAttestations() {
|
|
63
|
+
this.attestationsCount.add(1);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
public incFailedAttestations(reason: string) {
|
|
67
|
+
this.failedAttestationsCount.add(1, {
|
|
68
|
+
[Attributes.ERROR_TYPE]: reason,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
49
71
|
}
|
package/src/validator.ts
CHANGED
|
@@ -197,6 +197,7 @@ export class ValidatorClient extends WithTracer implements Validator {
|
|
|
197
197
|
const invalidProposal = await this.blockProposalValidator.validate(proposal);
|
|
198
198
|
if (invalidProposal) {
|
|
199
199
|
this.log.verbose(`Proposal is not valid, skipping attestation`);
|
|
200
|
+
this.metrics.incFailedAttestations('invalid_proposal');
|
|
200
201
|
return undefined;
|
|
201
202
|
}
|
|
202
203
|
|
|
@@ -210,6 +211,12 @@ export class ValidatorClient extends WithTracer implements Validator {
|
|
|
210
211
|
await this.reExecuteTransactions(proposal);
|
|
211
212
|
}
|
|
212
213
|
} catch (error: any) {
|
|
214
|
+
if (error instanceof Error) {
|
|
215
|
+
this.metrics.incFailedAttestations(error.name);
|
|
216
|
+
} else {
|
|
217
|
+
this.metrics.incFailedAttestations('unknown');
|
|
218
|
+
}
|
|
219
|
+
|
|
213
220
|
// If the transactions are not available, then we should not attempt to attest
|
|
214
221
|
if (error instanceof TransactionsNotAvailableError) {
|
|
215
222
|
this.log.error(`Transactions not available, skipping attestation`, error, proposalInfo);
|
|
@@ -223,6 +230,7 @@ export class ValidatorClient extends WithTracer implements Validator {
|
|
|
223
230
|
|
|
224
231
|
// Provided all of the above checks pass, we can attest to the proposal
|
|
225
232
|
this.log.info(`Attesting to proposal for slot ${slotNumber}`, proposalInfo);
|
|
233
|
+
this.metrics.incAttestations();
|
|
226
234
|
|
|
227
235
|
// If the above function does not throw an error, then we can attest to the proposal
|
|
228
236
|
return this.doAttestToProposal(proposal);
|