feat(inprocess): shared-network model + migrate distribution & staking#3706
Draft
bdchatham wants to merge 3 commits into
Draft
feat(inprocess): shared-network model + migrate distribution & staking#3706bdchatham wants to merge 3 commits into
bdchatham wants to merge 3 commits into
Conversation
Keystone: name each validator's operator key `node_admin` (was the moniker), mirroring the docker localnode — so suites resolve the operator's valoper, rewards, and delegation-target by that name and run unchanged. Guard provisionExtraKeys against an ExtraKey reusing the name (would silently overwrite the operator with a plain account) + a regression test. Runner in-process arm moves to one shared network started in TestMain and reused by every suite (required by the one-network-per-process guard; amortizes bring-up + the seid build). Migrate the distribution suite (community_pool + rewards — rewards exercises the operator-key seeding). Authz is skipped for now: its YAMLs re-`keys add` an existing key and rely on a passphrase-prompting backend the `test` keyring isn't. Fix the cross-node-tx signer in harness_test.go to the operator key's new name. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3706 +/- ##
==========================================
- Coverage 59.31% 58.36% -0.95%
==========================================
Files 2273 2186 -87
Lines 188364 178547 -9817
==========================================
- Hits 111720 104203 -7517
+ Misses 66583 65086 -1497
+ Partials 10061 9258 -803
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
|
The latest Buf updates on your PR. Results from workflow Buf / buf (pull_request).
|
Staking migrates cleanly on the keystone: admin delegates/redelegates/unbonds across validators, resolving each node's operator valoper by node_admin (--bech val). The cross-node redelegate (node-0 -> node-1) exercises two distinct operators. Mint is skipped: mint_test.yaml asserts the docker localnode's exact mint-schedule genesis (total 999999999999usei, fixed supply), but the harness boots ModuleBasics.DefaultGenesis. Needs the localnode mint genesis replicated. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Mint skip: broaden the remediation — the total-supply assertion folds in the localnode's full genesis allocation, not just the mint schedule, so replicating the schedule alone wouldn't unblock it (sei-network catch). Drop the drift-prone inline numbers; point to mint_test.yaml. Staking: fix the ambiguous "which" antecedent + doubled valoper-resolution phrasing (idiom + prose). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This was referenced Jul 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
In-process migration: shared-network model + first YAML-suite wave
Second wave of the in-process integration migration (builds on the merged harness, #3642).
What's here
node_adminoperator key. Each validator's operator key is stored in its node keyring asnode_admin, mirroring the docker localnode — so suites resolve the operator by name (valoper via--bech val, reward/commission queries, delegation targets) and run unchanged.provisionExtraKeysrejects anExtraKeyreusing the name (would silently overwrite the operator), with a regression test.inprocess.NetworkinTestMainand reuses it across suites — required (one network per process — process-global EVM singletons) and efficient (amortizes bring-up + the one seid build). Mirrors the docker job model: one cluster, suites sequential.rewardsand Staking's cross-node redelegate (node-0 → node-1) both exercise the operator-key seeding across distinct validators.Measured (in-process, shared network)
All three + N=4 harness + guards green in one process (~87s package total incl. seid build).
Deferred (documented skips, each surfaced in
go test)keys add granteeand rely on a passphrase-prompting keyring backend; the harnesstestbackend takes none. Needs keyring-backend parity or per-suite key isolation.Review
Independent, blinded, domain-led
/xreview(per operator instruction: peer review independent of the systems engineer). Round 6 (keystone + shared-net + distribution) and Round 7 (staking + skips) — both RESOLVED. Highlights:bdchatham-designstest-harness arc, Rounds 6–7.Follow-ups
keys add-override suite class (authz).--generate-onlytx files to the repo root (runner CWD = repoRoot for relativesource); gitignore or write to a temp dir.🤖 Generated with Claude Code