docs(runbooks): operator-keyring setup for the BYO validator migration#383
Conversation
Captures the procedure exercised on arctic-1 node-19: identifying the operator account on-chain from the consensus pubkey (+ checking authz/withdraw delegation), converting a `seid keys add --output json` admin_key.json into a file-backend keyring (with the stdin mnemonic+passphrase feeding gotcha), the two distinct SOPS Secrets (data/base64 for exact-byte fidelity, not stringData), the encoding validation, and wiring validator.operatorKeyring into the SND. Includes the security tradeoff (full operator key = treasury+gov on an internet-exposed pod under shareProcessNamespace) and the safer authz MsgVote-only alternative, so future operators choose deliberately. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
PR SummaryLow Risk Overview The migration table now points optional Reviewed by Cursor Bugbot for commit 8cd476e. Bugbot is set up for automated code reviews on this repo. Configure here. |
Adds an Operator account keyring section to
migrating-validator-to-byo-secrets.md, capturing the procedure exercised live on arctic-1 node-19 (whose validator now mounts the operator key for on-node governance voting).Covers:
authzgrants / redirected withdraw address).admin_key.json(aseid keys add --output jsonmnemonic export) into a file-backend keyring — including the--recoverstdin gotcha (it reads mnemonic and passphrase from stdin; feed all three lines or the prompts hit EOF).data:/base64 — notstringData— because.info/keyhashare exact-byte sensitive, with an encoding-validation check (decode → JWE / bcrypt) before commit, and the "base64 ≠ encrypted" reminder.validator.operatorKeyring(four distinct secretNames, CEL-enforced) + the on-nodeseid tx gov votecommand.shareProcessNamespace) and the safer authzMsgVote-only alternative, so the choice is deliberate.Follow-up to #382 (the original migration runbook). Content is grounded in the node-19 setup we just executed + verified on-chain.