Skip to content
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

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

Open
mzabaluev opened this issue Feb 8, 2024 · 2 comments · May be fixed by #190
Open

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

mzabaluev opened this issue Feb 8, 2024 · 2 comments · May be fixed by #190
Labels
bug Something isn't working

Comments

@mzabaluev
Copy link
Contributor

mzabaluev commented Feb 8, 2024

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 cosmos/ibc-rs#1073 (comment)

@mzabaluev
Copy link
Contributor Author

From a discussion on Slack, the best quick course of action is to bring all dependencies to Tendermint/CometBFT 0.38.
But in case of ICS, it is blocked on cosmos/interchain-security#1246.

@mzabaluev mzabaluev linked a pull request Feb 26, 2024 that will close this issue
@mzabaluev mzabaluev linked a pull request Feb 26, 2024 that will close this issue
@mzabaluev
Copy link
Contributor Author

mzabaluev commented Feb 26, 2024

5bb2b45 (in #190) brings the cosmos-sdk checkout up to v0.50.4. In terms of the tendermint version, this gets the includes up to 0.38.

We're in luck with interchain-security: it uses tendermint.crypto.PublicKey, tendermint.abci.Validator, and tendermint.abci.ValidatorUpdate, the definitions of which have not changed since 0.34. So we are able to hold up this house of cards for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant