From bcc0b377812b8e53a02dff156988569c5b3c81a2 Mon Sep 17 00:00:00 2001 From: Mikhail Zabaluev Date: Mon, 2 Oct 2023 19:42:32 +0300 Subject: [PATCH] Release 0.34.0 (#1366) --- .../1349-prost-0.12-and-tonic-0.10.md | 0 .../breaking-changes/1362-rpc-by-reqwest.md | 0 .../breaking-changes/1365-cometbft-0.38.0.md | 0 .../features/1364-secp256k1-keys.md | 0 .../improvements/1359-hande-http-error.md | 0 .../security/1342-rpc-by-reqwest.md | 0 .changelog/v0.34.0/summary.md | 5 ++ CHANGELOG.md | 46 +++++++++++++++++++ abci/Cargo.toml | 4 +- config/Cargo.toml | 4 +- light-client-cli/Cargo.toml | 10 ++-- light-client-detector/Cargo.toml | 10 ++-- light-client-js/Cargo.toml | 6 +-- light-client-verifier/Cargo.toml | 4 +- light-client/Cargo.toml | 8 ++-- p2p/Cargo.toml | 8 ++-- pbt-gen/Cargo.toml | 2 +- proto/Cargo.toml | 2 +- rpc/Cargo.toml | 8 ++-- std-ext/Cargo.toml | 2 +- tendermint/Cargo.toml | 4 +- test/Cargo.toml | 2 +- testgen/Cargo.toml | 4 +- tools/abci-test/Cargo.toml | 8 ++-- tools/kvstore-test/Cargo.toml | 6 +-- tools/rpc-probe/Cargo.toml | 2 +- 26 files changed, 98 insertions(+), 47 deletions(-) rename .changelog/{unreleased => v0.34.0}/breaking-changes/1349-prost-0.12-and-tonic-0.10.md (100%) rename .changelog/{unreleased => v0.34.0}/breaking-changes/1362-rpc-by-reqwest.md (100%) rename .changelog/{unreleased => v0.34.0}/breaking-changes/1365-cometbft-0.38.0.md (100%) rename .changelog/{unreleased => v0.34.0}/features/1364-secp256k1-keys.md (100%) rename .changelog/{unreleased => v0.34.0}/improvements/1359-hande-http-error.md (100%) rename .changelog/{unreleased => v0.34.0}/security/1342-rpc-by-reqwest.md (100%) create mode 100644 .changelog/v0.34.0/summary.md diff --git a/.changelog/unreleased/breaking-changes/1349-prost-0.12-and-tonic-0.10.md b/.changelog/v0.34.0/breaking-changes/1349-prost-0.12-and-tonic-0.10.md similarity index 100% rename from .changelog/unreleased/breaking-changes/1349-prost-0.12-and-tonic-0.10.md rename to .changelog/v0.34.0/breaking-changes/1349-prost-0.12-and-tonic-0.10.md diff --git a/.changelog/unreleased/breaking-changes/1362-rpc-by-reqwest.md b/.changelog/v0.34.0/breaking-changes/1362-rpc-by-reqwest.md similarity index 100% rename from .changelog/unreleased/breaking-changes/1362-rpc-by-reqwest.md rename to .changelog/v0.34.0/breaking-changes/1362-rpc-by-reqwest.md diff --git a/.changelog/unreleased/breaking-changes/1365-cometbft-0.38.0.md b/.changelog/v0.34.0/breaking-changes/1365-cometbft-0.38.0.md similarity index 100% rename from .changelog/unreleased/breaking-changes/1365-cometbft-0.38.0.md rename to .changelog/v0.34.0/breaking-changes/1365-cometbft-0.38.0.md diff --git a/.changelog/unreleased/features/1364-secp256k1-keys.md b/.changelog/v0.34.0/features/1364-secp256k1-keys.md similarity index 100% rename from .changelog/unreleased/features/1364-secp256k1-keys.md rename to .changelog/v0.34.0/features/1364-secp256k1-keys.md diff --git a/.changelog/unreleased/improvements/1359-hande-http-error.md b/.changelog/v0.34.0/improvements/1359-hande-http-error.md similarity index 100% rename from .changelog/unreleased/improvements/1359-hande-http-error.md rename to .changelog/v0.34.0/improvements/1359-hande-http-error.md diff --git a/.changelog/unreleased/security/1342-rpc-by-reqwest.md b/.changelog/v0.34.0/security/1342-rpc-by-reqwest.md similarity index 100% rename from .changelog/unreleased/security/1342-rpc-by-reqwest.md rename to .changelog/v0.34.0/security/1342-rpc-by-reqwest.md diff --git a/.changelog/v0.34.0/summary.md b/.changelog/v0.34.0/summary.md new file mode 100644 index 000000000..c66de5e56 --- /dev/null +++ b/.changelog/v0.34.0/summary.md @@ -0,0 +1,5 @@ +This release brings breaking changes, updating the `ExtendVote` request +data structure to the changes in the CometBFT 0.38.0 release. +The gRPC stack has been updated to prost 0.12 and tonic 0.10. +The RPC client for HTTP has been reimplemented using `reqwest`. +Support for Secp256k1 consensus keys has been added as an optional feature. diff --git a/CHANGELOG.md b/CHANGELOG.md index b7e6d985a..56c467ca0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,51 @@ # CHANGELOG +## v0.34.0 + +This release brings breaking changes, updating the `ExtendVote` request +data structure to the changes in the CometBFT 0.38.0 release. +The gRPC stack has been updated to prost 0.12 and tonic 0.10. +The RPC client for HTTP has been reimplemented using `reqwest`. +Support for Secp256k1 consensus keys has been added as an optional feature. + +### BREAKING CHANGES + +- `[tendermint-proto]` Update dependencies to prost 0.12 and tonic 0.10 + ([\#1349](https://github.com/informalsystems/tendermint-rs/pull/1349)) +- `[tendermint-rpc]` Changed `ErrorDetail` variants + ([\#1362](https://github.com/informalsystems/tendermint-rs/pull/1362)): + * Removed the `Hyper` and `InvalidUri` variants. + * The `Http` variant now has `Error` from `reqwest` as the source. + * Added the `InvalidProxy` variant. + * The `tungstenite` dependency exposed through its `Error` type in + WebSocket-related variants has been updated to version 0.20.x. +- `[tendermint-rpc]` Removed a `TryFrom` conversion for + `hyper::Uri` as hyper is no longer a direct dependency + ([\#1362](https://github.com/informalsystems/tendermint-rs/pull/1362)). +- `[tendermint-proto]` Update `v0_38` bindings to CometFBT release 0.38.0 + ([\#1365](https://github.com/informalsystems/tendermint-rs/pull/1365)). +- `[tendermint]` Add fields to `abci::request::ExtendVote` to represent + the fields added to the `abci.RequestExtendVote` protobuf message since + the 0.38.0-rc3 release + ([\#1365](https://github.com/informalsystems/tendermint-rs/pull/1365)). + +### FEATURES + +- `[tendermint]` Add support for secp256k1 consensus keys + ([\#1364](https://github.com/informalsystems/tendermint-rs/issues/1364)) + +### IMPROVEMENTS + +- `[tendermint-rpc]` Turn non-200 HTTP response into an error + instead of trying to parse the body as a JSON-RPC response + ([\#1359](https://github.com/informalsystems/tendermint-rs/issues/1359)) + +### SECURITY + +- `[tendermint-rpc]` Address the RUSTSEC-2023-0052 vulnerability by dropping + dependency on `hyper-proxy` and changing the HTTP client to use `reqwest` + ([\#1342](https://github.com/informalsystems/tendermint-rs/issues/1342)). + ## v0.33.2 *September 18th, 2023* diff --git a/abci/Cargo.toml b/abci/Cargo.toml index 75149452d..e2d658bcf 100644 --- a/abci/Cargo.toml +++ b/abci/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-abci" -version = "0.33.2" +version = "0.34.0" authors = ["Informal Systems "] edition = "2021" license = "Apache-2.0" @@ -33,7 +33,7 @@ binary = [ [dependencies] bytes = { version = "1.0", default-features = false } prost = { version = "0.12", default-features = false } -tendermint-proto = { version = "0.33.2", default-features = false, path = "../proto" } +tendermint-proto = { version = "0.34.0", default-features = false, path = "../proto" } tracing = { version = "0.1", default-features = false } flex-error = { version = "0.4.4", default-features = false } structopt = { version = "0.3", optional = true, default-features = false } diff --git a/config/Cargo.toml b/config/Cargo.toml index 391081fef..5b7f50f02 100644 --- a/config/Cargo.toml +++ b/config/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-config" -version = "0.33.2" # Also update depending crates (rpc, light-node, ..) when bumping this. +version = "0.34.0" # Also update depending crates (rpc, light-node, ..) when bumping this. license = "Apache-2.0" homepage = "https://www.tendermint.com/" repository = "https://github.com/informalsystems/tendermint-rs/tree/main/tendermint" @@ -24,7 +24,7 @@ all-features = true rustdoc-args = ["--cfg", "docsrs"] [dependencies] -tendermint = { version = "0.33.2", default-features = false, features = ["rust-crypto"], path = "../tendermint" } +tendermint = { version = "0.34.0", default-features = false, features = ["rust-crypto"], path = "../tendermint" } flex-error = { version = "0.4.4", default-features = false } serde = { version = "1", features = ["derive"] } serde_json = "1" diff --git a/light-client-cli/Cargo.toml b/light-client-cli/Cargo.toml index 6be4e1b2a..fab0aed85 100644 --- a/light-client-cli/Cargo.toml +++ b/light-client-cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-light-client-cli" -version = "0.33.2" +version = "0.34.0" edition = "2021" license = "Apache-2.0" readme = "README.md" @@ -23,10 +23,10 @@ all-features = true rustdoc-args = ["--cfg", "docsrs"] [dependencies] -tendermint = { version = "0.33.2", path = "../tendermint" } -tendermint-rpc = { version = "0.33.2", path = "../rpc", features = ["http-client"] } -tendermint-light-client = { version = "0.33.2", path = "../light-client" } -tendermint-light-client-detector = { version = "0.33.2", path = "../light-client-detector" } +tendermint = { version = "0.34.0", path = "../tendermint" } +tendermint-rpc = { version = "0.34.0", path = "../rpc", features = ["http-client"] } +tendermint-light-client = { version = "0.34.0", path = "../light-client" } +tendermint-light-client-detector = { version = "0.34.0", path = "../light-client-detector" } clap = { version = "4.1.8", features = ["derive"] } color-eyre = "0.6.2" diff --git a/light-client-detector/Cargo.toml b/light-client-detector/Cargo.toml index f02d6a85e..3ee191cd3 100644 --- a/light-client-detector/Cargo.toml +++ b/light-client-detector/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-light-client-detector" -version = "0.33.2" +version = "0.34.0" edition = "2021" license = "Apache-2.0" readme = "README.md" @@ -23,10 +23,10 @@ all-features = true rustdoc-args = ["--cfg", "docsrs"] [dependencies] -tendermint = { version = "0.33.2", path = "../tendermint" } -tendermint-rpc = { version = "0.33.2", path = "../rpc", features = ["http-client"] } -tendermint-proto = { version = "0.33.2", path = "../proto" } -tendermint-light-client = { version = "0.33.2", path = "../light-client" } +tendermint = { version = "0.34.0", path = "../tendermint" } +tendermint-rpc = { version = "0.34.0", path = "../rpc", features = ["http-client"] } +tendermint-proto = { version = "0.34.0", path = "../proto" } +tendermint-light-client = { version = "0.34.0", path = "../light-client" } contracts = { version = "0.6.2", default-features = false } crossbeam-channel = { version = "0.4.2", default-features = false } diff --git a/light-client-js/Cargo.toml b/light-client-js/Cargo.toml index 886ca6d40..29d29f230 100644 --- a/light-client-js/Cargo.toml +++ b/light-client-js/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-light-client-js" -version = "0.33.2" +version = "0.34.0" authors = ["Informal Systems "] edition = "2021" license = "Apache-2.0" @@ -22,8 +22,8 @@ default = ["console_error_panic_hook"] [dependencies] serde = { version = "1.0", default-features = false, features = [ "derive" ] } serde_json = { version = "1.0", default-features = false } -tendermint = { version = "0.33.2", default-features = false, path = "../tendermint" } -tendermint-light-client-verifier = { version = "0.33.2", features = ["rust-crypto"], default-features = false, path = "../light-client-verifier" } +tendermint = { version = "0.34.0", default-features = false, path = "../tendermint" } +tendermint-light-client-verifier = { version = "0.34.0", features = ["rust-crypto"], default-features = false, path = "../light-client-verifier" } wasm-bindgen = { version = "0.2.63", default-features = false, features = [ "serde-serialize" ] } serde-wasm-bindgen = { version = "0.4.5", default-features = false } diff --git a/light-client-verifier/Cargo.toml b/light-client-verifier/Cargo.toml index f4289c237..84150c7ef 100644 --- a/light-client-verifier/Cargo.toml +++ b/light-client-verifier/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-light-client-verifier" -version = "0.33.2" +version = "0.34.0" edition = "2021" license = "Apache-2.0" readme = "README.md" @@ -27,7 +27,7 @@ default = ["rust-crypto", "flex-error/std", "flex-error/eyre_tracer"] rust-crypto = ["tendermint/rust-crypto"] [dependencies] -tendermint = { version = "0.33.2", path = "../tendermint", default-features = false } +tendermint = { version = "0.34.0", path = "../tendermint", default-features = false } derive_more = { version = "0.99.5", default-features = false, features = ["display"] } serde = { version = "1.0.106", default-features = false } diff --git a/light-client/Cargo.toml b/light-client/Cargo.toml index f7be3b43a..069eaf23a 100644 --- a/light-client/Cargo.toml +++ b/light-client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-light-client" -version = "0.33.2" +version = "0.34.0" edition = "2021" license = "Apache-2.0" readme = "README.md" @@ -35,9 +35,9 @@ unstable = ["rust-crypto"] mbt = ["rust-crypto"] [dependencies] -tendermint = { version = "0.33.2", path = "../tendermint", default-features = false } -tendermint-rpc = { version = "0.33.2", path = "../rpc", default-features = false } -tendermint-light-client-verifier = { version = "0.33.2", path = "../light-client-verifier", default-features = false } +tendermint = { version = "0.34.0", path = "../tendermint", default-features = false } +tendermint-rpc = { version = "0.34.0", path = "../rpc", default-features = false } +tendermint-light-client-verifier = { version = "0.34.0", path = "../light-client-verifier", default-features = false } contracts = { version = "0.6.2", default-features = false } crossbeam-channel = { version = "0.4.2", default-features = false } diff --git a/p2p/Cargo.toml b/p2p/Cargo.toml index 5c8c4a171..f73bfd5ab 100644 --- a/p2p/Cargo.toml +++ b/p2p/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-p2p" -version = "0.33.2" +version = "0.34.0" edition = "2021" license = "Apache-2.0" repository = "https://github.com/informalsystems/tendermint-rs" @@ -44,9 +44,9 @@ aead = { version = "0.4.1", default-features = false } flex-error = { version = "0.4.4", default-features = false } # path dependencies -tendermint = { path = "../tendermint", version = "0.33.2", default-features = false } -tendermint-proto = { path = "../proto", version = "0.33.2", default-features = false } -tendermint-std-ext = { path = "../std-ext", version = "0.33.2", default-features = false } +tendermint = { path = "../tendermint", version = "0.34.0", default-features = false } +tendermint-proto = { path = "../proto", version = "0.34.0", default-features = false } +tendermint-std-ext = { path = "../std-ext", version = "0.34.0", default-features = false } # optional dependencies prost-derive = { version = "0.12", optional = true } diff --git a/pbt-gen/Cargo.toml b/pbt-gen/Cargo.toml index 0738602da..d6740c1a0 100644 --- a/pbt-gen/Cargo.toml +++ b/pbt-gen/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-pbt-gen" -version = "0.33.2" +version = "0.34.0" authors = ["Informal Systems "] edition = "2021" license = "Apache-2.0" diff --git a/proto/Cargo.toml b/proto/Cargo.toml index 18458bef1..264dbb537 100644 --- a/proto/Cargo.toml +++ b/proto/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-proto" -version = "0.33.2" +version = "0.34.0" authors = ["Informal Systems "] edition = "2021" license = "Apache-2.0" diff --git a/rpc/Cargo.toml b/rpc/Cargo.toml index 62d894e13..c2f2b7f26 100644 --- a/rpc/Cargo.toml +++ b/rpc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-rpc" -version = "0.33.2" +version = "0.34.0" edition = "2021" license = "Apache-2.0" homepage = "https://www.tendermint.com/" @@ -55,9 +55,9 @@ websocket-client = [ ] [dependencies] -tendermint = { version = "0.33.2", default-features = false, path = "../tendermint" } -tendermint-config = { version = "0.33.2", path = "../config", default-features = false } -tendermint-proto = { version = "0.33.2", path = "../proto", default-features = false } +tendermint = { version = "0.34.0", default-features = false, path = "../tendermint" } +tendermint-config = { version = "0.34.0", path = "../config", default-features = false } +tendermint-proto = { version = "0.34.0", path = "../proto", default-features = false } async-trait = { version = "0.1", default-features = false } bytes = { version = "1.0", default-features = false } diff --git a/std-ext/Cargo.toml b/std-ext/Cargo.toml index c47b356fe..bcdd64343 100644 --- a/std-ext/Cargo.toml +++ b/std-ext/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-std-ext" -version = "0.33.2" +version = "0.34.0" edition = "2021" license = "Apache-2.0" homepage = "https://www.tendermint.com/" diff --git a/tendermint/Cargo.toml b/tendermint/Cargo.toml index 7c8eb28ba..489a56cb4 100644 --- a/tendermint/Cargo.toml +++ b/tendermint/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint" -version = "0.33.2" # Also update depending crates (rpc, light-node, etc..) when bumping this . +version = "0.34.0" # Also update depending crates (rpc, light-node, etc..) when bumping this . license = "Apache-2.0" homepage = "https://www.tendermint.com/" repository = "https://github.com/informalsystems/tendermint-rs/tree/main/tendermint" @@ -44,7 +44,7 @@ serde_repr = { version = "0.1", default-features = false } signature = { version = "2", default-features = false, features = ["alloc"] } subtle = { version = "2", default-features = false } subtle-encoding = { version = "0.5", default-features = false, features = ["bech32-preview"] } -tendermint-proto = { version = "0.33.2", default-features = false, path = "../proto" } +tendermint-proto = { version = "0.34.0", default-features = false, path = "../proto" } time = { version = "0.3", default-features = false, features = ["macros", "parsing"] } zeroize = { version = "1.1", default-features = false, features = ["zeroize_derive", "alloc"] } flex-error = { version = "0.4.4", default-features = false } diff --git a/test/Cargo.toml b/test/Cargo.toml index 0f85c9d88..50f0f07fa 100644 --- a/test/Cargo.toml +++ b/test/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "tendermint-test" description = "Tendermint workspace tests and common utilities for testing." -version = "0.33.2" +version = "0.34.0" edition = "2021" license = "Apache-2.0" categories = ["development", "test", "tools"] diff --git a/testgen/Cargo.toml b/testgen/Cargo.toml index 29fecdd40..2655ed0e2 100644 --- a/testgen/Cargo.toml +++ b/testgen/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-testgen" -version = "0.33.2" +version = "0.34.0" authors = ["Informal Systems "] edition = "2021" readme = "README.md" @@ -16,7 +16,7 @@ description = """ """ [dependencies] -tendermint = { version = "0.33.2", path = "../tendermint", features = ["clock"] } +tendermint = { version = "0.34.0", path = "../tendermint", features = ["clock"] } serde = { version = "1", default-features = false, features = ["derive"] } serde_json = { version = "1", default-features = false, features = ["std"] } ed25519-consensus = { version = "2", default-features = false } diff --git a/tools/abci-test/Cargo.toml b/tools/abci-test/Cargo.toml index 32d7d76ab..a64d03eec 100644 --- a/tools/abci-test/Cargo.toml +++ b/tools/abci-test/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "abci-test" -version = "0.33.2" +version = "0.34.0" authors = ["Informal Systems "] edition = "2021" description = """ @@ -14,9 +14,9 @@ description = """ flex-error = { version = "0.4.4", default-features = false, features = ["std", "eyre_tracer"] } futures = "0.3" structopt = "0.3" -tendermint = { version = "0.33.2", path = "../../tendermint" } -tendermint-config = { version = "0.33.2", path = "../../config" } -tendermint-rpc = { version = "0.33.2", path = "../../rpc", features = [ "websocket-client" ] } +tendermint = { version = "0.34.0", path = "../../tendermint" } +tendermint-config = { version = "0.34.0", path = "../../config" } +tendermint-rpc = { version = "0.34.0", path = "../../rpc", features = [ "websocket-client" ] } tracing = "0.1" tracing-subscriber = "0.2" tokio = { version = "1.20", features = ["full"] } diff --git a/tools/kvstore-test/Cargo.toml b/tools/kvstore-test/Cargo.toml index 13cb1286c..b070d257b 100644 --- a/tools/kvstore-test/Cargo.toml +++ b/tools/kvstore-test/Cargo.toml @@ -11,9 +11,9 @@ edition = "2021" [dev-dependencies] futures = "0.3" sha2 = "0.10" -tendermint = { version = "0.33.2", path = "../../tendermint" } -tendermint-light-client = { version = "0.33.2", path = "../../light-client", features = ["unstable"] } -tendermint-rpc = { version = "0.33.2", path = "../../rpc", features = [ "http-client", "websocket-client" ] } +tendermint = { version = "0.34.0", path = "../../tendermint" } +tendermint-light-client = { version = "0.34.0", path = "../../light-client", features = ["unstable"] } +tendermint-rpc = { version = "0.34.0", path = "../../rpc", features = [ "http-client", "websocket-client" ] } tokio = { version = "1.0", features = [ "rt-multi-thread", "macros" ] } tracing = "0.1" tracing-subscriber = "0.3" diff --git a/tools/rpc-probe/Cargo.toml b/tools/rpc-probe/Cargo.toml index 0beb23a9b..a5dc0aea7 100644 --- a/tools/rpc-probe/Cargo.toml +++ b/tools/rpc-probe/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tendermint-rpc-probe" -version = "0.33.2" +version = "0.34.0" authors = ["Informal Systems "] edition = "2021" license = "Apache-2.0"