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 togenerate_keys_file
inutils
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
forlocalhost
for public and private api in development mode by default. (#1234)โ Added
ProtobufConvert
implementation forSignature
. (#1241)
-
v0.10.4 Changes
September 06, 2019Internal Improvements
exonum
- โก๏ธ Update dependencies.
exonum-crypto
- โก๏ธ Update dependencies.
-
v0.10.3 Changes
January 22, 2019Internal 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)
- โ Added i128/u128 support for
-
v0.10.1 Changes
January 04, 2019Internal 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 acceptsTransactionContext
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 useexplorer/v1/transactions
. (#943 #984 #980 #979 #975 #971)๐
majority_count
parameter has been moved fromStoredConfiguration
toConfigurationService
configuration. (#828)Removed obsolete
enable_blockchain_explorer
option fromNodeApiConfig
. (#891)Consensus messages and inner structs are now serialized with protobuf. (#1028)
tx_pool_capacity
parameter has been removed fromMemoryPoolConfig
. (#1036)๐ Custom serialization has been removed. (#1088)
exonum
๐ Trait
TransactionSend
was removed.ApiSender
now containsbroadcast_transaction
method. (#943)api::Error::InternalError
now containsfailure::Error
instead ofBox<::std::error::Error>
. (#879)TransactionSend::send
now returnsResult<(), failure::Error>
instead ofio::Result
. (#879)ApiSender
methodssend_external_message
andpeer_add
now returnsResult<(), failure::Error>
instead ofio::Result
. (#879)majority_count
parameter has been added togenerate-template
andgenerate-testnet
commands. (#828)โ
NodePrivateConfig
fields have been renamed:listen_addr
tolisten_address
andexternal_addr
toexternal_address
. (#809)NodePublicConfig
addr
field has been renamed toaddress
. (#809)Config parameter
external_address
is now a required value. (#826)โฑ Config parameter
round_timeout
has been renamed tofirst_round_timeout
. Now timeout for round r isfirst_round_timeout + (r-1)*round_timeout_increase
, whereround_timeout_increase
is determined as a certain percentage offirst_round_timeout
. The value of this percentage is defined inConsensusConfig::TIMEOUT_LINEAR_INCREASE_PERCENT
constant (10%). (#848)missing_keys
,entries
,all_entries
methods ofCheckedMapProof
andMapProof::missing_keys_unchecked
method now returnimpl Iterator
instead ofVec
. (#918)๐
Connect
message fieldaddr
withSocketAddr
has been removed,pub_addr
withstr
of unresolved external address of the peer is used instead. (#942)Endpoint
v1/peers
now returnsConnectInfo
in incoming connections instead of single IP-addresses. (#959)Fork::remove_by_prefix()
method now specifies prefix asOption<&[u8]>
instead ofOption<&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 usesfailure::Error
as an error type. (#1088)๐
transactions!
macro has been removed,TransactionSet
derive macro fromexonum-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
andVoteAgainst
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 functionscreate_keys_file
for creating andread_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 writingbuild.rs
files for services that use protobuf code generation. (#1076)
exonum-derive
exonum-derive
crate has been added with custom derives forProtobufConvert
andTransactionSet
. (#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
clear
ing 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 anindex_id
value.
Internal Improvements
exonum
NodeHandler::run_handler
now returnsResult<(), failure::Error>
instead ofio::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 intermediateProofListIndex
. Verification of block root hashes has been optimized as well. (#802)NoiseHandshake::finalize
now returns error if remote peer's public key is not inConnectList
. (#811)Now nodes will switch to
min_propose_timeout
for block proposal timeout faster if they receive more thanpropose_timeout_threshold
transactions duringmax_propose_timeout
. (#844)๐ฒ Custom log formatting (along with
colored
andterm
dependencies) has been removed in favor ofenv_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
andConnectList
now stores unresolved addresses as strings. (#942)Now
network
module usesPublicKeys
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, 2018Internal Improvements
exonum
- โก๏ธ A version of
snow
dependency has been updated.
- โก๏ธ A version of
-
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)
- Config parameter
-
v0.9.2 Changes
September 11, 2018Internal Improvements
exonum
- โ Added a possibility to create
ServiceApiBuilder
with blockchain. (#929)
- โ Added a possibility to create