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

IAVL release updates #264

Closed
tac0turtle opened this issue Jun 14, 2020 · 5 comments · Fixed by #270
Closed

IAVL release updates #264

tac0turtle opened this issue Jun 14, 2020 · 5 comments · Fixed by #270
Labels
T:breaking Type: Breaking Change T:dependencies Pull requests that update a dependency file

Comments

@tac0turtle
Copy link
Member

The new tendermint release is bringing countless breaking changes. Some affect this repo:

../../../go/pkg/mod/github.com/tendermint/iavl@v0.13.3/proof_iavl_value.go:49:29: undefined: "github.com/tendermint/tendermint/crypto/merkle".ProofOp
../../../go/pkg/mod/github.com/tendermint/iavl@v0.13.3/proof_iavl_value.go:51:9: undefined: "github.com/tendermint/tendermint/crypto/merkle".ProofOp

Once Tendermint 0.34 release or pre-release is out then we should update here and do a rc as well.

This is blocking IAVL release

cc @alexanderbez

@tac0turtle tac0turtle added T:breaking Type: Breaking Change T:dependencies Pull requests that update a dependency file labels Jun 14, 2020
@alexanderbez
Copy link
Contributor

I didn't even realize IAVL depended on Tendermint. I would vouch to remove the dependency entirely. It seems mostly related to proof types. That seems like a code smell. Can we instead abstract this out or utilize interfaces?

@tac0turtle
Copy link
Member Author

we can definitely try something like this. I agree that the tm dependency is not needed in this repo

@tac0turtle
Copy link
Member Author

tac0turtle commented Jun 18, 2020

there are a couple options here:

  1. Move ProofOp and ProofOperator from Tendermint here then have Tendermint rely on IAVL for these types
  2. Duplicate the types (mentioned in 1) for now. Assume in the future something will happen.

This doesn't solve the importing of tmhash. TmHash is a wrapper on sha256 so this would easily be duplicated. In the future when IAVL gets a proper rewrite of sections the authors can decide on which hashing function to use, the same or new.

thoughts?

@erikgrinaker
Copy link
Contributor

This is sort of related to the question of what to do about the IAVL proofs as they are still Amino-encoded, see #265.

I'm not sure what the best approach is, but moving them to IAVL and reexporting in Tendermint seems reasonable to me. And probably making them Protobuf-encoded.

As for tm-hash, duplicating should be fine.

@tac0turtle
Copy link
Member Author

okay seems decided (talked with @alexanderbez, he shares the same sentiment), we move the types here. We wont be able to remove them from tm until IAVL does a release then.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
T:breaking Type: Breaking Change T:dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants