-
Notifications
You must be signed in to change notification settings - Fork 231
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MEV block proposal #3883
MEV block proposal #3883
Conversation
Refers: status-im/nimbus-eth2#3883 Signed-off-by: Artur Marud <artur@status.im>
Refers: status-im/nimbus-eth2#3883 Signed-off-by: Artur Marud <artur@status.im>
Refers: status-im/nimbus-eth2#3883 Signed-off-by: Artur Marud <artur@status.im>
Refers: status-im/nimbus-eth2#3883 Signed-off-by: Artur Marud <artur@status.im>
Refers: status-im/nimbus-eth2#3883 Signed-off-by: Artur Marud <artur@status.im>
…02` (#118) Refers: status-im/nimbus-eth2#3883 Signed-off-by: Artur Marud <artur@status.im>
20db6ba
to
f9d05a8
Compare
038bd4e
to
6381cb8
Compare
beacon_chain/conf.nim
Outdated
payloadBuilder* {. | ||
hidden | ||
desc: "Payload builder URL" | ||
name: "payload-builder" .}: Option[string] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Technically, it's possible to use multiple builders, right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One is supposed to do this with an external builder/relay setup, but yes, it's technically possible to incorporate that multiplexing into a CL. This was discussed at DevConnect and the recommendation was not to do this within the CL, however.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In particular, what you're describing is the role of a "relay", e.g., https://github.com/flashbots/mev-boost/
This project is part of the Flashbots research towards proposer/builder separation for Maximal Extractable Value (MEV) mitigation.
mev-boost
can connect to relays that aggregate multiple builders. The builders prepare full blocks, optimizing for MEV extraction and fair distribution of the rewards. The Consensus Layer client of the validator proposes the most profitable block received frommev-boost
.
i.e. the question of whether a CL should be its own relay, or meta-relay. The protocol allows it -- there used to be a distinction between the "builder" and "relay" protocols, which is gone now, to allow composing these layers more freely -- but they're still generally better to outsource to more specialized software.
For example, the publicly available URLs are not of builders but relays:
Sepolia testnet
Run mev-boost pointed at our Sepolia Relay:
./mev-boost -sepolia -relays https://0x845bd072b7cd566f02faeb0a4033ce9399e42839ced64e8b2adcfc859ed1e8e1a5a293336a49feac6d9a5edb779be53a@builder-relay-sepolia.flashbots.net
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's a reasonable point, but I think users would still be concerned about losing connectivity to a particular relay (either due to a particular internet link going down or due to the relay going offline), so having the option to specify more than one may be desirable.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
https://github.com/flashbots/mev-boost should accomplish this, and it's already maintained and will be improved by Flashbots.
|
||
return ok validatorRegistration | ||
|
||
proc registerValidators(node: BeaconNode) {.async.} = |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe the registrations can be evenly spread out through the period instead of producing a spike of CPU usage from time to time.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
7780e21 adds a TODO here -- I agree with this as a goal, but not sure it works best as part of this PR.
be06b87
to
4a19a9c
Compare
a0940ba
to
b1e963e
Compare
The `enable` flag is hidden in the if since this is not merged yet: status-im/nimbus-eth2#3883 Signed-off-by: Jakub Sokołowski <jakub@status.im>
2a45e1d
to
3793103
Compare
hidden | ||
desc: "Enable external payload builder" | ||
defaultValue: false | ||
name: "payload-builder-enable" .}: bool |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't use this -enable
suffix on other similar flags (e.g. --rest:on
, --keymanager:on
, --metrics:on
, etc). --light-client-enable
is the only existing precedent, but we haven't released this functionality officially yet, so we can fix it as well.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note that macOS and Windows use separate infra-role-beacon-node
repos and need separate updating.
#3200
This doesn't affect node operations unless
--payload-builder-enable
is specified.