-
Notifications
You must be signed in to change notification settings - Fork 357
Description
We would like to roll back to Tendermint 0.34 due to instability of the p2p layer, which caused Tendermint 0.35 (and 0.36) to be abandoned.
However, this is fairly difficult for us, because we depend on tendermint-rs to speak ABCI to Tendermint. The ABCI implementation was written a year and a half ago, targeting 0.35 (which was about to be released at the time). However, because of issues with the tendermint-rs release process (which will hopefully be resolved by cometbft/tendermint-rs#1128), this code never made it into a published release, only prereleases, and can't be used drop-in with Tendermint 0.34, which has a different format of the length delimiter for ABCI messages.
Moreover, because we use tendermint-rs and ibc-rs (and tower-abci), which are interlinked, it's complicated to change one of them without changing both, especially because we cannot use semver to unify versions in git dependencies. Our options are:
- Wait for a 1.0 release of
tendermint-rsandibc-rsthat has the ABCI domain types we wrote; - Move completely to our own forks of
tendermint-rsandibc-rs, and also fork any other crates in our dep tree that use either to use our versions.
It's unfortunate that the plan for Tendermint is to wait for new features before doing an 0.37 release, because that pushes out the timeline for (1) and a return to a "normal" release process for tendermint-rs where we could use published versions with semver resolution and actually get PRs included in them. However, that decision was made already, so it seems like the next best option for us to get off of 0.34 would be to deeply fork the crates.
Beyond that decision, the steps are:
- Backporting ABCI domain types changes
- Edit all transitive dependents of
tendermint-rsto use a version with those changes - Propagate those changes through
tower-abci - Edit docker compose files to use the 0.34 version
- Check to see if there's other API changes e.g. in RPC