exonum v0.5 Release Notes

Release Date: 2018-01-30 // about 6 years ago
  • ๐Ÿ’ฅ Breaking Changes

    • The order of bytes and bits in the DBKey keys of ProofMapIndex became consistent. (#419)

    The change influences how Merkle Patricia trees are built for ProofMapIndex: the bits in each byte of a DBKey are now enumerated from the least significant bit (LSB) to the most significant bit (MSB), compared to MSB-to-LSB ordering used before. Note: this change will break old storages using map proofs.

    • The Database trait is simplified: it is no longer required to implement state-sharing clone method. Instead, the merge method now takes a shared reference to self. (#422)

    • message! and encoding_struct! no longer require manual SIZE and offset specification. (#413)

    • ๐Ÿšš from_raw(raw: RawMessage) method is moved to the Message trait. To migrate, add use exonum::messages::Message. (#427)

    • ๐Ÿ”„ Changed iterators over Patch and Changes data into custom types instead of standard collection iterators. (#393)

    <!-- spell-checker:disable -->

    • ๐Ÿ›  Fixed typo in SparceListIndexKeys and SparceListIndexValues. (#398)

    <!-- spell-checker:enable -->

    • โœ‚ Removed default state_hash implementation in the Service trait. (#399)

    • โœ‚ Removed info method from the Transaction. (#402)

    • Replaced config param timeout_events_capacity with internal_events_capacity. (#388)

    • The Transaction trait now inherits from ExonumJson. (#402)

    • ๐Ÿšš Renamed DBKey to ProofPath and moved a part of its functionality to the BitsRange trait. (#420)

    ๐Ÿ†• New Features

    • โž• Added patch method to the Fork structure. (#393)
    • โž• Added a public healthcheck endpoint. (#405)
    • โž• Added serialization support of floating point types through special wrapper (F32 and F64). This feature is hidden behind float_serialize gate. Note: special values (Infinity and NaN) aren't supported. (#384)
    • Added a possibility to set maximum message size (pub max_message_len field in ConsensusConfig). (#426)
    • โž• Added support for CORS. (#406)
    • โž• Added run-dev command that performs a simplified node launch for testing purposes. (#423)

    ๐Ÿ› Bug Fixes

    • ๐Ÿ›  Fixed consensus on the threshold of 1/3 sleeping validators. (#388)
    • ๐Ÿ›  Fixed a bunch of inconsistencies and mistakes in the docs. (#439)
    • ๐Ÿ›  Fixed a bug with message header validation. (#430)

    Internal Improvements

    • โช The list of peer connections is now restored to the latest state after the process is restarted. (#378)
    • โšก๏ธ Log dependency was updated to 0.4, which can cause issues with the previous versions. (#433)
    • ๐Ÿ‘ Better error reporting for configs in the .toml format. (#429)