@lodestar/validator 1.50.0-dev.b37917f96a → 1.50.0-dev.b726a05a4d
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/services/prepareBeaconProposer.d.ts +2 -1
- package/lib/services/prepareBeaconProposer.d.ts.map +1 -1
- package/lib/services/prepareBeaconProposer.js +5 -1
- package/lib/services/prepareBeaconProposer.js.map +1 -1
- package/lib/services/proposalPreferences.d.ts +47 -0
- package/lib/services/proposalPreferences.d.ts.map +1 -0
- package/lib/services/proposalPreferences.js +260 -0
- package/lib/services/proposalPreferences.js.map +1 -0
- package/lib/validator.d.ts.map +1 -1
- package/lib/validator.js +2 -4
- package/lib/validator.js.map +1 -1
- package/package.json +12 -12
- package/src/services/prepareBeaconProposer.ts +5 -1
- package/src/services/proposalPreferences.ts +308 -0
- package/src/validator.ts +11 -4
- package/lib/services/builderPreferences.d.ts +0 -27
- package/lib/services/builderPreferences.d.ts.map +0 -1
- package/lib/services/builderPreferences.js +0 -127
- package/lib/services/builderPreferences.js.map +0 -1
- package/lib/services/proposerPreferences.d.ts +0 -31
- package/lib/services/proposerPreferences.d.ts.map +0 -1
- package/lib/services/proposerPreferences.js +0 -130
- package/lib/services/proposerPreferences.js.map +0 -1
- package/src/services/builderPreferences.ts +0 -142
- package/src/services/proposerPreferences.ts +0 -154
|
@@ -10,7 +10,8 @@ import { ValidatorStore } from "./validatorStore.js";
|
|
|
10
10
|
* the engine for building execution payload with transactions.
|
|
11
11
|
*
|
|
12
12
|
* This needs to be done every epoch because the BN will cache it at most for
|
|
13
|
-
* two epochs.
|
|
13
|
+
* two epochs. From gloas the beacon node takes the fee recipient from the signed
|
|
14
|
+
* proposer preferences and the validators using it from the committee subscriptions.
|
|
14
15
|
*/
|
|
15
16
|
export declare function pollPrepareBeaconProposer(config: BeaconConfig, logger: LoggerVc, api: ApiClient, clock: IClock, validatorStore: ValidatorStore, _metrics: Metrics | null): void;
|
|
16
17
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepareBeaconProposer.d.ts","sourceRoot":"","sources":["../../src/services/prepareBeaconProposer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAS,MAAM,eAAe,CAAC;AAChD,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,MAAM,EAAC,MAAM,4BAA4B,CAAC;AAElD,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AACtC,OAAO,EAAC,QAAQ,EAAa,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAGnD
|
|
1
|
+
{"version":3,"file":"prepareBeaconProposer.d.ts","sourceRoot":"","sources":["../../src/services/prepareBeaconProposer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAS,MAAM,eAAe,CAAC;AAChD,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAC,MAAM,EAAC,MAAM,4BAA4B,CAAC;AAElD,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AACtC,OAAO,EAAC,QAAQ,EAAa,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAGnD;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,QAAQ,EAChB,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,OAAO,GAAG,IAAI,GACvB,IAAI,CAiCN;AAED;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,QAAQ,EAChB,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,OAAO,GAAG,IAAI,GACvB,IAAI,CAmDN"}
|
|
@@ -8,13 +8,17 @@ const REGISTRATION_CHUNK_SIZE = 512;
|
|
|
8
8
|
* the engine for building execution payload with transactions.
|
|
9
9
|
*
|
|
10
10
|
* This needs to be done every epoch because the BN will cache it at most for
|
|
11
|
-
* two epochs.
|
|
11
|
+
* two epochs. From gloas the beacon node takes the fee recipient from the signed
|
|
12
|
+
* proposer preferences and the validators using it from the committee subscriptions.
|
|
12
13
|
*/
|
|
13
14
|
export function pollPrepareBeaconProposer(config, logger, api, clock, validatorStore, _metrics) {
|
|
14
15
|
async function prepareBeaconProposer(epoch) {
|
|
15
16
|
// Before bellatrix we don't need to update this data on bn/builder
|
|
16
17
|
if (epoch < config.BELLATRIX_FORK_EPOCH - 1)
|
|
17
18
|
return;
|
|
19
|
+
// Proposer data is pre-gloas only, replaced by proposer preferences and committee subscriptions
|
|
20
|
+
if (config.getForkSeq(epoch * SLOTS_PER_EPOCH) >= ForkSeq.gloas)
|
|
21
|
+
return;
|
|
18
22
|
// prepareBeaconProposer is not as time sensitive as attesting.
|
|
19
23
|
// Poll indices first, then call api.validator.prepareBeaconProposer once
|
|
20
24
|
await validatorStore.pollValidatorIndices().catch((e) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepareBeaconProposer.js","sourceRoot":"","sources":["../../src/services/prepareBeaconProposer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,MAAM,EAAC,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAIzE,OAAO,EAAW,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAGtD,MAAM,uBAAuB,GAAG,GAAG,CAAC;AACpC
|
|
1
|
+
{"version":3,"file":"prepareBeaconProposer.js","sourceRoot":"","sources":["../../src/services/prepareBeaconProposer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
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 { SyncingStatusTracker } from "./syncingStatusTracker.js";
|
|
8
|
+
import { ValidatorStore } from "./validatorStore.js";
|
|
9
|
+
/**
|
|
10
|
+
* Signs and submits the preferences of local proposals within the next `SUBMIT_BEFORE_PROPOSAL_SLOTS`:
|
|
11
|
+
* the `SignedProposerPreferences` the beacon node broadcasts on gossip and the builder preferences
|
|
12
|
+
* it forwards to the builders configured for the validator. Signing the builder request auths here
|
|
13
|
+
* also pre-fills the auth cache used at proposal time.
|
|
14
|
+
*
|
|
15
|
+
* Re-submits automatically when the proposer dependent root for an epoch shifts (e.g. after a reorg)
|
|
16
|
+
* since the proposer for a slot may have changed. Detected by comparing the cached `dependentRoot`
|
|
17
|
+
* reported by `BlockDutiesService` against the one we last submitted under.
|
|
18
|
+
*
|
|
19
|
+
* Proposers should broadcast their preferences before the fork so the proposer preference caches
|
|
20
|
+
* of beacon nodes and builders are warm for the first Gloas slots. We start submitting
|
|
21
|
+
* as soon as a duty's proposal slot is in Gloas, which is up to `SUBMIT_BEFORE_PROPOSAL_SLOTS`
|
|
22
|
+
* before the fork, so only the first few Gloas slots are affected by this pre-fork submission.
|
|
23
|
+
*/
|
|
24
|
+
export declare class ProposalPreferencesService {
|
|
25
|
+
private readonly config;
|
|
26
|
+
private readonly logger;
|
|
27
|
+
private readonly api;
|
|
28
|
+
private readonly validatorStore;
|
|
29
|
+
private readonly blockDutiesService;
|
|
30
|
+
private readonly submitted;
|
|
31
|
+
private activeScheduledGasLimit;
|
|
32
|
+
constructor(config: ChainForkConfig, logger: LoggerVc, api: ApiClient, clock: IClock, validatorStore: ValidatorStore, blockDutiesService: BlockDutiesService, syncingStatusTracker: SyncingStatusTracker, _metrics: Metrics | null);
|
|
33
|
+
/**
|
|
34
|
+
* A beacon node that was unreachable or syncing may have restarted and lost the preferences it
|
|
35
|
+
* accepted, it keeps them in memory only. Submit everything within the window again, the beacon
|
|
36
|
+
* node ignores preferences it still has.
|
|
37
|
+
*/
|
|
38
|
+
private onResynced;
|
|
39
|
+
private runPreferencesTask;
|
|
40
|
+
private runEveryEpochTask;
|
|
41
|
+
/** Resets the tracking of `epoch` if the dependent root shifted, previously submitted preferences are stale. */
|
|
42
|
+
private getSubmissionAtEpoch;
|
|
43
|
+
private getUpcomingProposals;
|
|
44
|
+
private submitProposerPreferences;
|
|
45
|
+
private submitBuilderPreferences;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=proposalPreferences.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proposalPreferences.d.ts","sourceRoot":"","sources":["../../src/services/proposalPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAmB,MAAM,eAAe,CAAC;AAC1D,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,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAmBnD;;;;;;;;;;;;;;GAcG;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,oBAAoB,EAAE,oBAAoB,EAC1C,QAAQ,EAAE,OAAO,GAAG,IAAI,EAKzB;IAED;;;;OAIG;IACH,OAAO,CAAC,UAAU,CAQhB;IAEF,OAAO,CAAC,kBAAkB,CAkBxB;IAEF,OAAO,CAAC,iBAAiB,CAmBvB;IAEF,gHAAgH;IAChH,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,oBAAoB;YAsBd,yBAAyB;YAuEzB,wBAAwB;CA8EvC"}
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
import { ApiError, routes } from "@lodestar/api";
|
|
2
|
+
import { SLOTS_PER_EPOCH, isForkPostGloas } from "@lodestar/params";
|
|
3
|
+
import { computeEpochAtSlot } from "@lodestar/state-transition";
|
|
4
|
+
import { fromHex, toPubkeyHex } from "@lodestar/utils";
|
|
5
|
+
/**
|
|
6
|
+
* Submit the preferences of a proposal this many slots before the proposal slot.
|
|
7
|
+
*
|
|
8
|
+
* Earlier submission means more reorg-triggered resubmits (and gossip flood); later
|
|
9
|
+
* submission risks missing the bid-auction window for this proposal slot. The bid for
|
|
10
|
+
* slot S typically arrives at slot S-1, so we want preferences propagated to the network
|
|
11
|
+
* and consumed by builders before then. SLOTS_PER_EPOCH / 4 (8 slots @ 32 SPE, ~96s @ 12s
|
|
12
|
+
* slots) gives ample margin while bounding redundant resubmits.
|
|
13
|
+
*/
|
|
14
|
+
const SUBMIT_BEFORE_PROPOSAL_SLOTS = Math.floor(SLOTS_PER_EPOCH / 4);
|
|
15
|
+
/**
|
|
16
|
+
* Signs and submits the preferences of local proposals within the next `SUBMIT_BEFORE_PROPOSAL_SLOTS`:
|
|
17
|
+
* the `SignedProposerPreferences` the beacon node broadcasts on gossip and the builder preferences
|
|
18
|
+
* it forwards to the builders configured for the validator. Signing the builder request auths here
|
|
19
|
+
* also pre-fills the auth cache used at proposal time.
|
|
20
|
+
*
|
|
21
|
+
* Re-submits automatically when the proposer dependent root for an epoch shifts (e.g. after a reorg)
|
|
22
|
+
* since the proposer for a slot may have changed. Detected by comparing the cached `dependentRoot`
|
|
23
|
+
* reported by `BlockDutiesService` against the one we last submitted under.
|
|
24
|
+
*
|
|
25
|
+
* Proposers should broadcast their preferences before the fork so the proposer preference caches
|
|
26
|
+
* of beacon nodes and builders are warm for the first Gloas slots. We start submitting
|
|
27
|
+
* as soon as a duty's proposal slot is in Gloas, which is up to `SUBMIT_BEFORE_PROPOSAL_SLOTS`
|
|
28
|
+
* before the fork, so only the first few Gloas slots are affected by this pre-fork submission.
|
|
29
|
+
*/
|
|
30
|
+
export class ProposalPreferencesService {
|
|
31
|
+
config;
|
|
32
|
+
logger;
|
|
33
|
+
api;
|
|
34
|
+
validatorStore;
|
|
35
|
+
blockDutiesService;
|
|
36
|
+
submitted = new Map();
|
|
37
|
+
activeScheduledGasLimit;
|
|
38
|
+
constructor(config, logger, api, clock, validatorStore, blockDutiesService, syncingStatusTracker, _metrics) {
|
|
39
|
+
this.config = config;
|
|
40
|
+
this.logger = logger;
|
|
41
|
+
this.api = api;
|
|
42
|
+
this.validatorStore = validatorStore;
|
|
43
|
+
this.blockDutiesService = blockDutiesService;
|
|
44
|
+
clock.runEverySlot(this.runPreferencesTask);
|
|
45
|
+
clock.runEveryEpoch(this.runEveryEpochTask);
|
|
46
|
+
syncingStatusTracker.runOnResynced(this.onResynced);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* A beacon node that was unreachable or syncing may have restarted and lost the preferences it
|
|
50
|
+
* accepted, it keeps them in memory only. Submit everything within the window again, the beacon
|
|
51
|
+
* node ignores preferences it still has.
|
|
52
|
+
*/
|
|
53
|
+
onResynced = async (slot) => {
|
|
54
|
+
if (this.submitted.size === 0) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
this.logger.verbose("Beacon node resynced; resubmitting preferences", { slot });
|
|
58
|
+
this.submitted.clear();
|
|
59
|
+
await this.runPreferencesTask(slot);
|
|
60
|
+
};
|
|
61
|
+
runPreferencesTask = async (slot) => {
|
|
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
|
+
const proposals = this.getUpcomingProposals(slot);
|
|
69
|
+
if (proposals.length === 0) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
// Signed and submitted independently, a slow signer for one must not delay the other
|
|
73
|
+
await Promise.all([
|
|
74
|
+
this.submitProposerPreferences(proposals, slot),
|
|
75
|
+
this.submitBuilderPreferences(proposals, slot),
|
|
76
|
+
]);
|
|
77
|
+
};
|
|
78
|
+
runEveryEpochTask = async (epoch) => {
|
|
79
|
+
const scheduledGasLimit = this.config.getScheduledGasLimit(epoch);
|
|
80
|
+
if (scheduledGasLimit !== undefined && scheduledGasLimit !== this.activeScheduledGasLimit) {
|
|
81
|
+
const configuredDefaultGasLimit = this.validatorStore.getConfiguredDefaultGasLimit();
|
|
82
|
+
this.logger.info("Gas limit schedule active", {
|
|
83
|
+
epoch,
|
|
84
|
+
recommendedGasLimit: scheduledGasLimit,
|
|
85
|
+
effectiveDefaultGasLimit: configuredDefaultGasLimit ?? scheduledGasLimit,
|
|
86
|
+
defaultGasLimitSource: configuredDefaultGasLimit === undefined ? "schedule" : "operator",
|
|
87
|
+
});
|
|
88
|
+
this.activeScheduledGasLimit = scheduledGasLimit;
|
|
89
|
+
}
|
|
90
|
+
// Drop tracking for past epochs; only currentEpoch and currentEpoch + 1 are ever processed.
|
|
91
|
+
for (const trackedEpoch of this.submitted.keys()) {
|
|
92
|
+
if (trackedEpoch < epoch) {
|
|
93
|
+
this.submitted.delete(trackedEpoch);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
/** Resets the tracking of `epoch` if the dependent root shifted, previously submitted preferences are stale. */
|
|
98
|
+
getSubmissionAtEpoch(epoch, dependentRoot) {
|
|
99
|
+
let submission = this.submitted.get(epoch);
|
|
100
|
+
if (submission === undefined || submission.dependentRoot !== dependentRoot) {
|
|
101
|
+
if (submission !== undefined) {
|
|
102
|
+
this.logger.info("Proposer-shuffling dependent root shifted; resubmitting preferences", {
|
|
103
|
+
epoch,
|
|
104
|
+
priorDependentRoot: submission.dependentRoot,
|
|
105
|
+
dependentRoot,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
submission = { dependentRoot, proposerSlots: new Set(), builderSlots: new Set() };
|
|
109
|
+
this.submitted.set(epoch, submission);
|
|
110
|
+
}
|
|
111
|
+
return submission;
|
|
112
|
+
}
|
|
113
|
+
getUpcomingProposals(slot) {
|
|
114
|
+
const currentEpoch = computeEpochAtSlot(slot);
|
|
115
|
+
const proposals = [];
|
|
116
|
+
for (const epoch of [currentEpoch, currentEpoch + 1]) {
|
|
117
|
+
const dutiesAtEpoch = this.blockDutiesService.getProposersAtEpoch(epoch);
|
|
118
|
+
if (!dutiesAtEpoch)
|
|
119
|
+
continue;
|
|
120
|
+
const submission = this.getSubmissionAtEpoch(epoch, dutiesAtEpoch.dependentRoot);
|
|
121
|
+
for (const duty of dutiesAtEpoch.data) {
|
|
122
|
+
if (duty.slot <= slot)
|
|
123
|
+
continue;
|
|
124
|
+
if (duty.slot > slot + SUBMIT_BEFORE_PROPOSAL_SLOTS)
|
|
125
|
+
continue;
|
|
126
|
+
if (!isForkPostGloas(this.config.getForkName(duty.slot)))
|
|
127
|
+
continue;
|
|
128
|
+
proposals.push({ duty, submission });
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return proposals;
|
|
132
|
+
}
|
|
133
|
+
async submitProposerPreferences(proposals, slot) {
|
|
134
|
+
const signedProposerPreferences = [];
|
|
135
|
+
// Track which `(submission, slot)` pairs are pending an API submission so we can mark
|
|
136
|
+
// them only after the network call succeeds. Marking before would silently drop a
|
|
137
|
+
// preference on transient API failure (no retry until dependent_root shifts).
|
|
138
|
+
const pending = [];
|
|
139
|
+
for (const { duty, submission } of proposals) {
|
|
140
|
+
if (submission.proposerSlots.has(duty.slot))
|
|
141
|
+
continue;
|
|
142
|
+
try {
|
|
143
|
+
const pubkeyHex = toPubkeyHex(duty.pubkey);
|
|
144
|
+
const signed = await this.validatorStore.signProposerPreferences(duty, fromHex(submission.dependentRoot), this.validatorStore.getFeeRecipient(pubkeyHex), this.validatorStore.getGasLimit(pubkeyHex, duty.slot, this.logger), slot);
|
|
145
|
+
signedProposerPreferences.push(signed);
|
|
146
|
+
pending.push({ submission, slot: duty.slot });
|
|
147
|
+
}
|
|
148
|
+
catch (e) {
|
|
149
|
+
this.logger.error("Error signing proposer preferences", { slot: duty.slot, validatorIndex: duty.validatorIndex }, e);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
if (signedProposerPreferences.length === 0) {
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
try {
|
|
156
|
+
(await this.api.validator.submitProposerPreferences({ signedProposerPreferences })).assertOk();
|
|
157
|
+
// Only mark as submitted after the API call succeeds; a thrown error leaves the
|
|
158
|
+
// slot eligible for retry on the next tick.
|
|
159
|
+
for (const { submission, slot: submittedSlot } of pending) {
|
|
160
|
+
submission.proposerSlots.add(submittedSlot);
|
|
161
|
+
}
|
|
162
|
+
this.logger.debug("Submitted signed proposer preferences", { count: signedProposerPreferences.length });
|
|
163
|
+
}
|
|
164
|
+
catch (e) {
|
|
165
|
+
const failures = e instanceof ApiError ? e.failures : undefined;
|
|
166
|
+
if (failures === undefined) {
|
|
167
|
+
this.logger.error("Error submitting signed proposer preferences", { count: signedProposerPreferences.length }, e);
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
// The beacon node rejected some of the preferences, reported by index into the batch.
|
|
171
|
+
// Mark the accepted ones, the rejected ones are retried on the next tick.
|
|
172
|
+
const failedIndices = new Set(failures.map(({ index }) => index));
|
|
173
|
+
pending.forEach(({ submission, slot: submittedSlot }, index) => {
|
|
174
|
+
if (!failedIndices.has(index)) {
|
|
175
|
+
submission.proposerSlots.add(submittedSlot);
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
for (const { index, message } of failures) {
|
|
179
|
+
this.logger.error("Error submitting signed proposer preferences", {
|
|
180
|
+
slot: pending[index]?.slot,
|
|
181
|
+
validatorIndex: signedProposerPreferences[index]?.message.validatorIndex,
|
|
182
|
+
message,
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
async submitBuilderPreferences(proposals, slot) {
|
|
188
|
+
const builderPreferences = [];
|
|
189
|
+
const pending = [];
|
|
190
|
+
// Index into `pending` of each entry in `builderPreferences`, a proposal has one entry per builder
|
|
191
|
+
const pendingIndexByEntry = [];
|
|
192
|
+
for (const { duty, submission } of proposals) {
|
|
193
|
+
if (submission.builderSlots.has(duty.slot))
|
|
194
|
+
continue;
|
|
195
|
+
const pubkeyHex = toPubkeyHex(duty.pubkey);
|
|
196
|
+
const { selection } = this.validatorStore.getBuilderSelectionParams(pubkeyHex, duty.slot);
|
|
197
|
+
if (selection === routes.validator.BuilderSelection.ExecutionOnly)
|
|
198
|
+
continue;
|
|
199
|
+
const builderEntries = this.validatorStore.getResolvedBuilderEntries(pubkeyHex);
|
|
200
|
+
if (builderEntries.length === 0)
|
|
201
|
+
continue;
|
|
202
|
+
try {
|
|
203
|
+
// Collect entries per duty and only add them to the batch if signing
|
|
204
|
+
// succeeded for all builders, else the duty is retried on the next tick
|
|
205
|
+
const dutyEntries = [];
|
|
206
|
+
for (const entry of builderEntries) {
|
|
207
|
+
const auth = await this.validatorStore.getBuilderRequestAuth(duty.pubkey, entry.authData, duty.slot, slot);
|
|
208
|
+
dutyEntries.push({
|
|
209
|
+
proposerPubkey: duty.pubkey,
|
|
210
|
+
url: new TextEncoder().encode(entry.url),
|
|
211
|
+
auth,
|
|
212
|
+
maxExecutionPayment: entry.maxExecutionPayment,
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
builderPreferences.push(...dutyEntries);
|
|
216
|
+
pendingIndexByEntry.push(...dutyEntries.map(() => pending.length));
|
|
217
|
+
pending.push({ submission, slot: duty.slot });
|
|
218
|
+
}
|
|
219
|
+
catch (e) {
|
|
220
|
+
this.logger.error("Error signing builder preferences", { slot: duty.slot, validatorIndex: duty.validatorIndex }, e);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
if (builderPreferences.length === 0) {
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
try {
|
|
227
|
+
(await this.api.validator.submitBuilderPreferences({ builderPreferences })).assertOk();
|
|
228
|
+
// Only mark as submitted after the API call succeeds; a thrown error, including per-entry
|
|
229
|
+
// failures reported by index, leaves all slots eligible for retry on the next tick.
|
|
230
|
+
// Re-submitting preferences a builder already accepted is harmless.
|
|
231
|
+
for (const { submission, slot: submittedSlot } of pending) {
|
|
232
|
+
submission.builderSlots.add(submittedSlot);
|
|
233
|
+
}
|
|
234
|
+
this.logger.debug("Submitted builder preferences", { count: builderPreferences.length });
|
|
235
|
+
}
|
|
236
|
+
catch (e) {
|
|
237
|
+
const failures = e instanceof ApiError ? e.failures : undefined;
|
|
238
|
+
if (failures === undefined) {
|
|
239
|
+
this.logger.warn("Error submitting builder preferences", { count: builderPreferences.length }, e);
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
// Some entries were not accepted by their builder, reported by index into the batch. Mark the
|
|
243
|
+
// proposals whose entries were all accepted, the others are retried with all their builders.
|
|
244
|
+
const failedPendingIndices = new Set(failures.map(({ index }) => pendingIndexByEntry[index]));
|
|
245
|
+
pending.forEach(({ submission, slot: submittedSlot }, index) => {
|
|
246
|
+
if (!failedPendingIndices.has(index)) {
|
|
247
|
+
submission.builderSlots.add(submittedSlot);
|
|
248
|
+
}
|
|
249
|
+
});
|
|
250
|
+
for (const { index, message } of failures) {
|
|
251
|
+
this.logger.warn("Error submitting builder preferences", {
|
|
252
|
+
slot: pending[pendingIndexByEntry[index]]?.slot,
|
|
253
|
+
builder: builderPreferences[index] ? new TextDecoder().decode(builderPreferences[index].url) : undefined,
|
|
254
|
+
message,
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
//# sourceMappingURL=proposalPreferences.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proposalPreferences.js","sourceRoot":"","sources":["../../src/services/proposalPreferences.ts"],"names":[],"mappings":"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"}
|
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,EACL,YAAY,EACZ,eAAe,EAIhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAQ,YAAY,EAAE,MAAM,EAAqC,MAAM,4BAA4B,CAAC;AAC3G,OAAO,EAAC,SAAS,EAAE,MAAM,EAAM,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAC,OAAO,EAAC,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAC,MAAM,EAA6C,MAAM,iBAAiB,CAAC;AAEnF,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AAErC,OAAO,EAAC,kBAAkB,EAAC,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAC,qBAAqB,EAAC,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"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"}
|
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 {
|
|
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
|
|
161
|
-
new BuilderPreferencesService(config, loggerVc, api, clock, validatorStore, blockDutiesService, metrics);
|
|
159
|
+
new ProposalPreferencesService(config, loggerVc, api, clock, validatorStore, blockDutiesService, syncingStatusTracker, metrics);
|
|
162
160
|
return new Validator({
|
|
163
161
|
opts,
|
|
164
162
|
genesis,
|
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.50.0-dev.
|
|
3
|
+
"version": "1.50.0-dev.b726a05a4d",
|
|
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.
|
|
54
|
-
"@lodestar/config": "^1.50.0-dev.
|
|
55
|
-
"@lodestar/db": "^1.50.0-dev.
|
|
56
|
-
"@lodestar/params": "^1.50.0-dev.
|
|
57
|
-
"@lodestar/state-transition": "^1.50.0-dev.
|
|
58
|
-
"@lodestar/types": "^1.50.0-dev.
|
|
59
|
-
"@lodestar/utils": "^1.50.0-dev.
|
|
53
|
+
"@lodestar/api": "^1.50.0-dev.b726a05a4d",
|
|
54
|
+
"@lodestar/config": "^1.50.0-dev.b726a05a4d",
|
|
55
|
+
"@lodestar/db": "^1.50.0-dev.b726a05a4d",
|
|
56
|
+
"@lodestar/params": "^1.50.0-dev.b726a05a4d",
|
|
57
|
+
"@lodestar/state-transition": "^1.50.0-dev.b726a05a4d",
|
|
58
|
+
"@lodestar/types": "^1.50.0-dev.b726a05a4d",
|
|
59
|
+
"@lodestar/utils": "^1.50.0-dev.b726a05a4d",
|
|
60
60
|
"strict-event-emitter-types": "^2.0.0"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
|
-
"@lodestar/logger": "^1.50.0-dev.
|
|
64
|
-
"@lodestar/spec-test-util": "^1.50.0-dev.
|
|
65
|
-
"@lodestar/test-utils": "^1.50.0-dev.
|
|
63
|
+
"@lodestar/logger": "^1.50.0-dev.b726a05a4d",
|
|
64
|
+
"@lodestar/spec-test-util": "^1.50.0-dev.b726a05a4d",
|
|
65
|
+
"@lodestar/test-utils": "^1.50.0-dev.b726a05a4d",
|
|
66
66
|
"@vekexasia/bigint-buffer2": "^1.1.1",
|
|
67
67
|
"rimraf": "^4.4.1"
|
|
68
68
|
},
|
|
69
|
-
"gitHead": "
|
|
69
|
+
"gitHead": "56329aea78b93f7d5a9ad649e6052f718cd3190b"
|
|
70
70
|
}
|
|
@@ -14,7 +14,8 @@ const REGISTRATION_CHUNK_SIZE = 512;
|
|
|
14
14
|
* the engine for building execution payload with transactions.
|
|
15
15
|
*
|
|
16
16
|
* This needs to be done every epoch because the BN will cache it at most for
|
|
17
|
-
* two epochs.
|
|
17
|
+
* two epochs. From gloas the beacon node takes the fee recipient from the signed
|
|
18
|
+
* proposer preferences and the validators using it from the committee subscriptions.
|
|
18
19
|
*/
|
|
19
20
|
export function pollPrepareBeaconProposer(
|
|
20
21
|
config: BeaconConfig,
|
|
@@ -28,6 +29,9 @@ export function pollPrepareBeaconProposer(
|
|
|
28
29
|
// Before bellatrix we don't need to update this data on bn/builder
|
|
29
30
|
if (epoch < config.BELLATRIX_FORK_EPOCH - 1) return;
|
|
30
31
|
|
|
32
|
+
// Proposer data is pre-gloas only, replaced by proposer preferences and committee subscriptions
|
|
33
|
+
if (config.getForkSeq(epoch * SLOTS_PER_EPOCH) >= ForkSeq.gloas) return;
|
|
34
|
+
|
|
31
35
|
// prepareBeaconProposer is not as time sensitive as attesting.
|
|
32
36
|
// Poll indices first, then call api.validator.prepareBeaconProposer once
|
|
33
37
|
await validatorStore.pollValidatorIndices().catch((e: Error) => {
|