-
Notifications
You must be signed in to change notification settings - Fork 225
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
RPC client fails to decode block_results with non-nil validator_updates #1021
Comments
I find this part of the JSON to be rather odd: "Sum": {
"type": "tendermint.crypto.PublicKey_Ed25519",
"value": {
"ed25519": "VqJCr3vjQdffcLIG6RMBl2MgXDFYNY6b3Joaa43gV3o="
}
} That doesn't look right. From a cursory look at our deserializer, it appears as though we expect something of the form: "type": "tendermint.crypto.PublicKey_Ed25519",
"value": {
"ed25519": "VqJCr3vjQdffcLIG6RMBl2MgXDFYNY6b3Joaa43gV3o="
} without the Is this perhaps a bug in Tendermint? I can modify the RPC on our side - maybe there's a way I can accommodate both formats. |
Where did we get that structure from in our serializer? I saw an example in the test fixture but not clear where those are coming from. Maybe this was different a while ago, I looked back a few releases and nothing seemed to have changed there. The .go generated file from the .proto of
|
I think when our From https://github.com/tendermint/tendermint/blob/master/crypto/encoding/codec.go#L16 it looks like the It looks like the raw Technically, the serialized "type": "tendermint/PubKeyEd25519",
"value": {
"ed25519": "VqJCr3vjQdffcLIG6RMBl2MgXDFYNY6b3Joaa43gV3o="
} (note the difference in the It's serialized that way in many other RPC responses. |
I see. So it looks like this is a bug in Tendermint Go. Should we open there an issue for this? And can we have a temporary fix in |
Signed-off-by: Thane Thomson <connect@thanethomson.com>
Signed-off-by: Thane Thomson <connect@thanethomson.com>
…1061) * Rename kvstore module to common, since it provides common RPC requests Signed-off-by: Thane Thomson <connect@thanethomson.com> * Use the unused config params Signed-off-by: Thane Thomson <connect@thanethomson.com> * Rename quick module to kvstore, since it caters exclusively for the kvstore Signed-off-by: Thane Thomson <connect@thanethomson.com> * Add support for simple query plan for Gaia Signed-off-by: Thane Thomson <connect@thanethomson.com> * Remove outdated RPC request/response parsing tests Signed-off-by: Thane Thomson <connect@thanethomson.com> * Remove redundant interaction Signed-off-by: Thane Thomson <connect@thanethomson.com> * Enable rustls for wss support Signed-off-by: Thane Thomson <connect@thanethomson.com> * Use defaults if no version, app or app_version is supplied in ResponseInfo over ABCI and RPC Signed-off-by: Thane Thomson <connect@thanethomson.com> * Regenerate protos Signed-off-by: Thane Thomson <connect@thanethomson.com> * Add convenience method to decode RPC requests from strings Signed-off-by: Thane Thomson <connect@thanethomson.com> * Add deserialization workaround for validator updates This introduces a (somewhat hacky, yet temporary) approach to being able to deserialize public keys in validator updates until such time that Tendermint addresses the problem. Signed-off-by: Thane Thomson <connect@thanethomson.com> * Add test fixtures generated from local Gaia instance Signed-off-by: Thane Thomson <connect@thanethomson.com> * Add test for outgoing requests Signed-off-by: Thane Thomson <connect@thanethomson.com> * Add test case specifically for #1021 Signed-off-by: Thane Thomson <connect@thanethomson.com> * Fix test case for #1021 Signed-off-by: Thane Thomson <connect@thanethomson.com> * Add changelog entry Signed-off-by: Thane Thomson <connect@thanethomson.com>
I'd say this is done now. I've logged #1091 as a reminder to remove this workaround in future once Tendermint fixes the Please reopen if this issue comes up again. |
RPC client fails to decode
block_results
response with non emptyvalidator_updates
.@mankenavenkatesh has reported this problem, thanks Venkatesh! It shows on a number of chains when hermes tries to look for begin/end blocker IBC events by calling the
block_results
RPC.Decoding the response fails when
validator_updates
is not empty. This is reported for some chains at tm-go versionv0.34.14
. I believe the format is different than what we expect, here is one example ofvalidator_updates
from one chain:I don't think there were recent changes in the crypto PubKey proto definition, maybe this never worked.
Full output of
curl http://18.191.147.51:26657/block_results?height=4555980
can be found here.Steps to reproduce
Use the above structure for
validator_updates
in the RPC block_results test fixture. The output is:What's the definition of "done" for this issue?
Be able to decode the
block_results
response with non-nil validator updates.The text was updated successfully, but these errors were encountered: