-
Notifications
You must be signed in to change notification settings - Fork 990
Add a flag to always use payloads from builders #4040
Description
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.