All Versions
33
Latest Version
Avg Release Cycle
42 days
Latest Release
1937 days ago

Changelog History
Page 2

  • v0.11.0 Changes

    March 15, 2019

    ๐Ÿ’ฅ Breaking Changes

    exonum
    • Node secret keys are now stored in separate files in a secure way. CLI for generating node configs and starting nodes has been extended in order to reflect these changes. (#1222, #1096, #1235)

    • ๐Ÿ”„ Changed a response for /healthcheck endpoint. (#1252)

    • ๐Ÿ”„ Changed a response code for the /block endpoint for the case when the requested block doesn't exist. (#1262)

    • โœ‚ Removed a sub-command generate-testnet from CLI. (#1264)

    exonum-crypto
    • Renamed create_keys_file function to generate_keys_file in utils module. (#1222, #1096)

    Internal improvements

    • โšก๏ธ All Exonum crates have been updated to Rust 2018 edition. This means that it is required to use Rust 1.31 or newer for compilation. (#1230)
    exonum
    • โž• Added allow-origin for localhost for public and private api in development mode by default. (#1234)

    • โž• Added ProtobufConvert implementation for Signature. (#1241)

  • v0.10.4 Changes

    September 06, 2019

    Internal Improvements

    exonum
    • โšก๏ธ Update dependencies.
    exonum-crypto
    • โšก๏ธ Update dependencies.
  • v0.10.3 Changes

    January 22, 2019

    Internal Improvements

    exonum
    • Unpin versions of dependencies. (#1237)
  • v0.10.2 Changes

    January 14, 2019

    ๐Ÿ†• New Features

    exonum
    • โž• Added i128/u128 support for StorageKey, StorageValue. (#1179)
    exonum-crypto
    • โž• Added i128/u128 support for CryptoHash. (#1179)
  • v0.10.1 Changes

    January 04, 2019

    Internal Improvements

    exonum
    • โšก๏ธ Dependencies have been updated. (#1111, #1162, #1167, #1168)

    • ctrl+c handler has been added for correct node stopping. (#1163)

    exonum-crypto
    • โšก๏ธ pwbox dependency has been updated. (#1164)
  • v0.10.0 Changes

    December 14, 2018

    ๐Ÿ’ฅ Breaking Changes

    • ๐Ÿ”„ Changed the message format, which, in turn, has led to changes in the byte representation of transactions and precommit messages. (#916)

    • Transaction::execute now accepts TransactionContext as the second parameter. TransactionContext provides the public key of transaction author, ID of current service, and transaction hash. (#943)

    • ๐Ÿšš Transaction::verify method has been removed. (#1085)

    • ๐Ÿ”จ Every transaction that contains the public key of the author was refactored to use the author indicated in TransactionContext. (#984 #980 #979 #975 #971)

    • /transactions/ endpoint can now handle transaction messages in hex format. Services that used custom endpoints were refactored to use explorer/v1/transactions. (#943 #984 #980 #979 #975 #971)

    • ๐Ÿšš majority_count parameter has been moved from StoredConfiguration to ConfigurationService configuration. (#828)

    • Removed obsolete enable_blockchain_explorer option from NodeApiConfig. (#891)

    • Consensus messages and inner structs are now serialized with protobuf. (#1028)

    • tx_pool_capacity parameter has been removed from MemoryPoolConfig. (#1036)

    • ๐Ÿšš Custom serialization has been removed. (#1088)

    exonum
    • ๐Ÿšš Trait TransactionSend was removed. ApiSender now contains broadcast_transaction method. (#943)

    • api::Error::InternalError now contains failure::Error instead of Box<::std::error::Error>. (#879)

    • TransactionSend::send now returns Result<(), failure::Error> instead of io::Result. (#879)

    • ApiSender methods send_external_message and peer_add now returns Result<(), failure::Error> instead of io::Result. (#879)

    • majority_count parameter has been added to generate-template and generate-testnet commands. (#828)

    • โž• NodePrivateConfig fields have been renamed: listen_addr to listen_address and external_addr to external_address. (#809)

    • NodePublicConfig addr field has been renamed to address. (#809)

    • Config parameter external_address is now a required value. (#826)

    • โฑ Config parameter round_timeout has been renamed to first_round_timeout. Now timeout for round r is first_round_timeout + (r-1)*round_timeout_increase, where round_timeout_increase is determined as a certain percentage of first_round_timeout. The value of this percentage is defined in ConsensusConfig::TIMEOUT_LINEAR_INCREASE_PERCENT constant (10%). (#848)

    • missing_keys, entries, all_entries methods of CheckedMapProof and MapProof::missing_keys_unchecked method now return impl Iterator instead of Vec. (#918)

    • ๐Ÿšš Connect message field addr with SocketAddr has been removed, pub_addr with str of unresolved external address of the peer is used instead. (#942)

    • Endpoint v1/peers now returns ConnectInfo in incoming connections instead of single IP-addresses. (#959)

    • Fork::remove_by_prefix() method now specifies prefix as Option<&[u8]> instead of Option<&Vec<u8>>. (#1042)

    • TransactionResult is now serialized using protobuf. Empty description of the result is now the equivalent of there being no description of the result. (#1075)

    • Service::tx_from_raw now uses failure::Error as an error type. (#1088)

    • ๐Ÿšš transactions! macro has been removed, TransactionSet derive macro from exonum-derive should be used instead. (#1088)

    • ๐Ÿšš encoding_struct! macro has been removed, protobuf should be used instead. (#1088)

    โœ… exonum-testkit
    • โœ… Structures in tests and examples are serialized using protobuf now. (#1078)
    exonum-timestamping
    • โœ… Structures in tests and examples are serialized using protobuf now. (#1081)
    exonum-cryptocurrency
    • โœ… Structures in tests and examples are serialized using protobuf now. (#1081)
    ๐Ÿ”ง exonum-configuration
    • The Vote and VoteAgainst now save the transaction hash instead of full transaction message. (#984)

    • Structures are serialized using protobuf now. (#1086)

    exonum-time
    • Structures are serialized using protobuf now. (#1086)

    ๐Ÿ†• New Features

    exonum-crypto
    • Added utils module with functions create_keys_file for creating and read_keys_from_file for reading files that contain a public key and encrypted secret key. (#1056)
    exonum
    • โž• Added possibility to use domain names instead of IP addresses as a peer's addresses. (#826)

    • โž• Added v1/rebroadcast endpoint that can be used to broadcast all transactions from the pool to other nodes. (#859)

    • Now each consecutive round is longer than previous by some constant percentage of first_round_timeout. (#848)

    • โž• Added /v1/blocks/subscribe endpoint for following block commit events through WebSockets (#792).

    • Added MapProof::all_entries_unchecked method. It is used for more efficient calculations in Exonum Java Bindings, but can be used for debug purposes as well. (#918)

    • โž• Added listen-address command line argument to specify different external address (peer-address) and listen address when generating config files. (#942)

    • Peer address is resolved on connect instead of resolving on node startup. (#942)

    • Now peers require only one connection to exchange messages between them. (#945)

    ๐Ÿ— exonum-build
    • ๐Ÿ— exonum-build crate has been added to simplify writing build.rs files for services that use protobuf code generation. (#1076)
    exonum-derive
    • exonum-derive crate has been added with custom derives for ProtobufConvert and TransactionSet. (#1055)

    ๐Ÿ› Bug Fixes

    exonum
    • ๐Ÿ› Bug with pool size overflow has been fixed. (#853)

    • ๐Ÿ› Bug in NoiseWrapper::decrypt_msg caused by wrong calculation of encrypted and decrypted message sizes has been fixed. (#873)

    • ๐Ÿ›  Transactions (signature) verification benchmark has been fixed. (#673)

    • Node no longer panics when transaction pool has a lot of transactions and consensus is at round 0. (#673)

    • Node now works correctly after consensus re-enable via API. (#902)

    • ๐Ÿ› Bug with incorrect EOF handling while decoding network messages has been fixed. (#917)

    • ๐Ÿ› Bug leading to deletion of excessive data when clearing an index belonging to an index family has been fixed. (#1042)

    API Improvements

    exonum
    • new_in_family index constructor introduced in #531 now accepts &str and &[u8] as an index_id value.

    Internal Improvements

    exonum
    • NodeHandler::run_handler now returns Result<(), failure::Error> instead of io::Result. (#879)

    • Transactions (signature) verification benchmark has been added. (#808)

    • A new function storage::proof_list_index::root_hash() has been added to efficiently compute Merkle root hash from a list of hashes without an intermediate ProofListIndex. Verification of block root hashes has been optimized as well. (#802)

    • NoiseHandshake::finalize now returns error if remote peer's public key is not in ConnectList. (#811)

    • Now nodes will switch to min_propose_timeout for block proposal timeout faster if they receive more than propose_timeout_threshold transactions during max_propose_timeout. (#844)

    • ๐ŸŒฒ Custom log formatting (along with colored and term dependencies) has been removed in favor of env_logger. (#857).

    • โšก๏ธ Several dependencies have been updated. (#861, #865, #871)

    • Transactions are now verified in a thread pool. Thread pool size is set to optimal value by default (CPU count) or can be configured manually. (#673)

    • The finalize command now does not include the node itself as its own trusted peer in the generated configuration. (#892)

    • โž• Added a possibility to create ServiceApiBuilder with blockchain. (#929)

    • ConnectInfo and ConnectList now stores unresolved addresses as strings. (#942)

    • Now network module uses PublicKeys to identify peers. (#942)

    • system/v1/peers endpoint now properly returns incoming and outgoing connections of the node. (#942)

  • v0.9.5 Changes

    December 18, 2018

    Internal Improvements

    exonum
    • โšก๏ธ A version of snow dependency has been updated.
  • v0.9.4 Changes

    October 24, 2018

    ๐Ÿ†• New Features

    exonum
    • SegmentField implementation for Option has been added, allowing to store optional values inside of transactions. (#1004)
  • v0.9.3 Changes

    October 04, 2018

    ๐Ÿ’ฅ Breaking Changes

    exonum
    • Config parameter external_address is now a required value. (#826)

    ๐Ÿ†• New Features

    exonum
    • โž• Added possibility to use domain names instead of IP addresses as a peer's addresses. In config file domain names can be used in ConnectList configuration and addresses will be resolved once on startup. (#826)
  • v0.9.2 Changes

    September 11, 2018

    Internal Improvements

    exonum
    • โž• Added a possibility to create ServiceApiBuilder with blockchain. (#929)