-
Notifications
You must be signed in to change notification settings - Fork 302
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
proto: split RPCs into per-component QueryServices #3091
Conversation
Closes #3083. Still outstanding work to do: - [ ] Split up the server-side implementations currently in `pd`. - [ ] Resolve the governance issues. On the latter point, I discovered that large parts of the governance code don't have any RPCs defined, and instead rely on having knowledge of the Rust code to layer together raw state accesses. This is practically impossible for any third party client to do, so it's not an acceptable solution. The shim code that enabled this was removed as part of the refactoring, so we'll either need to define the relevant RPCs, or leave that functionality disabled until we do.
52a3dbb
to
73d7352
Compare
I ran into another difficulty while making these changes. We have an RPC to provide raw K/V queries to the underlying storage, and it seemed like this should conceptually be attached to the However, the RPC isn't actually really generic to the storage system, for the following reason: it returns K/V entries with ICS23 proofs up to the apphash, and the Penumbra apphash isn't the JMT merkle root. We add an extra layer of hashing to have a second "stub" proof to satisfy requirements of counterparty chains. So I put the RPCs in the |
Refs #2288 |
* modify scan_block() function * modify get_updates() function * fmt * fix * fix docs * flush_update and _inner refactoring * clears state in flush_updates * fmt * fix docs
Closes #3083.
Still outstanding work to do:
pd
.On the latter point, I discovered that large parts of the governance code don't have any RPCs defined, and instead rely on having knowledge of the Rust code to layer together raw state accesses. This is practically impossible for any third party client to do, so it's not an acceptable solution. The shim code that enabled this was removed as part of the refactoring, so we'll either need to define the relevant RPCs, or leave that functionality disabled until we do.