Milestone 10.1
Pre-release-
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.
- 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:
-
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'sshell-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 byAmount.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 (packagenet.corda.nodeapi
) which contains the shared code betweennode
andclient
.
-
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
withp2pPort
in Gradle configuration. - Replace
artemisAddress
withp2pAddress
in node configuration. - Added
rpcAddress
in node configuration for non-ssl RPC connection.
- Replace
-
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 thanp2pAddress
.
-
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.
- Added
-
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.