Skip to content

Commit 1c29869

Browse files
authored
Merge a65df6b into 89c8add
2 parents 89c8add + a65df6b commit 1c29869

File tree

27 files changed

+126
-59
lines changed

27 files changed

+126
-59
lines changed

.changelog/v0.29.0/summary.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
*Feb 17, 2023*
2+
3+
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.

CHANGELOG.md

Lines changed: 84 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,78 @@
11
# CHANGELOG
22

3+
## v0.29.0
4+
5+
*Feb 17, 2023*
6+
7+
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.
8+
9+
### BREAKING CHANGES
10+
11+
- `[tendermint]` Make implementations of cryptographic primitives replaceable
12+
([#1238](https://github.com/informalsystems/tendermint-rs/pull/1238)).
13+
* Provide a `Sha256` trait in module `crypto` and make digest hashing
14+
implementations available through it.
15+
* Provide a `Verifier` trait in module `crypto::signature` to enable
16+
alternative implementations of signature verification available through it.
17+
An `Error` enum is defined in the same module, representing the error cases
18+
that can arise in the implementation in a deliberately opaque way.
19+
* The module `crypto::default` provides pure Rust implementations of the
20+
cryptographic traits. The module is made available by a
21+
new `rust-crypto` feature, enabled by default.
22+
* `merkle::simple_hash_from_byte_vectors` is made generic over an
23+
implementation of the new `MerkleHash` trait. Implementations for
24+
Rust-Crypto conformant digest objects and the non-incremental
25+
`crypto::Sha256` API are provided in the crate.
26+
* The `Header::hash` and `ValidatorSet::hash` methods are gated by the
27+
`rust-crypto` feature. Generic hashing methods not dependent on
28+
the default crypto implementations are added for both types,
29+
named `hash_with`.
30+
* Conversions to `account::Id` and `node::Id` from `PublicKey` and
31+
curve-specific key types are gated by the `rust-crypto` feature.
32+
* The `validator::Info::new` method is gated by the `rust-crypto` feature.
33+
* Remove a deprecated constant `signature::ED25519_SIGNATURE_SIZE`.
34+
35+
- `[tendermint-light-client-verifier]` Changes for the new Tendermint crypto API
36+
([#1238](https://github.com/informalsystems/tendermint-rs/pull/1238)).
37+
* The `rust-crypto` feature, enabled by default, guards the
38+
batteries-included implementation types: `ProdVerifier`, `ProdPredicates`,
39+
`ProdVotingPowerCalculator`.
40+
* Remove the `operations::hasher` API (`Hasher` and `ProdHasher`),
41+
made unnecessary by the new crypto abstractions in the `tendermint` crate.
42+
* The `VerificationPredicates` trait features a `Sha256` associated type
43+
to represent the hasher implementation, replacing the `&dyn Hasher`
44+
parameter passed to methods.
45+
* Change the type of the `VerificationErrorDetail::FaultySigner` field
46+
`validator_set` to `ValidatorSet`. This removes a hasher dependency from
47+
`CommitValidator`, and `ProdCommitValidator` is now an empty dummy type.
48+
49+
- `[tendermint-light-client]` Changes for the new Tendermint crypto API
50+
([#1238](https://github.com/informalsystems/tendermint-rs/pull/1238)).
51+
* The `rust-crypto` feature enables the default crypto implementations,
52+
and is required by the `rpc-client` and `unstable` features.
53+
`ProdForkDetector` is guarded by this feature, and is made a specific
54+
type alias to the hasher-generic `ProvidedForkDetector` type.
55+
* `LightClientBuilder` gets another type parameter for the Merkle hasher.
56+
Its generic constructors lose the `Hasher` parameter.
57+
58+
### BUG FIXES
59+
60+
- `[tendermint-light-client]` Fix verification of blocks between two trusted
61+
heights
62+
([#1246](https://github.com/informalsystems/tendermint-rs/issues/1246))
63+
64+
### DEPENDENCIES
65+
66+
- `[tendermint, tendermint-p2p]` Replaced the `ed25519-dalek` dependency with
67+
`ed25519-consensus`
68+
([#1046](https://github.com/informalsystems/tendermint-rs/pull/1046))
69+
70+
### IMPROVEMENTS
71+
72+
- Update all crates to the [2021 edition](https://doc.rust-
73+
lang.org/edition-guide/rust-2021/index.html) of the Rust language
74+
([#1262](https://github.com/informalsystems/tendermint-rs/issues/1262))
75+
376
## v0.28.0
477

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

227300
### FEATURES
228301

229-
- `[tendermint-rpc]` Update `broadcast_tx_*` result to include
230-
prioritized new mempool fields available from v0.34.20-rc0
231-
([#1148](https://github.com/informalsystems/tendermint-rs/issues/1148))
232302
- `[tendermint-proto]` Regenerate protos from Tendermint
233303
v0.34.20-rc0, including prioritized mempool fields in `ResponseCheckTx`
234304
([#1148](https://github.com/informalsystems/tendermint-rs/issues/1148))
305+
- `[tendermint-rpc]` Update `broadcast_tx_*` result to include
306+
prioritized new mempool fields available from v0.34.20-rc0
307+
([#1148](https://github.com/informalsystems/tendermint-rs/issues/1148))
235308

236309
## v0.23.7
237310

@@ -388,18 +461,18 @@ not yet support `no_std`.
388461
- Upgraded Prost to the official v0.9 release to finally resolve the security
389462
issue introduced by v0.7
390463
([#925](https://github.com/informalsystems/tendermint-rs/issues/925))
391-
- `[tendermint, tendermint-config]` The `tendermint::config`
392-
module has now been broken out into its own crate (`tendermint-
393-
config`) to help towards facilitating `no_std` compatibility
394-
([#983](https://github.com/informalsystems/tendermint-rs/issues/983))
395-
- `[tendermint]` The `tendermint::node::info::OtherInfo::rpc_address`
396-
field type has been changed from `tendermint::net::Address`
397-
to `String` toward facilitating `no_std` compatibility
398-
([#983](https://github.com/informalsystems/tendermint-rs/issues/983))
399464
- `[tendermint]` The `tendermint::node::info::ListenAddress::to_net_address`
400465
method was replaced with a simple `as_str` method toward facilitating
401466
`no_std` compatibility ([#983](https://github.com/informalsystems/tendermint-
402467
rs/issues/983))
468+
- `[tendermint]` The `tendermint::node::info::OtherInfo::rpc_address`
469+
field type has been changed from `tendermint::net::Address`
470+
to `String` toward facilitating `no_std` compatibility
471+
([#983](https://github.com/informalsystems/tendermint-rs/issues/983))
472+
- `[tendermint, tendermint-config]` The `tendermint::config`
473+
module has now been broken out into its own crate (`tendermint-
474+
config`) to help towards facilitating `no_std` compatibility
475+
([#983](https://github.com/informalsystems/tendermint-rs/issues/983))
403476

404477
### FEATURES
405478

CONTRIBUTING.md

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -180,11 +180,8 @@ Our release process is as follows:
180180
2. Push this to a branch `release/vX.Y.Z` according to the version number of the
181181
anticipated release (e.g. `release/v0.17.0`) and open a **draft PR**.
182182
3. Bump all relevant versions in the codebase to the new version and push these
183-
changes to the release PR. This includes:
184-
1. All `Cargo.toml` files (making sure dependencies' versions are updated
185-
too).
186-
2. All crates' `lib.rs` files documentation references' `html_root_url`
187-
parameters must point to the new version.
183+
changes to the release PR. This includes all `Cargo.toml` files (making sure
184+
dependencies' versions are updated too).
188185
4. Run `cargo doc --all-features --open` locally to double-check that all the
189186
documentation compiles and seems up-to-date and coherent. Fix any potential
190187
issues here and push them to the release PR.

abci/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "tendermint-abci"
3-
version = "0.28.0"
3+
version = "0.29.0"
44
authors = ["Informal Systems <[email protected]>"]
55
edition = "2021"
66
license = "Apache-2.0"
@@ -33,7 +33,7 @@ binary = [
3333
[dependencies]
3434
bytes = { version = "1.0", default-features = false }
3535
prost = { version = "0.11", default-features = false }
36-
tendermint-proto = { version = "0.28.0", default-features = false, path = "../proto" }
36+
tendermint-proto = { version = "0.29.0", default-features = false, path = "../proto" }
3737
tracing = { version = "0.1", default-features = false }
3838
flex-error = { version = "0.4.4", default-features = false }
3939
structopt = { version = "0.3", optional = true, default-features = false }

config/Cargo.toml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
[package]
22
name = "tendermint-config"
3-
version = "0.28.0" # Also update `html_root_url` in lib.rs and
4-
# depending crates (rpc, light-node, ..) when bumping this
3+
version = "0.29.0" # Also update depending crates (rpc, light-node, ..) when bumping this.
54
license = "Apache-2.0"
65
homepage = "https://www.tendermint.com/"
76
repository = "https://github.com/informalsystems/tendermint-rs/tree/main/tendermint"
@@ -25,7 +24,7 @@ all-features = true
2524
rustdoc-args = ["--cfg", "docsrs"]
2625

2726
[dependencies]
28-
tendermint = { version = "0.28.0", default-features = false, features = ["rust-crypto"], path = "../tendermint" }
27+
tendermint = { version = "0.29.0", default-features = false, features = ["rust-crypto"], path = "../tendermint" }
2928
flex-error = { version = "0.4.4", default-features = false }
3029
serde = { version = "1", features = ["derive"] }
3130
serde_json = "1"

light-client-js/Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "tendermint-light-client-js"
3-
version = "0.28.0"
3+
version = "0.29.0"
44
authors = ["Informal Systems <[email protected]>"]
55
edition = "2021"
66
license = "Apache-2.0"
@@ -22,8 +22,8 @@ default = ["console_error_panic_hook"]
2222
[dependencies]
2323
serde = { version = "1.0", default-features = false, features = [ "derive" ] }
2424
serde_json = { version = "1.0", default-features = false }
25-
tendermint = { version = "0.28.0", default-features = false, path = "../tendermint" }
26-
tendermint-light-client-verifier = { version = "0.28.0", features = ["rust-crypto"], default-features = false, path = "../light-client-verifier" }
25+
tendermint = { version = "0.29.0", default-features = false, path = "../tendermint" }
26+
tendermint-light-client-verifier = { version = "0.29.0", features = ["rust-crypto"], default-features = false, path = "../light-client-verifier" }
2727
wasm-bindgen = { version = "0.2.63", default-features = false, features = [ "serde-serialize" ] }
2828
serde-wasm-bindgen = { version = "0.4.5", default-features = false }
2929

light-client-verifier/Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "tendermint-light-client-verifier"
3-
version = "0.28.0"
3+
version = "0.29.0"
44
edition = "2021"
55
license = "Apache-2.0"
66
readme = "README.md"
@@ -27,7 +27,7 @@ default = ["rust-crypto", "flex-error/std", "flex-error/eyre_tracer"]
2727
rust-crypto = ["tendermint/rust-crypto"]
2828

2929
[dependencies]
30-
tendermint = { version = "0.28.0", path = "../tendermint", default-features = false }
30+
tendermint = { version = "0.29.0", path = "../tendermint", default-features = false }
3131

3232
derive_more = { version = "0.99.5", default-features = false, features = ["display"] }
3333
serde = { version = "1.0.106", default-features = false }
@@ -36,4 +36,4 @@ flex-error = { version = "0.4.4", default-features = false }
3636

3737
[dev-dependencies]
3838
tendermint-testgen = { path = "../testgen", default-features = false }
39-
sha2 = { version = "0.10", default-features = false }
39+
sha2 = { version = "0.10", default-features = false }

light-client/Cargo.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "tendermint-light-client"
3-
version = "0.28.0"
3+
version = "0.29.0"
44
edition = "2021"
55
license = "Apache-2.0"
66
readme = "README.md"
@@ -35,9 +35,9 @@ unstable = ["rust-crypto"]
3535
mbt = ["rust-crypto"]
3636

3737
[dependencies]
38-
tendermint = { version = "0.28.0", path = "../tendermint", default-features = false }
39-
tendermint-rpc = { version = "0.28.0", path = "../rpc", default-features = false }
40-
tendermint-light-client-verifier = { version = "0.28.0", path = "../light-client-verifier", default-features = false }
38+
tendermint = { version = "0.29.0", path = "../tendermint", default-features = false }
39+
tendermint-rpc = { version = "0.29.0", path = "../rpc", default-features = false }
40+
tendermint-light-client-verifier = { version = "0.29.0", path = "../light-client-verifier", default-features = false }
4141

4242
contracts = { version = "0.6.2", default-features = false }
4343
crossbeam-channel = { version = "0.4.2", default-features = false }

light-client/src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
nonstandard_style
1010
)]
1111
#![doc(
12-
html_root_url = "https://docs.rs/tendermint-light-client/0.28.0",
1312
html_logo_url = "https://raw.githubusercontent.com/informalsystems/tendermint-rs/master/img/logo-tendermint-rs_3961x4001.png"
1413
)]
1514
#![cfg_attr(docsrs, feature(doc_cfg))]

p2p/Cargo.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "tendermint-p2p"
3-
version = "0.28.0"
3+
version = "0.29.0"
44
edition = "2021"
55
license = "Apache-2.0"
66
repository = "https://github.com/informalsystems/tendermint-rs"
@@ -44,9 +44,9 @@ aead = { version = "0.4.1", default-features = false }
4444
flex-error = { version = "0.4.4", default-features = false }
4545

4646
# path dependencies
47-
tendermint = { path = "../tendermint", version = "0.28.0", default-features = false }
48-
tendermint-proto = { path = "../proto", version = "0.28.0", default-features = false }
49-
tendermint-std-ext = { path = "../std-ext", version = "0.28.0", default-features = false }
47+
tendermint = { path = "../tendermint", version = "0.29.0", default-features = false }
48+
tendermint-proto = { path = "../proto", version = "0.29.0", default-features = false }
49+
tendermint-std-ext = { path = "../std-ext", version = "0.29.0", default-features = false }
5050

5151
# optional dependencies
5252
prost-derive = { version = "0.11", optional = true }

p2p/src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
unused_qualifications
2121
)]
2222
#![doc(
23-
html_root_url = "https://docs.rs/tendermint-p2p/0.28.0",
2423
html_logo_url = "https://raw.githubusercontent.com/informalsystems/tendermint-rs/master/img/logo-tendermint-rs_3961x4001.png"
2524
)]
2625

pbt-gen/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "tendermint-pbt-gen"
3-
version = "0.28.0"
3+
version = "0.29.0"
44
authors = ["Informal Systems <[email protected]>"]
55
edition = "2021"
66
license = "Apache-2.0"

proto/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "tendermint-proto"
3-
version = "0.28.0"
3+
version = "0.29.0"
44
authors = ["Informal Systems <[email protected]>"]
55
edition = "2021"
66
license = "Apache-2.0"

proto/src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
#![deny(warnings, trivial_casts, trivial_numeric_casts, unused_import_braces)]
55
#![allow(clippy::large_enum_variant)]
66
#![forbid(unsafe_code)]
7-
#![doc(html_root_url = "https://docs.rs/tendermint-proto/0.28.0")]
87

98
extern crate alloc;
109

rpc/Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "tendermint-rpc"
3-
version = "0.28.0"
3+
version = "0.29.0"
44
edition = "2021"
55
license = "Apache-2.0"
66
homepage = "https://www.tendermint.com/"
@@ -69,8 +69,8 @@ pin-project = { version = "1.0.1", default-features = false }
6969
serde = { version = "1", default-features = false, features = [ "derive" ] }
7070
serde_bytes = { version = "0.11", default-features = false }
7171
serde_json = { version = "1", default-features = false, features = ["std"] }
72-
tendermint-config = { version = "0.28.0", path = "../config", default-features = false }
73-
tendermint = { version = "0.28.0", default-features = false, path = "../tendermint" }
72+
tendermint-config = { version = "0.29.0", path = "../config", default-features = false }
73+
tendermint = { version = "0.29.0", default-features = false, path = "../tendermint" }
7474
thiserror = { version = "1", default-features = false }
7575
time = { version = "0.3", default-features = false, features = ["macros", "parsing"] }
7676
uuid = { version = "0.8", default-features = false }

std-ext/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "tendermint-std-ext"
3-
version = "0.28.0"
3+
version = "0.29.0"
44
edition = "2021"
55
license = "Apache-2.0"
66
homepage = "https://www.tendermint.com/"

tendermint/Cargo.toml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
[package]
22
name = "tendermint"
3-
version = "0.28.0" # Also update `html_root_url` in lib.rs and
4-
# depending crates (rpc, light-node, ..) when bumping this
3+
version = "0.29.0" # Also update depending crates (rpc, light-node, etc..) when bumping this .
54
license = "Apache-2.0"
65
homepage = "https://www.tendermint.com/"
76
repository = "https://github.com/informalsystems/tendermint-rs/tree/main/tendermint"
@@ -45,7 +44,7 @@ serde_repr = { version = "0.1", default-features = false }
4544
signature = { version = "1", default-features = false }
4645
subtle = { version = "2", default-features = false }
4746
subtle-encoding = { version = "0.5", default-features = false, features = ["bech32-preview"] }
48-
tendermint-proto = { version = "0.28.0", default-features = false, path = "../proto" }
47+
tendermint-proto = { version = "0.29.0", default-features = false, path = "../proto" }
4948
time = { version = "0.3", default-features = false, features = ["macros", "parsing"] }
5049
zeroize = { version = "1.1", default-features = false, features = ["zeroize_derive", "alloc"] }
5150
flex-error = { version = "0.4.4", default-features = false }

tendermint/src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
)]
1616
#![forbid(unsafe_code)]
1717
#![doc(
18-
html_root_url = "https://docs.rs/tendermint/0.28.0",
1918
html_logo_url = "https://raw.githubusercontent.com/informalsystems/tendermint-rs/master/img/logo-tendermint-rs_3961x4001.png"
2019
)]
2120

test/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "tendermint-test"
33
description = "Tendermint workspace tests and common utilities for testing."
4-
version = "0.28.0"
4+
version = "0.29.0"
55
edition = "2021"
66
license = "Apache-2.0"
77
categories = ["development", "test", "tools"]

testgen/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "tendermint-testgen"
3-
version = "0.28.0"
3+
version = "0.29.0"
44
authors = ["Informal Systems <[email protected]>"]
55
edition = "2021"
66
readme = "README.md"
@@ -16,7 +16,7 @@ description = """
1616
"""
1717

1818
[dependencies]
19-
tendermint = { version = "0.28.0", path = "../tendermint", features = ["clock"] }
19+
tendermint = { version = "0.29.0", path = "../tendermint", features = ["clock"] }
2020
serde = { version = "1", default-features = false, features = ["derive"] }
2121
serde_json = { version = "1", default-features = false, features = ["std"] }
2222
ed25519-consensus = { version = "2", default-features = false }

tools/abci-test/Cargo.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "abci-test"
3-
version = "0.28.0"
3+
version = "0.29.0"
44
authors = ["Informal Systems <[email protected]>"]
55
edition = "2021"
66
description = """
@@ -14,9 +14,9 @@ description = """
1414
flex-error = { version = "0.4.4", default-features = false, features = ["std", "eyre_tracer"] }
1515
futures = "0.3"
1616
structopt = "0.3"
17-
tendermint = { version = "0.28.0", path = "../../tendermint" }
18-
tendermint-config = { version = "0.28.0", path = "../../config" }
19-
tendermint-rpc = { version = "0.28.0", path = "../../rpc", features = [ "websocket-client" ] }
17+
tendermint = { version = "0.29.0", path = "../../tendermint" }
18+
tendermint-config = { version = "0.29.0", path = "../../config" }
19+
tendermint-rpc = { version = "0.29.0", path = "../../rpc", features = [ "websocket-client" ] }
2020
tracing = "0.1"
2121
tracing-subscriber = "0.2"
2222
tokio = { version = "1.20", features = ["full"] }

0 commit comments

Comments
 (0)