@lodestar/validator 1.45.0 → 1.46.0-dev.4191d8e353
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/lib/genesis.d.ts.map +1 -1
- package/lib/genesis.js +7 -3
- package/lib/genesis.js.map +1 -1
- package/lib/metrics.d.ts +3 -0
- package/lib/metrics.d.ts.map +1 -1
- package/lib/metrics.js +5 -0
- package/lib/metrics.js.map +1 -1
- package/lib/services/block.d.ts +1 -0
- package/lib/services/block.d.ts.map +1 -1
- package/lib/services/block.js +86 -40
- package/lib/services/block.js.map +1 -1
- package/lib/services/validatorStore.d.ts +1 -1
- package/lib/services/validatorStore.d.ts.map +1 -1
- package/lib/services/validatorStore.js +12 -6
- package/lib/services/validatorStore.js.map +1 -1
- package/lib/util/index.d.ts +0 -1
- package/lib/util/index.d.ts.map +1 -1
- package/lib/util/index.js +0 -1
- package/lib/util/index.js.map +1 -1
- package/lib/validator.d.ts +1 -0
- package/lib/validator.d.ts.map +1 -1
- package/lib/validator.js +5 -2
- package/lib/validator.js.map +1 -1
- package/package.json +15 -15
- package/src/genesis.ts +6 -4
- package/src/metrics.ts +6 -0
- package/src/services/block.ts +111 -51
- package/src/services/validatorStore.ts +22 -7
- package/src/util/index.ts +0 -1
- package/src/validator.ts +12 -2
- package/lib/util/params.d.ts +0 -20
- package/lib/util/params.d.ts.map +0 -1
- package/lib/util/params.js +0 -295
- package/lib/util/params.js.map +0 -1
- package/src/util/params.ts +0 -341
package/lib/validator.d.ts
CHANGED
package/lib/validator.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,cAAc,EAA0B,MAAM,EAAC,MAAM,eAAe,CAAC;AACxF,OAAO,
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"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"}
|
package/lib/validator.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defaultInit, getClient } from "@lodestar/api";
|
|
2
|
-
import { createBeaconConfig } from "@lodestar/config";
|
|
2
|
+
import { NotEqualParamsError, assertEqualParams, createBeaconConfig, } from "@lodestar/config";
|
|
3
3
|
import { computeEpochAtSlot, getCurrentSlot } from "@lodestar/state-transition";
|
|
4
4
|
import { ssz } from "@lodestar/types";
|
|
5
5
|
import { toPrintableUrl, toRootHex } from "@lodestar/utils";
|
|
@@ -20,7 +20,7 @@ import { SyncCommitteeService } from "./services/syncCommittee.js";
|
|
|
20
20
|
import { SyncingStatusTracker } from "./services/syncingStatusTracker.js";
|
|
21
21
|
import { ValidatorStore, defaultOptions } from "./services/validatorStore.js";
|
|
22
22
|
import { Clock } from "./util/clock.js";
|
|
23
|
-
import {
|
|
23
|
+
import { getLoggerVc } from "./util/index.js";
|
|
24
24
|
// TODO: Extend the timeout, and let it be customizable
|
|
25
25
|
/// The global timeout for HTTP requests to the beacon node.
|
|
26
26
|
// const HTTP_TIMEOUT_MS = 12 * 1000;
|
|
@@ -144,6 +144,9 @@ export class Validator {
|
|
|
144
144
|
const blockProposingService = new BlockProposingService(config, loggerVc, api, clock, validatorStore, blockDutiesService, metrics, {
|
|
145
145
|
broadcastValidation: opts.broadcastValidation ?? defaultOptions.broadcastValidation,
|
|
146
146
|
blindedLocal: opts.blindedLocal ?? defaultOptions.blindedLocal,
|
|
147
|
+
// Default to keeping the payload local to the beacon node if only a single node is
|
|
148
|
+
// configured, with multiple nodes the stateless flow allows publishing via any of them
|
|
149
|
+
payloadLocal: opts.payloadLocal ?? api.httpClient.urlsInits.length <= 1,
|
|
147
150
|
});
|
|
148
151
|
const attestationService = new AttestationService(loggerVc, api, clock, validatorStore, emitter, chainHeaderTracker, syncingStatusTracker, metrics, config, {
|
|
149
152
|
afterBlockDelaySlotFraction: opts.afterBlockDelaySlotFraction,
|
package/lib/validator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lodestar/validator",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.46.0-dev.4191d8e353",
|
|
4
4
|
"description": "A Typescript implementation of the validator client",
|
|
5
5
|
"author": "ChainSafe Systems",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"type": "module",
|
|
12
12
|
"exports": {
|
|
13
13
|
".": {
|
|
14
|
-
"
|
|
14
|
+
"typescript": "./src/index.ts",
|
|
15
15
|
"types": "./lib/index.d.ts",
|
|
16
16
|
"import": "./lib/index.js"
|
|
17
17
|
}
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
"test": "pnpm test:unit && pnpm test:e2e",
|
|
35
35
|
"test:spec": "vitest run --project spec-minimal",
|
|
36
36
|
"test:e2e": "vitest run --project e2e --project e2e-mainnet",
|
|
37
|
-
"download-spec-tests": "node --
|
|
38
|
-
"check-readme": "pnpm exec
|
|
37
|
+
"download-spec-tests": "node --import tsx test/spec/downloadTests.ts",
|
|
38
|
+
"check-readme": "pnpm exec tsx ../../scripts/check_readme.ts"
|
|
39
39
|
},
|
|
40
40
|
"repository": {
|
|
41
41
|
"type": "git",
|
|
@@ -50,21 +50,21 @@
|
|
|
50
50
|
"dependencies": {
|
|
51
51
|
"@chainsafe/blst": "^2.2.0",
|
|
52
52
|
"@chainsafe/ssz": "^1.6.2",
|
|
53
|
-
"@lodestar/api": "^1.
|
|
54
|
-
"@lodestar/config": "^1.
|
|
55
|
-
"@lodestar/db": "^1.
|
|
56
|
-
"@lodestar/params": "^1.
|
|
57
|
-
"@lodestar/state-transition": "^1.
|
|
58
|
-
"@lodestar/types": "^1.
|
|
59
|
-
"@lodestar/utils": "^1.
|
|
53
|
+
"@lodestar/api": "^1.46.0-dev.4191d8e353",
|
|
54
|
+
"@lodestar/config": "^1.46.0-dev.4191d8e353",
|
|
55
|
+
"@lodestar/db": "^1.46.0-dev.4191d8e353",
|
|
56
|
+
"@lodestar/params": "^1.46.0-dev.4191d8e353",
|
|
57
|
+
"@lodestar/state-transition": "^1.46.0-dev.4191d8e353",
|
|
58
|
+
"@lodestar/types": "^1.46.0-dev.4191d8e353",
|
|
59
|
+
"@lodestar/utils": "^1.46.0-dev.4191d8e353",
|
|
60
60
|
"strict-event-emitter-types": "^2.0.0"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
|
-
"@lodestar/logger": "^1.
|
|
64
|
-
"@lodestar/spec-test-util": "^1.
|
|
65
|
-
"@lodestar/test-utils": "^1.
|
|
63
|
+
"@lodestar/logger": "^1.46.0-dev.4191d8e353",
|
|
64
|
+
"@lodestar/spec-test-util": "^1.46.0-dev.4191d8e353",
|
|
65
|
+
"@lodestar/test-utils": "^1.46.0-dev.4191d8e353",
|
|
66
66
|
"@vekexasia/bigint-buffer2": "^1.1.1",
|
|
67
67
|
"rimraf": "^4.4.1"
|
|
68
68
|
},
|
|
69
|
-
"gitHead": "
|
|
69
|
+
"gitHead": "b89fa86b332f17a1669788af878fbd0d4a1cdbfe"
|
|
70
70
|
}
|
package/src/genesis.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {ApiClient} from "@lodestar/api";
|
|
1
|
+
import {ApiClient, ApiError, HttpStatusCode} from "@lodestar/api";
|
|
2
2
|
import {Genesis} from "@lodestar/types/phase0";
|
|
3
3
|
import {Logger, sleep} from "@lodestar/utils";
|
|
4
4
|
|
|
@@ -10,9 +10,11 @@ export async function waitForGenesis(api: ApiClient, logger: Logger, signal?: Ab
|
|
|
10
10
|
try {
|
|
11
11
|
return (await api.beacon.getGenesis()).value();
|
|
12
12
|
} catch (e) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
if (e instanceof ApiError && e.status === HttpStatusCode.NOT_FOUND) {
|
|
14
|
+
logger.info("Waiting for genesis", {message: e.message});
|
|
15
|
+
} else {
|
|
16
|
+
logger.warn("Failed to fetch genesis", {message: (e as Error).message});
|
|
17
|
+
}
|
|
16
18
|
await sleep(WAITING_FOR_GENESIS_POLL_MS, signal);
|
|
17
19
|
}
|
|
18
20
|
}
|
package/src/metrics.ts
CHANGED
|
@@ -194,6 +194,12 @@ export function getMetrics(register: MetricsRegisterExtra, gitData: LodestarGitD
|
|
|
194
194
|
labelNames: ["error"],
|
|
195
195
|
}),
|
|
196
196
|
|
|
197
|
+
payloadEnvelopeProposingErrors: register.gauge<{error: "produce" | "publish"}>({
|
|
198
|
+
name: "vc_payload_envelope_proposing_errors_total",
|
|
199
|
+
help: "Total count of errors producing or publishing an execution payload envelope",
|
|
200
|
+
labelNames: ["error"],
|
|
201
|
+
}),
|
|
202
|
+
|
|
197
203
|
// BlockDutiesService
|
|
198
204
|
|
|
199
205
|
proposerDutiesEpochCount: register.gauge({
|
package/src/services/block.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {ApiClient, routes} from "@lodestar/api";
|
|
2
2
|
import {ChainForkConfig} from "@lodestar/config";
|
|
3
|
-
import {BUILDER_INDEX_SELF_BUILD, isForkPostGloas} from "@lodestar/params";
|
|
3
|
+
import {BUILDER_INDEX_SELF_BUILD, ForkPostGloas, isForkPostGloas} from "@lodestar/params";
|
|
4
4
|
import {
|
|
5
5
|
BLSPubkey,
|
|
6
6
|
BLSSignature,
|
|
@@ -39,6 +39,7 @@ type DebugLogCtx = {debugLogCtx: Record<string, string | boolean | undefined>};
|
|
|
39
39
|
type BlockProposalOpts = {
|
|
40
40
|
broadcastValidation: routes.beacon.BroadcastValidation;
|
|
41
41
|
blindedLocal: boolean;
|
|
42
|
+
payloadLocal: boolean;
|
|
42
43
|
};
|
|
43
44
|
/**
|
|
44
45
|
* Service that sets up and handles validator block proposal duties.
|
|
@@ -166,11 +167,19 @@ export class BlockProposingService {
|
|
|
166
167
|
}
|
|
167
168
|
|
|
168
169
|
/**
|
|
169
|
-
* Gloas
|
|
170
|
-
* 1. Produce beacon block
|
|
171
|
-
*
|
|
172
|
-
*
|
|
173
|
-
*
|
|
170
|
+
* Gloas block production flow:
|
|
171
|
+
* 1. Produce the beacon block, which commits to an execution payload bid. When self-building with
|
|
172
|
+
* the stateless flow (`payloadLocal=false`), the response also includes the full block contents
|
|
173
|
+
* (execution payload envelope, KZG proofs and blobs).
|
|
174
|
+
* 2. Sign and publish the beacon block.
|
|
175
|
+
* 3. Reveal the execution payload envelope:
|
|
176
|
+
* - Self-build: the proposer signs and publishes the envelope
|
|
177
|
+
* - Stateless (`payloadLocal=false`): envelope and blobs are already available from step 1,
|
|
178
|
+
* publish `SignedExecutionPayloadEnvelopeContents` which can be sent via any beacon node
|
|
179
|
+
* - Stateful (`payloadLocal=true`): fetch the envelope from the beacon node that produced the
|
|
180
|
+
* block, then publish the bare `SignedExecutionPayloadEnvelope` back to it; that node
|
|
181
|
+
* attaches the cached blobs and KZG proofs
|
|
182
|
+
* - Builder bid: the builder reveals the envelope, so the proposer does nothing further
|
|
174
183
|
*/
|
|
175
184
|
private async createAndPublishBlockGloas(pubkey: BLSPubkey, slot: Slot): Promise<void> {
|
|
176
185
|
const pubkeyHex = toPubkeyHex(pubkey);
|
|
@@ -180,8 +189,11 @@ export class BlockProposingService {
|
|
|
180
189
|
const randaoReveal = await this.validatorStore.signRandao(pubkey, slot);
|
|
181
190
|
const graffiti = this.validatorStore.getGraffiti(pubkeyHex);
|
|
182
191
|
const feeRecipient = this.validatorStore.getFeeRecipient(pubkeyHex);
|
|
192
|
+
const {broadcastValidation, payloadLocal} = this.opts;
|
|
193
|
+
const {selection: builderSelection, boostFactor: builderBoostFactor} =
|
|
194
|
+
this.validatorStore.getBuilderSelectionParams(pubkeyHex, slot);
|
|
183
195
|
|
|
184
|
-
this.logger.debug("Producing block", {...debugLogCtx, feeRecipient});
|
|
196
|
+
this.logger.debug("Producing block", {...debugLogCtx, feeRecipient, payloadLocal, builderSelection});
|
|
185
197
|
this.metrics?.proposerStepCallProduceBlock.observe(this.clock.secFromSlot(slot));
|
|
186
198
|
|
|
187
199
|
// Step 1: Produce beacon block with execution payload bid
|
|
@@ -191,19 +203,29 @@ export class BlockProposingService {
|
|
|
191
203
|
randaoReveal,
|
|
192
204
|
graffiti,
|
|
193
205
|
feeRecipient,
|
|
206
|
+
includePayload: !payloadLocal,
|
|
207
|
+
builderSelection,
|
|
208
|
+
builderBoostFactor,
|
|
194
209
|
})
|
|
195
210
|
.catch((e: Error) => {
|
|
196
211
|
this.metrics?.blockProposingErrors.inc({error: "produce"});
|
|
197
212
|
throw extendError(e, "Failed to produce block");
|
|
198
213
|
});
|
|
199
|
-
const
|
|
214
|
+
const blockOrContents = blockRes.value();
|
|
200
215
|
const blockMeta = blockRes.meta();
|
|
216
|
+
const {executionPayloadIncluded} = blockMeta;
|
|
217
|
+
const block = executionPayloadIncluded
|
|
218
|
+
? (blockOrContents as BlockContents<ForkPostGloas>).block
|
|
219
|
+
: (blockOrContents as BeaconBlock<ForkPostGloas>);
|
|
201
220
|
const beaconBlockRoot = this.config.getForkTypes(slot).BeaconBlock.hashTreeRoot(block);
|
|
202
221
|
const blockRootHex = toRootHex(beaconBlockRoot);
|
|
203
222
|
|
|
204
223
|
this.logger.debug("Produced block", {
|
|
205
224
|
...debugLogCtx,
|
|
225
|
+
executionPayloadValue: prettyWeiToEth(blockMeta.executionPayloadValue),
|
|
206
226
|
consensusBlockValue: prettyWeiToEth(blockMeta.consensusBlockValue),
|
|
227
|
+
totalBlockValue: prettyWeiToEth(blockMeta.executionPayloadValue + blockMeta.consensusBlockValue),
|
|
228
|
+
executionPayloadIncluded,
|
|
207
229
|
blockRoot: blockRootHex,
|
|
208
230
|
});
|
|
209
231
|
this.metrics?.blocksProduced.inc();
|
|
@@ -211,8 +233,6 @@ export class BlockProposingService {
|
|
|
211
233
|
// Step 2: Sign and publish the beacon block
|
|
212
234
|
const signedBlock = await this.validatorStore.signBlock(pubkey, block, slot, this.logger);
|
|
213
235
|
|
|
214
|
-
const {broadcastValidation} = this.opts;
|
|
215
|
-
|
|
216
236
|
// Publish the block first so it propagates as soon as possible. This reduces the chance other nodes
|
|
217
237
|
// see the payload envelope before the block over gossip and have to queue it. There's also plenty of
|
|
218
238
|
// time left in the slot to propagate the payload, so publishing it in parallel is unnecessary.
|
|
@@ -224,63 +244,105 @@ export class BlockProposingService {
|
|
|
224
244
|
})
|
|
225
245
|
.catch((e: Error) => {
|
|
226
246
|
this.metrics?.blockProposingErrors.inc({error: "publish"});
|
|
227
|
-
throw extendError(e,
|
|
247
|
+
throw extendError(e, `Failed to publish block slot=${slot} blockRoot=${blockRootHex}`);
|
|
228
248
|
})
|
|
229
249
|
).assertOk();
|
|
230
250
|
|
|
231
|
-
this.logger.
|
|
251
|
+
this.logger.info("Published beacon block", {
|
|
252
|
+
...logCtx,
|
|
253
|
+
graffiti,
|
|
254
|
+
executionPayloadValue: prettyWeiToEth(blockMeta.executionPayloadValue),
|
|
255
|
+
consensusBlockValue: prettyWeiToEth(blockMeta.consensusBlockValue),
|
|
256
|
+
totalBlockValue: prettyWeiToEth(blockMeta.executionPayloadValue + blockMeta.consensusBlockValue),
|
|
257
|
+
blockRoot: blockRootHex,
|
|
258
|
+
broadcastValidation,
|
|
259
|
+
});
|
|
260
|
+
this.metrics?.proposerStepCallPublishBlock.observe(this.clock.secFromSlot(slot));
|
|
261
|
+
this.metrics?.blocksPublished.inc();
|
|
232
262
|
|
|
233
263
|
const isSelfBuild = block.body.signedExecutionPayloadBid.message.builderIndex === BUILDER_INDEX_SELF_BUILD;
|
|
234
264
|
|
|
235
265
|
if (isSelfBuild) {
|
|
236
266
|
// Self-build: proposer is responsible for building and publishing the execution payload envelope
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
267
|
+
const flow = executionPayloadIncluded ? "stateless" : "stateful";
|
|
268
|
+
if (executionPayloadIncluded) {
|
|
269
|
+
// Stateless flow: envelope and blobs are already available from block production
|
|
270
|
+
const {executionPayloadEnvelope, kzgProofs, blobs} = blockOrContents as BlockContents<ForkPostGloas>;
|
|
271
|
+
|
|
272
|
+
// Step 3: Sign and publish the envelope with blobs and KZG proofs
|
|
273
|
+
const signedEnvelope = await this.validatorStore.signExecutionPayloadEnvelope(
|
|
274
|
+
pubkey,
|
|
275
|
+
executionPayloadEnvelope,
|
|
276
|
+
slot,
|
|
277
|
+
this.logger
|
|
278
|
+
);
|
|
279
|
+
|
|
280
|
+
(
|
|
281
|
+
await this.api.beacon
|
|
282
|
+
.publishExecutionPayloadEnvelope({
|
|
283
|
+
signedEnvelopeOrContents: {signedExecutionPayloadEnvelope: signedEnvelope, kzgProofs, blobs},
|
|
284
|
+
broadcastValidation,
|
|
285
|
+
})
|
|
286
|
+
.catch((e: Error) => {
|
|
287
|
+
this.metrics?.payloadEnvelopeProposingErrors.inc({error: "publish"});
|
|
288
|
+
throw extendError(
|
|
289
|
+
e,
|
|
290
|
+
`Failed to publish execution payload envelope slot=${slot} blockRoot=${blockRootHex} flow=${flow}`
|
|
291
|
+
);
|
|
292
|
+
})
|
|
293
|
+
).assertOk();
|
|
294
|
+
} else {
|
|
295
|
+
// Stateful flow: fetch the envelope from the same beacon node that produced the block
|
|
296
|
+
const envelopeRes = await this.api.validator
|
|
297
|
+
.getExecutionPayloadEnvelope({
|
|
298
|
+
slot,
|
|
299
|
+
beaconBlockRoot,
|
|
258
300
|
})
|
|
259
301
|
.catch((e: Error) => {
|
|
260
|
-
this.metrics?.
|
|
261
|
-
throw extendError(e,
|
|
262
|
-
})
|
|
263
|
-
|
|
302
|
+
this.metrics?.payloadEnvelopeProposingErrors.inc({error: "produce"});
|
|
303
|
+
throw extendError(e, `Failed to get execution payload envelope slot=${slot} blockRoot=${blockRootHex}`);
|
|
304
|
+
});
|
|
305
|
+
const envelope = envelopeRes.value();
|
|
306
|
+
|
|
307
|
+
this.logger.debug("Retrieved execution payload envelope", debugLogCtx);
|
|
308
|
+
|
|
309
|
+
// Step 3: Sign and publish the envelope, beacon node attaches blobs and KZG proofs from its cache
|
|
310
|
+
const signedEnvelope = await this.validatorStore.signExecutionPayloadEnvelope(
|
|
311
|
+
pubkey,
|
|
312
|
+
envelope,
|
|
313
|
+
slot,
|
|
314
|
+
this.logger
|
|
315
|
+
);
|
|
316
|
+
|
|
317
|
+
(
|
|
318
|
+
await this.api.beacon
|
|
319
|
+
.publishExecutionPayloadEnvelope({
|
|
320
|
+
signedEnvelopeOrContents: signedEnvelope,
|
|
321
|
+
broadcastValidation,
|
|
322
|
+
})
|
|
323
|
+
.catch((e: Error) => {
|
|
324
|
+
this.metrics?.payloadEnvelopeProposingErrors.inc({error: "publish"});
|
|
325
|
+
throw extendError(
|
|
326
|
+
e,
|
|
327
|
+
`Failed to publish execution payload envelope slot=${slot} blockRoot=${blockRootHex} flow=${flow}`
|
|
328
|
+
);
|
|
329
|
+
})
|
|
330
|
+
).assertOk();
|
|
331
|
+
}
|
|
264
332
|
|
|
265
|
-
this.logger.info("Published
|
|
333
|
+
this.logger.info("Published execution payload envelope", {
|
|
266
334
|
...logCtx,
|
|
267
|
-
graffiti,
|
|
268
|
-
consensusBlockValue: prettyWeiToEth(blockMeta.consensusBlockValue),
|
|
269
335
|
blockRoot: blockRootHex,
|
|
336
|
+
flow,
|
|
270
337
|
});
|
|
271
338
|
} else {
|
|
272
|
-
//
|
|
273
|
-
this.logger.info("
|
|
339
|
+
// Committed to a builder bid, the builder is responsible for revealing the execution payload envelope
|
|
340
|
+
this.logger.info("Execution payload envelope to be revealed by builder", {
|
|
274
341
|
...logCtx,
|
|
275
|
-
graffiti,
|
|
276
342
|
builderIndex: block.body.signedExecutionPayloadBid.message.builderIndex,
|
|
277
|
-
consensusBlockValue: prettyWeiToEth(blockMeta.consensusBlockValue),
|
|
278
343
|
blockRoot: blockRootHex,
|
|
279
344
|
});
|
|
280
345
|
}
|
|
281
|
-
|
|
282
|
-
this.metrics?.proposerStepCallPublishBlock.observe(this.clock.secFromSlot(slot));
|
|
283
|
-
this.metrics?.blocksPublished.inc();
|
|
284
346
|
}
|
|
285
347
|
|
|
286
348
|
private publishBlockWrapper = async (
|
|
@@ -353,10 +415,8 @@ function parseProduceBlockResponse(
|
|
|
353
415
|
const executionPayloadSource = response.executionPayloadSource;
|
|
354
416
|
|
|
355
417
|
if (
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
(builderSelection === routes.validator.BuilderSelection.ExecutionOnly &&
|
|
359
|
-
executionPayloadSource === ProducedBlockSource.builder)
|
|
418
|
+
builderSelection === routes.validator.BuilderSelection.ExecutionOnly &&
|
|
419
|
+
executionPayloadSource === ProducedBlockSource.builder
|
|
360
420
|
) {
|
|
361
421
|
throw Error(
|
|
362
422
|
`Block not produced as per desired builderSelection=${builderSelection} executionPayloadSource=${executionPayloadSource}`
|
|
@@ -81,7 +81,8 @@ type DefaultProposerConfig = {
|
|
|
81
81
|
feeRecipient: ExecutionAddress;
|
|
82
82
|
builder: {
|
|
83
83
|
gasLimit: number;
|
|
84
|
-
|
|
84
|
+
// Left undefined when not configured so the fork-appropriate default can be resolved per slot
|
|
85
|
+
selection?: routes.validator.BuilderSelection;
|
|
85
86
|
boostFactor: bigint;
|
|
86
87
|
};
|
|
87
88
|
};
|
|
@@ -182,7 +183,7 @@ export class ValidatorStore {
|
|
|
182
183
|
feeRecipient: defaultConfig.feeRecipient ?? defaultOptions.suggestedFeeRecipient,
|
|
183
184
|
builder: {
|
|
184
185
|
gasLimit: defaultConfig.builder?.gasLimit ?? defaultOptions.defaultGasLimit,
|
|
185
|
-
selection: defaultConfig.builder?.selection
|
|
186
|
+
selection: defaultConfig.builder?.selection,
|
|
186
187
|
boostFactor: builderBoostFactor,
|
|
187
188
|
},
|
|
188
189
|
};
|
|
@@ -278,9 +279,21 @@ export class ValidatorStore {
|
|
|
278
279
|
delete validatorData.graffiti;
|
|
279
280
|
}
|
|
280
281
|
|
|
281
|
-
getBuilderSelectionParams(
|
|
282
|
+
getBuilderSelectionParams(
|
|
283
|
+
pubkeyHex: PubkeyHex,
|
|
284
|
+
slot?: Slot
|
|
285
|
+
): {selection: routes.validator.BuilderSelection; boostFactor: bigint} {
|
|
286
|
+
// Builder bids post-gloas are in-protocol over p2p, so the default strategy uses them
|
|
287
|
+
// (as if `--builder` was set), unless the validator explicitly opted out. Pre-gloas
|
|
288
|
+
// there is no in-protocol builder, so the default remains local-only (executiononly).
|
|
289
|
+
const defaultSelection =
|
|
290
|
+
slot !== undefined && this.config.getForkSeq(slot) >= ForkSeq.gloas
|
|
291
|
+
? defaultOptions.builderAliasSelection
|
|
292
|
+
: defaultOptions.builderSelection;
|
|
282
293
|
const selection =
|
|
283
|
-
this.validators.get(pubkeyHex)?.builder?.selection ??
|
|
294
|
+
this.validators.get(pubkeyHex)?.builder?.selection ??
|
|
295
|
+
this.defaultProposerConfig.builder.selection ??
|
|
296
|
+
defaultSelection;
|
|
284
297
|
|
|
285
298
|
let boostFactor: bigint;
|
|
286
299
|
switch (selection) {
|
|
@@ -607,9 +620,11 @@ export class ValidatorStore {
|
|
|
607
620
|
const signingSlot = aggregate.data.slot;
|
|
608
621
|
const domain = this.config.getDomain(signingSlot, DOMAIN_AGGREGATE_AND_PROOF);
|
|
609
622
|
const isPostElectra = this.config.getForkSeq(signingSlot) >= ForkSeq.electra;
|
|
610
|
-
const signingRoot =
|
|
611
|
-
|
|
612
|
-
|
|
623
|
+
const signingRoot = computeSigningRoot(
|
|
624
|
+
this.config.getForkTypes(signingSlot).AggregateAndProof,
|
|
625
|
+
aggregateAndProof,
|
|
626
|
+
domain
|
|
627
|
+
);
|
|
613
628
|
|
|
614
629
|
const signableMessage: SignableMessage = {
|
|
615
630
|
type: isPostElectra ? SignableMessageType.AGGREGATE_AND_PROOF_V2 : SignableMessageType.AGGREGATE_AND_PROOF,
|
package/src/util/index.ts
CHANGED
package/src/validator.ts
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import {ApiClient, ApiRequestInit, defaultInit, getClient, routes} from "@lodestar/api";
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
BeaconConfig,
|
|
4
|
+
ChainForkConfig,
|
|
5
|
+
NotEqualParamsError,
|
|
6
|
+
assertEqualParams,
|
|
7
|
+
createBeaconConfig,
|
|
8
|
+
} from "@lodestar/config";
|
|
3
9
|
import {computeEpochAtSlot, getCurrentSlot} from "@lodestar/state-transition";
|
|
4
10
|
import {BLSPubkey, phase0, ssz} from "@lodestar/types";
|
|
5
11
|
import {Genesis} from "@lodestar/types/phase0";
|
|
@@ -24,7 +30,7 @@ import {Signer, ValidatorProposerConfig, ValidatorStore, defaultOptions} from ".
|
|
|
24
30
|
import {ISlashingProtection, Interchange, InterchangeFormatVersion} from "./slashingProtection/index.js";
|
|
25
31
|
import {LodestarValidatorDatabaseController, ProcessShutdownCallback, PubkeyHex} from "./types.js";
|
|
26
32
|
import {Clock, ClockOptions, IClock} from "./util/clock.js";
|
|
27
|
-
import {
|
|
33
|
+
import {getLoggerVc} from "./util/index.js";
|
|
28
34
|
|
|
29
35
|
export type ValidatorModules = {
|
|
30
36
|
opts: ValidatorOptions;
|
|
@@ -66,6 +72,7 @@ export type ValidatorOptions = {
|
|
|
66
72
|
distributed?: boolean;
|
|
67
73
|
broadcastValidation?: routes.beacon.BroadcastValidation;
|
|
68
74
|
blindedLocal?: boolean;
|
|
75
|
+
payloadLocal?: boolean;
|
|
69
76
|
externalSigner?: ExternalSignerOptions;
|
|
70
77
|
clock?: ClockOptions;
|
|
71
78
|
};
|
|
@@ -256,6 +263,9 @@ export class Validator {
|
|
|
256
263
|
{
|
|
257
264
|
broadcastValidation: opts.broadcastValidation ?? defaultOptions.broadcastValidation,
|
|
258
265
|
blindedLocal: opts.blindedLocal ?? defaultOptions.blindedLocal,
|
|
266
|
+
// Default to keeping the payload local to the beacon node if only a single node is
|
|
267
|
+
// configured, with multiple nodes the stateless flow allows publishing via any of them
|
|
268
|
+
payloadLocal: opts.payloadLocal ?? api.httpClient.urlsInits.length <= 1,
|
|
259
269
|
}
|
|
260
270
|
);
|
|
261
271
|
|
package/lib/util/params.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { ChainConfig, SpecJson } from "@lodestar/config";
|
|
2
|
-
export declare class NotEqualParamsError extends Error {
|
|
3
|
-
}
|
|
4
|
-
/**
|
|
5
|
-
* Assert localConfig values match externalSpecJson. externalSpecJson may contain more values than localConfig.
|
|
6
|
-
*
|
|
7
|
-
* This check ensures that the validator is connected to a beacon node of the exact same network and params.
|
|
8
|
-
* Otherwise, signatures may be rejected, time may be un-equal and other bugs that are harder to debug caused
|
|
9
|
-
* by different parameters.
|
|
10
|
-
*
|
|
11
|
-
* This check however can't compare the full config as is, since some parameters are not critical to the spec and
|
|
12
|
-
* can be changed un-expectedly. Also, fork parameters can change un-expectedly, like their _FORK_VERSION or _EPOCH.
|
|
13
|
-
* Note that the config API endpoint is not precisely specified, so each clients can return a different set of
|
|
14
|
-
* parameters.
|
|
15
|
-
*
|
|
16
|
-
* So this check only compares a specific list of parameters that are consensus critical, ignoring the rest. Typed
|
|
17
|
-
* config and preset ensure new parameters are labeled critical or ignore, facilitating maintenance of the list.
|
|
18
|
-
*/
|
|
19
|
-
export declare function assertEqualParams(localConfig: ChainConfig, externalSpecJson: SpecJson): void;
|
|
20
|
-
//# sourceMappingURL=params.d.ts.map
|
package/lib/util/params.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../../src/util/params.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,WAAW,EAAE,QAAQ,EAA6C,MAAM,kBAAkB,CAAC;AAGtH,qBAAa,mBAAoB,SAAQ,KAAK;CAAG;AAIjD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,QAAQ,GAAG,IAAI,CAyE5F"}
|