-
Notifications
You must be signed in to change notification settings - Fork 3.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Run standalone gRPC server for serving historical queries #10796
Comments
This is something we are keenly interested in for Provenance. One extra consideration that should be taken into account is that this implementation should be easy to back port onto older 0.4x.x SDK based releases. I expect that Provenance will not be the only one looking to patch previous releases so they can be used against prior block height ranges. |
Yes we need this internally for Regen as well. |
ACK. Great idea and probably would be very trivial to implement. I can take this on if you'd like. |
BTW we also need to copy the |
Does this mean archive nodes will need 2x the amount of storage at least ? (at upgrade time). Or would be possible to have a pruning that has a height parameter that you specify the height of the upgrade and everything before that is pruned but not after. This way you probably won't need double storage but not sure if this would have other implications. |
The older node would only need to have heights up to and including the upgrade height. In fact, it can have any heights pruned up until the upgrade height, but then it wouldn't be an archive node. I'm not sure, but it could be 2x the data. However, if the new node has all heights pruned up til the upgrade height, it would not be 2x the data. |
I'm going to work on this feature. |
So from my preliminary experiments:
|
Could you elaborate on how we can do this? When I reach an upgrade height (and/or set |
I'm taking a further look at this to see if there's another approach. |
Was able to make this work. PR -> #11430 |
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:
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 onstart
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 nicesdk.Context
to be passed into the gRPC query handlers.With this proposal, the process would be:
--grpc-only
Cosmovisor can help smoothen the process.
For Admin Use
The text was updated successfully, but these errors were encountered: