Change PartyAndCertificate to an aggregate class instead of a subclass of Party. This reduces the changes compared to M11, as well as avoiding risk of accidental serialization of a PartyAndCertificate (which may be very large) where a Party is expected.
Cleaned up initial nodes known to the identity service, in particular mock nodes now know about themselves; previously full nodes registered themselves but mock nodes did not.
* Fix bug in demobench. Explorer didn't show correctly location of a node.
There was no nearestCity override in config.
* Remove nearestCity from node configuration. Now information about the location is always taken from
node's legal name. If not present - exception on node startup.
* Add X500Name.locationOrNull that soft fails when location is not in X500 name. Address PR comments.
* Remove unused imports.
* Construct standard flows using PartyAndCertificate, and add support for launching
flows that are constructed with PartyAndCertificate or just Party.
* Store PartyAndCertificate in network map service
* Expand identity service to store certificates along with all identities.
Fix Bank of Corda, Trader and Notary demos.
In Notary demo, introduce deployNodes task, that deploys all three types of Notary into different directories (so there is no need to do clean, when you want to run them one after another).
This removes the need to do manual registration using the PluginServiceHub. As a result CordaPluginRegistry.servicePlugins is no longer needed. For oracles and services there is a CorDappService annotation.
I've also fixed the InitiatingFlow annotation such that client flows can be customised (sub-typed) without it breaking the flow sessions.
Replace X509Certificate with X509CertificateHolder for consistency in implementation of how X.509 certificates
are managed. Using the Java standard class entails the actual implementing class being one of several options
depending how a certificate is built, which makes serialization/deserialization with Kryo inconsistent as some
of these forms cannot be directly built from outside restricted classes.
* De-anonymise parties in AbstractStateReplacementFlow flows
* Convert transaction key negotiation to a subflow instead of utility functions
* Add serialization support for CertPath
* Restructure cash flows so that a counterparty flow can be added later
* Rename raft-notary-demo project to notary-demo
* Refactor serialisation filtering to allow BFT SMaRt to work, it no longer relies on the jdk.serialFilter system property
* In NodeBasedTest remove whitespace in node directory names for consistency with cordform and driver
* Add "TLS" to createTlsServerCert() to differentiate it from future work to introduce a non-TLS variant.
*Change to using Java 8 time types for certificate validity - does introduce so unnecessary roundtrips, but makes the code significantly easier to read/follow. In particular avoids opaque integers in the code and replaces them with Duration.
* We need to close the RPC client as otherwise the rpc-client-reaper-* thread is leaked, which also prevents shutdown. Sleep instead when the server exits, just long enough for the client to realise that the server is dead.
* Fix warning about leaking private types.
* Intro changes for multi node Azure deployment, more to do
* Updated text on running Azure wizard and starting writing how to use Yo CorDapp
* All text updated for Corda multi node offering in Azure
* Images for Azure multi node documentation
* Update link to Yo CorDapp video
* Fixed some typos
* Added further info on validating notary
* Changed Yo CorDapp info to manually load it since it is not pre-loaded
* Updated screenshot for Azure multi node step 2
* Uploaded yo_peers screenshot for Azure documentation
* Corda banner screenshot
* Screen shot of Corda syslog
* updated screenshot for Azure setup step3
* Updated text to account for M10 and improved notes on using Yo CorDapp
* typos fixed
* screenshot of api/yo/yos output
* Removed section on using shell because appears to crash to API
* New yo peers output screenshot
* Updated peers screenshot and example
* Minor changes following review by Joel
* Added guidance to login to portal.azure.com first