@aztec/validator-client 2.0.0-nightly.20250828 → 2.0.0-nightly.20250830
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/factory.d.ts +1 -1
- package/dest/factory.d.ts.map +1 -1
- package/dest/validator.d.ts +3 -3
- package/dest/validator.d.ts.map +1 -1
- package/dest/validator.js +1 -3
- package/package.json +11 -11
- package/src/factory.ts +1 -7
- package/src/validator.ts +4 -30
package/dest/factory.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
|
|
|
8
8
|
import type { TelemetryClient } from '@aztec/telemetry-client';
|
|
9
9
|
import type { ValidatorClientConfig } from './config.js';
|
|
10
10
|
import { ValidatorClient } from './validator.js';
|
|
11
|
-
export declare function createValidatorClient(config: ValidatorClientConfig & Pick<SlasherConfig, '
|
|
11
|
+
export declare function createValidatorClient(config: ValidatorClientConfig & Pick<SlasherConfig, 'slashBroadcastedInvalidBlockPenalty'>, deps: {
|
|
12
12
|
blockBuilder: IFullNodeBlockBuilder;
|
|
13
13
|
p2pClient: P2PClient;
|
|
14
14
|
blockSource: L2BlockSource;
|
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,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAC5F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAC5F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAC,aAAa,EAAE,qCAAqC,CAAC,EAC1F,IAAI,EAAE;IACJ,YAAY,EAAE,qBAAqB,CAAC;IACpC,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,aAAa,CAAC;IAC3B,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,SAAS,EAAE,eAAe,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe,EAAE,eAAe,GAAG,SAAS,CAAC;CAC9C,+BAmBF"}
|
package/dest/validator.d.ts
CHANGED
|
@@ -48,15 +48,15 @@ export declare class ValidatorClient extends ValidatorClient_base implements Val
|
|
|
48
48
|
private epochCacheUpdateLoop;
|
|
49
49
|
private blockProposalValidator;
|
|
50
50
|
private proposersOfInvalidBlocks;
|
|
51
|
-
protected constructor(blockBuilder: IFullNodeBlockBuilder, keyStore: NodeKeystoreAdapter, epochCache: EpochCache, p2pClient: P2P, blockSource: L2BlockSource, l1ToL2MessageSource: L1ToL2MessageSource, txProvider: TxProvider, config: ValidatorClientConfig & Pick<SequencerConfig, 'txPublicSetupAllowList'> & Pick<SlasherConfig, '
|
|
51
|
+
protected constructor(blockBuilder: IFullNodeBlockBuilder, keyStore: NodeKeystoreAdapter, epochCache: EpochCache, p2pClient: P2P, blockSource: L2BlockSource, l1ToL2MessageSource: L1ToL2MessageSource, txProvider: TxProvider, config: ValidatorClientConfig & Pick<SequencerConfig, 'txPublicSetupAllowList'> & Pick<SlasherConfig, 'slashBroadcastedInvalidBlockPenalty'>, dateProvider?: DateProvider, telemetry?: TelemetryClient, log?: import("@aztec/foundation/log").Logger);
|
|
52
52
|
static validateKeyStoreConfiguration(keyStoreManager: KeystoreManager): void;
|
|
53
53
|
private handleEpochCommitteeUpdate;
|
|
54
|
-
static new(config: ValidatorClientConfig & Pick<SlasherConfig, '
|
|
54
|
+
static new(config: ValidatorClientConfig & Pick<SlasherConfig, 'slashBroadcastedInvalidBlockPenalty'>, blockBuilder: IFullNodeBlockBuilder, epochCache: EpochCache, p2pClient: P2P, blockSource: L2BlockSource, l1ToL2MessageSource: L1ToL2MessageSource, txProvider: TxProvider, keyStoreManager: KeystoreManager, dateProvider?: DateProvider, telemetry?: TelemetryClient): ValidatorClient;
|
|
55
55
|
getValidatorAddresses(): EthAddress[];
|
|
56
56
|
signWithAddress(addr: EthAddress, msg: TypedDataDefinition): Promise<import("@aztec/stdlib/block").Signature>;
|
|
57
57
|
getCoinbaseForAttestor(attestor: EthAddress): EthAddress;
|
|
58
58
|
getFeeRecipientForAttestor(attestor: EthAddress): AztecAddress;
|
|
59
|
-
configureSlashing(config: Partial<Pick<SlasherConfig, '
|
|
59
|
+
configureSlashing(config: Partial<Pick<SlasherConfig, 'slashBroadcastedInvalidBlockPenalty'>>): void;
|
|
60
60
|
start(): Promise<void>;
|
|
61
61
|
stop(): Promise<void>;
|
|
62
62
|
registerBlockProposalHandler(): void;
|
package/dest/validator.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAK9C,OAAO,EAAE,YAAY,EAAS,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAiD,UAAU,EAAE,MAAM,YAAY,CAAC;AAGvF,OAAO,EAEL,KAAK,aAAa,EAElB,KAAK,OAAO,EACZ,KAAK,cAAc,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAC9F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,EAAmB,KAAK,mBAAmB,EAAE,KAAK,cAAc,EAAE,KAAK,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAQ3G,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,MAAM,EAAsB,MAAM,yBAAyB,CAAC;AAGhG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"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"}
|
package/dest/validator.js
CHANGED
|
@@ -113,9 +113,7 @@ const MAX_PROPOSERS_OF_INVALID_BLOCKS = 1000;
|
|
|
113
113
|
return this.keyStore.getFeeRecipient(attestor);
|
|
114
114
|
}
|
|
115
115
|
configureSlashing(config) {
|
|
116
|
-
this.config.slashBroadcastedInvalidBlockEnabled = config.slashBroadcastedInvalidBlockEnabled ?? this.config.slashBroadcastedInvalidBlockEnabled;
|
|
117
116
|
this.config.slashBroadcastedInvalidBlockPenalty = config.slashBroadcastedInvalidBlockPenalty ?? this.config.slashBroadcastedInvalidBlockPenalty;
|
|
118
|
-
this.config.slashBroadcastedInvalidBlockMaxPenalty = config.slashBroadcastedInvalidBlockMaxPenalty ?? this.config.slashBroadcastedInvalidBlockMaxPenalty;
|
|
119
117
|
}
|
|
120
118
|
async start() {
|
|
121
119
|
// Sync the committee from the smart contract
|
|
@@ -249,7 +247,7 @@ const MAX_PROPOSERS_OF_INVALID_BLOCKS = 1000;
|
|
|
249
247
|
} catch (error) {
|
|
250
248
|
this.metrics.incFailedAttestations(1, error instanceof Error ? error.name : 'unknown');
|
|
251
249
|
this.log.error(`Error reexecuting txs while processing block proposal`, error, proposalInfo);
|
|
252
|
-
if (error instanceof ReExStateMismatchError && this.config.
|
|
250
|
+
if (error instanceof ReExStateMismatchError && this.config.slashBroadcastedInvalidBlockPenalty > 0n) {
|
|
253
251
|
this.log.warn(`Slashing proposer for invalid block proposal`, proposalInfo);
|
|
254
252
|
this.slashInvalidBlock(proposal);
|
|
255
253
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/validator-client",
|
|
3
|
-
"version": "2.0.0-nightly.
|
|
3
|
+
"version": "2.0.0-nightly.20250830",
|
|
4
4
|
"main": "dest/index.js",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -64,16 +64,16 @@
|
|
|
64
64
|
]
|
|
65
65
|
},
|
|
66
66
|
"dependencies": {
|
|
67
|
-
"@aztec/constants": "2.0.0-nightly.
|
|
68
|
-
"@aztec/epoch-cache": "2.0.0-nightly.
|
|
69
|
-
"@aztec/ethereum": "2.0.0-nightly.
|
|
70
|
-
"@aztec/foundation": "2.0.0-nightly.
|
|
71
|
-
"@aztec/node-keystore": "2.0.0-nightly.
|
|
72
|
-
"@aztec/p2p": "2.0.0-nightly.
|
|
73
|
-
"@aztec/prover-client": "2.0.0-nightly.
|
|
74
|
-
"@aztec/slasher": "2.0.0-nightly.
|
|
75
|
-
"@aztec/stdlib": "2.0.0-nightly.
|
|
76
|
-
"@aztec/telemetry-client": "2.0.0-nightly.
|
|
67
|
+
"@aztec/constants": "2.0.0-nightly.20250830",
|
|
68
|
+
"@aztec/epoch-cache": "2.0.0-nightly.20250830",
|
|
69
|
+
"@aztec/ethereum": "2.0.0-nightly.20250830",
|
|
70
|
+
"@aztec/foundation": "2.0.0-nightly.20250830",
|
|
71
|
+
"@aztec/node-keystore": "2.0.0-nightly.20250830",
|
|
72
|
+
"@aztec/p2p": "2.0.0-nightly.20250830",
|
|
73
|
+
"@aztec/prover-client": "2.0.0-nightly.20250830",
|
|
74
|
+
"@aztec/slasher": "2.0.0-nightly.20250830",
|
|
75
|
+
"@aztec/stdlib": "2.0.0-nightly.20250830",
|
|
76
|
+
"@aztec/telemetry-client": "2.0.0-nightly.20250830",
|
|
77
77
|
"koa": "^2.16.1",
|
|
78
78
|
"koa-router": "^12.0.0",
|
|
79
79
|
"tslib": "^2.4.0",
|
package/src/factory.ts
CHANGED
|
@@ -11,13 +11,7 @@ import type { ValidatorClientConfig } from './config.js';
|
|
|
11
11
|
import { ValidatorClient } from './validator.js';
|
|
12
12
|
|
|
13
13
|
export function createValidatorClient(
|
|
14
|
-
config: ValidatorClientConfig &
|
|
15
|
-
Pick<
|
|
16
|
-
SlasherConfig,
|
|
17
|
-
| 'slashBroadcastedInvalidBlockEnabled'
|
|
18
|
-
| 'slashBroadcastedInvalidBlockPenalty'
|
|
19
|
-
| 'slashBroadcastedInvalidBlockMaxPenalty'
|
|
20
|
-
>,
|
|
14
|
+
config: ValidatorClientConfig & Pick<SlasherConfig, 'slashBroadcastedInvalidBlockPenalty'>,
|
|
21
15
|
deps: {
|
|
22
16
|
blockBuilder: IFullNodeBlockBuilder;
|
|
23
17
|
p2pClient: P2PClient;
|
package/src/validator.ts
CHANGED
|
@@ -38,8 +38,6 @@ import { type TelemetryClient, type Tracer, getTelemetryClient } from '@aztec/te
|
|
|
38
38
|
import { EventEmitter } from 'events';
|
|
39
39
|
import type { TypedDataDefinition } from 'viem';
|
|
40
40
|
|
|
41
|
-
// import { privateKeyToAccount } from 'viem/accounts';
|
|
42
|
-
|
|
43
41
|
import type { ValidatorClientConfig } from './config.js';
|
|
44
42
|
import { ValidationService } from './duties/validation_service.js';
|
|
45
43
|
import { NodeKeystoreAdapter } from './key_store/node_keystore_adapter.js';
|
|
@@ -98,12 +96,7 @@ export class ValidatorClient extends (EventEmitter as new () => WatcherEmitter)
|
|
|
98
96
|
private txProvider: TxProvider,
|
|
99
97
|
private config: ValidatorClientConfig &
|
|
100
98
|
Pick<SequencerConfig, 'txPublicSetupAllowList'> &
|
|
101
|
-
Pick<
|
|
102
|
-
SlasherConfig,
|
|
103
|
-
| 'slashBroadcastedInvalidBlockEnabled'
|
|
104
|
-
| 'slashBroadcastedInvalidBlockPenalty'
|
|
105
|
-
| 'slashBroadcastedInvalidBlockMaxPenalty'
|
|
106
|
-
>,
|
|
99
|
+
Pick<SlasherConfig, 'slashBroadcastedInvalidBlockPenalty'>,
|
|
107
100
|
private dateProvider: DateProvider = new DateProvider(),
|
|
108
101
|
telemetry: TelemetryClient = getTelemetryClient(),
|
|
109
102
|
private log = createLogger('validator'),
|
|
@@ -171,13 +164,7 @@ export class ValidatorClient extends (EventEmitter as new () => WatcherEmitter)
|
|
|
171
164
|
}
|
|
172
165
|
|
|
173
166
|
static new(
|
|
174
|
-
config: ValidatorClientConfig &
|
|
175
|
-
Pick<
|
|
176
|
-
SlasherConfig,
|
|
177
|
-
| 'slashBroadcastedInvalidBlockEnabled'
|
|
178
|
-
| 'slashBroadcastedInvalidBlockPenalty'
|
|
179
|
-
| 'slashBroadcastedInvalidBlockMaxPenalty'
|
|
180
|
-
>,
|
|
167
|
+
config: ValidatorClientConfig & Pick<SlasherConfig, 'slashBroadcastedInvalidBlockPenalty'>,
|
|
181
168
|
blockBuilder: IFullNodeBlockBuilder,
|
|
182
169
|
epochCache: EpochCache,
|
|
183
170
|
p2pClient: P2P,
|
|
@@ -222,22 +209,9 @@ export class ValidatorClient extends (EventEmitter as new () => WatcherEmitter)
|
|
|
222
209
|
return this.keyStore.getFeeRecipient(attestor);
|
|
223
210
|
}
|
|
224
211
|
|
|
225
|
-
public configureSlashing(
|
|
226
|
-
config: Partial<
|
|
227
|
-
Pick<
|
|
228
|
-
SlasherConfig,
|
|
229
|
-
| 'slashBroadcastedInvalidBlockEnabled'
|
|
230
|
-
| 'slashBroadcastedInvalidBlockPenalty'
|
|
231
|
-
| 'slashBroadcastedInvalidBlockMaxPenalty'
|
|
232
|
-
>
|
|
233
|
-
>,
|
|
234
|
-
) {
|
|
235
|
-
this.config.slashBroadcastedInvalidBlockEnabled =
|
|
236
|
-
config.slashBroadcastedInvalidBlockEnabled ?? this.config.slashBroadcastedInvalidBlockEnabled;
|
|
212
|
+
public configureSlashing(config: Partial<Pick<SlasherConfig, 'slashBroadcastedInvalidBlockPenalty'>>) {
|
|
237
213
|
this.config.slashBroadcastedInvalidBlockPenalty =
|
|
238
214
|
config.slashBroadcastedInvalidBlockPenalty ?? this.config.slashBroadcastedInvalidBlockPenalty;
|
|
239
|
-
this.config.slashBroadcastedInvalidBlockMaxPenalty =
|
|
240
|
-
config.slashBroadcastedInvalidBlockMaxPenalty ?? this.config.slashBroadcastedInvalidBlockMaxPenalty;
|
|
241
215
|
}
|
|
242
216
|
|
|
243
217
|
public async start() {
|
|
@@ -401,7 +375,7 @@ export class ValidatorClient extends (EventEmitter as new () => WatcherEmitter)
|
|
|
401
375
|
} catch (error: any) {
|
|
402
376
|
this.metrics.incFailedAttestations(1, error instanceof Error ? error.name : 'unknown');
|
|
403
377
|
this.log.error(`Error reexecuting txs while processing block proposal`, error, proposalInfo);
|
|
404
|
-
if (error instanceof ReExStateMismatchError && this.config.
|
|
378
|
+
if (error instanceof ReExStateMismatchError && this.config.slashBroadcastedInvalidBlockPenalty > 0n) {
|
|
405
379
|
this.log.warn(`Slashing proposer for invalid block proposal`, proposalInfo);
|
|
406
380
|
this.slashInvalidBlock(proposal);
|
|
407
381
|
}
|