8000 M10 release note by patrickkuo · Pull Request #509 · corda/corda · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

M10 release note #509

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Apr 7, 2017
Merged

M10 release note #509

merged 7 commits into from
Apr 7, 2017

Conversation

patrickkuo
Copy link

First draft

--------------

.. warning:: Due to incompatibility between older version of IntelliJ and gradle 3.4, you will need to upgrade Intellij to 2017.1 and kotlin-plugin to 1.1.1 in order to run Corda demos in IntelliJ.
Also, the Kapt generated model are no longer included in our codebase, please run ``kaptKotlin`` gradle task if you experience problem with ``Model`` class when building in IntelliJ.
Copy link
Contributor

Choose a reason for hiding this comment

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

Specify the command to run:
"please run ./gradlew kaptKotlin if you ..."

* 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.
Copy link
Contributor

Choose a reason for hiding this comment

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

Amounts

* 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.
Copy link
Contributor

Choose a reason for hiding this comment

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

but the new

* 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.
Copy link
Contributor

Choose a reason for hiding this comment

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

The last bit of the sentence doesn't make sense to me. What does writing mean here?


* We have restructured client package in this milestone.
* ``CordaClientRPC`` is now in the new ``:client:rpc`` module.
* The old ``:client`` module has been broken into ``:client:jfx`` and ``:client:mock``.
Copy link
Contributor

Choose a reason for hiding this comment

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

has been split up

Copy link
Contributor

Choose a reason for hiding this comment

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

or "split into"

* Pool Kryo instances for efficiency.

* RPC client changes:
* Added a non-ssl connector to artemis broker for non-ssl RPC connection.
Copy link
Contributor

Choose a reason for hiding this comment

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

Perhaps say something a like:
RPC clients can now connect to the node without the need for SSL. This requires a separate port on the Artemis broker. CordaRPCClient now needs to connect to rpcAddress rather than p2pAddress.

* 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 additional JUnit tests for coin selection by issuer.
Copy link
Contributor

Choose a reason for hiding this comment

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

Should this be in the release notes?


.. warning:: Due to incompatibility between older version of IntelliJ and gradle 3.4, you will need to upgrade Intellij to 2017.1 and kotlin-plugin to 1.1.1 in order to run Corda demos in IntelliJ.
Also, the Kapt generated model are no longer included in our codebase, please run ``kaptKotlin`` gradle task if you experience problem with ``Model`` class when building in IntelliJ.

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

* 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 Demobench:
* DemoBench is a new tool to make configure and launch local Corda nodes easier. A very useful tool to demonstrate to your colleagues the fundamentals of Corda in real-time. It has the following features:
Copy link

Choose a reason for hiding this comment

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

"to make configuring and launching local Corda nodes easier"

* DemoBench is a new tool to make configure and launch local Corda nodes easier. A very useful tool to demonstrate to your colleagues the fundamentals of Corda in real-time. It has the following features:
* New nodes can be added at the click of a button. Cl 8000 icking "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.
Copy link
@GavT GavT Apr 5, 2017

Choose a reason for hiding this comment

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

"at the click of a button" is repetitive. "Credentials..." is too wordy. Remove it

* 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.
* Some basic statistics are shown about each node, informed via the RPC connection.
Copy link

Choose a reason for hiding this comment

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

Which statistics? Informed via the RPC connection - what does this mean in basic terms and why is it noteworthy?

Copy link
Author

Choose a reason for hiding this comment

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

@chrisr3 can you help address this? As you are the original author.

Copy link
Contributor

Choose a reason for hiding this comment

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

The statistics I had in mind were the node's cash balance and the number of transactions. Maybe drop the part about the RPC connection.

* 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.
* Some basic statistics are shown about each node, informed via the RPC connection.
* Another button launches a database viewer in the system browser.
Copy link

Choose a reason for hiding this comment

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

So that... what? Why is that useful?

Copy link
Author

Choose a reason for hiding this comment

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

@chrisr3 same here

Copy link
Contributor

Choose a reason for hiding this comment

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

So you can run SQL against the node's database?

* Such transactions would result in naturally wasted work 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 Demobench:
Copy link

Choose a reason for hiding this comment

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

please move to top of the release notes

* Added a non-ssl connector to artemis broker for non-ssl RPC connection.
CordaRPCClient can only connect to ``rpcAddress``, please make sure ``rpcAddress`` is configured in the node.

* Vault:
Copy link

Choose a reason for hiding this comment

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

Please move to 2nd in release notes, after DemoBench

chrisr3
chrisr3 previously requested changes Apr 5, 2017
* 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 Demobench:
* DemoBench is a new tool to make configure and launch local Corda nodes easier. A very useful tool to demonstrate to your colleagues the fundamentals of Corda in real-time. It has the following features:
Copy link
Contributor

Choose a reason for hiding this comment

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

Rephrase: "DemoBench is a new tool to make it easy to configure and launch local Corda nodes."

* Upgraded H2 to v1.4.194.
* Replaced kotlinx-support-jdk8 with kotlin-stdlib-jre8.

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

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

@patrickkuo
Copy link
Author

Addressed most of the issues.

Milestone 10
------------

We have 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 increase 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.

increases (I had to think about this but I'm pretty sure the "which greatly increase our productivity" is bound to the "to write even more..." phrase... )

Copy link
Contributor

Choose a reason for hiding this comment

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

also: is this the most important thing? not demo bench? not shell? not soft-locking?

Copy link
Author

Choose a reason for hiding this comment

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

not the most important thing, but definitely one of the most painful thing in last sprint :(, will move it down the line.


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:
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.
Copy link
Contributor

Choose a reason for hiding this comment

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

CorDapps


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:
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 pty of the node. This lets you see console output.
Copy link
Contributor

Choose a reason for hiding this comment

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

pty? Think of the poor reader...!!


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:
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 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.
Copy link
Contributor

Choose a reason for hiding this comment

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

a Corda Explorer (avoid ambiguity with the Windows Explorer?)

#. 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.
#. 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 prevents a node constructing transactions that attempt to use the same input(s) simultaneously.
Copy link
Contributor

Choose a reason for hiding this comment

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

prevent, not prevents

* 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 pty of the node. This lets you see console output.
Copy link
Contributor

Choose a reason for hiding this comment

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

replace pty with something more friendly?

* 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 pty of the node. This lets you see console output.
* You can launch an Explorer instance for each node via the demobanch UI. Credentials are handed to the Explorer so it starts out logged in already.
Copy link
Contributor

Choose a reason for hiding this comment

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

Corda Explorer.

* 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/>`_
Copy link
Contributor

Choose a reason for hiding this comment

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

DemoBench

* Such transactions would result in naturally wasted work 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:
Copy link
Contributor

Choose a reason for hiding this comment

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

should we include links to docs either here or in the release notes? i.e. this feature sounds cool... tell me how to get started...


* 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.
CordaRPCClient now needs to connect to ``rpcAddress`` rather than ``p2pAddress``.
Copy link
Contributor

Choose a reason for hiding this comment

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

missing asterisk?

@chrisr3 chrisr3 dismissed their stale review April 5, 2017 16:32

Points addressed

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 and kotlin-plugin to 1.1.1 in order to run Corda demos in IntelliJ.
Copy link

Choose a reason for hiding this comment

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

Can we quickly talk about how this is done - specifically link to IntelliJ downloads, and unless I'm mistaken the plugin version is the default for the latest download, so there's hopefully no manual work required to update the plugin?

* Dependencies changes:
* Upgraded Kotlin to v1.1.1.
* Upgraded Gradle to v3.4.1.
* Upgraded Requery to v1.2.1.
Copy link

Choose a reason for hiding this comment

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

For some crazy reason requery is apparently meant to be all lower case. It's how they write it, anyway.

Copy link
Contributor
@exFalso exFalso left a comment

Choose a reason for hiding this comment

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

Somewhere add:

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

* 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 demobanch UI. Credentials are handed to the Corda Explorer so it starts out logged in already.
Copy link
Contributor

Choose a reason for hiding this comment

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

typo demobanch -> demobench

* 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 common RPC classes such as ``RPCException`` and ``User``.
Copy link
Contributor

Choose a reason for hiding this comment

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

This is a bit misleading, the node-api module basically contains shared code between node and node clients

* 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.
Copy link
Contributor

Choose a reason for hiding this comment

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

can is a bit misleading, they must not use ssl

Copy link
@GavT GavT left a comment

Choose a reason for hiding this comment

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

I'm happy with the latest version

Milestone 10
------------

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?

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


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.

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.

@patrickkuo
Copy link
Author

Thanks @mikehearn I have addressed the issues.

@patrickkuo patrickkuo merged commit 7b216d6 into master Apr 7, 2017
@patrickkuo patrickkuo deleted the M10-release-note branch April 7, 2017 09:12
patrickkuo pushed a commit that referenced this pull request Apr 7, 2017
(cherry picked from commit 7b216d6)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants
0