Skip to content

Run standalone gRPC server for serving historical queries #10796

Closed
@amaury1093

Description

Summary

Add a flag simd start --grpc-only which would not run a node, but only the grpc server.

Problem Definition

Serving historical state is complicated after an upgrade. The current preferred solution, discussed in #9740, is a proxy server which sits in front of 2 nodes:

  • one stuck at the upgrade height, for serving queries prior to the upgrade
  • one keeping up with the tip, serving queries after the upgrade

Currently, it's hard to run the 1st node, because we hardcode a panic at the upgrade height.

Proposal

Add a CLI --grpc-only flag on start command to run the grpc server only. This means that it will not run the node (no Tendermint, no baseapp), just simply start the gRPC server with direct access to the store. We might need to craft a nice sdk.Context to be passed into the gRPC query handlers.

With this proposal, the process would be:

  • run the old binary, wait til panic on upgrade height
  • run the new binary
  • run the old binary again, with --grpc-only
    Cosmovisor can help smoothen the process.

For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned

Metadata

Assignees

Labels

C: gRPCIssues and PRs related to the gRPC service and HTTP gateway.C:CLIC:x/upgrade

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions