Skip to content
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

Merged
merged 11 commits into from
Aug 1, 2022
Merged

MEV block proposal #3883

merged 11 commits into from
Aug 1, 2022

Conversation

tersec
Copy link
Contributor

@tersec tersec commented Jul 17, 2022

#3200

This doesn't affect node operations unless --payload-builder-enable is specified.

@github-actions
Copy link

github-actions bot commented Jul 17, 2022

Unit Test Results

       12 files  ±0       860 suites  ±0   1h 20m 6s ⏱️ + 3m 57s
  1 911 tests ±0    1 764 ✔️ ±0  147 💤 ±0  0 ±0 
10 341 runs  ±0  10 151 ✔️ ±0  190 💤 ±0  0 ±0 

Results for commit ae32a6f. ± Comparison against base commit dfd4afc.

♻️ This comment has been updated with latest results.

Marudny pushed a commit to status-im/infra-role-beacon-node-linux that referenced this pull request Jul 18, 2022
Refers: status-im/nimbus-eth2#3883

Signed-off-by: Artur Marud <artur@status.im>
Marudny pushed a commit to status-im/infra-nimbus that referenced this pull request Jul 18, 2022
Marudny pushed a commit to status-im/infra-role-beacon-node-linux that referenced this pull request Jul 18, 2022
Refers: status-im/nimbus-eth2#3883

Signed-off-by: Artur Marud <artur@status.im>
Marudny added a commit to status-im/infra-role-beacon-node-linux that referenced this pull request Jul 18, 2022
Refers: status-im/nimbus-eth2#3883

Signed-off-by: Artur Marud <artur@status.im>
Marudny pushed a commit to status-im/infra-nimbus that referenced this pull request Jul 18, 2022
Marudny added a commit to status-im/infra-nimbus that referenced this pull request Jul 18, 2022
@tersec tersec changed the title MEV validator registration MEV validator registration and blinded payload retrieval Jul 19, 2022
@tersec tersec changed the title MEV validator registration and blinded payload retrieval MEV block proposal Jul 21, 2022
payloadBuilder* {.
hidden
desc: "Payload builder URL"
name: "payload-builder" .}: Option[string]
Copy link
Contributor

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?

Copy link
Contributor Author

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.

Copy link
Contributor Author

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 from mev-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

Copy link
Contributor

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.

Copy link
Contributor Author

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.

beacon_chain/nimbus_beacon_node.nim Outdated Show resolved Hide resolved
beacon_chain/spec/signatures.nim Outdated Show resolved Hide resolved
beacon_chain/spec/state_transition.nim Show resolved Hide resolved
beacon_chain/validators/validator_duties.nim Outdated Show resolved Hide resolved

return ok validatorRegistration

proc registerValidators(node: BeaconNode) {.async.} =
Copy link
Contributor

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.

Copy link
Contributor Author

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.

beacon_chain/validators/validator_pool.nim Outdated Show resolved Hide resolved
@tersec tersec force-pushed the mev-register-validators branch 7 times, most recently from be06b87 to 4a19a9c Compare July 29, 2022 08:10
@tersec tersec force-pushed the mev-register-validators branch 2 times, most recently from a0940ba to b1e963e Compare July 29, 2022 10:16
jakubgs added a commit to status-im/infra-role-beacon-node-linux that referenced this pull request Jul 29, 2022
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>
hidden
desc: "Enable external payload builder"
defaultValue: false
name: "payload-builder-enable" .}: bool
Copy link
Contributor

@zah zah Aug 1, 2022

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.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

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.

@zah zah merged commit d62d13a into unstable Aug 1, 2022
@zah zah deleted the mev-register-validators branch August 1, 2022 06:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants