Add register_validator endpoint - #209
Merged
mpetrunic merged 8 commits intoMay 10, 2022
Merged
Conversation
lightclient
force-pushed
the
new-validator-registration-method
branch
from
May 6, 2022 12:22
2e61dae to
7109932
Compare
ralexstokes
reviewed
May 6, 2022
ralexstokes
previously approved these changes
May 6, 2022
Member
There was a problem hiding this comment.
left one comment below about defining the common types in the pyspec style somewhere and otherwise this looks great.
I strongly support this solution over #206
ralexstokes
reviewed
May 6, 2022
ralexstokes
reviewed
May 6, 2022
ralexstokes
reviewed
May 6, 2022
ralexstokes
reviewed
May 6, 2022
This was referenced May 6, 2022
lightclient
force-pushed
the
new-validator-registration-method
branch
from
May 7, 2022 18:12
9469ea4 to
58859e0
Compare
34 tasks
djrtwo
reviewed
May 9, 2022
djrtwo
left a comment
Contributor
There was a problem hiding this comment.
Looks good! minor comment on the language.
plus I prefer keeping it in the validator namespace as this is something the validator uses in it's BN communications
24 tasks
lightclient
force-pushed
the
new-validator-registration-method
branch
from
May 10, 2022 08:12
811f4e9 to
f91bcc2
Compare
Co-authored-by: Alex Stokes <r.alex.stokes@gmail.com>
Member
Author
|
Hi @mpetrunic, would you mind taking a look at this? Thanks! |
2 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is another take on #206.
Rather than extending
prepare_beacon_proposer, in this PR we create a new, separate endpointregister_validator. This addresses two pieces of feedback raised against the extension:prepare_beacon_proposerperforms a critical operation and probably shouldn't be encumbered by any additional responsibilitiesregister_validatorwill likely be executed on a different rhythm thanprepare_beacon_proposer, so it feels more appropriate to separate out that logic--
Now a short recap on why it's important this data is sent to the beacon node in the first place.
After the merge, validators will want to extract MEV from blocks. The mechanism that will facilitate this extraction a network of external builders. These builders will provide
ExecutionPayloadHeaders to proposers to include in their beacon blocks with the promise that they will be paid a portion of the extracted value. From the perspective of the builder, most values in the header are deterministic depending on what the parent is. However, it is important that a few parameters remain under control of the proposer.First is obviously the
fee_recipient. Although it's not critical that the payload's actualfee_recipientbe set to the proposer's preferred address (a simple transfer at the end of the block would suffice), it is crucial block builders have this information ahead of time so that they can begin constructing blocks immediately after their forkchoice moves forward.The second parameter that is on the critical path to production is
gas_limit. Strictly speaking, builders could decide whatever limit they like under the rules of consensus, however this gives a small number of builders a lot of power over this protocol parameter. Validators are more aligned with choosing a healthy gas limit, so it's best that value is left up to them.In order to provide these two values to builders ahead of time in an form that can be authenticated, we introduce this new endpoint. By signing over these values and a timestamp, builders can determine validator's latest preferences before they are scheduled to propose.
The Builder API and spec is currently being developed in
ethereum/builder-specs. A new domain type has also been proposed which will be utilized by this endpoint to avoid a conflict with consensus-level messages.