Skip to content

docs: add v2 proposer settings reference for the gloas fork - #1242

Open
james-prysm wants to merge 18 commits into
masterfrom
gloas-proposer-settings
Open

james-prysm wants to merge 18 commits into
masterfrom
gloas-proposer-settings

Conversation

@james-prysm

@james-prysm james-prysm commented Sep 9, 2026 •

Copy link
Copy Markdown
Collaborator

Adds a Proposer settings page as the canonical reference for the v2 schema (OffchainLabs/prysm#17379 and the related gloas builder work), and updates the pages that overlap with it.

New docs/configure-prysm/proposer-settings.md covers:

  • the full v2 schema: option-level gas_limit, the builder object, builder entries
  • how a bid is valued (value + execution_payment capped by max_execution_payment, min_bid floor, builder_boost_factor) and why max_execution_payment is a trust decision with no separate opt-in flag in Prysm
  • inheritance and merge rules, including builders: absent inherits, [] uses none
  • the backwards-compatible window: a non-empty builders list opts a key into mev-boost registration pre-fork, an explicit empty list opts it out
  • v1 to v2 field mapping, migration checklist, and what happens if you don't migrate
  • flag deprecations (--enable-builder, --suggested-gas-limit, --with-builder) and a table mapping each startup warning to the action it calls for

Also:

  • configure-fee-recipient: frame the file as proposer settings, replace the v1 builder/gas-limit example with the v2 shape, correct the stale 30M gas limit
  • configure-mev-builder: label the mev-boost flow as pre-fork, add an in-protocol builder section, flag the legacy flags, and note that "builders": [] rather than deleting the builder object is how you unregister a key under v2
  • keymanager-api: note the new per-key builder_config endpoints
  • validator troubleshooting: scope the registration-failure row to pre-gloas

version is documented as optional throughout: Prysm infers v2 from the builder fields, and the field makes no difference for a fee-recipient-only file.

Adds a Proposer settings page as the canonical reference for the v2 schema
(OffchainLabs/prysm#17379 and the related gloas builder work), and updates the
pages that overlap with it.

New docs/configure-prysm/proposer-settings.md covers:
- the full v2 schema: option-level gas_limit, the builder object, builder entries
- how a bid is valued (value + execution_payment capped by max_execution_payment,
  min_bid floor, builder_boost_factor) and why max_execution_payment is a trust
  decision with no separate opt-in flag in Prysm
- inheritance and merge rules, including builders: absent inherits, [] uses none
- the backwards-compatible window: a non-empty builders list opts a key into
  mev-boost registration pre-fork, an explicit empty list opts it out
- v1 to v2 field mapping, migration checklist, and what happens if you don't migrate
- flag deprecations (--enable-builder, --suggested-gas-limit, --with-builder) and a
  table mapping each startup warning to the action it calls for

Also:
- configure-fee-recipient: frame the file as proposer settings, replace the v1
  builder/gas-limit example with the v2 shape, correct the stale 30M gas limit
- configure-mev-builder: label the mev-boost flow as pre-fork, add an in-protocol
  builder section, flag the legacy flags, and note that "builders": [] rather than
  deleting the builder object is how you unregister a key under v2
- keymanager-api: note the new per-key builder_config endpoints
- validator troubleshooting: scope the registration-failure row to pre-gloas

version is documented as optional throughout: Prysm infers v2 from the builder
fields, and the field makes no difference for a fee-recipient-only file.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015fNaLcyDRZ3aeyTpVoZeHj
@vercel

vercel Bot commented Sep 9, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
prysm-documentation Ready Ready Preview Oct 1, 2026 8:31pm UTC

Request Review

@syjn99
syjn99 self-requested a review September 10, 2026 06:25
Comment thread docs/configure-prysm/configure-fee-recipient.md Outdated
Comment thread docs/configure-prysm/configure-mev-builder.mdx

@pete-vielhaber pete-vielhaber left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Pushed small grammar/styling edits

Comment thread docs/configure-prysm/configure-mev-builder.md Outdated
@@ -123,9 +125,9 @@ Tell your validator to use the JSON/YAML configuration through one of the follow



### Advanced: Configure MEV builder and gas limit
### Advanced: Configure gas limit, graffiti, and builders

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think this section is now covered by proposer settings page. Can we make this fee recipient page much lighter?


`--proposer-settings-file` and `--proposer-settings-url` are mutually exclusive — the validator client refuses to start with both.

Loaded settings are persisted in the validator client database, so changes made through the keymanager APIs survive restarts. On startup, a file or URL takes precedence over what's in the database: if the source contains a `proposer_config` section, it replaces the stored per-key section entirely, and a `default_config` in the source replaces the stored default. If you manage per-key settings through the keymanager APIs, restarting with a settings file resets per-key entries to the file's contents.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think this harms UX in some sense, so I added to emit logs when this event happens:

Thus we might add here that "the validator client will warn with which keys are dropped and overridden...".

Comment thread docs/configure-prysm/proposer-settings.md Outdated
james-prysm and others added 2 commits September 15, 2026 09:48
Co-authored-by: Jun Song <87601811+syjn99@users.noreply.github.com>
Co-authored-by: Jun Song <87601811+syjn99@users.noreply.github.com>
pull Bot pushed a commit to Hawthorne001/prysm that referenced this pull request Sep 21, 2026
…17498)

**What type of PR is this?**

> Feature

**What does this PR do? Why is it needed?**

- OffchainLabs/prysm-documentation#1242

As we have introduced new version for proposer settings schema, I can
think of a scenario that an user modifies the settings file
*incorrectly* before Gloas fork but Prysm usually ignores the file and
silently takes the correct data. I think it's a better UX to say loudly
when there is a undesired field. Also this can catch some common typo
like `fee_recipent`.

This PR looks huge, but most of the diff contains new JSON/YAML files
for the unit test. There are few changes in production path, namely:
- Either file/URL path, Prysm now decodes strictly (both for JSON and
YAML path)
- When the version is larger than `2` or `builder_set` is explictly set,
Prysm rejects it at startup.

**Which issue(s) does this PR fix?**

N/A

**Other notes for review**

- OffchainLabs#17261

The PR above changes `BuilderConfig.relays` as `reserved` fields. Now,
this PR rollbacks with an explicit comment, as we will still allow
`relays` field even after v2, even though it is completely ignored.

**Acknowledgements**

- [x] I have read
[CONTRIBUTING.md](https://github.com/prysmaticlabs/prysm/blob/develop/CONTRIBUTING.md).
- [x] I have included a uniquely named [changelog fragment
file](https://github.com/prysmaticlabs/prysm/blob/develop/CONTRIBUTING.md#maintaining-changelogmd).
- [x] I have added a description with sufficient context for reviewers
to understand this PR.
- [x] I have tested that my changes work as expected and I added a
testing plan to the PR description (if applicable).

---------

Co-authored-by: james-prysm <90280386+james-prysm@users.noreply.github.com>

This branch was successfully deployed

1 active deployment
Preview — ea047a16 Deployed Oct 1, 2026 by vercel[bot]
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