Skip to content

[ConfigManager] Register Node Sections 2/4 - #3993

Draft
bdchatham wants to merge 3 commits into
plt-775-node-sections-1from
plt-775-node-sections-2
Draft

[ConfigManager] Register Node Sections 2/4#3993
bdchatham wants to merge 3 commits into
plt-775-node-sections-1from
plt-775-node-sections-2

Conversation

@bdchatham

@bdchatham bdchatham commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

What this does

Declares the consensus table and the mempool table, 31 keys. Nothing consumes
them, so a node's configuration reads exactly as it did.

Neither varies by node kind

How long a node waits at each step of a round has to agree across the validator set
for the set to reach a decision, so a value that followed from the kind of node
asking would be this change proposing that they disagree. What a node holds before a
transaction is decided is a limit on its own memory and bandwidth, and nothing in
the binary makes one follow from what the node is for.

Fifteen consensus keys are removed settings

The consensus struct carries fifteen fields the node removed as settings and marks
each one deprecated. The fields are kept so a decode can tell that an operator set
one. They are left out here, because declaring any of them would offer a key that
changes nothing about how the node runs.

That leaves nine of the table's twenty-four paths declared, and the root directory makes ten
excluded: both these sections carry the field the node fills from the command line after the
file is read, so both stated the empty string for it.

Counting them by looking for unset pointers gives nine, and that is wrong. Six
of the fifteen are durations or booleans, where a written zero and an unwritten
field hold the same value. The test reads the struct's own deprecated marking
instead, which is the only signal that covers all fifteen.

The reader's own check reaches eight of them, and nothing calls it

There is a function that names the removed settings an operator wrote. It reaches
eight of the fifteen: the six described above cannot be detected at all, for the
same reason, and one more it omits while naming that field's seven siblings.

Neither that function nor the wrapper around it has a caller anywhere in the tree.
So an operator who still has timeout-commit in their file today gets no error and
no warning, and the value is quietly ignored.

That is what makes leaving these out load-bearing rather than tidy. It keeps the key
out of the new format instead of relying on a diagnostic that never runs.

Two tests hold this. One ties every exclusion to the struct's deprecated marking, so
a field that stopped being deprecated fails. The other holds which eight the check
reaches, so making the check complete fails rather than leaving the count stale.

Verification

gofmt, goimports, go vet clean. golangci-lint reports nothing on the touched
package. config/... and cmd/seid/... pass.

Reviewing this

Second of four, stacked on the first, so the diff shows only this step.

Neither varies by node kind. How long a node waits at each step of a round has
to agree across the validator set for the set to reach a decision, and what a
node holds before a transaction is decided is a limit on its own memory.

The consensus struct carries fifteen fields the node removed as settings, and it
marks each one deprecated. They are excluded: declaring one would offer a key
that changes nothing about how the node runs. So the section declares nine of
its twenty-four paths.

The reader has a check that names the removed settings an operator wrote, and it
reaches eight of the fifteen. Six are durations or booleans, where a written
zero and an unwritten field hold the same value, so no check can tell them
apart. One more it omits. Nothing calls the check in any case. A test holds
which eight it reaches, so making it complete fails rather than leaving the
count stale, and a second test holds every exclusion to the struct's own
deprecated marking rather than to that check.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Aug 24, 2026

Copy link
Copy Markdown

The latest Buf updates on your PR. Results from workflow Buf / buf (pull_request).

BuildFormatLintBreakingUpdated (UTC)
✅ passed✅ passed✅ passed✅ passedAug 25, 2026, 1:20 AM

@codecov

codecov Bot commented Aug 24, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 57.60%. Comparing base (261a308) to head (44f76d2).

Additional details and impacted files

Impacted file tree graph

@@                     Coverage Diff                     @@
##           plt-775-node-sections-1    #3993      +/-   ##
===========================================================
- Coverage                    57.64%   57.60%   -0.04%     
===========================================================
  Files                         2231     2230       -1     
  Lines                       187818   187668     -150     
===========================================================
- Hits                        108259   108112     -147     
+ Misses                       69691    69689       -2     
+ Partials                      9868     9867       -1     
Flag Coverage Δ
sei-chain-pr 100.00% <100.00%> (+0.92%) ⬆️
sei-db 69.80% <ø> (-0.22%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
config/tendermintbase/tendermintbase.go 100.00% <100.00%> (ø)

... and 4 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

bdchatham and others added 2 commits August 24, 2026 12:15
# Conflicts:
#	config/tendermintbase/tendermintbase.go
#	config/tendermintbase/tendermintbase_test.go
…ory out

Both carry the root directory field the node fills from the command line after
the file is read, so both stated the empty string for it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant