Skip to content

Add a flag to always use payloads from builders #4040

@paulhauner

Description

@paulhauner

Description

In #3934 we added support for the new payload value APIs, which means we've started using local payloads if they're more profitable than the builder. Since we released v3.5.0 with that change, we've had two requests to add another flag that always prefers the builder.

The first of these requests was so that Rocket Pool (RP) can force some operators to always use a specific builder to ensure that the operator isn't secretly pocketing MEV.

The second was from @mcdee, who wants to always use the builder because:

Vouch needs the blinded proposals from multiple beacon nodes to use the same execution payload so it can compare them, and also importantly so it can publish the fully unblinded block to all beacon nodes.

There may be views that we shouldn't add this feature to try and force more locally produced blocks. I see those views, but these two scenarios show to me that there's valid, Ethereum-aligned use-cases for this flag and I don't think we should stand in the way of our users.

Additionally, there's been scenarios on testnets where we've always wanted to use the builder (e.g., the "big blocks" tests). This flag would be useful there, too.

Additional Info

Rather than an "always use the builder" flag, we could have a flag that's along the lines of "use the builder unless the value of the local builder is worth more than x ETH". I'm a little unsure about this complexity, though. I suspect that if you're going to be comparing payload values then you'll always want the most profitable one. The two use cases I listed above are "always use the builder" so I'm tempted to just stick with that.

Metadata

Metadata

Assignees

No one assigned

    Labels

    low-hanging-fruitEasy to resolve, get it before someone else does!v3.5.1Scheduled for March 2023

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions