diff --git a/docs/source/changelog.rst b/docs/source/changelog.rst index a1ce4d9df5..69f89f7f9d 100644 --- a/docs/source/changelog.rst +++ b/docs/source/changelog.rst @@ -3,21 +3,79 @@ Changelog Here are brief summaries of what's changed between each snapshot release. -UNRELEASED ----------- +Milestone 10.0 +-------------- -API changes: +.. warning:: Due to incompatibility between older version of IntelliJ and gradle 3.4, you will need to upgrade Intellij to 2017.1 (with kotlin-plugin v1.1.1) in order to run Corda demos in IntelliJ. You can download the latest IntelliJ from `JetBrains `_. -* The new Jackson module provides JSON/YAML serialisers for common Corda datatypes. If you have previously been - using the JSON support in the standalone web server, please be aware that amounts are now serialised as strings - instead of { quantity, token } pairs as before. The old format is still accepted, but new JSON will be produced - using strings like "1000.00 USD" when writing. You can use any format supported by ``Amount.parseCurrency`` - as input. +.. warning:: The Kapt-generated models are no longer included in our codebase. If you experience ``unresolved references`` errors when building in IntelliJ, please rebuild the schema model by running ``gradlew kaptKotlin`` in Windows or ``./gradlew kaptKotlin`` in other systems. + Alternatively, perform a full gradle build or install. + +.. note:: Kapt is used to generate schema model and entity code (from annotations in the codebase) using the Kotlin Annotation processor. + +* Corda DemoBench: + * DemoBench is a new tool to make it easy to configure and launch local Corda nodes. A very useful tool to demonstrate to your colleagues the fundamentals of Corda in real-time. It has the following features: + * Clicking "Add node" creates a new tab that lets you edit the most important configuration properties of the node before launch, such as its legal name and which CorDapps will be loaded. + * Each tab contains a terminal emulator, attached to the pseudoterminal of the node. This lets you see console output. + * You can launch an Corda Explorer instance for each node via the DemoBench UI. Credentials are handed to the Corda Explorer so it starts out logged in already. + * Some basic statistics are shown about each node, informed via the RPC connection. + * Another button launches a database viewer in the system browser. + * The configurations of all running nodes can be saved into a single ``.profile`` file that can be reloaded later. + * You can download Corda DemoBench from `here `_ + +* Vault: + * Soft Locking is a new feature implemented in the vault which prevent a node constructing transactions that attempt to use the same input(s) simultaneously. + * Such transactions would result in naturally wasted effort when the notary rejects them as double spend attempts. + * Soft locks are automatically applied to coin selection (eg. cash spending) to ensure that no two transactions attempt to spend the same fungible states. + +* Corda Shell : + * The shell lets developers and node administrators easily command the node by running flows, RPCs and SQL queries. + * It provides a variety of commands to monitor the node. + * The Corda Shell is based on the popular `CRaSH project `_ and new commands can be easily added to the node by simply dropping Groovy or Java files into the node's ``shell-commands`` directory. + * We have many enhancements planned over time including SSH access, more commands and better tab completion. + +* API changes: + * The new Jackson module provides JSON/YAML serialisers for common Corda datatypes. + If you have previously been using the JSON support in the standalone web server, + please be aware that Amounts are now serialised as strings instead of { quantity, token } pairs as before. + The old format is still accepted, but the new JSON will be produced using strings like "1000.00 USD" when writing. + You can use any format supported by ``Amount.parseCurrency`` as input. + + * We have restructured client package in this milestone. + * ``CordaClientRPC`` is now in the new ``:client:rpc`` module. + * The old ``:client`` module has been split up into ``:client:jfx`` and ``:client:mock``. + * We also have a new ``:node-api`` module (package ``net.corda.nodeapi``) which contains the shared code between ``node`` and ``client``. + + * The basic Amount API has been upgraded to have support for advanced financial use cases and to better integrate with currency reference data. * Configuration: - * Replace ``artemisPort`` with ``p2pPort`` in Gradle configuration - * Replace ``artemisAddress`` with ``p2pAddress`` in node configuration - * Added ``rpcAddress`` in node configuration + * Replace ``artemisPort`` with ``p2pPort`` in Gradle configuration. + * Replace ``artemisAddress`` with ``p2pAddress`` in node configuration. + * Added ``rpcAddress`` in node configuration for non-ssl RPC connection. + +* Object Serialization: + * Pool Kryo instances for efficiency. + +* RPC client changes: + * RPC clients can now connect to the node without the need for SSL. This requires a separate port on the Artemis broker, SSL must not be used for RPC connection. + * CordaRPCClient now needs to connect to ``rpcAddress`` rather than ``p2pAddress``. + +* Dependencies changes: + * Upgraded Kotlin to v1.1.1. + * Upgraded Gradle to v3.4.1. + * Upgraded requery to v1.2.1. + * Upgraded H2 to v1.4.194. + * Replaced kotlinx-support-jdk8 with kotlin-stdlib-jre8. + +* Improvements: + * Added ``--version`` command line flag to print the version of the node. + * Flows written in Java can now execute a sub-flow inside ``UntrustworthyData.unwrap``. + * Added optional out-of-process transaction verification. Any number of external verifier processes may be attached to the node which can handle loadbalanced verification requests. + +* Bug fixes: + * ``--logging-level`` command line flag was previously broken, now correctly sets the logging level. + * Fixed bug whereby Cash Exit was not taking into account the issuer reference. + Milestone 9.1 ------------- diff --git a/docs/source/index.rst b/docs/source/index.rst index d62262e3b4..289ffaa80a 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -2,10 +2,10 @@ Welcome to the Corda documentation! =================================== .. warning:: This build of the docs is from the "|version|" branch, not a milestone release. It may not reflect the - current state of the code. `Read the docs for milestone release M9.2 `_. + current state of the code. `Read the docs for milestone release M10.0 `_. `Corda `_ is an open-source distributed ledger platform. The latest *milestone* (i.e. stable) -release is M9.2. The codebase is on `GitHub `_, and our community can be found on +release is M10.0. The codebase is on `GitHub `_, and our community can be found on `Slack `_ and in our `forum `_. If you're new to Corda, you should start by learning about its motivating vision and architecture. A good introduction diff --git a/docs/source/release-notes.rst b/docs/source/release-notes.rst index c191d7f14f..356cc01aca 100644 --- a/docs/source/release-notes.rst +++ b/docs/source/release-notes.rst @@ -4,8 +4,8 @@ Release notes Here are release notes for each snapshot release from M9 onwards. This includes guidance on how to upgrade code from the previous milestone release. -UNRELEASED ----------- +Milestone 10 +------------ A new interactive **Corda Shell** has been added to the node. The shell lets developers and node administrators easily command the node by running flows, RPCs and SQL queries. It also provides a variety of commands to monitor @@ -13,14 +13,26 @@ the node. The Corda Shell is based on the popular `CRaSH project