Skip to content

Exonum Java Binding 0.4.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@dmitry-timofeev dmitry-timofeev released this 19 Feb 11:22

Overview

This release is based on the latest Exonum version, 0.10,
and brings the features and improvements outlined below.

If you are upgrading an existing Java service, please consult
the migration guide.

Added

  • Support of new transaction message format added in Exonum 0.10. It allows service
    developers to use any serialization format, and the framework to perform signature verification
    automatically. Both the service and client APIs are migrated. (#534, #574)
  • com.exonum.binding.blockchain.Blockchain, allowing services to read data,
    maintained by the framework (blocks, transaction messages, transaction execution results, etc.).
    (#548, #549, #571, #573)
  • Support of Service#afterCommit(BlockCommittedEvent event) method
    that is invoked after each block commit event. (#550)
  • com.exonum.binding.common.serialization.json.JsonSerializer providing JSON serialization
    support of any objects, including Exonum built-in types. (#611)
  • Support of passing arbitrary arguments to the JVM when the node is launched via
    --jvm-args-prepend and --jvm-args-append CLI flags. (#629)
  • --jvm-debug application command line argument that allows JDWP debugging of a node. (#629)
  • ListIndexProxy#stream to enable stream processing of list elements. (#661)
  • Support of running services on Java 11 runtime.

Changed

  • com.exonum.binding.storage.indices.MapEntry moved to package
    com.exonum.binding.common.collect. FlatMapProof and MapIndex are updated
    to use this implementation of MapEntry.
  • The --ejb-jvm-args command line argument has been substituted with --jvm-args-prepend and
    --jvm-args-append arguments that can now be passed at the Run stage instead of
    Generate-Config. Also, these JVM arguments are not saved to any of the configuration
    files. (#629)
  • Node#getPublicKey to return PublicKey instead of byte[]. (#651)
  • com.exonum.binding.transaction.Transaction#execute now accepts
    com.exonum.binding.transaction.TransactionContext
    instead of com.exonum.binding.storage.database.View

Removed

  • com.exonum.binding.common.proofs.map.MapEntry — moved to package
    com.exonum.binding.common.collect.
  • ViewModificationCounter replaced with per-View modification counters to simplify
    their relationship and testing. (#658)
  • Exonum v0.9 message format related classes.

Fixed

  • A bug in the cryptocurrency demo frontend that sometimes resulted in rejected transactions and/or
    wrong response code (#621).