Skip to content

tendermint proto imports are not consistent between cosmos-sdk and ibc-rs revisions #194

Open
@mzabaluev

Description

@mzabaluev

The upstream proto revisions as currently pulled to build ibc-proto-rs are not consistent as per the revisions of tendermint files they expect to import:

However, by the way the build process is set up in sync-protobuf.sh, all of these inputs to proto-compiler actually end up including the tendermint/* protobuf files found in the cosmos-sdk buf export (the proto-include directory).
Which means our ibc:: generated types for this set of upstream revisions do not necessarily interoperate with the Go types generated in ibc-go as per the targeted commit.

The proper way out of this mess is to convert the upstreams to produce buf modules and reuse buf.build/cometbft/cometbft as a common dependency. Then the build process in ibc-proto-rs could consume the buf modules to generate Rust bindings for them.

Meanwhile, it's possible to juggle the src/*_COMMIT files in ibc-proto-rs to arrive at a combination of proto upstreams that happens to use the same revision of the tendermint protos, and then do the extern_path trick on that. But it's a high-quality balancing act that needs developer's time and care. Which is precisely what buf is meant to get rid of.

Originally posted by @mzabaluev in informalsystems/ibc-rs#1073 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions