@lodestar/validator 1.50.0-dev.055a216e01 → 1.50.0-dev.0837ebd402

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/validator.js CHANGED
@@ -8,14 +8,13 @@ import { MetaDataRepository } from "./repositories/metaDataRepository.js";
8
8
  import { AttestationService } from "./services/attestation.js";
9
9
  import { BlockProposingService } from "./services/block.js";
10
10
  import { BlockDutiesService } from "./services/blockDuties.js";
11
- import { BuilderPreferencesService } from "./services/builderPreferences.js";
12
11
  import { ChainHeaderTracker } from "./services/chainHeaderTracker.js";
13
12
  import { DoppelgangerService } from "./services/doppelgangerService.js";
14
13
  import { ValidatorEventEmitter } from "./services/emitter.js";
15
14
  import { pollExternalSignerPubkeys } from "./services/externalSignerSync.js";
16
15
  import { IndicesService } from "./services/indices.js";
17
16
  import { pollBuilderValidatorRegistration, pollPrepareBeaconProposer } from "./services/prepareBeaconProposer.js";
18
- import { ProposerPreferencesService } from "./services/proposerPreferences.js";
17
+ import { ProposalPreferencesService } from "./services/proposalPreferences.js";
19
18
  import { PtcService } from "./services/ptc.js";
20
19
  import { SyncCommitteeService } from "./services/syncCommittee.js";
21
20
  import { SyncingStatusTracker } from "./services/syncingStatusTracker.js";
@@ -157,8 +156,7 @@ export class Validator {
157
156
  scAfterBlockDelaySlotFraction: opts.scAfterBlockDelaySlotFraction,
158
157
  distributedAggregationSelection: opts.distributed,
159
158
  });
160
- new ProposerPreferencesService(config, loggerVc, api, clock, validatorStore, blockDutiesService, metrics);
161
- new BuilderPreferencesService(config, loggerVc, api, clock, validatorStore, blockDutiesService, metrics);
159
+ new ProposalPreferencesService(config, loggerVc, api, clock, validatorStore, blockDutiesService, metrics);
162
160
  return new Validator({
163
161
  opts,
164
162
  genesis,
@@ -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.50.0-dev.055a216e01",
3
+ "version": "1.50.0-dev.0837ebd402",
4
4
  "description": "A Typescript implementation of the validator client",
5
5
  "author": "ChainSafe Systems",
6
6
  "license": "Apache-2.0",
@@ -50,21 +50,21 @@
50
50
  "dependencies": {
51
51
  "@chainsafe/lodestar-z": "catalog:",
52
52
  "@chainsafe/ssz": "^1.8.1",
53
- "@lodestar/api": "^1.50.0-dev.055a216e01",
54
- "@lodestar/config": "^1.50.0-dev.055a216e01",
55
- "@lodestar/db": "^1.50.0-dev.055a216e01",
56
- "@lodestar/params": "^1.50.0-dev.055a216e01",
57
- "@lodestar/state-transition": "^1.50.0-dev.055a216e01",
58
- "@lodestar/types": "^1.50.0-dev.055a216e01",
59
- "@lodestar/utils": "^1.50.0-dev.055a216e01",
53
+ "@lodestar/api": "^1.50.0-dev.0837ebd402",
54
+ "@lodestar/config": "^1.50.0-dev.0837ebd402",
55
+ "@lodestar/db": "^1.50.0-dev.0837ebd402",
56
+ "@lodestar/params": "^1.50.0-dev.0837ebd402",
57
+ "@lodestar/state-transition": "^1.50.0-dev.0837ebd402",
58
+ "@lodestar/types": "^1.50.0-dev.0837ebd402",
59
+ "@lodestar/utils": "^1.50.0-dev.0837ebd402",
60
60
  "strict-event-emitter-types": "^2.0.0"
61
61
  },
62
62
  "devDependencies": {
63
- "@lodestar/logger": "^1.50.0-dev.055a216e01",
64
- "@lodestar/spec-test-util": "^1.50.0-dev.055a216e01",
65
- "@lodestar/test-utils": "^1.50.0-dev.055a216e01",
63
+ "@lodestar/logger": "^1.50.0-dev.0837ebd402",
64
+ "@lodestar/spec-test-util": "^1.50.0-dev.0837ebd402",
65
+ "@lodestar/test-utils": "^1.50.0-dev.0837ebd402",
66
66
  "@vekexasia/bigint-buffer2": "^1.1.1",
67
67
  "rimraf": "^4.4.1"
68
68
  },
69
- "gitHead": "70346fcc241c8d9cea49a96172b092fe212025fc"
69
+ "gitHead": "24816891bf63de795f296996a1149cec3b71af4d"
70
70
  }
@@ -42,6 +42,10 @@ type BlockProposalOpts = {
42
42
  blindedLocal: boolean;
43
43
  payloadLocal: boolean;
44
44
  };
45
+
46
+ /** Excludes all p2p bids, builder API bids are excluded by not sending any builder entries */
47
+ const EXECUTION_ONLY_MIN_BID = 2n ** 64n - 1n;
48
+
45
49
  /**
46
50
  * Service that sets up and handles validator block proposal duties.
47
51
  */
@@ -194,8 +198,12 @@ export class BlockProposingService {
194
198
  const {broadcastValidation, payloadLocal} = this.opts;
195
199
  const {selection: builderSelection, boostFactor: builderBoostFactor} =
196
200
  this.validatorStore.getBuilderSelectionParams(pubkeyHex, slot);
197
- const builderMinBid = this.validatorStore.getBuilderMinBid(pubkeyHex);
198
- const builderEntries = this.validatorStore.getResolvedBuilderEntries(pubkeyHex, builderBoostFactor);
201
+ // `executiononly` never uses a builder bid, neither from builder APIs nor received over p2p
202
+ const isExecutionOnly = builderSelection === routes.validator.BuilderSelection.ExecutionOnly;
203
+ const builderMinBid = isExecutionOnly ? EXECUTION_ONLY_MIN_BID : this.validatorStore.getBuilderMinBid(pubkeyHex);
204
+ const builderEntries = isExecutionOnly
205
+ ? []
206
+ : this.validatorStore.getResolvedBuilderEntries(pubkeyHex, builderBoostFactor);
199
207
 
200
208
  this.logger.debug("Producing block", {
201
209
  ...debugLogCtx,
@@ -258,6 +266,14 @@ export class BlockProposingService {
258
266
  const block = executionPayloadIncluded
259
267
  ? (blockOrContents as BlockContents<ForkPostGloas>).block
260
268
  : (blockOrContents as BeaconBlock<ForkPostGloas>);
269
+ const {builderIndex} = block.body.signedExecutionPayloadBid.message;
270
+ const isSelfBuild = builderIndex === BUILDER_INDEX_SELF_BUILD;
271
+ if (isExecutionOnly && !isSelfBuild) {
272
+ this.metrics?.blockProposingErrors.inc({error: "produce"});
273
+ throw Error(
274
+ `Block not produced as per desired builderSelection=${builderSelection} builderIndex=${builderIndex}`
275
+ );
276
+ }
261
277
  const beaconBlockRoot = this.config.getForkTypes(slot).BeaconBlock.hashTreeRoot(block);
262
278
  const blockRootHex = toRootHex(beaconBlockRoot);
263
279
 
@@ -303,8 +319,6 @@ export class BlockProposingService {
303
319
  this.metrics?.proposerStepCallPublishBlock.observe(this.clock.secFromSlot(slot));
304
320
  this.metrics?.blocksPublished.inc();
305
321
 
306
- const isSelfBuild = block.body.signedExecutionPayloadBid.message.builderIndex === BUILDER_INDEX_SELF_BUILD;
307
-
308
322
  if (isSelfBuild) {
309
323
  // Self-build: proposer is responsible for building and publishing the execution payload envelope
310
324
  const flow = executionPayloadIncluded ? "stateless" : "stateful";
@@ -0,0 +1,247 @@
1
+ import {ApiClient, routes} from "@lodestar/api";
2
+ import {ChainForkConfig} from "@lodestar/config";
3
+ import {SLOTS_PER_EPOCH, isForkPostGloas} from "@lodestar/params";
4
+ import {IClock, computeEpochAtSlot} from "@lodestar/state-transition";
5
+ import {Epoch, RootHex, Slot, gloas} from "@lodestar/types";
6
+ import {fromHex, toPubkeyHex} from "@lodestar/utils";
7
+ import {Metrics} from "../metrics.js";
8
+ import {LoggerVc} from "../util/index.js";
9
+ import {BlockDutiesService} from "./blockDuties.js";
10
+ import {ValidatorStore} from "./validatorStore.js";
11
+
12
+ /**
13
+ * Submit the preferences of a proposal this many slots before the proposal slot.
14
+ *
15
+ * Earlier submission means more reorg-triggered resubmits (and gossip flood); later
16
+ * submission risks missing the bid-auction window for this proposal slot. The bid for
17
+ * slot S typically arrives at slot S-1, so we want preferences propagated to the network
18
+ * and consumed by builders before then. SLOTS_PER_EPOCH / 4 (8 slots @ 32 SPE, ~96s @ 12s
19
+ * slots) gives ample margin while bounding redundant resubmits.
20
+ */
21
+ const SUBMIT_BEFORE_PROPOSAL_SLOTS = Math.floor(SLOTS_PER_EPOCH / 4);
22
+
23
+ /** Per-epoch tracking of preferences already submitted under the current dependent_root. */
24
+ type SubmittedAtEpoch = {dependentRoot: RootHex; proposerSlots: Set<Slot>; builderSlots: Set<Slot>};
25
+ type PendingSubmission = {submission: SubmittedAtEpoch; slot: Slot};
26
+ /** A local proposal within the submission window along with the tracking of its epoch */
27
+ type UpcomingProposal = {duty: routes.validator.ProposerDuty; submission: SubmittedAtEpoch};
28
+
29
+ /**
30
+ * Signs and submits the preferences of local proposals within the next `SUBMIT_BEFORE_PROPOSAL_SLOTS`:
31
+ * the `SignedProposerPreferences` the beacon node broadcasts on gossip and the builder preferences
32
+ * it forwards to the builders configured for the validator. Signing the builder request auths here
33
+ * also pre-fills the auth cache used at proposal time.
34
+ *
35
+ * Re-submits automatically when the proposer dependent root for an epoch shifts (e.g. after a reorg)
36
+ * since the proposer for a slot may have changed. Detected by comparing the cached `dependentRoot`
37
+ * reported by `BlockDutiesService` against the one we last submitted under.
38
+ *
39
+ * Proposers should broadcast their preferences before the fork so the proposer preference caches
40
+ * of beacon nodes and builders are warm for the first Gloas slots. We start submitting
41
+ * as soon as a duty's proposal slot is in Gloas, which is up to `SUBMIT_BEFORE_PROPOSAL_SLOTS`
42
+ * before the fork, so only the first few Gloas slots are affected by this pre-fork submission.
43
+ */
44
+ export class ProposalPreferencesService {
45
+ private readonly submitted = new Map<Epoch, SubmittedAtEpoch>();
46
+ private activeScheduledGasLimit: number | undefined;
47
+
48
+ constructor(
49
+ private readonly config: ChainForkConfig,
50
+ private readonly logger: LoggerVc,
51
+ private readonly api: ApiClient,
52
+ clock: IClock,
53
+ private readonly validatorStore: ValidatorStore,
54
+ private readonly blockDutiesService: BlockDutiesService,
55
+ _metrics: Metrics | null
56
+ ) {
57
+ clock.runEverySlot(this.runPreferencesTask);
58
+ clock.runEveryEpoch(this.runEveryEpochTask);
59
+ }
60
+
61
+ private runPreferencesTask = async (slot: Slot): Promise<void> => {
62
+ // Start running once the submission window (`slot + SUBMIT_BEFORE_PROPOSAL_SLOTS`) reaches
63
+ // Gloas, i.e. already in the epoch before the fork. This allows builders to prepare and
64
+ // submit bids for the first Gloas slots.
65
+ if (!isForkPostGloas(this.config.getForkName(slot + SUBMIT_BEFORE_PROPOSAL_SLOTS))) {
66
+ return;
67
+ }
68
+
69
+ const proposals = this.getUpcomingProposals(slot);
70
+ if (proposals.length === 0) {
71
+ return;
72
+ }
73
+
74
+ // Signed and submitted independently, a slow signer for one must not delay the other
75
+ await Promise.all([
76
+ this.submitProposerPreferences(proposals, slot),
77
+ this.submitBuilderPreferences(proposals, slot),
78
+ ]);
79
+ };
80
+
81
+ private runEveryEpochTask = async (epoch: Epoch): Promise<void> => {
82
+ const scheduledGasLimit = this.config.getScheduledGasLimit(epoch);
83
+ if (scheduledGasLimit !== undefined && scheduledGasLimit !== this.activeScheduledGasLimit) {
84
+ const configuredDefaultGasLimit = this.validatorStore.getConfiguredDefaultGasLimit();
85
+ this.logger.info("Gas limit schedule active", {
86
+ epoch,
87
+ recommendedGasLimit: scheduledGasLimit,
88
+ effectiveDefaultGasLimit: configuredDefaultGasLimit ?? scheduledGasLimit,
89
+ defaultGasLimitSource: configuredDefaultGasLimit === undefined ? "schedule" : "operator",
90
+ });
91
+ this.activeScheduledGasLimit = scheduledGasLimit;
92
+ }
93
+
94
+ // Drop tracking for past epochs; only currentEpoch and currentEpoch + 1 are ever processed.
95
+ for (const trackedEpoch of this.submitted.keys()) {
96
+ if (trackedEpoch < epoch) {
97
+ this.submitted.delete(trackedEpoch);
98
+ }
99
+ }
100
+ };
101
+
102
+ /** Resets the tracking of `epoch` if the dependent root shifted, previously submitted preferences are stale. */
103
+ private getSubmissionAtEpoch(epoch: Epoch, dependentRoot: RootHex): SubmittedAtEpoch {
104
+ let submission = this.submitted.get(epoch);
105
+ if (submission === undefined || submission.dependentRoot !== dependentRoot) {
106
+ if (submission !== undefined) {
107
+ this.logger.info("Proposer-shuffling dependent root shifted; resubmitting preferences", {
108
+ epoch,
109
+ priorDependentRoot: submission.dependentRoot,
110
+ dependentRoot,
111
+ });
112
+ }
113
+ submission = {dependentRoot, proposerSlots: new Set(), builderSlots: new Set()};
114
+ this.submitted.set(epoch, submission);
115
+ }
116
+ return submission;
117
+ }
118
+
119
+ private getUpcomingProposals(slot: Slot): UpcomingProposal[] {
120
+ const currentEpoch = computeEpochAtSlot(slot);
121
+ const proposals: UpcomingProposal[] = [];
122
+
123
+ for (const epoch of [currentEpoch, currentEpoch + 1]) {
124
+ const dutiesAtEpoch = this.blockDutiesService.getProposersAtEpoch(epoch);
125
+ if (!dutiesAtEpoch) continue;
126
+
127
+ const submission = this.getSubmissionAtEpoch(epoch, dutiesAtEpoch.dependentRoot);
128
+
129
+ for (const duty of dutiesAtEpoch.data) {
130
+ if (duty.slot <= slot) continue;
131
+ if (duty.slot > slot + SUBMIT_BEFORE_PROPOSAL_SLOTS) continue;
132
+ if (!isForkPostGloas(this.config.getForkName(duty.slot))) continue;
133
+
134
+ proposals.push({duty, submission});
135
+ }
136
+ }
137
+
138
+ return proposals;
139
+ }
140
+
141
+ private async submitProposerPreferences(proposals: UpcomingProposal[], slot: Slot): Promise<void> {
142
+ const signedProposerPreferences: gloas.SignedProposerPreferences[] = [];
143
+ // Track which `(submission, slot)` pairs are pending an API submission so we can mark
144
+ // them only after the network call succeeds. Marking before would silently drop a
145
+ // preference on transient API failure (no retry until dependent_root shifts).
146
+ const pending: PendingSubmission[] = [];
147
+
148
+ for (const {duty, submission} of proposals) {
149
+ if (submission.proposerSlots.has(duty.slot)) continue;
150
+
151
+ try {
152
+ const pubkeyHex = toPubkeyHex(duty.pubkey);
153
+ const signed = await this.validatorStore.signProposerPreferences(
154
+ duty,
155
+ fromHex(submission.dependentRoot),
156
+ this.validatorStore.getFeeRecipient(pubkeyHex),
157
+ this.validatorStore.getGasLimit(pubkeyHex, duty.slot, this.logger),
158
+ slot
159
+ );
160
+ signedProposerPreferences.push(signed);
161
+ pending.push({submission, slot: duty.slot});
162
+ } catch (e) {
163
+ this.logger.error(
164
+ "Error signing proposer preferences",
165
+ {slot: duty.slot, validatorIndex: duty.validatorIndex},
166
+ e as Error
167
+ );
168
+ }
169
+ }
170
+
171
+ if (signedProposerPreferences.length === 0) {
172
+ return;
173
+ }
174
+
175
+ try {
176
+ (await this.api.validator.submitProposerPreferences({signedProposerPreferences})).assertOk();
177
+ // Only mark as submitted after the API call succeeds; a thrown error leaves the
178
+ // slot eligible for retry on the next tick.
179
+ for (const {submission, slot: submittedSlot} of pending) {
180
+ submission.proposerSlots.add(submittedSlot);
181
+ }
182
+ this.logger.debug("Submitted signed proposer preferences", {count: signedProposerPreferences.length});
183
+ } catch (e) {
184
+ this.logger.error(
185
+ "Error submitting signed proposer preferences",
186
+ {count: signedProposerPreferences.length},
187
+ e as Error
188
+ );
189
+ }
190
+ }
191
+
192
+ private async submitBuilderPreferences(proposals: UpcomingProposal[], slot: Slot): Promise<void> {
193
+ const builderPreferences: routes.validator.BuilderPreferencesEntry[] = [];
194
+ const pending: PendingSubmission[] = [];
195
+
196
+ for (const {duty, submission} of proposals) {
197
+ if (submission.builderSlots.has(duty.slot)) continue;
198
+
199
+ const pubkeyHex = toPubkeyHex(duty.pubkey);
200
+ const {selection} = this.validatorStore.getBuilderSelectionParams(pubkeyHex, duty.slot);
201
+ if (selection === routes.validator.BuilderSelection.ExecutionOnly) continue;
202
+
203
+ const builderEntries = this.validatorStore.getResolvedBuilderEntries(pubkeyHex);
204
+ if (builderEntries.length === 0) continue;
205
+
206
+ try {
207
+ // Collect entries per duty and only add them to the batch if signing
208
+ // succeeded for all builders, else the duty is retried on the next tick
209
+ const dutyEntries: routes.validator.BuilderPreferencesEntry[] = [];
210
+ for (const entry of builderEntries) {
211
+ const auth = await this.validatorStore.getBuilderRequestAuth(duty.pubkey, entry.authData, duty.slot, slot);
212
+ dutyEntries.push({
213
+ proposerPubkey: duty.pubkey,
214
+ url: new TextEncoder().encode(entry.url),
215
+ auth,
216
+ maxExecutionPayment: entry.maxExecutionPayment,
217
+ });
218
+ }
219
+ builderPreferences.push(...dutyEntries);
220
+ pending.push({submission, slot: duty.slot});
221
+ } catch (e) {
222
+ this.logger.error(
223
+ "Error signing builder preferences",
224
+ {slot: duty.slot, validatorIndex: duty.validatorIndex},
225
+ e as Error
226
+ );
227
+ }
228
+ }
229
+
230
+ if (builderPreferences.length === 0) {
231
+ return;
232
+ }
233
+
234
+ try {
235
+ (await this.api.validator.submitBuilderPreferences({builderPreferences})).assertOk();
236
+ // Only mark as submitted after the API call succeeds; a thrown error, including per-entry
237
+ // failures reported by index, leaves all slots eligible for retry on the next tick.
238
+ // Re-submitting preferences a builder already accepted is harmless.
239
+ for (const {submission, slot: submittedSlot} of pending) {
240
+ submission.builderSlots.add(submittedSlot);
241
+ }
242
+ this.logger.debug("Submitted builder preferences", {count: builderPreferences.length});
243
+ } catch (e) {
244
+ this.logger.warn("Error submitting builder preferences", {count: builderPreferences.length}, e as Error);
245
+ }
246
+ }
247
+ }
@@ -359,14 +359,10 @@ export class ValidatorStore {
359
359
  }
360
360
 
361
361
  // Post-Gloas block production uses standard builder boost factor. Need to normalize the
362
- // gloas-deprecated "builderonly" and "executiononly" to the gloas fallback "builderalways"
363
- // and "executionalways" equivalent before deriving the boost factor.
364
- if (isPostGloas) {
365
- if (selection === routes.validator.BuilderSelection.BuilderOnly) {
366
- selection = routes.validator.BuilderSelection.BuilderAlways;
367
- } else if (selection === routes.validator.BuilderSelection.ExecutionOnly) {
368
- selection = routes.validator.BuilderSelection.ExecutionAlways;
369
- }
362
+ // gloas-deprecated "builderonly" to the gloas fallback "builderalways" equivalent before
363
+ // deriving the boost factor.
364
+ if (isPostGloas && selection === routes.validator.BuilderSelection.BuilderOnly) {
365
+ selection = routes.validator.BuilderSelection.BuilderAlways;
370
366
  }
371
367
 
372
368
  const boostFactor = getBuilderBoostFactor(
package/src/validator.ts CHANGED
@@ -16,14 +16,13 @@ import {MetaDataRepository} from "./repositories/metaDataRepository.js";
16
16
  import {AttestationService} from "./services/attestation.js";
17
17
  import {BlockProposingService} from "./services/block.js";
18
18
  import {BlockDutiesService} from "./services/blockDuties.js";
19
- import {BuilderPreferencesService} from "./services/builderPreferences.js";
20
19
  import {ChainHeaderTracker} from "./services/chainHeaderTracker.js";
21
20
  import {DoppelgangerService} from "./services/doppelgangerService.js";
22
21
  import {ValidatorEventEmitter} from "./services/emitter.js";
23
22
  import {ExternalSignerOptions, pollExternalSignerPubkeys} from "./services/externalSignerSync.js";
24
23
  import {IndicesService} from "./services/indices.js";
25
24
  import {pollBuilderValidatorRegistration, pollPrepareBeaconProposer} from "./services/prepareBeaconProposer.js";
26
- import {ProposerPreferencesService} from "./services/proposerPreferences.js";
25
+ import {ProposalPreferencesService} from "./services/proposalPreferences.js";
27
26
  import {PtcService} from "./services/ptc.js";
28
27
  import {SyncCommitteeService} from "./services/syncCommittee.js";
29
28
  import {SyncingStatusTracker} from "./services/syncingStatusTracker.js";
@@ -320,8 +319,7 @@ export class Validator {
320
319
  }
321
320
  );
322
321
 
323
- new ProposerPreferencesService(config, loggerVc, api, clock, validatorStore, blockDutiesService, metrics);
324
- new BuilderPreferencesService(config, loggerVc, api, clock, validatorStore, blockDutiesService, metrics);
322
+ new ProposalPreferencesService(config, loggerVc, api, clock, validatorStore, blockDutiesService, metrics);
325
323
 
326
324
  return new Validator({
327
325
  opts,
@@ -1,27 +0,0 @@
1
- import { ApiClient } from "@lodestar/api";
2
- import { ChainForkConfig } from "@lodestar/config";
3
- import { IClock } from "@lodestar/state-transition";
4
- import { Metrics } from "../metrics.js";
5
- import { LoggerVc } from "../util/index.js";
6
- import { BlockDutiesService } from "./blockDuties.js";
7
- import { ValidatorStore } from "./validatorStore.js";
8
- /**
9
- * Signs and submits builder preferences for any local validator that will propose within the
10
- * next `SUBMIT_BEFORE_PROPOSAL_SLOTS` and has external builders configured. Signing the request
11
- * auths here also pre-fills the auth cache used at proposal time.
12
- *
13
- * The beacon node submits each entry to the builder at the entry's url. Re-submits automatically
14
- * when the proposer dependent root for an epoch shifts (e.g. after a reorg) since the proposer
15
- * for a slot may have changed.
16
- */
17
- export declare class BuilderPreferencesService {
18
- private readonly config;
19
- private readonly logger;
20
- private readonly api;
21
- private readonly validatorStore;
22
- private readonly blockDutiesService;
23
- private readonly submitted;
24
- constructor(config: ChainForkConfig, logger: LoggerVc, api: ApiClient, clock: IClock, validatorStore: ValidatorStore, blockDutiesService: BlockDutiesService, _metrics: Metrics | null);
25
- private runBuilderPreferencesTask;
26
- }
27
- //# sourceMappingURL=builderPreferences.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"builderPreferences.d.ts","sourceRoot":"","sources":["../../src/services/builderPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAS,MAAM,eAAe,CAAC;AAChD,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAC,MAAM,EAAqB,MAAM,4BAA4B,CAAC;AAGtE,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AACtC,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAYnD;;;;;;;;GAQG;AACH,qBAAa,yBAAyB;IAIlC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAEpB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IARrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsC;IAEhE,YACmB,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,QAAQ,EAChB,GAAG,EAAE,SAAS,EAC/B,KAAK,EAAE,MAAM,EACI,cAAc,EAAE,cAAc,EAC9B,kBAAkB,EAAE,kBAAkB,EACvD,QAAQ,EAAE,OAAO,GAAG,IAAI,EAGzB;IAED,OAAO,CAAC,yBAAyB,CA+F/B;CACH"}
@@ -1,127 +0,0 @@
1
- import { routes } from "@lodestar/api";
2
- import { SLOTS_PER_EPOCH, isForkPostGloas } from "@lodestar/params";
3
- import { computeEpochAtSlot } from "@lodestar/state-transition";
4
- import { toPubkeyHex } from "@lodestar/utils";
5
- /**
6
- * Submit a proposer's builder preferences this many slots before the proposal slot.
7
- * Same pacing as `ProposerPreferencesService`, builders must have the preferences
8
- * before the bid request arrives at proposal time.
9
- */
10
- const SUBMIT_BEFORE_PROPOSAL_SLOTS = Math.floor(SLOTS_PER_EPOCH / 4);
11
- /**
12
- * Signs and submits builder preferences for any local validator that will propose within the
13
- * next `SUBMIT_BEFORE_PROPOSAL_SLOTS` and has external builders configured. Signing the request
14
- * auths here also pre-fills the auth cache used at proposal time.
15
- *
16
- * The beacon node submits each entry to the builder at the entry's url. Re-submits automatically
17
- * when the proposer dependent root for an epoch shifts (e.g. after a reorg) since the proposer
18
- * for a slot may have changed.
19
- */
20
- export class BuilderPreferencesService {
21
- config;
22
- logger;
23
- api;
24
- validatorStore;
25
- blockDutiesService;
26
- submitted = new Map();
27
- constructor(config, logger, api, clock, validatorStore, blockDutiesService, _metrics) {
28
- this.config = config;
29
- this.logger = logger;
30
- this.api = api;
31
- this.validatorStore = validatorStore;
32
- this.blockDutiesService = blockDutiesService;
33
- clock.runEverySlot(this.runBuilderPreferencesTask);
34
- }
35
- runBuilderPreferencesTask = async (slot) => {
36
- // Start running once the submission window (`slot + SUBMIT_BEFORE_PROPOSAL_SLOTS`) reaches
37
- // Gloas, i.e. already in the epoch before the fork. This allows builders to prepare and
38
- // submit bids for the first Gloas slots.
39
- if (!isForkPostGloas(this.config.getForkName(slot + SUBMIT_BEFORE_PROPOSAL_SLOTS))) {
40
- return;
41
- }
42
- const currentEpoch = computeEpochAtSlot(slot);
43
- const entries = [];
44
- // Track which `(submission, slot)` pairs are pending an API submission so we can mark
45
- // them only after the network call succeeds. Marking before would silently drop a
46
- // preference on transient API failure (no retry until dependent_root shifts).
47
- const pending = [];
48
- for (const epoch of [currentEpoch, currentEpoch + 1]) {
49
- const dutiesAtEpoch = this.blockDutiesService.getProposersAtEpoch(epoch);
50
- if (!dutiesAtEpoch)
51
- continue;
52
- // Reset submission tracking if the dependent root for this epoch has shifted
53
- // (e.g. due to a reorg). The proposer for a slot may have changed.
54
- let submission = this.submitted.get(epoch);
55
- if (submission === undefined || submission.dependentRoot !== dutiesAtEpoch.dependentRoot) {
56
- if (submission !== undefined) {
57
- this.logger.info("Proposer-shuffling dependent root shifted; resubmitting builder preferences", {
58
- epoch,
59
- priorDependentRoot: submission.dependentRoot,
60
- dependentRoot: dutiesAtEpoch.dependentRoot,
61
- });
62
- }
63
- submission = { dependentRoot: dutiesAtEpoch.dependentRoot, slots: new Set() };
64
- this.submitted.set(epoch, submission);
65
- }
66
- for (const duty of dutiesAtEpoch.data) {
67
- if (duty.slot <= slot)
68
- continue;
69
- if (duty.slot > slot + SUBMIT_BEFORE_PROPOSAL_SLOTS)
70
- continue;
71
- if (!isForkPostGloas(this.config.getForkName(duty.slot)))
72
- continue;
73
- if (submission.slots.has(duty.slot))
74
- continue;
75
- const pubkeyHex = toPubkeyHex(duty.pubkey);
76
- const { selection } = this.validatorStore.getBuilderSelectionParams(pubkeyHex, duty.slot);
77
- if (selection === routes.validator.BuilderSelection.ExecutionOnly)
78
- continue;
79
- const builderEntries = this.validatorStore.getResolvedBuilderEntries(pubkeyHex);
80
- if (builderEntries.length === 0)
81
- continue;
82
- try {
83
- // Collect entries per duty and only add them to the batch if signing
84
- // succeeded for all builders, else the duty is retried on the next tick
85
- const dutyEntries = [];
86
- for (const entry of builderEntries) {
87
- const auth = await this.validatorStore.getBuilderRequestAuth(duty.pubkey, entry.authData, duty.slot, slot);
88
- dutyEntries.push({
89
- proposerPubkey: duty.pubkey,
90
- url: new TextEncoder().encode(entry.url),
91
- auth,
92
- maxExecutionPayment: entry.maxExecutionPayment,
93
- });
94
- }
95
- entries.push(...dutyEntries);
96
- pending.push({ submission, slot: duty.slot });
97
- }
98
- catch (e) {
99
- this.logger.error("Error signing builder preferences", { slot: duty.slot, validatorIndex: duty.validatorIndex }, e);
100
- }
101
- }
102
- }
103
- // Prune tracking for past epochs
104
- for (const epoch of this.submitted.keys()) {
105
- if (epoch < currentEpoch) {
106
- this.submitted.delete(epoch);
107
- }
108
- }
109
- if (entries.length === 0) {
110
- return;
111
- }
112
- try {
113
- (await this.api.validator.submitBuilderPreferences({ builderPreferences: entries })).assertOk();
114
- // Only mark as submitted after the API call succeeds; a thrown error, including per-entry
115
- // failures reported by index, leaves all slots eligible for retry on the next tick.
116
- // Re-submitting preferences a builder already accepted is harmless.
117
- for (const { submission, slot: submittedSlot } of pending) {
118
- submission.slots.add(submittedSlot);
119
- }
120
- this.logger.debug("Submitted builder preferences", { count: entries.length });
121
- }
122
- catch (e) {
123
- this.logger.warn("Error submitting builder preferences", { count: entries.length }, e);
124
- }
125
- };
126
- }
127
- //# sourceMappingURL=builderPreferences.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"builderPreferences.js","sourceRoot":"","sources":["../../src/services/builderPreferences.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"proposerPreferences.d.ts","sourceRoot":"","sources":["../../src/services/proposerPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AACxC,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAC,MAAM,EAAqB,MAAM,4BAA4B,CAAC;AAGtE,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AACtC,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAgBnD;;;;;;;;;;GAUG;AACH,qBAAa,0BAA0B;IAKnC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAEpB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IATrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsC;IAChE,OAAO,CAAC,uBAAuB,CAAqB;IAEpD,YACmB,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,QAAQ,EAChB,GAAG,EAAE,SAAS,EAC/B,KAAK,EAAE,MAAM,EACI,cAAc,EAAE,cAAc,EAC9B,kBAAkB,EAAE,kBAAkB,EACvD,QAAQ,EAAE,OAAO,GAAG,IAAI,EAIzB;IAED,OAAO,CAAC,0BAA0B,CA8EhC;IAEF,OAAO,CAAC,iBAAiB,CAmBvB;CACH"}