Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 68 additions & 12 deletions docs/source/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,77 @@ Changelog

Here are brief summaries of what's changed between each snapshot release.

UNRELEASED
----------
Milestone 10.0
--------------

.. 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 <https://www.jetbrains.com/idea/download/>`_.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we need to provide some really clear instructions here (with a visual link to what to click in IntelliJ) as people will undoubtedly trip up.

Kapt is used to generate schema model and entity code (from annotations in the codebase) using the Kotlin Annotation processor. If the gradle KaptKotlin task is not run, then IntelliJ will report loads of unresolved references to Entities (and their attributes) and Models in any Kotlin source file that reference these.
The solution is to explicitly run the gradle kaptKotlin task, either on the command line or via the gradle run configuration in IntelliJ (see screen shot attached). Alternatively, perform a full gradle build or install.

screen shot 2017-04-05 at 15 44 11

.. 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 <https://www.corda.net/downloads/>`_

* 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 <http://www.crashub.org/>`_ 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:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These points are v technical. Please remember to add the "so what?" info, i.e. why are these changes worthwhile, ideally with a business spin. Move technical changes beneath Vault and DemoBench

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think its ok to be a bit technical in change log? The less technical more businessy stuff is in the release-notes.rst

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, that's why we split them - changelog is for developers who are upgrading their apps, release notes is for everyone else who is interested but not working with the platform every day.

* 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``.

API changes:
* 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.

* 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.
* 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.

* Configuration:
* Replace ``artemisPort`` with ``p2pPort`` in Gradle configuration
* Replace ``artemisAddress`` with ``p2pAddress`` in node configuration
* Added ``rpcAddress`` in node configuration

Milestone 9.1
-------------
Expand Down
4 changes: 2 additions & 2 deletions docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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 <https://docs.corda.net/releases/release-M9.2/>`_.
current state of the code. `Read the docs for milestone release M10.0 <https://docs.corda.net/releases/release-M10.0/>`_.

`Corda <https://www.corda.net/>`_ is an open-source distributed ledger platform. The latest *milestone* (i.e. stable)
release is M9.2. The codebase is on `GitHub <https://github.com/corda>`_, and our community can be found on
release is M10.0. The codebase is on `GitHub <https://github.com/corda>`_, and our community can be found on
`Slack <https://slack.corda.net/>`_ and in our `forum <https://discourse.corda.net/>`_.

If you're new to Corda, you should start by learning about its motivating vision and architecture. A good introduction
Expand Down
24 changes: 17 additions & 7 deletions docs/source/release-notes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,33 @@ 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
------------

Copy link

@josecoll josecoll Apr 5, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No mention of Soft Locking?
Refer to the soft-locking.rst for a good description (including usage and sample use case scenarios).

We are introducing a new DemoBench and Corda shell in Corda M10 to make running and demoing Corda easier for the corda community.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This paragraph isn't needed given the below paragraphs, surely?


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
the node. The Corda Shell is based on the popular `CRaSH project <http://www.crashub.org/>`_ 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.

There is a new tool "DemoBench", which makes it easy to configure and launch local Corda nodes. It is a standalone desktop app that can be bundled with its own JRE and packaged as either EXE (Windows), DMG (MacOS) or RPM (Linux-based). It has the following features:
#. New nodes can be added at the click of a button. 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 pty of the node. This lets you see console output.
#. You can launch an Explorer instance for each node at the click of a button. Credentials are handed to the Explorer so it starts out logged in already.
The new "DemoBench" makes it easy to configure and launch local Corda nodes. It is a standalone desktop app that can be bundled with its own JRE and packaged as either EXE (Windows), DMG (MacOS) or RPM (Linux-based). It has the following features:
#. New nodes can be added at the click of a button. 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 at the click of a button. 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.

Soft Locking is a new feature implemented in the vault to 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.

We have also delivered the long waited Kotlin 1.1 upgrade in M10! The new features in Kotlin allow us to write even more clean and easy to manage code, which greatly increases our productivity.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add something about horizontal scalability and the work Andras did on splitting out tx verification workers.


This release contains a large number of improvements, new features, library upgrades and bug fixes. For a full list of changes please see :doc:`changelog`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also please add something about how we've upgraded the basic Amount API to have support for advanced financial use cases and to better integrate with currency reference data.


Milestone 9
-----------

Expand Down Expand Up @@ -63,4 +73,4 @@ clients.
There have also been dozens of bug fixes, performance improvements and usability tweaks. Upgrading is definitely
worthwhile and will only take a few minutes for most apps.

For a full list of changes please see :doc:`change-log`.
For a full list of changes please see :doc:`changelog`.