-
Notifications
You must be signed in to change notification settings - Fork 293
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
Rollback to Tendermint 0.34 #1271
Comments
If someone could assist with porting informalsystems/tendermint-rs#1022 to the tendermint-rs The 1.0 release goal involves supporting multiple versions of Tendermint Core from a single version of tendermint-rs - this doesn't seem like something you need in the short-term? In any case, there's a pretty small surface area diff between Tendermint Core v0.34 and v0.37, compared to the diff between Tendermint Core v0.34 and v0.35/v0.36. So once the ABCI domain types work's done, doing the work necessary to cut a tendermint-rs 1.0 release that provides support for both Tendermint Core v0.34 and v0.37 should be a pretty small lift. |
The bulk of the backporting work is now done here: informalsystems/tendermint-rs#1185 The ABCI domain types were mixed together with RPC changes to support 0.35, so backporting required disentangling the RPC changes from the domain types. While I was able to untangle those changes, the resulting RPC code is broken, and the tests don't pass. Those tests were unrelated to the ABCI domain types I wrote, so I don't know how to fix them. However, we don't use that part of the RPC code, so we can use that branch to escape Tendermint 0.35. We've already had to fork the Ideally, we'd be able to consume semver releases from upstream, but that won't be possible until the release process is fixed, and that's not scheduled to happen until some time in the future, after upstream Since we can't rely on releases from upstream, but we need to stop using Tendermint 0.35, we should move from our current fork to one that is 0.34 compatible. To do this, we should:
|
I've already offered to cut additional tendermint-rs "alias" releases off of the v0.23.x series to address the breaking changes in patch versions (an unfortunate historical consequence of only supporting a single version of Tendermint Core in tendermint-rs). For example, we could release v0.25.0 as an alias for v0.23.8, and v0.26.0 as an alias for v0.23.9. But @hdevalence said this wouldn't help? |
Also, I have explicitly offered several times to cut a semver-compatible release prior to us implementing multi-version support, but the pre-requisite there is that the ABCI domain types work needs to be integrated first in a working way (something that'd be necessary to do for your fork anyways?). |
This doesn't help us with the concrete problem of getting off of Tendermint 0.35, because it's not just We've been able to do that using the forking strategy described above, and we're now running on Tendermint 0.34 (with our own collection of forked crates). Those forks aren't something we want to maintain long-term; they're just a way to escape the 0.35 problems. Having |
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 thetendermint-rs
release process (which will hopefully be resolved by informalsystems/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
andibc-rs
(andtower-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:tendermint-rs
andibc-rs
that has the ABCI domain types we wrote;tendermint-rs
andibc-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:
tendermint-rs
to use a version with those changestower-abci
The text was updated successfully, but these errors were encountered: