From 11a1a309f8dfb4468f64e3178b78d03b2b768467 Mon Sep 17 00:00:00 2001 From: Carlos Rodriguez Date: Thu, 29 Aug 2024 10:01:13 +0200 Subject: [PATCH 1/4] chore: split rust and go changelogs --- CHANGELOG.md | 147 +--------------------------------------------- go/CHANGELOG.md | 63 ++++++++++++++++++++ rust/CHANGELOG.md | 97 ++++++++++++++++++++++++++++++ 3 files changed, 162 insertions(+), 145 deletions(-) create mode 100644 go/CHANGELOG.md create mode 100644 rust/CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md index ed15f30..f4279e9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,148 +1,5 @@ # Changelog -# Unreleased +For Rust, please check [here](./rust/CHANGELOG.md). -- fix(go): interpret max_depth in proof specs as 128 if left to 0 [#352](https://github.com/cosmos/ics23/pull/352). - -# 0.12.0 - -## Rust - -- chore(rust): Update `prost` to v0.13 ([#335](https://github.com/cosmos/ics23/pull/335), [#336](https://github.com/cosmos/ics23/pull/336)) - -# 0.11.3 - -## Rust - -- fix(rust): Enforce that `spec.InnerSpec.ChildSize` is >= 1 ([#339](https://github.com/cosmos/ics23/pull/339)) - -# 0.11.2 - -## Rust - -This release was yanked, please use v0.11.3 instead. - -# 0.11.1 - -## Rust - -- chore(rust): Update `informalsystems-pbjson` to v0.7.0 ([#274](https://github.com/cosmos/ics23/pull/274)) - -# 0.11.0 - -## Rust - -- chore(rust): update `prost` to v0.12 ([#202](https://github.com/cosmos/ics23/pull/202)) - -# 0.10.2 - -## Rust - -This release re-enables `no_std` support for ProtoJSON `Serialize` and `Deserialize` instances, -by swapping out `pbjson` for the `no_std`-compatible fork `informalsystems-pbjson`. - -## Full changes - -- feat(rust): enable no_std support for pbjson ([#158](https://github.com/cosmos/ics23/pull/146)) - -# 0.10.1 - -## Rust - -The only change in this release of the `ics23` crate is the addition of a `serde` feature -which adds ProtoJSON-compatible `Serialize` and `Deserialize` instances on all Protobuf definitions via -the [`pbjson-build`](https://docs.rs/pbjson-build/latest/pbjson_build/) crate. - -## Full changes - -- feat(rust): Add ProtoJSON-compatible `Serialize` and `Deserialize` instances on all Protobuf definitions via `pbjson` ([#146](https://github.com/cosmos/ics23/pull/146)) - -# 0.10.0 - -## Go / Rust / TypeScript - -This release introduces one single boolean new parameter to the top-level `ProofSpec`: `prehash_compare_key`. -When set to `true`, this flag causes keys to be consistently compared lexicographically according to their hashes -within nonexistence proof verification, using the same hash function as specified by the already-extant `prehash_key` field. - -This is a backwards-compatible change, as it requires opt-in via setting the `prehash_compare_key` flag to `true` in the `ProofSpec`. -All existing `ProofSpec`s will continue to behave identically. - -Please note that the version of the TypeScript library has been bump from 0.6.8 to 0.10.0 to align it with -the Go and Rust implementations. - -## Full changes - -- feat: Add `prehash_compare_key` to allow proving nonexistence in sparse trees ([#136](https://github.com/cosmos/ics23/pull/136)) -- chore: retract previous versions ([#131](https://github.com/cosmos/ics23/pull/131)) -- fix: protobuf formatting using clang-format ([#129](https://github.com/cosmos/ics23/pull/129)) -- fix: use /go suffix in go package option ([#127](https://github.com/cosmos/ics23/pull/127)) -- add buf support to repo ([#126](https://github.com/cosmos/ics23/pull/126)) -- chore: Add Cosmos, license and coverage badges to the README ([#122](https://github.com/cosmos/ics23/pull/122)) -- ci: Enable code coverage for TypeScript version ([#123](https://github.com/cosmos/ics23/pull/123)) -- ci: Add tags to codecov reports ([#121](https://github.com/cosmos/ics23/pull/121)) (4 months ago) -- ci: Refactor GitHub workflows and add code coverage job ([#120](https://github.com/cosmos/ics23/pull/120)) - -# 0.9.1 - -## Go - -This release is a backport into the `release/v0.9.x` line of the feature that added the `prehash_compare_key` boolean parameter to the top-level `ProofSpec`. -When set to `true`, this flag causes keys to be consistently compared lexicographically according to their hashes -within nonexistence proof verification, using the same hash function as specified by the already-extant `prehash_key` field. - -This is a backwards-compatible change, as it requires opt-in via setting the `prehash_compare_key` flag to `true` in the `ProofSpec`. -All existing `ProofSpec`s will continue to behave identically. - -## Full changes - -- feat(go): Add `prehash_compare_key` to allow proving nonexistence in sparse trees ([#136](https://github.com/cosmos/ics23/pull/136)) - -# 0.9.0 - -## Go - -Release of ics23/go including changes made in the fork of ics23/go housed in the [Cosmos SDK](http://github.com/cosmos/cosmos-sdk). - -## Rust - -This release includes the same changes as its Go counterpart. - -# 0.8.1 - -## Rust ([`ics23`](https://crates.io/crates/ics23)) - -- Fix no\_std compatibility and add check for this on CI ([#104](https://github.com/confio/ics23/pull/104)) - -# 0.8.0 - -## Rust ([`ics23`](https://crates.io/crates/ics23)) - -The following functions have been made generic over a new trait `HostFunctionProvider`: - -- [x] `calculate_existence_root` -- [x] `verify_batch_membership` -- [x] `verify_batch_non_membership` -- [x] `verify_membership` -- [x] `verify_non_membership` - -For `wasm32-unknown-unknown` environments this trait allows you to delegate hashing functions to a native implementation through host functions. - -With the `host-functions` feature (enabled by default), you can simply use `ics23::HostFunctionManager` as this provides a default implementation of this trait. - -# v0.7.0 - -This handles non-existence tests for empty branches properly. This -is needed for properly handling proofs on Tries, like the SMT being -integrated with the Cosmos SDK. - -This is used in ibc-go v3 - -# 0.6.x - -This handles proofs for normal merkle trees, where every branch is full. -This works for tendermint merkle hashes and iavl hashes, and should work -for merk (nomic's db) proofs. - -This was used in the original ibc release (cosmos sdk v0.40) and up until -ibc-go v2. +For Go, please check [here](./rust/CHANGELOG.md). \ No newline at end of file diff --git a/go/CHANGELOG.md b/go/CHANGELOG.md new file mode 100644 index 0000000..591c7e4 --- /dev/null +++ b/go/CHANGELOG.md @@ -0,0 +1,63 @@ +# Changelog + +# Unreleased + +- fix(go): interpret max_depth in proof specs as 128 if left to 0 [#352](https://github.com/cosmos/ics23/pull/352). + +# v0.10.0 + +This release introduces one single boolean new parameter to the top-level `ProofSpec`: `prehash_compare_key`. +When set to `true`, this flag causes keys to be consistently compared lexicographically according to their hashes +within nonexistence proof verification, using the same hash function as specified by the already-extant `prehash_key` field. + +This is a backwards-compatible change, as it requires opt-in via setting the `prehash_compare_key` flag to `true` in the `ProofSpec`. +All existing `ProofSpec`s will continue to behave identically. + +Please note that the version of the TypeScript library has been bump from 0.6.8 to 0.10.0 to align it with +the Go and Rust implementations. + +## Full changes + +- feat: Add `prehash_compare_key` to allow proving nonexistence in sparse trees ([#136](https://github.com/cosmos/ics23/pull/136)) +- chore: retract previous versions ([#131](https://github.com/cosmos/ics23/pull/131)) +- fix: protobuf formatting using clang-format ([#129](https://github.com/cosmos/ics23/pull/129)) +- fix: use /go suffix in go package option ([#127](https://github.com/cosmos/ics23/pull/127)) +- add buf support to repo ([#126](https://github.com/cosmos/ics23/pull/126)) +- chore: Add Cosmos, license and coverage badges to the README ([#122](https://github.com/cosmos/ics23/pull/122)) +- ci: Enable code coverage for TypeScript version ([#123](https://github.com/cosmos/ics23/pull/123)) +- ci: Add tags to codecov reports ([#121](https://github.com/cosmos/ics23/pull/121)) (4 months ago) +- ci: Refactor GitHub workflows and add code coverage job ([#120](https://github.com/cosmos/ics23/pull/120)) + +# v0.9.1 + +This release is a backport into the `release/v0.9.x` line of the feature that added the `prehash_compare_key` boolean parameter to the top-level `ProofSpec`. +When set to `true`, this flag causes keys to be consistently compared lexicographically according to their hashes +within nonexistence proof verification, using the same hash function as specified by the already-extant `prehash_key` field. + +This is a backwards-compatible change, as it requires opt-in via setting the `prehash_compare_key` flag to `true` in the `ProofSpec`. +All existing `ProofSpec`s will continue to behave identically. + +## Full changes + +- feat(go): Add `prehash_compare_key` to allow proving nonexistence in sparse trees ([#136](https://github.com/cosmos/ics23/pull/136)) + +# v0.9.0 + +Release of ics23/go including changes made in the fork of ics23/go housed in the [Cosmos SDK](http://github.com/cosmos/cosmos-sdk). + +# v0.7.0 + +This handles non-existence tests for empty branches properly. This +is needed for properly handling proofs on Tries, like the SMT being +integrated with the Cosmos SDK. + +This is used in ibc-go v3 + +# 0.6.x + +This handles proofs for normal merkle trees, where every branch is full. +This works for tendermint merkle hashes and iavl hashes, and should work +for merk (nomic's db) proofs. + +This was used in the original ibc release (cosmos sdk v0.40) and up until +ibc-go v2. diff --git a/rust/CHANGELOG.md b/rust/CHANGELOG.md new file mode 100644 index 0000000..f384b40 --- /dev/null +++ b/rust/CHANGELOG.md @@ -0,0 +1,97 @@ +# Changelog + +# v0.12.0 + +- chore(rust): Update `prost` to v0.13 ([#335](https://github.com/cosmos/ics23/pull/335), [#336](https://github.com/cosmos/ics23/pull/336)) + +# v0.11.3 + +- fix(rust): Enforce that `spec.InnerSpec.ChildSize` is >= 1 ([#339](https://github.com/cosmos/ics23/pull/339)) + +# v0.11.2 + +This release was yanked, please use v0.11.3 instead. + +# v0.11.1 + +- chore(rust): Update `informalsystems-pbjson` to v0.7.0 ([#274](https://github.com/cosmos/ics23/pull/274)) + +# v0.11.0 + +- chore(rust): update `prost` to v0.12 ([#202](https://github.com/cosmos/ics23/pull/202)) + +# v0.10.2 + +This release re-enables `no_std` support for ProtoJSON `Serialize` and `Deserialize` instances, +by swapping out `pbjson` for the `no_std`-compatible fork `informalsystems-pbjson`. + +## Full changes + +- feat(rust): enable no_std support for pbjson ([#158](https://github.com/cosmos/ics23/pull/146)) + +# v0.10.1 + +The only change in this release of the `ics23` crate is the addition of a `serde` feature +which adds ProtoJSON-compatible `Serialize` and `Deserialize` instances on all Protobuf definitions via +the [`pbjson-build`](https://docs.rs/pbjson-build/latest/pbjson_build/) crate. + +## Full changes + +- feat(rust): Add ProtoJSON-compatible `Serialize` and `Deserialize` instances on all Protobuf definitions via `pbjson` ([#146](https://github.com/cosmos/ics23/pull/146)) + +# v0.10.0 + +This release introduces one single boolean new parameter to the top-level `ProofSpec`: `prehash_compare_key`. +When set to `true`, this flag causes keys to be consistently compared lexicographically according to their hashes +within nonexistence proof verification, using the same hash function as specified by the already-extant `prehash_key` field. + +This is a backwards-compatible change, as it requires opt-in via setting the `prehash_compare_key` flag to `true` in the `ProofSpec`. +All existing `ProofSpec`s will continue to behave identically. + +## Full changes + +- feat: Add `prehash_compare_key` to allow proving nonexistence in sparse trees ([#136](https://github.com/cosmos/ics23/pull/136)) +- fix: protobuf formatting using clang-format ([#129](https://github.com/cosmos/ics23/pull/129)) +- add buf support to repo ([#126](https://github.com/cosmos/ics23/pull/126)) +- chore: Add Cosmos, license and coverage badges to the README ([#122](https://github.com/cosmos/ics23/pull/122)) +- ci: Add tags to codecov reports ([#121](https://github.com/cosmos/ics23/pull/121)) (4 months ago) +- ci: Refactor GitHub workflows and add code coverage job ([#120](https://github.com/cosmos/ics23/pull/120)) + +# v0.9.0 + +Release of the `ics23` create, including changes that reflect changes made in the Go implementation in the fork of `ics23` housed in the [Cosmos SDK](http://github.com/cosmos/cosmos-sdk). + +# v0.8.1 + +- Fix no\_std compatibility and add check for this on CI ([#104](https://github.com/confio/ics23/pull/104)) + +# v0.8.0 + +The following functions have been made generic over a new trait `HostFunctionProvider`: + +- [x] `calculate_existence_root` +- [x] `verify_batch_membership` +- [x] `verify_batch_non_membership` +- [x] `verify_membership` +- [x] `verify_non_membership` + +For `wasm32-unknown-unknown` environments this trait allows you to delegate hashing functions to a native implementation through host functions. + +With the `host-functions` feature (enabled by default), you can simply use `ics23::HostFunctionManager` as this provides a default implementation of this trait. + +# v0.7.0 + +This handles non-existence tests for empty branches properly. This +is needed for properly handling proofs on Tries, like the SMT being +integrated with the Cosmos SDK. + +This is used in ibc-go v3 + +# 0.6.x + +This handles proofs for normal merkle trees, where every branch is full. +This works for tendermint merkle hashes and iavl hashes, and should work +for merk (nomic's db) proofs. + +This was used in the original ibc release (cosmos sdk v0.40) and up until +ibc-go v2. From 8895d097148a021a27dc434dac038d6270495f0e Mon Sep 17 00:00:00 2001 From: Carlos Rodriguez Date: Thu, 29 Aug 2024 10:03:09 +0200 Subject: [PATCH 2/4] fix ilnk --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f4279e9..6777d89 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,4 +2,4 @@ For Rust, please check [here](./rust/CHANGELOG.md). -For Go, please check [here](./rust/CHANGELOG.md). \ No newline at end of file +For Go, please check [here](./go/CHANGELOG.md). \ No newline at end of file From 398b38dbc74148acc1857f7169a169575d6b4c59 Mon Sep 17 00:00:00 2001 From: Carlos Rodriguez Date: Thu, 29 Aug 2024 10:17:11 +0200 Subject: [PATCH 3/4] update go changelog --- go/CHANGELOG.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/go/CHANGELOG.md b/go/CHANGELOG.md index 591c7e4..b398ffe 100644 --- a/go/CHANGELOG.md +++ b/go/CHANGELOG.md @@ -2,7 +2,11 @@ # Unreleased -- fix(go): interpret max_depth in proof specs as 128 if left to 0 [#352](https://github.com/cosmos/ics23/pull/352). +- fix(go): interpret max_depth in proof specs as 128 if left to 0 ([#352](https://github.com/cosmos/ics23/pull/352)). +- deps: bump cosmos/gogoproto to v1.7.0. +- deps: bump x/crypto v0.26.0. +- feat: add support for Blake2b/2s/3 hash functions ([#212](https://github.com/cosmos/ics23/pull/212)). +- fix(go): bullet-proof against nil dereferences, add more fuzzers ([\#244](https://github.com/cosmos/ics23/pull/244)). # v0.10.0 From 063fde7e9821e7e62c05bb27271490e6b1a74519 Mon Sep 17 00:00:00 2001 From: Carlos Rodriguez Date: Fri, 30 Aug 2024 11:01:54 +0200 Subject: [PATCH 4/4] Update CHANGELOG.md --- go/CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/go/CHANGELOG.md b/go/CHANGELOG.md index b398ffe..4e16840 100644 --- a/go/CHANGELOG.md +++ b/go/CHANGELOG.md @@ -2,6 +2,10 @@ # Unreleased +- deps: bump golang to v1.22 ([#363](https://github.com/cosmos/ics23/pull/363)). + +# v0.11.0 + - fix(go): interpret max_depth in proof specs as 128 if left to 0 ([#352](https://github.com/cosmos/ics23/pull/352)). - deps: bump cosmos/gogoproto to v1.7.0. - deps: bump x/crypto v0.26.0.