exonum v0.8 Release Notes

Release Date: 2018-05-31 // almost 6 years ago
  • ๐Ÿ’ฅ Breaking Changes

    exonum

    • handle_commit method in Service trait has been renamed to after_commit. (#715)

    • ๐Ÿšš TimeoutAdjusterConfig has been removed along with different timeout adjusters. Current behavior is similar to the Dynamic timeout adjuster and can be modified through min_propose_timeout, max_propose_timeout and propose_timeout_threshold fields in the ConsensusConfig. (#643)

    Migration path:

    • Constant timeout adjuster can be emulated by setting equal min_propose_timeout and max_propose_timeout values.
    • For Dynamic timeout adjuster simply move min, max and threshold values into min_propose_timeout, max_propose_timeout and propose_timeout_threshold correspondingly.
    • There is no possibility to emulate MovingAverage now, so Dynamic should be used as the closest alternative.

      • Network connections are now encrypted using Noise Protocol. Nodes compiled with old version will not connect to the new ones. Therefore you need to update all node instances for the network to work. (#678)
      • storage::Error constructor has been made private. (#689)
      • ConsensusConfig::validate_configuration method has been renamed to the warn_if_nonoptimal. (#690)

    exonum-time

    • ๐Ÿ”จ The service has been refactored and the following public structs has been moved to separate modules: TimeSchema to exonum_time::schema, TimeProvider and MockTimeProvider to exonum_time::time_provider, ValidatorTime to exonum_time::api. (#604)

    ๐Ÿ†• New Features

    exonum

    • ๐Ÿ‘ Private API now support CORS. (#675)

    • The --public-allow-origin and --private-allow-origin parameters have been added to the finalize command. (#675)

    • ๐Ÿ‘ IPv6 addressing is now supported. (#615)

    • Field, CryptoHash, StorageValue and ExonumJson traits have been implemented for chrono::Duration structure. (#653)

    • before_commit method has been added in Service trait. (#667) (#715)

    • Field, CryptoHash, StorageKey, StorageValue and ExonumJson traits have been implemented for rust_decimal::Decimal. (#671)

    • ๐Ÿšง Maintenance CLI command for node management has been added. Currently the only supported command is clear-cache which clears node message cache. (#676)

    • StoredConfiguration validation has been extended with txs_block_limit parameter check. (#690)

    • A warning for non-optimal StoredConfiguration::txs_block_limit value has been added. (#690)

    • Private api /v1/network/ endpoint now returns core version in addition to service info. (#701)

    exonum-timestamping

    • โž• Additional service example has been added along with frontend. (#646)

    exonum-cryptocurrency-advanced

    • Advanced cryptocurrency example becomes a public library (is published on crates.io). (#709)

    ๐Ÿ› Bug Fixes

    exonum

    • Already processed transactions are rejected now in NodeHandler::handle_incoming_tx method. (#642)

    • ๐Ÿ›  Fixed bug with shutdown requests handling. (#666)

    • ๐Ÿ›  Fixed deserialization of the MapProof data structure. (#674)

    • ๐Ÿ›  Fixed a bug which prevented the node from reaching the actual round. (#680 #681)

    ๐Ÿ”ง exonum-configuration

    • Error description has been added to the return value of the transactions. (#695)

    exonum-time

    • Error description has been added to the return value of the transactions. (#695)

    exonum-cryptocurrency-advanced

    • โšก๏ธ Frontend has been updated to reflect latest backend changes. (#602 #611)

    Internal Improvements

    exonum

    • 0๏ธโƒฃ Default implementation of check method was added to Field trait to reduce boilerplate. (#639)

    • Metrics are now using chrono::DateTime<Utc> instead of SystemTime. (#620)

    ๐Ÿ”ง exonum-configuration

    • Method ProposeData::set_history_hash has been removed. (#604)