Skip to content

Warn when a proposer settings file replaces per-key settings saved in the DB - #17455

Open
syjn99 wants to merge 1 commit into
developfrom
syjn99/proposer-settings-loud-logs
Open

Warn when a proposer settings file replaces per-key settings saved in the DB#17455
syjn99 wants to merge 1 commit into
developfrom
syjn99/proposer-settings-loud-logs

Conversation

@syjn99

@syjn99 syjn99 commented Sep 4, 2026

Copy link
Copy Markdown
Member

What type of PR is this?

Other: UX improvement

What does this PR do? Why is it needed?

selectProposerConfig lets a --proposer-settings-file/-url per-key section replace the DB's per-key section entirely, so fee recipients, gas limits, graffiti or builder configs written through the keymanager API since the last restart vanish with only "Proposer settings loaded from file" in the log.

This is because we're consolidating all changes at startup and in the runtime in our DB, and I believe this needs fundamental restructure on this. However, given the complexity for revamping the loader, I'd rather log and say it loud to users. After the merge, it compares the normalized settings against what the DB held and warn once with the dropped and overridden keys (capped at 10 with a "+N more" tail).

Which issue(s) does this PR fix?

N/A

Other notes for review

Acknowledgements

  • I have read CONTRIBUTING.md.
  • I have included a uniquely named changelog fragment file.
  • I have added a description with sufficient context for reviewers to understand this PR.
  • I have tested that my changes work as expected and I added a testing plan to the PR description (if applicable).

… the DB

selectProposerConfig lets a --proposer-settings-file/-url per-key section
replace the DB's per-key section entirely, so fee recipients, gas limits,
graffiti or builder configs written through the keymanager API since the last
restart vanish with only "Proposer settings loaded from file" in the log.

Logging only, no behavior change: after the merge, compare the normalized
settings against what the DB held and warn once with the dropped and
overridden keys (capped at 10 with a "+N more" tail). Comparing normalized
settings rather than raw payloads keeps an unchanged restart quiet, including
v1 setups where --enable-builder fills in per-key builder content.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@syjn99
syjn99 requested a review from a team as a code owner September 4, 2026 13:24
@syjn99 syjn99 added ux Cosmetic / User Experience related items validator-client labels Sep 4, 2026
for _, tt := range tests {
for _, isSlashingProtectionMinimal := range [...]bool{false, true} {
t.Run(fmt.Sprintf("%v-minimal:%v", tt.name, isSlashingProtectionMinimal), func(t *testing.T) {
hook.Reset()

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

This is needed for running the tests multiple times in this unit test.

@syjn99
syjn99 requested a review from james-prysm September 5, 2026 04:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ux Cosmetic / User Experience related items validator-client

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant