Releases: informalsystems/tendermint-rs
v0.40.0
October 23rd, 2024
This release adds a new dialect for CometBFT v0.38.x
, enabling the correct serialization of misbehavior Evidence
. This improvement ensures compatibility with CometBFT v0.38.x
, addressing specific issues in evidence handling for this version.
BREAKING CHANGES
- [tendermint-rpc] Add new dialect for CometBFT v0.38.x
(#1467)
BUG FIXES
- [tendermint-rpc] Fix serialization of misbehaviour
Evidence
on CometBFT v0.38.x using the newly introduced dialect
(#1467)
v0.39.0
August 6th, 2024
This release bundles the google.protobuf.Any
Protobuf type in tendermint-proto
and brings improvements to google.protobuf.Duration
and google.protobuf.Timestamp
.
FEATURES
[tendermint-proto]
AddAny
type undertendermint_proto::google::protobuf::Any
(#1445)
IMPROVEMENTS
v0.38.1
July 23rd, 2024
This release enhances decoding of the AppHash
type by trying to decode it as base64 if it fails to decode as hex.
This release also updates prost
and prost-types
to their latest version in the tendermint
crate, something that was missed in the v0.38.0 release.
BREAKING CHANGES
[tendermint]
Bumpprost
andprost-types
to their latest versions in thetendermint
crate. This was missed in #1444, which only updated the two dependencies intendermint-rpc
, leading to duplicate versions of both crates to be present in the dependency graph. (#1446)
IMPROVEMENTS
[tendermint-rpc]
IfAppHash
fails to decode as hex, try to decode it as base64. (#1449)
v0.38.0
Important
tendermint-rs and CometBFT are versioned separately, and the version numbers seemingly matching at the moment is not intended.
July 15th, 2024
This release enhances /block_results
response handling, relaxes Block
validation, and adds support for the /genesis_chunked
RPC endpoint.
BREAKING CHANGES
- tendermint: relax validation rules on
Block
(#1435) [tendermint-proto]
: Updateprost
to v0.13 andtonic
to v0.12 (#1444)
BUG
[tendermint-rpc]
Deserialize an empty JSON object asNone
for theconsensus_param_updates
field in the/block_results
response. (#1440)
FEATURES
[tendermint-rpc]
Add support for the/genesis_chunked
RPC endpoint (#1438)
v0.37.0
May 31st, 2024
This release restores the commit verification interfaces of PredicateVerifier
from tendermint-rs 0.35.0
and lower, but retains the performance improvements made in version 0.36.0
.
This version also brings a few new features to the HTTP RPC client, notably a way to specify the User-Agent to send along HTTP requests, as well as a way to override the underlying reqwest
client.
Additionally, this release fixes a couple of issues with the serde
-based deserialization of the FinalizeBlock
and Event
types.
BREAKING CHANGES
[tendermint-proto]
Upgradetonic
to v0.11 (#1422)[tendermint-light-client-verifier]
Restores the commit verification interfaces ofPredicateVerifier<P, C, V>
from<= 0.35.0
(#1423)verify_commit(&self. untrusted: &UntrustedBlockState<'_>)
is restored, as in <= 0.35.0.verify_commit(&self, untrusted: &UntrustedBlockState<'_>, trusted: &TrustedBlockState<'_>,)
introduced in 0.36.0 is renamed toverify_commit_against_trusted
.
The performance improvements made in the0.36.0
release are still intact.
FEATURES
[tendermint-rpc]
Add a way to specify custom User-Agent forHttpClient
(#1425)
[tendermint-rpc]
Add aclient()
method ontransport::http::Builder
to override the underlyingreqwest
client (#1421)[tendermint-rpc]
Add afrom_raw_parts()
method ontransport::http::HttpClient
to allow supplying the underlyingreqwest
client (#1421)
BUG FIXES
v0.36.0
This release brings substantial performance improvements to the voting power computation within the light client, improves the handling of misformed blocks (eg. with empty last_commit
on non-first block) when decoding them from Protobuf or RPC responses, and adds missing serde
derives on some Protobuf definitions.
This release also technically contains a breaking change in tendermint-proto
, but this should not impact normal use of the library, as the ToPrimitive
impl that was removed on BlockIdFlag
trait did not provide any additional functionality.
BREAKING CHANGES
-
[tendermint-proto]
Remove redundant impl ofnum_traits::ToPrimitive
forBlockIDFlag
(#1389) -
[tendermint]
ChangeEventAttribute
'skey
andvalue
fields fromString
toVec<u8>
for Tendermint v0.34, as enforced by the Protobuf schema for Tendermint v0.34.tendermint::abci::EventAttribute
is now an enum, to account for version 0.34 and 0.37+, therefore thekey
,value
andindex
fields now have to be retrieved through thekey_str()
/key_bytes
,value_str()
/value_bytes()
andindex()
methods. (#1400). -
[light-client-verifier]
Rework VerificationPredicates and VotingPowerCalculator by introducing methods which check validators and signers overlap at once. The motivation of this is to avoid checking the same signature multiple times.Consider a validator is in old and new set. Previously their signature would be verified twice. Once by call to
has_sufficient_validators_overlap
method and second time by call tohas_sufficient_signers_overlap
method.With the new interface,
has_sufficient_validators_and_signers_overlap
is called and it can be implemented to remember which signatures have been verified.As a side effect of those changes, signatures are now verified in the order of validator’s power which may further reduce number of signatures which need to be verified.
(#1410)
FEATURES
[tendermint-proto]
Add missingserde
derives on Protobuf definitions (#1389)[tendermint]
Add the following impls fored25519-consensus
:From<ed25519_consensus::SigningKey
fortendermint::PrivateKey
From<ed25519_consensus::SigningKey>
fortendermint::SigningKey
From<ed25519_consensus::VerificationKey>
fortendermint::PublicKey
From<ed25519_consensus::VerificationKey>
fortendermint::VerificationKey
(#1401)
IMPROVEMENTS
[tendermint]
Allow misformed blocks (eg. with emptylast_commit
on non-first block) when decoding them from Protobuf or RPC responses (#1403)[tendermint]
Checkindex ≤ i32::MAX
invariant when convertingusize
intoValidatorIndex
. (#1411)[light-client-verifier]
Optimise validators lookup inProvidedVotingPowerCalculator::voting_power_in
method. (#1407)[tendermint-light-client-verifier]
Reuse buffer used to store sign_bytes to reduce number of allocations and deallocations. (#1413)
v0.35.0
This release brings breaking changes related to flex-error
, EventAttribute
fields and /tx_broadcast
Response
struct, as well as a critical bug fix for tendermint-p2p
, multiple improvements to tendermint-rpc
and a performance optimization for tendermint-light-client-verifier
.
BREAKING CHANGES
[tendermint]
Don’t enableflex-error/eyre_tracer
feature in crates which don’t use eyre directly. If you’re using eyre, and no other crate enables it, you may need to enable that explicitly. (#1371)[tendermint]
Allow null values inkey
andvalue
fields ofEventAttribute
when deserializing. The serialization schema for the fields is changed toOption<String>
(#1375).[tendermint-rpc]
Add thecodespace
field to the Tx sync and async broadcastResponse
(#1382)
BUG FIXES
[tendermint-p2p]
Fix data corruption on sending long messages viaSecretConnection
(#1393)[tendermint-rpc]
Fix deserialization of/block_results
response when some tx results are non-ok (#1391)
IMPROVEMENTS
[tendermint-rpc]
Export thehttp
,websocket
modules underclient
, each with the publicBuilder
type (#1378).[tendermint-rpc]
Allow specifying a request timeout for the RPCHttpClient
.http::Builder
now provides a.timeout(Duration)
method to specify the request timeout. If not specified, the default value is 30 seconds. (#1379)[tendermint-rpc]
AddFromStr
,Serialize
andDeserialize
instances toCompatMode
(#1374)[tendermint-light-client-verifier]
Optimizing voting power calculation by breaking the loop when we have enough voting power (#1378).
v0.34.0
What's Changed
- Update to prost 0.12 and tonic 0.10 by @mzabaluev in #1349
- rpc: replace
hyper::Client
withreqwest::Client
by @mzabaluev in #1362 - Turn non-200 HTTP responses into an error instead of trying to parse the body as a JSON-RPC response by @romac in #1361
- Add support for secp256k1 consensus keys by @mkaczanowski in #1358
- Fix cargo warning by explicitly specifying a resolver for the workspace by @romac in #1363
- Update to CometBFT 0.38.0 release by @mzabaluev in #1365
- Release 0.34.0 by @mzabaluev in #1366
New Contributors
- @mkaczanowski made their first contribution in #1358
Full Changelog: v0.33.2...v0.34.0
v0.33.2
What's Changed
- Correct and optimize custom serializers for stringized values, hashes, nullable and optional fields by @mzabaluev in #1351
- Validate construction and deserialization of
validator::Set
by @mzabaluev in #1350 - Fix JSON serialization of
timestamp
field forCommitSig::BlockIdFlagAbsent
by @romac in #1353 - tendermint-testgen: Add
app_hash
field toHeader
by @Farhad-Shabani in #1344 - CI: doc build fix, update actions/checkout by @mzabaluev in #1355
- Release 0.33.2 by @mzabaluev in #1354
Full Changelog: v0.33.1...v0.33.2
v0.33.1
What's Changed
- tendermint-proto: grpc server definitions for rpc/abci by @erwanor in #1338
- release: prepare
v0.33.1
by @erwanor in #1345
Full Changelog: v0.33.0...v0.33.1