Skip to content

validator: revisit CLI defaults, starting with --builder-proposals at gloas #796

Open

Description

@MegaRedHand

The validator client's defaults were chosen before gloas, and at gloas the most consequential one now differs from every other client: --builder-proposals is off by default, and without it produceBlockV4 gets builder_boost_factor: 0. Pooled p2p bids therefore never win on value, only when the local build fails (#707 documents that case).

What the other validator clients send at gloas by default

Client Default at gloas Read at
Lighthouse boost 100, min_bid 0. The builder CLI flags do not reach gloas production; the body comes from builder_definitions.yml unstable @ 1a704e58
Prysm boost 100. --enable-builder "has no effect after the gloas fork" develop @ 844d8b8d
Teku p2p boost 100, min bid 0. The builder flag only empties the builder-API entries master @ 19b9214c
Lodestar boost 90 when no selection is set. executiononly sends boost 0 with min_bid 2^64-1 and refuses a block that is not self-built unstable @ efd56334
Nimbus boost 100. --payload-builder only adds relay entries unstable @ 31bc2459

So four of the five let p2p bids compete at par by default, the fifth at 90%, and only Lodestar has a mode that rules them out entirely. All five publish proposer preferences unconditionally, as #707 does.

The likely reason: a gloas p2p bid is paid through the protocol rather than by a relay, so taking one asks less trust of the proposer than a pre-gloas blinded block. That is an inference, not something the clients' code says.

To decide

  • Turn --builder-proposals on by default, or split it. Before gloas the flag means relay registrations and blinded blocks, which need a beacon node with a builder (--builder on ethlambda), so defaulting that half on is a separate question from letting gloas p2p bids compete. Splitting it would match Lighthouse, Teku and Nimbus, whose builder flags no longer gate p2p bids.
  • The defaults that come with it: --builder-boost-factor (100, or Lodestar's 90) and --builder-min-bid (0). While ethlambda's own local payloads come back empty (getPayload right after forkchoiceUpdated, seen on the feat(validator): publish proposer preferences (gloas) #707 devnet), any bid beats a local build at a boost of 100.
  • An opt-out for self-build only, for an operator who must never take a builder's payload, even when the local build fails: Lodestar's executiononly shape, min_bid 2^64-1 plus a client-side refusal of a block whose bid is not BUILDER_INDEX_SELF_BUILD.
  • The other defaults, in the same pass: --gas-limit's fixed 60000000 (validator: take the default target gas limit from GAS_LIMIT_SCHEDULE #795) first.

Raised while addressing the review of #707.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions