All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Message.Builder#setBody(byte[])to avoidByteBuffer.wrapin the client code.MapIndex.isEmpty()method to check if MapIndex is empty.- Flat map proofs support, including multiproofs — proofs for several entries at once. (#250, #507, #532)
- Wallet transactions history support to the cryptocurrency-demo. (#481)
StandardSerializersnow supportsbool,fixed32,uint32,sint32,fixed64,uint64,sint64,floatanddoubleprimitive types,PrivateKey,PublicKeyandbyte[]serialization. (#514, #523)- A deterministic
Serializerof any protobuf message —StandardSerializers#protobuf. (#493) - Static factory methods accepting protobuf messages to collections,
allowing to pass Protocol Buffer messages directly instead of using
StandardSerializers#protobuf. (#505)
Transaction#executecan throwTransactionExecutionExceptionto roll back any changes to the database. The exception includes an error code and an optional description which the framework saves to the storage for later retrieval. (#392)ListProofValidatorreturns an instance ofNavigableMapinstead ofMap. (#457)- Refactor
exonum-java-proofsmodule toexonum-java-binding-commonmodule withcom.exonum.binding.commonroot package so that more functionality is available to client applications with no dependency onexonum-java-binding-core(#459)- Move
cryptopackage toexonum-java-binding-commonmodule. (#467) - Move
hashpackage toexonum-java-binding-commonmodule. (#469) - Move
Transaction-related classes to the newcom.exonum.binding.transactionpackage. (#469) - Move
messagespackage tomessagepackage inexonum-java-binding-commonmodule. (#469) - Move
proofspackage tocom.exonum.binding.commonpackage. (#469) - Move
serializationpackage tocom.exonum.binding.commonpackage. (#469)
- Move
ProofMapIndexProxy#getProofto return a flatUncheckedMapProofinstead of tree-likeMapProof, which is a more efficient format in terms of space. (#478)ProofListIndexProxy#getProofandProofListIndexProxy#getRangeProofto returnUncheckedListProofinstead ofListProof. The latter is renamed intoListProofNodeand may be accessed throughUncheckedListProof#getRootProofNode(#516)
Hashing#toHexString. (#379)- Deprecated tree map proofs in preference to flat map proofs, the only supported format by the Exonum storage. (#518)
-
Standard services may be enabled using specific
ejb_app_services.tomlfile. It supports onlyconfigurationandbtc-anchoringservices at the moment.To enable services put
ejb_app_services.tomlfile into EJB App's directory with the following content:services = ["configuration", "btc-anchoring"]
Configuration service is enabled by default. (#338, #313)
-
Added operations to get a message with and without signature (
BinaryMessage#getMessageNoSignatureandBinaryMessage#getSignedMessagerespectively). (#339) -
Added methods to sign transaction messages and verify their signatures. (#341)
-
Enabled passing extra arguments to the JVM from the command line. Use
--ejb-jvm-argsflag to specify an additional argument, e.g.,--ejb-jvm-args=Xmx2g. (#342)
-
Prepended
/apibefore the path to the REST API endpoints of a service. (#340) -
Message#getSignaturereturns a byte array. (#339)
--ejb-debugoption — use the corresponding JVM flags, e.g.,--ejb-jvm-args=Xcheck:jni. (#342)
Parent module and BOM module were released as they are required dependencies to define a Java service.
The first release of Exonum Java Binding.