Skip to content

RPC client fails to decode block_results with non-nil validator_updates #1021

@ancazamfir

Description

@ancazamfir

RPC client fails to decode block_results response with non empty validator_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 version v0.34.14. I believe the format is different than what we expect, here is one example of validator_updates from one chain:

    "validator_updates": [
      {
        "pub_key": {
          "Sum": {
            "type": "tendermint.crypto.PublicKey_Ed25519",
            "value": {
              "ed25519": "VqJCr3vjQdffcLIG6RMBl2MgXDFYNY6b3Joaa43gV3o="
            }
          }
        },
        "power": "573929"
      }
    ],

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:

called `Result::unwrap()` on an `Err` value: serde parse error

Caused by:
    missing field `type` at line 103 column 9

What's the definition of "done" for this issue?
Be able to decode the block_results response with non-nil validator updates.

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingrpc

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions