Skip to content

Fix archival protocol compatibility and fallback - #9

Merged
Ri-go merged 1 commit into
masterfrom
id-1610-archival-compatibility
Sep 18, 2026
Merged

Ri-go merged 1 commit into
masterfrom
id-1610-archival-compatibility

Conversation

@Ri-go

@Ri-go Ri-go commented Sep 18, 2026 •

Copy link
Copy Markdown
Member

Fix archival clients that currently fail on TM WebSocket, gRPC-Web or missing state within overlapping shards.

Add TM subscriptions and a mixed gRPC-Web/native gRPC/REST listener with CORS. Retry known missing-state errors on another eligible backend for historical reads, preserving height, payload and metadata. Writes, unknown gRPC methods and partial responses are not replayed.

Validation: full Go tests, race suite, vet, lint, generator tests and CI pass. All 15 isolated Asia checks passed, including live subscriptions, binary/text gRPC-Web and forced state fallback at heights 105504992 and 112637000. Published as v0.1.5 and deployed by digest to both private Asia replicas, with all 42 post-deploy protocol checks passing. Public DNS is unchanged.

EVM uses the existing Asia EVM Gateway without archival access controls. Exchange stays on nginx.

Refs ID-1610.

@coderabbitai

coderabbitai Bot commented Sep 18, 2026 •

Copy link
Copy Markdown

Review Change StackReview Change Stack

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Essentials

Run ID: 214e58a2-5994-4dbb-8a7e-9b236996668f

📥 Commits

Reviewing files that changed from the base of the PR and between 772ef56 and a8ea993.

⛔ Files ignored due to path filters (1)
  • go.sum is excluded by !**/*.sum
📒 Files selected for processing (34)
  • .github/workflows/ci.yml
  • .gitignore
  • Dockerfile
  • docs/archival-compatibility.md
  • go.mod
  • internal/cmd/start.go
  • internal/config/grpc_web_test.go
  • internal/config/types.go
  • internal/config/validate.go
  • internal/forwarder/history.go
  • internal/forwarder/history_test.go
  • internal/forwarder/http.go
  • internal/history/errors.go
  • internal/history/errors_test.go
  • internal/server/cmt_rpc/cache_test.go
  • internal/server/cmt_rpc/decode.go
  • internal/server/cmt_rpc/decode_test.go
  • internal/server/cmt_rpc/manifest.go
  • internal/server/cmt_rpc/server.go
  • internal/server/cmt_rpc/websocket.go
  • internal/server/cmt_rpc/websocket_test.go
  • internal/server/cosmos_grpc/compat_review_test.go
  • internal/server/cosmos_grpc/director.go
  • internal/server/cosmos_grpc/handler.go
  • internal/server/cosmos_grpc/history.go
  • internal/server/cosmos_grpc/history_methods.go
  • internal/server/cosmos_grpc/history_methods_review_test.go
  • internal/server/cosmos_grpc/history_test.go
  • internal/server/cosmos_grpc/server.go
  • internal/server/cosmos_grpc/web.go
  • internal/server/cosmos_grpc/web_test.go
  • internal/server/http.go
  • tools/generate-history-methods.py
  • tools/test_generate_history_methods.py
 ___________________________________________________________________________________
< Our code review squad: You're the Tank and I'm the Healer. Let's raid those bugs. >
 -----------------------------------------------------------------------------------
  \
   \   (\__/)
       (•ㅅ•)
       /   づ
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

Comment @coderabbitai help to get the list of available commands.

@linear

linear Bot commented Sep 18, 2026

Copy link
Copy Markdown

ID-1610

@socket-security

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedgithub.com/​traefik/​grpc-web@​v0.16.096100100100100
Addedgithub.com/​rs/​cors@​v1.11.1100100100100100

View full report

@Ri-go
Ri-go marked this pull request as ready for review September 18, 2026 11:51
@Ri-go
Ri-go merged commit 8a3b3ff into master Sep 18, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant