feat: enable gRPC on validator mode (parity with sei-infra canonical)#19
Merged
Merged
Conversation
`applyValidatorOverrides` previously disabled `API.GRPC.Enable`, diverging from canonical sei-infra EC2 validators. Canonical evidence: - `sei-chain/docker/localnode/config/app.toml` `[grpc] enable = true` — the seid binary's built-in default. - `sei-infra/validators/deploy/scripts/init_configure.sh` sed-edits 10+ fields (pruning, indexer, sc-enable, concurrency) but never touches the `[grpc]` section — default carries through. - `sei-infra/validators/deploy/scripts/post_init.sh` starts the oracle price feeder, whose `price_feeder_config.toml:47` hard-codes `grpc_endpoint = "localhost:9090"`. A canonical validator without gRPC up cannot feed prices. K8s validators (where seictl writes app.toml from these defaults) have been diverging from this for the entire history of sei-config. The divergence is also what makes the cosmos-exporter sidecar Fatal-loop on K8s validators specifically — it dials :9090 at startup and seid isn't listening there. `GRPCWeb.Enable` stays disabled: no current consumer needs it and it adds browser-reachable surface for no benefit (security-specialist cross-review call). Un-defer when a real consumer appears. `REST.Enable` / `EVM.HTTPEnabled` / `Storage.StateStore.Enable` stay disabled — those are separate posture questions. Cross-repo coordination after this lands + tags v0.0.15: 1. bump sei-config dep in seictl, build new seictl image 2. bump `SEI_SIDECAR_IMAGE` in sei-k8s-controller's platform overlays 3. cycle validator pods (config-apply re-runs on Init/NodeUpdate, not on env-var change — existing pods retain old app.toml until cycled) Follow-up (filed separately as sei-k8s-controller issues): - NetworkPolicy gating :9090 on SeiNode pods (EC2 has SG-level gating; K8s parity requires explicit policy). - Remove `cosmosExporterReadinessProbePort` validator branch in sei-k8s-controller once full fleet cycles. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
You have used all Bugbot PR reviews included in your free trial for your GitHub account on this workspace. To continue using Bugbot reviews, enable Bugbot for your team in the Cursor dashboard. |
|
Suggested version: Changes in (empty)
Cutting a Release (and modifying non-markdown files)This PR is modifying both Automatically created GitHub ReleaseA draft GitHub Release has been created. |
4 tasks
bdchatham
added a commit
to sei-protocol/seictl
that referenced
this pull request
May 20, 2026
## Summary Picks up sei-protocol/sei-config#19, which removed the `API.GRPC.Enable = false` override on `applyValidatorOverrides` to align with canonical sei-infra EC2 validators. ## Behavioral effect for seictl Validator-mode `app.toml` files generated by the sidecar's config-apply path will now include `[grpc] enable = true` (was `false`). `gRPCWeb` stays disabled (no current consumer). REST / EVM / StateStore overrides unchanged. ## Downstream After this merges (and the matching `chore: bump version to v0.0.52` fast-follow lands), bumping seictl's image SHA in sei-k8s-controller's platform overlays will, on next validator pod cycle, propagate the new app.toml. That unblocks the cosmos-exporter sidecar, which dials `localhost:9090` at startup and currently Fatal-loops on K8s validators because gRPC isn't listening. Note: config-apply only re-runs on Init/NodeUpdate plans, not on env-var change. Existing validator pods will retain their old app.toml until cycled. ## Cross-review Substantive review happened on the underlying sei-config#19 PR (security-specialist + platform-engineer + kubernetes-specialist all returned proceed-with-conditions; conditions are tracked as sei-k8s-controller#311 + #312). This PR is the mechanical dep bump only. ## Test plan - [x] `go build ./...` clean - [x] `go test ./...` passes - [x] Fast-follow `chore: bump version to v0.0.52` PR after merge - [x] Downstream: sei-k8s-controller `SEI_SIDECAR_IMAGE` overlay bump 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
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.
Summary
applyValidatorOverridespreviously disabledAPI.GRPC.Enable, diverging from canonical sei-infra EC2 validators. This PR aligns the validator-mode default with what the seid binary + sei-infra deploy scripts actually do on EC2.GRPCWebstays disabled (no current consumer);REST/EVM/StateStoreoverrides are untouched (separate posture questions).Bumps
version.jsontov0.0.15so downstream consumers (seictl, sei-k8s-controller) can pin explicitly.Canonical evidence
sei-chain/docker/localnode/config/app.toml— seid built-in default ships with[grpc] enable = true.sei-infra/validators/deploy/scripts/init_configure.sh— sed-edits pruning/indexer/sc-enable/concurrency, never touches[grpc], so the default carries through.sei-infra/validators/deploy/scripts/post_init.sh:23— starts the oracle price feeder after chain liftoff.sei-infra/validators/deploy/scripts/price_feeder_config.toml:47— hard-codedgrpc_endpoint = "localhost:9090". A canonical validator without gRPC would fail to feed prices.Motivating problem
K8s validators (where seictl writes app.toml from these defaults) have been diverging from canonical for sei-config's entire history. The divergence is also what makes the cosmos-exporter sidecar Fatal-loop on K8s validators: cosmos-exporter dials :9090 at startup. EC2 validators never hit this because they have gRPC up.
Cross-review
Dispatched the trio (security-specialist, platform-engineer, kubernetes-specialist) on the diff before opening. All three came back proceed-with-conditions. Key conditions baked into this PR:
Conditions filed as follow-ups (not in this PR):
cosmosExporterReadinessProbePortvalidator branch in sei-k8s-controller — becomes dead code after full fleet cycles.Downstream sequencing (NOT part of this PR)
v0.0.15.SEI_SIDECAR_IMAGEin sei-k8s-controller platform overlays (harbor + dev + prod).config-applyre-runs on Init/NodeUpdate plans, not on env-var change — existing pods retain old app.toml until restart.Test plan
go test ./...passesTestDefaultForMode_ValidatorEnablesGRPClocks the new invariantTestDefaultForMode_ValidatorDisablesServicesstill asserts the unchanged posture (REST/EVM/StateStore/GRPCWeb all disabled)SEI_SIDECAR_IMAGErollout🤖 Generated with Claude Code