exonum v1.0.0 Release Notes

Release Date: 2020-03-31 // almost 5 years ago
  • ๐Ÿ’ฅ Breaking Changes

    exonum-api
    • ApiManagerConfig was made non-exhaustive. (#1834)

    ๐Ÿ†• New Features

    exonum-node
    • Exonum nodes now gracefully terminate on receiving SIGINT, SIGTERM
      ๐Ÿ and SIGQUIT signals (on Unix platforms), or a ctrl + c break (on Windows).
      ๐Ÿšฆ These signal handlers may be switched off by using NodeBuilder::disable_signals().
      (#1834)

    ๐Ÿ› Bug Fixes

    exonum-cli
    • ๐Ÿ›  Fixed bug in run-dev command. Previously, using the existing configuration
      files in blockchain-path led to an error. (#1827)

Previous changes from v1.0.0-rc.3

  • ๐Ÿ’ฅ 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)