Skip to content

docs: builder block selection and chain_split_halt guidance#143

Open
nickh-obol wants to merge 2 commits into
mainfrom
nick/mev-boost-reccomendations-and-chain-split-halt
Open

docs: builder block selection and chain_split_halt guidance#143
nickh-obol wants to merge 2 commits into
mainfrom
nick/mev-boost-reccomendations-and-chain-split-halt

Conversation

@nickh-obol
Copy link
Copy Markdown
Contributor

Summary

  • Add a Builder Block Selection section to deployment best practices listing the per-client flag for preferring builder bids over locally-built blocks (Teku, Prysm, Nimbus, Lighthouse, Lodestar).
  • Update the MEV enable guides to remove the contradictory --local-block-value-boost=3 recommendation and switch Lodestar from builderonly to builderalways for graceful fallback. Cross-references the new section.
  • Mention Charon's chain_split_halt feature in the Client Diversity section as a complementary safeguard against client bugs causing a chain split, including the --feature-set-enable=chain_split_halt flag (alpha).

Copy link
Copy Markdown
Contributor

@ksale001 ksale001 left a comment

Choose a reason for hiding this comment

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

A few notes on the new Builder Block Selection section, mostly around the per-client flags. Nothing major, happy to chat through any of them.


The relevant flags vary by consensus client:

- **Teku**: `--validators-builder-bid-compare-factor=0`.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think this Teku flag might be backwards. From what I can tell, --builder-bid-compare-factor=0 means the builder bid has to beat the local block by around 100% before it ever wins, so it actually ends up favoring the local block, which is the opposite of what we want in this section. To always prefer the builder it should be --builder-bid-compare-factor=BUILDER_ALWAYS. One more thing, I believe the flag is just --builder-bid-compare-factor on the beacon node, without the validators- prefix. Could you double check both of those?

- **Lighthouse**: `--prefer-builder-proposals`.
- **Lodestar**: `--builder.selection=builderalways` (set on the validator client).

With these settings the consensus client uses a builder block whenever one is available, only falling back to a locally-built block if no valid bid is returned from any configured relay in time.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Small thing on accuracy here. Setting --local-block-value-boost=0 on Prysm and Nimbus just removes the local bias rather than forcing the builder. It's still a value comparison, so a higher-value local block could still win. I think only Lighthouse with --prefer-builder-proposals and Lodestar with builderalways actually force builder-always. Could we soften the line about using a builder block whenever one is available so it reads accurately for all five clients?

- **Lighthouse**: `--prefer-builder-proposals`.
- **Lodestar**: `--builder.selection=builderalways` (set on the validator client).

With these settings the consensus client uses a builder block whenever one is available, only falling back to a locally-built block if no valid bid is returned from any configured relay in time.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think it would help to add a one-line caveat here. Always preferring the builder does maximize MEV, but it also raises the risk of a missed proposal if a relay is slow or returns a bad bid. That trade-off is basically why we used to recommend --local-block-value-boost=3, so calling it out would help operators make the right call for their setup.

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.

2 participants