oasisprotocol / oasis-core

Performant and Confidentiality-Preserving Smart Contracts + Blockchains
https://oasisprotocol.org
Apache License 2.0
332 stars 109 forks source link

rust: bump the tendermint group with 5 updates #5664

Closed dependabot[bot] closed 4 months ago

dependabot[bot] commented 4 months ago

Bumps the tendermint group with 5 updates:

Package From To
tendermint 0.35.0 0.36.0
tendermint-proto 0.35.0 0.36.0
tendermint-light-client 0.35.0 0.36.0
tendermint-rpc 0.35.0 0.36.0
tendermint-testgen 0.35.0 0.36.0

Updates tendermint from 0.35.0 to 0.36.0

Release notes

Sourced from tendermint's releases.

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 of num_traits::ToPrimitive for BlockIDFlag (#1389)

  • [tendermint] Change EventAttribute's key and value fields from String to Vec<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 the key, value and index fields now have to be retrieved through the key_str()/key_bytes, value_str()/value_bytes() and index() 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 to has_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 missing serde derives on Protobuf definitions (#1389)
  • [tendermint] Add the following impls for ed25519-consensus:
    • From<ed25519_consensus::SigningKey for tendermint::PrivateKey
    • From<ed25519_consensus::SigningKey> for tendermint::SigningKey
    • From<ed25519_consensus::VerificationKey> for tendermint::PublicKey
    • From<ed25519_consensus::VerificationKey> for tendermint::VerificationKey (#1401)

IMPROVEMENTS

  • [tendermint] Allow misformed blocks (eg. with empty last_commit on non-first block) when decoding them from Protobuf or RPC responses (#1403)
  • [tendermint] Check index ≤ i32::MAX invariant when converting usize into ValidatorIndex. (#1411)
  • [light-client-verifier] Optimise validators lookup in ProvidedVotingPowerCalculator::voting_power_in method. (#1407)
  • [tendermint-light-client-verifier] Reuse buffer used to store sign_bytes to reduce number of allocations and deallocations. (#1413)
Changelog

Sourced from tendermint's changelog.

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 of num_traits::ToPrimitive for BlockIDFlag (#1389)

  • [tendermint] Change EventAttribute's key and value fields from String to Vec<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 the key, value and index fields now have to be retrieved through the key_str()/key_bytes, value_str()/value_bytes() and index() 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 to has_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 missing serde derives on Protobuf definitions (#1389)
  • [tendermint] Add the following impls for ed25519-consensus:
    • From<ed25519_consensus::SigningKey for tendermint::PrivateKey
    • From<ed25519_consensus::SigningKey> for tendermint::SigningKey
    • From<ed25519_consensus::VerificationKey> for tendermint::PublicKey
    • From<ed25519_consensus::VerificationKey> for tendermint::VerificationKey (#1401)

IMPROVEMENTS

  • [tendermint] Allow misformed blocks (eg. with empty last_commit on non-first block) when decoding them from Protobuf or RPC responses (#1403)
  • [tendermint] Check index ≤ i32::MAX invariant when converting usize into ValidatorIndex.

... (truncated)

Commits
  • 1b219d2 Release v0.36.0 (#1414)
  • 38a067c light-client-verifier: reuse sign_bytes buffer (#1413)
  • 979456c tendermint: Change EventAttribute's key and value fields to Vec\<u8> f...
  • dac61d1 light-client-verifier: Avoid checking signatures multiple times (#1410)
  • 6399b5b tendermint: ensure ValidatorIndex is ≤ i32::MAX (#1411)
  • 404349e light-client-verifier: optimise validator lookup in voting_power_in (#1407)
  • bc8a6c3 Fix warnings on nightly (#1409)
  • c45f593 tendermint: Allow misformed blocks when decoding them from Protobuf or RPC re...
  • c90bf9c proto: Add missing serde derives on Protobuf definitions (#1389)
  • f11a1be tendermint: PrivateKey and PublicKey have From impls for `ed25519-conse...
  • See full diff in compare view


Updates tendermint-proto from 0.35.0 to 0.36.0

Release notes

Sourced from tendermint-proto's releases.

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 of num_traits::ToPrimitive for BlockIDFlag (#1389)

  • [tendermint] Change EventAttribute's key and value fields from String to Vec<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 the key, value and index fields now have to be retrieved through the key_str()/key_bytes, value_str()/value_bytes() and index() 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 to has_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 missing serde derives on Protobuf definitions (#1389)
  • [tendermint] Add the following impls for ed25519-consensus:
    • From<ed25519_consensus::SigningKey for tendermint::PrivateKey
    • From<ed25519_consensus::SigningKey> for tendermint::SigningKey
    • From<ed25519_consensus::VerificationKey> for tendermint::PublicKey
    • From<ed25519_consensus::VerificationKey> for tendermint::VerificationKey (#1401)

IMPROVEMENTS

  • [tendermint] Allow misformed blocks (eg. with empty last_commit on non-first block) when decoding them from Protobuf or RPC responses (#1403)
  • [tendermint] Check index ≤ i32::MAX invariant when converting usize into ValidatorIndex. (#1411)
  • [light-client-verifier] Optimise validators lookup in ProvidedVotingPowerCalculator::voting_power_in method. (#1407)
  • [tendermint-light-client-verifier] Reuse buffer used to store sign_bytes to reduce number of allocations and deallocations. (#1413)
Changelog

Sourced from tendermint-proto's changelog.

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 of num_traits::ToPrimitive for BlockIDFlag (#1389)

  • [tendermint] Change EventAttribute's key and value fields from String to Vec<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 the key, value and index fields now have to be retrieved through the key_str()/key_bytes, value_str()/value_bytes() and index() 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 to has_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 missing serde derives on Protobuf definitions (#1389)
  • [tendermint] Add the following impls for ed25519-consensus:
    • From<ed25519_consensus::SigningKey for tendermint::PrivateKey
    • From<ed25519_consensus::SigningKey> for tendermint::SigningKey
    • From<ed25519_consensus::VerificationKey> for tendermint::PublicKey
    • From<ed25519_consensus::VerificationKey> for tendermint::VerificationKey (#1401)

IMPROVEMENTS

  • [tendermint] Allow misformed blocks (eg. with empty last_commit on non-first block) when decoding them from Protobuf or RPC responses (#1403)
  • [tendermint] Check index ≤ i32::MAX invariant when converting usize into ValidatorIndex.

... (truncated)

Commits
  • 1b219d2 Release v0.36.0 (#1414)
  • 38a067c light-client-verifier: reuse sign_bytes buffer (#1413)
  • 979456c tendermint: Change EventAttribute's key and value fields to Vec\<u8> f...
  • dac61d1 light-client-verifier: Avoid checking signatures multiple times (#1410)
  • 6399b5b tendermint: ensure ValidatorIndex is ≤ i32::MAX (#1411)
  • 404349e light-client-verifier: optimise validator lookup in voting_power_in (#1407)
  • bc8a6c3 Fix warnings on nightly (#1409)
  • c45f593 tendermint: Allow misformed blocks when decoding them from Protobuf or RPC re...
  • c90bf9c proto: Add missing serde derives on Protobuf definitions (#1389)
  • f11a1be tendermint: PrivateKey and PublicKey have From impls for `ed25519-conse...
  • See full diff in compare view


Updates tendermint-light-client from 0.35.0 to 0.36.0

Release notes

Sourced from tendermint-light-client's releases.

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 of num_traits::ToPrimitive for BlockIDFlag (#1389)

  • [tendermint] Change EventAttribute's key and value fields from String to Vec<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 the key, value and index fields now have to be retrieved through the key_str()/key_bytes, value_str()/value_bytes() and index() 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 to has_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 missing serde derives on Protobuf definitions (#1389)
  • [tendermint] Add the following impls for ed25519-consensus:
    • From<ed25519_consensus::SigningKey for tendermint::PrivateKey
    • From<ed25519_consensus::SigningKey> for tendermint::SigningKey
    • From<ed25519_consensus::VerificationKey> for tendermint::PublicKey
    • From<ed25519_consensus::VerificationKey> for tendermint::VerificationKey (#1401)

IMPROVEMENTS

  • [tendermint] Allow misformed blocks (eg. with empty last_commit on non-first block) when decoding them from Protobuf or RPC responses (#1403)
  • [tendermint] Check index ≤ i32::MAX invariant when converting usize into ValidatorIndex. (#1411)
  • [light-client-verifier] Optimise validators lookup in ProvidedVotingPowerCalculator::voting_power_in method. (#1407)
  • [tendermint-light-client-verifier] Reuse buffer used to store sign_bytes to reduce number of allocations and deallocations. (#1413)
Changelog

Sourced from tendermint-light-client's changelog.

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 of num_traits::ToPrimitive for BlockIDFlag (#1389)

  • [tendermint] Change EventAttribute's key and value fields from String to Vec<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 the key, value and index fields now have to be retrieved through the key_str()/key_bytes, value_str()/value_bytes() and index() 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 to has_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 missing serde derives on Protobuf definitions (#1389)
  • [tendermint] Add the following impls for ed25519-consensus:
    • From<ed25519_consensus::SigningKey for tendermint::PrivateKey
    • From<ed25519_consensus::SigningKey> for tendermint::SigningKey
    • From<ed25519_consensus::VerificationKey> for tendermint::PublicKey
    • From<ed25519_consensus::VerificationKey> for tendermint::VerificationKey (#1401)

IMPROVEMENTS

  • [tendermint] Allow misformed blocks (eg. with empty last_commit on non-first block) when decoding them from Protobuf or RPC responses (#1403)
  • [tendermint] Check index ≤ i32::MAX invariant when converting usize into ValidatorIndex.

... (truncated)

Commits
  • 1b219d2 Release v0.36.0 (#1414)
  • 38a067c light-client-verifier: reuse sign_bytes buffer (#1413)
  • 979456c tendermint: Change EventAttribute's key and value fields to Vec\<u8> f...
  • dac61d1 light-client-verifier: Avoid checking signatures multiple times (#1410)
  • 6399b5b tendermint: ensure ValidatorIndex is ≤ i32::MAX (#1411)
  • 404349e light-client-verifier: optimise validator lookup in voting_power_in (#1407)
  • bc8a6c3 Fix warnings on nightly (#1409)
  • c45f593 tendermint: Allow misformed blocks when decoding them from Protobuf or RPC re...
  • c90bf9c proto: Add missing serde derives on Protobuf definitions (#1389)
  • f11a1be tendermint: PrivateKey and PublicKey have From impls for `ed25519-conse...
  • See full diff in compare view


Updates tendermint-rpc from 0.35.0 to 0.36.0

Release notes

Sourced from tendermint-rpc's releases.

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 of num_traits::ToPrimitive for BlockIDFlag (#1389)

  • [tendermint] Change EventAttribute's key and value fields from String to Vec<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 the key, value and index fields now have to be retrieved through the key_str()/key_bytes, value_str()/value_bytes() and index() 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 to has_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 missing serde derives on Protobuf definitions (#1389)
  • [tendermint] Add the following impls for ed25519-consensus:
    • From<ed25519_consensus::SigningKey for tendermint::PrivateKey
    • From<ed25519_consensus::SigningKey> for tendermint::SigningKey
    • From<ed25519_consensus::VerificationKey> for tendermint::PublicKey
    • From<ed25519_consensus::VerificationKey> for tendermint::VerificationKey (#1401)

IMPROVEMENTS

  • [tendermint] Allow misformed blocks (eg. with empty last_commit on non-first block) when decoding them from Protobuf or RPC responses (#1403)
  • [tendermint] Check index ≤ i32::MAX invariant when converting usize into ValidatorIndex. (#1411)
  • [light-client-verifier] Optimise validators lookup in ProvidedVotingPowerCalculator::voting_power_in method. (#1407)
  • [tendermint-light-client-verifier] Reuse buffer used to store sign_bytes to reduce number of allocations and deallocations. (#1413)
Changelog

Sourced from tendermint-rpc's changelog.

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 of num_traits::ToPrimitive for BlockIDFlag (#1389)

  • [tendermint] Change EventAttribute's key and value fields from String to Vec<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 the key, value and index fields now have to be retrieved through the key_str()/key_bytes, value_str()/value_bytes() and index() 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 to has_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 missing serde derives on Protobuf definitions (#1389)
  • [tendermint] Add the following impls for ed25519-consensus:
    • From<ed25519_consensus::SigningKey for tendermint::PrivateKey
    • From<ed25519_consensus::SigningKey> for tendermint::SigningKey
    • From<ed25519_consensus::VerificationKey> for tendermint::PublicKey
    • From<ed25519_consensus::VerificationKey> for tendermint::VerificationKey (#1401)

IMPROVEMENTS

  • [tendermint] Allow misformed blocks (eg. with empty last_commit on non-first block) when decoding them from Protobuf or RPC responses (#1403)
  • [tendermint] Check index ≤ i32::MAX invariant when converting usize into ValidatorIndex.

... (truncated)

Commits
  • 1b219d2 Release v0.36.0 (#1414)
  • 38a067c light-client-verifier: reuse sign_bytes buffer (#1413)
  • 979456c tendermint: Change EventAttribute's key and value fields to Vec\<u8> f...
  • dac61d1 light-client-verifier: Avoid checking signatures multiple times (#1410)
  • 6399b5b tendermint: ensure ValidatorIndex is ≤ i32::MAX (#1411)
  • 404349e light-client-verifier: optimise validator lookup in voting_power_in (#1407)
  • bc8a6c3 Fix warnings on nightly (#1409)
  • c45f593 tendermint: Allow misformed blocks when decoding them from Protobuf or RPC re...
  • c90bf9c proto: Add missing serde derives on Protobuf definitions (#1389)
  • f11a1be tendermint: PrivateKey and PublicKey have From impls for `ed25519-conse...
  • See full diff in compare view


Updates tendermint-testgen from 0.35.0 to 0.36.0

Release notes

Sourced from tendermint-testgen's releases.

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 of num_traits::ToPrimitive for BlockIDFlag (#1389)

  • [tendermint] Change EventAttribute's key and value fields from String to Vec<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 the key, value and index fields now have to be retrieved through the key_str()/key_bytes, value_str()/value_bytes() and index() 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 to has_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 missing serde derives on Protobuf definitions (#1389)
  • [tendermint] Add the following impls for ed25519-consensus:
    • From<ed25519_consensus::SigningKey for tendermint::PrivateKey
    • From<ed25519_consensus::SigningKey> for tendermint::SigningKey
    • From<ed25519_consensus::VerificationKey> for tendermint::PublicKey
    • From<ed25519_consensus::VerificationKey> for tendermint::VerificationKey (#1401)

IMPROVEMENTS

  • [tendermint] Allow misformed blocks (eg. with empty last_commit on non-first block) when decoding them from Protobuf or RPC responses (#1403)
  • [tendermint] Check index ≤ i32::MAX invariant when converting usize into ValidatorIndex. (#1411)
  • [light-client-verifier] Optimise validators lookup in ProvidedVotingPowerCalculator::voting_power_in method. (#1407)
  • [tendermint-light-client-verifier] Reuse buffer used to store sign_bytes to reduce number of allocations and deallocations. (#1413)
Changelog

Sourced from tendermint-testgen's changelog.

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 of num_traits::ToPrimitive for BlockIDFlag (#1389)

  • [tendermint] Change EventAttribute's key and value fields from String to Vec<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 the key, value and index fields now have to be retrieved through the key_str()/key_bytes, value_str()/value_bytes() and index() 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 to has_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 missing serde derives on Protobuf definitions (#1389)
  • [tendermint] Add the following impls for ed25519-consensus:
    • From<ed25519_consensus::SigningKey for tendermint::PrivateKey
    • From<ed25519_consensus::SigningKey> for tendermint::SigningKey
    • From<ed25519_consensus::VerificationKey> for tendermint::PublicKey
    • From<ed25519_consensus::VerificationKey> for tendermint::VerificationKey (#1401)

IMPROVEMENTS

  • [tendermint] Allow misformed blocks (eg. with empty last_commit on non-first block) when decoding them from Protobuf or RPC responses (#1403)
  • [tendermint] Check index ≤ i32::MAX invariant when converting usize into ValidatorIndex.

... (truncated)

Commits
  • 1b219d2 Release v0.36.0 (#1414)
  • 38a067c light-client-verifier: reuse sign_bytes buffer (#1413)
  • 979456c tendermint: Change EventAttribute's key and value fields to Vec\<u8> f...
  • dac61d1 light-client-verifier: Avoid checking signatures multiple times (#1410)
  • 6399b5b tendermint: ensure ValidatorIndex is ≤ i32::MAX (#1411)
  • 404349e light-client-verifier: optimise validator lookup in voting_power_in (#1407)
  • bc8a6c3 Fix warnings on nightly (#1409)
  • c45f593 tendermint: Allow misformed blocks when decoding them from Protobuf or RPC re...
  • c90bf9c proto: Add missing serde derives on Protobuf definitions (#1389)
  • f11a1be tendermint: PrivateKey and PublicKey have From impls for `ed25519-conse...
  • See full diff in compare view


Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
netlify[bot] commented 4 months ago

Deploy Preview for oasisprotocol-oasis-core canceled.

Name Link
Latest commit 1792ec6a76137ab9a5e3e20a716183f0fc51132d
Latest deploy log https://app.netlify.com/sites/oasisprotocol-oasis-core/deploys/662b58dfc34f4b0008835bb9
codecov[bot] commented 4 months ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 65.89%. Comparing base (08ff51e) to head (1792ec6). Report is 7 commits behind head on master.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## master #5664 +/- ## ========================================== + Coverage 65.83% 65.89% +0.05% ========================================== Files 597 599 +2 Lines 61703 61798 +95 ========================================== + Hits 40624 40721 +97 - Misses 16363 16384 +21 + Partials 4716 4693 -23 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.