exonum v1.0.0-rc.3 Release Notes

Release Date: 2020-03-25 // about 4 years ago
  • ๐Ÿ’ฅ Breaking changes

    exonum

    • create_patch and commit methods in BlockchainMut have been generalized
      ๐Ÿ†• to support block skipping (see New Features section for more details). (#1820)

    exonum-cli

    • run-dev command has been reworked. It now does not clear database files
      after the launch. artifacts-dir parameter has been renamed to
      ๐Ÿ”ง blockchain-path. Configuration files are now stored inside config
      subdirectory. (#1822)

    exonum-supervisor

    MigrationRequest was made non-exhaustive. (#1823)

    POST endpoints now expect JSON-encoded input rather than
    hex-encoded Protobuf. (#1823)

    ๐Ÿšš supervisor_name method was removed. Use Supervisor::NAME instead. (#1823)

    ๐Ÿ†• New Features

    exonum-cli

    • Several constants in the command module became public. (#1821)

    exonum-node

    Exonum nodes can now customize how they create block proposals. This can be
    ๐Ÿ‘‰ used to whitelist / blacklist transaction authors or services, prioritize
    transactions by advanced criteria, implement complex rate limiting, etc.
    The functionality is available via proposer module. (#1820)

    Exonum nodes can now skip block generation at a certain epoch of the consensus
    algorithm. This can be used to keep a "heartbeat" when the network load is low
    without bloating the storage used by the nodes. (#1820)

    exonum-rust-runtime

    • ServiceApiScope::pb_endpoint_mut allows to accept Protobuf-encoded messages
      with the request content type set to application/octet-stream in addition
      to JSON-encoded messages. (#1829)

    โœ… exonum-testkit

    • โœ… Testkit can send Protobuf-encoded payloads to POST endpoints. (#1831)

    ๐Ÿ› Bug Fixes

    exonum-api

    • ๐Ÿ Introduced a workaround for the HTTP restart hanging up on Windows. (#1828)

    exonum-node

    • ๐Ÿ›  Fixed a bug when a node created a propose with incorrect transactions.
      ๐ŸŒฒ This could lead to consensus failure or weird error messages in the node log.
      (#1820)

    exonum-rust-runtime

    • ๐Ÿ›  Fixed updating HTTP endpoints if the Rust runtime does not contain
      active services during node start. (#1831)

    exonum-supervisor

    • ๐Ÿš€ DeployRequest and MigrationRequest now have cryptographic seeds
      to retry the same request multiple times. (#1823)