Regen docsite

This commit is contained in:
Mike Hearn 2016-11-29 11:38:52 +00:00
parent 3325985a49
commit 8aafeabd01
126 changed files with 3345 additions and 637 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -80,7 +80,7 @@ Wire protocol
The client RPC wire protocol is not currently documented. To use it you must use the client library provided.
This is likely to change in a future release.
Registering Classes With RPC Kryo
Registering classes with RPC Kryo
---------------------------------
In the present implementation of the node we use Kryo to generate the *on the wire* representation of contracts states

View File

@ -96,7 +96,7 @@ Our platform is flexible and we currently support both validating and non-valida
.. note:: In the non-validating model the "denial of state" attack is partially alleviated by requiring the calling
party to authenticate and storing its identity for the request. The conflict information returned by the notary
specifies the consuming transaction ID along with the identity of the party that had requested the commit. If the
conflicting transaction is valid, the current one gets aborted; if not a dispute can be raised and the input states
conflicting transaction is valid, the current one gets aborted; if not - a dispute can be raised and the input states
of the conflicting invalid transaction are "un-committed" (to be covered by legal process).
.. note:: At present all notaries can see the entire contents of a transaction, but we have a separate piece of work to
@ -124,7 +124,7 @@ time observed in step 1.
For this reason, times in transactions are specified as time *windows*, not absolute times. Time windows can be
open-ended, i.e. specify only one of "before" and "after" or they can be fully bounded. If a time window needs to
be converted to an absolute time for e.g. display purposes, there is a utility method on ``Timestamp`` to
calculate the mid point - but in a distributed system there can never be "true time", only an approximation of it.
calculate the mid point -- but in a distributed system there can never be "true time", only an approximation of it.
In this way we express that the *true value* of the fact "the current time" is actually unknowable. Even when both before and
after times are included, the transaction could have occurred at any point between those two timestamps. Here
@ -138,58 +138,4 @@ By creating a range that can be either closed or open at one end, we allow all o
* This transaction occurred at some point roughly around the given time (e.g. on a specific day)
.. note:: It is assumed that the time feed for a notary is GPS/NaviStar time as defined by the atomic
clocks at the US Naval Observatory. This time feed is extremely accurate and available globally for free.
Running a notary service
------------------------
At present we have two basic implementations that store committed input states in memory:
- ``SimpleNotaryService`` -- commits the provided transaction without any validation
- ``ValidatingNotaryService`` -- retrieves and validates the whole transaction history (including the given transaction) before committing
Obtaining a signature
---------------------
Once a transaction is built and ready to be finalised, normally you would call ``FinalityFlow`` passing in a
``SignedTransaction`` (including signatures from the participants) and a list of participants to notify. This requests a
notary signature if needed, and then sends a copy of the notarised transaction to all participants for them to store.
``FinalityFlow`` delegates to ``NotaryFlow.Client`` followed by ``BroadcastTransactionFlow`` to do the
actual work of notarising and broadcasting the transaction. For example:
.. sourcecode:: kotlin
fun finaliseTransaction(serviceHub: ServiceHubInternal, ptx: TransactionBuilder, participants: Set<Party>)
: ListenableFuture<Unit> {
// We conclusively cannot have all the signatures, as the notary has not signed yet
val tx = ptx.toSignedTransaction(checkSufficientSignatures = false)
// The empty set would be the trigger events, which are not used here
val flow = FinalityFlow(tx, emptySet(), participants)
return serviceHub.startFlow("flow.finalisation", flow)
}
To manually obtain a signature from a notary you can call ``NotaryFlow.Client`` directly. The flow will work out
which notary needs to be called based on the input states and the timestamp command. For example, the following snippet
can be used when writing a custom flow:
.. sourcecode:: kotlin
fun getNotarySignature(wtx: WireTransaction): DigitalSignature.LegallyIdentifiable {
return subFlow(NotaryFlow.Client(wtx))
}
On conflict the ``NotaryFlow`` with throw a ``NotaryException`` containing the conflict details:
.. sourcecode:: kotlin
/** Specifies the consuming transaction for the conflicting input state */
data class Conflict(val stateHistory: Map<StateRef, ConsumingTx>)
/**
* Specifies the transaction id, the position of the consumed state in the inputs, and
* the caller identity requesting the commit
*/
data class ConsumingTx(val id: SecureHash, val inputIndex: Int, val requestingParty: Party)
Conflict handling and resolution is currently the responsibility of the flow author.
clocks at the US Naval Observatory. This time feed is extremely accurate and available globally for free.

View File

@ -29,7 +29,7 @@ Commodity
The ``Commodity`` contract is an early stage example of a non-currency contract whose states implement the ``FungibleAsset``
interface. This is used as a proof of concept for non-cash obligations.
Commercial Paper
Commercial paper
----------------
``CommercialPaper`` is a very simple obligation to pay an amount of cash at some future point in time (the maturity
@ -38,7 +38,7 @@ and redeeming (settling) states. Unlike the full obligation contract it does not
be settled if the obligor defaults on payment, or netting of state objects. All commands are exclusive of the other
commercial paper commands. Use the ``Obligation`` contract for more advanced functionality.
Interest Rate Swap
Interest rate swap
------------------
The Interest Rate Swap (IRS) contract is a bilateral contract to implement a vanilla fixed / floating same currency

View File

@ -1,4 +1,4 @@
Interest Rate Swaps
Interest rate swaps
===================
@ -68,7 +68,7 @@ event.
Currently, there are no matured, termination or dispute operations.
Technical Details
Technical details
-----------------
The contract itself comprises of 4 data state classes, ``FixedLeg``, ``FloatingLeg``, ``Common`` and ``Calculation``.

View File

@ -0,0 +1,105 @@
Node configuration
==================
File location
-------------
The Corda all-in-one ``corda.jar`` file is generated by the ``gradle buildCordaJAR`` task and defaults to reading configuration from a ``node.conf`` file in the present working directory.
This behaviour can be overidden using the ``--config-file`` command line option to target configuration files with different names, or different file location (relative paths are relative to the current working directory).
Also, the ``--base-directory`` command line option alters the Corda node workspace location and if specified a ``node.conf`` configuration file is then expected in the root of the workspace.
The configuration file templates used for the ``gradle deployNodes`` task are to be found in the ``/config/dev`` folder. Also note that there is a basic set of defaults loaded from
the built in resource file ``/node/src/main/resources/reference.conf`` of the ``:node`` gradle module. All properties in this can be overidden in the file configuration
and for rarely changed properties this defaulting allows the property to be excluded from the configuration file.
Format
------
Corda uses the Typesafe configuration library to parse the configuration see the `typesafe config on Github <https://github.com/typesafehub/config/>`_ the format of the configuration files can be simple JSON, but for the more powerful substitution features
uses HOCON format see `HOCON documents <https://github.com/typesafehub/config/blob/master/HOCON.md>`_
Examples
--------
General node configuration file for hosting the IRSDemo services.
.. literalinclude:: example-code/src/main/resources/example-node.conf
:language: javascript
NetworkMapService plus Simple Notary configuration file.
.. parsed-literal::
basedir : "./nameserver"
myLegalName : "Notary Service"
nearestCity : "London"
keyStorePassword : "cordacadevpass"
trustStorePassword : "trustpass"
artemisAddress : "localhost:12345"
webAddress : "localhost:12346"
extraAdvertisedServiceIds: ""
useHTTPS : false
devMode : true
// Certificate signing service will be hosted by R3 in the near future.
//certificateSigningService : "https://testnet.certificate.corda.net"
Fields
------
:basedir: This specifies the node workspace folder either as an absolute path, or relative to the current working directory. It can be overidden by the ``--base-directory`` command line option, in which case the the value in the file is ignored and a ``node.conf`` file is expected in that workspace directory as the configuration source.
:myLegalName: The legal identity of the node acts as a human readable alias to the node's public key and several demos use this to lookup the NodeInfo.
:nearestCity: The location of the node as used to locate coordinates on the world map when running the network simulator demo. See :doc:`network-simulator`.
:keyStorePassword:
The password to unlock the KeyStore file (``<workspace>/certificates/sslkeystore.jks``) containing the node certificate and private key.
note:: This is the non-secret value for the development certificates automatically generated during the first node run. Longer term these keys will be managed in secure hardware devices.
:trustStorePassword:
The password to unlock the Trust store file (``<workspace>/certificates/truststore.jks``) containing the R3 Corda root certificate. This is the non-secret value for the development certificates automatically generated during the first node run.
.. note:: Longer term these keys will be managed in secure hardware devices.
:dataSourceProperties:
This section is used to configure the jdbc connection and database driver used for the nodes persistence. Currently the defaults in ``/node/src/main/resources/reference.conf`` are as shown in the first example. This is currently the only configuration that has been tested, although in the future full support for other storage layers will be validated.
:artemisAddress:
The host and port on which the node is available for protocol operations over ArtemisMQ.
.. note:: In practice the ArtemisMQ messaging services bind to all local addresses on the specified port. However, note that the host is the included as the advertised entry in the NetworkMapService. As a result the value listed here must be externally accessible when running nodes across a cluster of machines.
:messagingServerAddress:
The address of the ArtemisMQ broker instance. If not provided the node will run one locally.
:webAddress:
The host and port on which the node is available for web operations.
.. note:: If HTTPS is enabled then the browser security checks will require that the accessing url host name is one of either the machine name, fully qualified machine name, or server IP address to line up with the Subject Alternative Names contained within the development certificates. This is addition to requiring the ``/config/dev/corda_dev_ca.cer`` root certificate be installed as a Trusted CA.
:extraAdvertisedServiceIds: A list of ServiceType id strings to be advertised to the NetworkMapService and thus be available when other nodes query the NetworkMapCache for supporting nodes. This can also include plugin services loaded from .jar files in the plugins folder.
:notaryNodeAddress: The host and port to which to bind the embedded Raft server. Required only when running a distributed notary service. A group of Corda nodes can run a distributed notary service by each running an embedded Raft server and joining them to the same cluster to replicate the committed state log. Note that the Raft cluster uses a separate transport layer for communication that does not integrate with ArtemisMQ messaging services.
:notaryClusterAddresses: List of Raft cluster member addresses used to joining the cluster. At least one of the specified members must be active and be able to communicate with the cluster leader for joining. If empty, a new cluster will be bootstrapped. Required only when running a distributed notary service.
:networkMapAddress: If `null`, or missing the node is declaring itself as the NetworkMapService host. Otherwise the configuration value is the remote HostAndPort string for the ArtemisMQ service on the hosting node.
:useHTTPS: If false the node's web server will be plain HTTP. If true the node will use the same certificate and private key from the ``<workspace>/certificates/sslkeystore.jks`` file as the ArtemisMQ port for HTTPS. If HTTPS is enabled then unencrypted HTTP traffic to the node's **webAddress** port is not supported.
:rpcUsers:
A list of users who are authorised to access the RPC system. Each user in the list is a config object with the
following fields:
:user: Username consisting only of word characters (a-z, A-Z, 0-9 and _)
:password: The password
:permissions: A list of permission strings which RPC methods can use to control access
If this field is absent or an empty list then RPC is effectively locked down.
:devMode:
This flag indicate if the node is running in development mode. On startup, if the keystore ``<workspace>/certificates/sslkeystore.jks`` does not exist, a developer keystore will be used if ``devMode`` is true. The node will exit if ``devMode`` is false and keystore does not exist.
:certificateSigningService:
Certificate Signing Server address. It is used by the certificate signing request utility to obtain SSL certificate. (See :doc:`permissioning` for more information.)

View File

@ -1,4 +1,4 @@
The Corda Plugin Framework
The Corda plugin framework
==========================
The intention is that Corda is a common platform, which will be extended

View File

@ -1,10 +1,10 @@
Creating a Cordapp
Creating a CorDapp
==================
A Cordapp is an application that runs on the Corda platform using the platform APIs and plugin system. They are self
contained in separate JARs from the node server JAR that are created and distributed.
App Plugins
App plugins
-----------
.. note:: Currently apps are only supported for JVM languages.
@ -27,7 +27,7 @@ message handlers and more. The service does not run in a separate thread, so the
construction, where message handlers should be registered and threads started.
Starting Nodes
Starting nodes
--------------
To use an app you must also have a node server. To create a node server run the ``gradle deployNodes`` task.
@ -46,7 +46,7 @@ using ``--base-directory=<workspace>``.
temporary folder. It is therefore suggested that the CAPSULE_CACHE_DIR environment variable be set before
starting the process to control this location.
Installing Apps
Installing apps
---------------
Once you have created your app JAR you can install it to a node by adding it to ``<node_dir>/plugins/``. In this
@ -54,7 +54,7 @@ case the ``node_dir`` is the location where your node server's JAR and configura
.. note:: If the directory does not exist you can create it manually.
Starting your Node
Starting your node
------------------
Now you have a node server with your app installed, you can run it by navigating to ``<node_dir>`` and running
@ -71,7 +71,7 @@ The configuration file and workspace paths can be overidden on the command line
Otherwise the workspace folder for the node is created based upon the ``basedir`` property in the ``node.conf`` file and if this is relative it is applied relative to the current working path.
Debugging your Node
Debugging your node
-------------------
To enable remote debugging of the corda process use a command line such as:
@ -80,7 +80,7 @@ To enable remote debugging of the corda process use a command line such as:
This command line will start the debugger on port 5005 and pause the process awaiting debugger attachment.
Viewing persisted state of your Node
Viewing persisted state of your node
------------------------------------
To make examining the persisted contract states of your node or the internal node database tables easier, and providing you are
@ -96,7 +96,7 @@ at the present time, and should certainly be treated as read-only.
.. _ServiceHubInternal: api/net.corda.node.services.api/-service-hub-internal/index.html
.. _ServiceHub: api/net.corda.node.services.api/-service-hub/index.html
Building Against Corda
Building against Corda
----------------------
.. warning:: This feature is subject to rapid change
@ -111,13 +111,13 @@ root directory of Corda
This will publish corda-$version.jar, finance-$version.jar, core-$version.jar and node-$version.jar to the
group net.corda. You can now depend on these as you normally would a Maven dependency.
Gradle Plugins for Cordapps
Gradle plugins for CorDapps
===========================
There are several Gradle plugins that reduce your build.gradle boilerplate and make development of Cordapps easier.
The available plugins are in the gradle-plugins directory of the Corda repository.
Building Gradle Plugins
Building Gradle plugins
-----------------------
To install to your local Maven repository the plugins that Cordapp gradle files require, run the following from the
@ -129,7 +129,7 @@ root of the Corda project:
The plugins will now be installed to your local Maven repository in ~/.m2 on Unix and %HOMEPATH%\.m2 on Windows.
Using Gradle Plugins
Using Gradle plugins
--------------------
To use the plugins, if you are not already using the Cordapp template project, you must modify your build.gradle. Add
@ -144,6 +144,7 @@ To build against Corda and the plugins that cordapps use, update your build.grad
buildscript {
ext.corda_version = '<enter the corda version you build against here>'
ext.corda_gradle_plugins_version = '<enter the gradle plugins version here>' // This is usually the same as corda_version.
... your buildscript ...
repositories {
@ -153,9 +154,9 @@ To build against Corda and the plugins that cordapps use, update your build.grad
dependencies {
... your dependencies ...
classpath "net.corda.plugins:cordformation:$corda_version"
classpath "net.corda.plugins:quasar-utils:$corda_version"
classpath "net.corda.plugins:publish-utils:$corda_version"
classpath "net.corda.plugins:cordformation:$corda_gradle_plugins_version"
classpath "net.corda.plugins:quasar-utils:$corda_gradle_plugins_version"
classpath "net.corda.plugins:publish-utils:$corda_gradle_plugins_version"
}
}

View File

@ -80,4 +80,4 @@ valid) inside a ``databaseTransaction``. All node flows run within a database t
but any time we need to use the database directly from a unit test, you need to provide a database transaction as shown
here.
And that's it: you can explore the documentation for the `MockNode API <api/net.corda.node.internal.testing/-mock-network/index.html>`_ here.
And that's it: you can explore the documentation for the `MockNetwork API <api/net.corda.testing.node/-mock-network/index.html>`_ here.

View File

@ -29,7 +29,7 @@ if you would like to start getting to grips with the Kotlin language, then we st
of the tutorials (known as "koans") as well. Also see our :doc:`further-notes-on-kotlin`.
Version Control via Git
Version control via Git
-----------------------
We use git to version control Corda. The authorative place to obtain git is from the main `git website <https://git-scm.com/downloads>`_
@ -52,7 +52,7 @@ on the gradle tab (generally found on the right hand side), or by following the
are performing (details expounded later). Whenever prompted about gradle, accept the defaults suggested by IntelliJ.
Corda Source Code
Corda source code
-----------------
You can check out the Corda platform source code from this repository:

View File

@ -48,9 +48,11 @@ Read on to learn:
messaging
persistence
node-administration
corda-configuration-files
corda-configuration-file
corda-plugins
node-services
node-explorer
permissioning
.. toctree::
:maxdepth: 2
@ -69,6 +71,8 @@ Read on to learn:
tutorial-clientrpc-api
flow-state-machines
flow-testing
running-a-notary
using-a-notary
oracles
tutorial-attachments
event-scheduling
@ -78,7 +82,6 @@ Read on to learn:
:caption: Other
network-simulator
node-explorer
initial-margin-agreement
.. toctree::

View File

@ -1,10 +1,10 @@
Initial Margin Agreements
Initial margin agreements
=========================
This app is a demonstration of how Corda can be used for the real world requirement of initial margin calculation and
agreement; featuring the integration of complex and industry proven third party libraries into Corda nodes.
SIMM Introduction
SIMM introduction
-----------------
SIMM is an acronym for "Standard Initial Margin Model". It is effectively the calculation of a "margin" that is paid

View File

@ -1,5 +1,5 @@
Transaction Tear-offs
======================
Transaction tear-offs
=====================
One of the basic data structures in our platform is a transaction. It can be passed around to be signed and verified,
also by third parties. The construction of transactions assumes that they form a whole entity with input and output states,
@ -13,7 +13,7 @@ Merkle trees are widely used in peer-to-peer networks, blockchain systems and gi
You can read more on the concept `here <https://en.wikipedia.org/wiki/Merkle_tree>`_.
Merkle trees in Corda
----------------------
---------------------
Transactions are split into leaves, each of them contains either input, output, command or attachment. Other fields like
timestamp or signers are not used in the calculation.
@ -44,7 +44,7 @@ Tree, dotted ones are not included. Having the command that should be in a red n
root of this tree and compare it with original transaction identifier - we have a proof that this command belongs to this transaction.
Example of usage
-----------------
----------------
Lets focus on a code example. We want to construct a transaction with commands containing interest rate fix data as in:
:doc:`oracles`.

View File

@ -26,6 +26,8 @@ messaging service via the ``ServiceHub`` object that is provided to your app. En
identified at the lowest level using ``SingleMessageRecipient`` which may be e.g. an IP address, or in future
versions perhaps a routing path through the network.
.. _network-map-service:
Network Map Service
-------------------

View File

@ -17,6 +17,26 @@ You can produce a standalone JAR of the tool by using the ``:samples:network-vis
and then using the ``samples/network-visualiser/build/libs/network-visualiser-*-capsule.jar`` file, where * is
whatever the current Corda version is.
What it is and is not
---------------------
The simulator currenty exists as an illustrative tool to help with explaining how Corda works in an example scenario.
It utilises the ``Simulator`` tools that support creating a simulated Corda network and the nodes running in it within
a single JVM, as an extension of the ``MockNetwork`` testing framework. See more about the ``MockNetwork`` and
testing flows here: :doc:`flow-testing`.
Whilst it is not yet fully generic or full featured, the intention is for the simulator to mature into the following,
which it presently cannot do without writing more code:
1. A tool for visualising new CorDapps and their flows to help with debugging, presentations, explanations and tutorials,
but still running as a simulation in a single JVM.
2. A tool to visualise the activity on a real Corda network deployment, with activity streams being fed from each node
running in its own JVM, most likely on remote hosts.
Both of these scenarios would be fed by the standard observables in the RPC framework, rather than the local binding
that the simulator uses currently. The ability to step through a flow one step at a time would obviously be restricted
to single JVM simulations.
Interface
---------

View File

@ -24,7 +24,7 @@ The JDBC URL is printed during node startup to the log and will typically look l
``jdbc:h2:tcp://192.168.0.31:31339/node``
The username and password can be altered in the :doc:`corda-configuration-files` but default to username "sa" and a blank
The username and password can be altered in the :doc:`corda-configuration-file` but default to username "sa" and a blank
password.
Any database browsing tool that supports JDBC can be used, but if you have IntelliJ Ultimate edition then there is

View File

@ -15,7 +15,7 @@ Running the UI
./gradlew tools:explorer:run
Running Demo Nodes
Running demo nodes
------------------
**Windows**::
@ -81,6 +81,7 @@ Network
Settings
User can configure the client preference in this view.
.. note:: Although the reporting currency is configurable, FX conversion won't be applied to the values as we don't have an FX service yet.

View File

@ -1,5 +1,5 @@
A Brief Introduction To The Node Services
=========================================
Brief introduction to the node services
=======================================
This document is intended as a very brief introduction to the current
service components inside the node. Whilst not at all exhaustive it is
@ -7,7 +7,7 @@ hoped that this will give some context when writing applications and
code that use these services, or which are operated upon by the internal
components of Corda.
Services Within The Node
Services within the node
------------------------
The node services represent the various sub functions of the Corda node.
@ -41,7 +41,7 @@ to allow unit testing of flows and service functions.
The roles of the individual services are described below.
Key Management and Identity Services
Key management and identity services
------------------------------------
InMemoryIdentityService
@ -81,7 +81,7 @@ is a simple implementation of the ``KeyManagementService`` that is used
to track our ``KeyPairs`` for use in unit testing when no database is
available.
Messaging and Network Management Services
Messaging and network management services
-----------------------------------------
ArtemisMessagingServer
@ -167,7 +167,7 @@ The ``NetworkMapService`` should not be used by any flows, or
contracts. Instead they should access the NetworkMapCache service to
access this data.
Storage and Persistence Related Services
Storage and persistence related services
----------------------------------------
StorageServiceImpl
@ -219,7 +219,7 @@ inside the attachments subfolder of the node workspace. The service is
also interfaced to by the web server, which allows files to be uploaded
via an HTTP post request.
Flow Framework And Event Scheduling Services
Flow framework and event scheduling services
--------------------------------------------
StateMachineManager
@ -280,7 +280,7 @@ occurs in all nodes holding the state in their Vault, it may therefore
be required for the flow to exit early if the current node is not
the intended initiator.
Notary Flow Implementation Services
Notary flow implementation services
-----------------------------------
PersistentUniquenessProvider, InMemoryUniquenessProvider and RaftUniquenessProvider
@ -317,7 +317,7 @@ against a cluster of nodes running shared consensus state across the
RAFT protocol (note this requires the additional configuration of the
``notaryClusterAddresses`` property).
Vault Related Services
Vault related services
----------------------
NodeVaultService

View File

@ -0,0 +1,64 @@
Network permissioning
=====================
The keystore located in ``<workspace>/certificates/sslkeystore.jks`` is required to connect to the Corda network securely.
In development mode (when ``devMode = true``, see :doc:`corda-configuration-file` for more information) a pre-configured keystore will be used if the keystore does not exist.
This is to ensure developers can get the nodes working as quickly as possible.
However this is not secure for the real network. This documentation will explain the procedure of obtaining a signed certificate for TestNet.
.. warning:: The TestNet has not been setup yet as of Milestone 6 release. You will not be able to connect to the certificate signing server.
Certificate signing request utility
-----------------------------------
The utility creates certificate signing request based on node information obtained from the node configuration.
The following information from the node configuration file is needed to generate a certificate signing request.
:myLegalName: Your company's legal name. e.g. "R3 CEV, LLC"
:nearestCity: e.g. "London"
:emailAddress: e.g. "admin@company.com"
:certificateSigningService: Certificate signing server URL. A certificate signing server will be hosted by R3 in the near future. e.g."https://testnet.certificate.corda.net"
A new pair of private and public keys will be generated by the utility and will be used to create the request.
The utility will submit the request to the network permissioning server and poll for a result periodically to retrieve the certificates.
Once the request has been approved and the certificates downloaded from the server, the utility will create the key store and trust store using the certificates and the generated private key.
.. note:: You can exit the utility at anytime if the approval process is taking longer then expected. The request process will resume on restart.
This process only needs to be done once when the node connects to the network for the first time, or when the certificate expires.
Building the utility
--------------------
The utility will be created as part of the main build ``buildCordaJAR``.
You can also build the utility JAR by run the following command from the Corda project root directory.
**Windows**::
gradlew.bat buildCertSigningRequestUtilityJAR
**Other**::
./gradlew buildCertSigningRequestUtilityJAR
The utility JAR will be created in ``<Project Root Dir>/build/libs/certSigningRequestUtility.jar``
Running the utility
-------------------
You will need to specify the working directory of your Corda node using ``--base-dir`` flag. This is defaulted to current directory if left blank.
You can also specify the location of ``node.conf`` with ``--config-file`` flag if it's not in the working directory.
**Running the Utility**::
java -jar certSigningRequestUtility.jar --base-dir <<optional>> --config-file <<optional>>
A ``certificates`` folder containing the keystore and trust store will be created in the base directory when the process is completed.
.. warning:: The keystore is protected by the keystore password from the node configuration file. The password should kept safe to protect the private key and certificate.
.. note:: Password encryption in node configuration will be supported in subsequent release.

View File

@ -68,7 +68,7 @@ which allow the configuration of a database schema or table name prefixes to avo
This will change in due course. Similarly, it does not currently support configuring ``SchemaOptions`` but will do so in
the future.
Object Relational Mapping
Object relational mapping
-------------------------
The persisted representation of a ``QueryableState`` should be an instance of a ``PersistentState`` subclass, constructed

View File

@ -0,0 +1,29 @@
Running a notary service
------------------------
At present we have several prototype notary implementations:
1. ``SimpleNotaryService`` (single node) -- commits the provided transaction input states without any validation.
2. ``ValidatingNotaryService`` (single node) -- retrieves and validates the whole transaction history
(including the given transaction) before committing.
3. ``RaftValidatingNotaryService`` (distributed) -- functionally equivalent to ``ValidatingNotaryService``, but stores
the committed states in a distributed collection replicated and persisted in a Raft cluster. For the consensus layer
we are using the `Copycat <http://atomix.io/copycat/>`_ framework.
To have a node run a notary service, you need to set appropriate configuration values before starting it
(see :doc:`corda-configuration-file` for reference).
For ``SimpleNotaryService``, simply add the following service id to the list of advertised services:
.. parsed-literal::
extraAdvertisedServiceIds: "net.corda.notary.simple"
For ``ValidatingNotaryService`` it is:
.. parsed-literal::
extraAdvertisedServiceIds: "net.corda.notary.validating"
Setting up a ``RaftValidatingNotaryService`` is currently slightly more involved and is not recommended for prototyping
purposes. There is work in progress to simplify it. To see it in action, however, you can try out the :ref:`notary-demo`.

View File

@ -12,6 +12,7 @@ so far. We have:
4. The attachment demo, which demonstrates uploading attachments to nodes.
5. The SIMM valuation demo, a large demo which shows two nodes agreeing on a portfolio and valuing the initial margin
using the Standard Initial Margin Model.
6. The distributed notary demo, which demonstrates a single node getting multiple transactions notarised by a distributed (Raft-based) notary.
.. note:: If any demos don't work please jump on our mailing list and let us know.
@ -103,7 +104,7 @@ Or you can run them from inside IntelliJ, but when done this way, all the node o
In the "Attachment Demo: Run Nodes" window you should see some log lines scroll past, and within a few seconds the
message "File received - we're happy!" should be printed.
SIMM and Portfolio Demo
SIMM and Portfolio demo
-----------------------
.. note:: Read more about this demo at :doc:`initial-margin-agreement`.
@ -116,3 +117,48 @@ To run the demo run:
Now open http://localhost:10005/web/simmvaluationdemo and http://localhost:10007/web/simmvaluationdemo to view the two nodes that this
will have started respectively. You can now use the demo by creating trades and agreeing the valuations.
.. _notary-demo:
Distributed Notary demo
-----------------------
This is a simple demonstration showing a party getting transactions notarised by a distributed `Raft <https://raft.github.io/>`_-based notary service.
The demo will start three distributed notary nodes, and two counterparty nodes. One of the parties will generate transactions
that move a self-issued asset to the other party, and submit them for notarisation.
The output will display a list of notarised transaction ids and corresponding signer public keys. In the Raft distributed notary
every node in the cluster services client requests, and one signature is sufficient to satisfy the notary composite key requirement.
You will notice that subsequent transactions get signed by different members of the cluster (usually allocated in a random order).
To run from IntelliJ:
1. Open the Corda samples project in IntelliJ and run the ``Notary Demo: Run Nodes`` configuration to start the nodes.
Once all nodes are started you will see several "Node started up and registered in ..." messages.
2. Run ``Notary Demo: Run Notarisation`` to make a call to the "Party" node to initiate notarisation requests.
In a few seconds you will see a message "Notarised 10 transactions" with a list of transaction ids and the signer public keys.
To run from the command line:
1. Run ``./gradlew samples:raft-notary-demo:deployNodes``, which will create node directories with configs under ``samples/raft-notary-demo/build/nodes``.
2. Run ``./samples/raft-notary-demo/build/nodes/runnodes``, which will start the nodes in separate terminal windows/tabs.
Wait until a "Node started up and registered in ..." appears on each of the terminals.
3. Run ``./gradlew samples:raft-notary-demo:notarise`` to make a call to the "Party" node to initiate notarisation requests.
In a few seconds you will see a message "Notarised 10 transactions" with a list of transaction ids and the signer public keys.
Notary nodes store consumed states in a replicated commit log, which is backed by a H2 database on each node.
To ascertain that the commit log is synchronised across the cluster you access and compare each of the nodes' backing stores
by using the H2 web console:
- Firstly, download `H2 web console <http://www.h2database.com/html/download.html>`_ (download the "platform-independent zip"),
and start it using a script in the extracted folder: ``h2/bin/h2.sh`` (or ``h2.bat`` for Windows)
- The H2 web console should start up in a web browser tab. To connect we first need to obtain a JDBC connection string.
Each node outputs its connection string in the terminal window as it starts up. In a terminal window where a node is running,
look for the following string:
``Database connection url is : jdbc:h2:tcp://10.18.0.150:56736/node``
You can use the string on the right to connect to the h2 database: just paste it in to the `JDBC URL` field and click *Connect*.
You will be presented with a web application that enumerates all the available tables and provides an interface for you to query them using SQL.
- The committed states are stored in the ``NOTARY_COMMITTED_STATES`` table. Note that the raw data is not human-readable,
but we're only interested in the row count for this demo.

View File

@ -0,0 +1,86 @@
.. _log4j2: http://logging.apache.org/log4j/2.x/
Introduction - What is a corda network?
=======================================
A Corda network consists of a number of machines running nodes, including a single node operating as the network map
service. These nodes communicate using persistent protocols in order to create and validate transactions.
There are four broader categories of functionality one such node may have. These pieces of functionality are provided as
services, and one node may run several of them.
* Network map: The node running the network map provides a way to resolve identities to physical node addresses and associated public keys.
* Notary: Nodes running a notary service witness state spends and have the final say in whether a transaction is a double-spend or not.
* Oracle: Network services that link the ledger to the outside world by providing facts that affect the validity of transactions.
* Regular node: All nodes have a vault and may start protocols communicating with other nodes, notaries and oracles and evolve their private ledger.
Setting up your own network
===========================
Certificates
------------
If two nodes are to communicate successfully then both need to have
each other's root certificate in their truststores. The simplest way
to achieve this is to have all nodes sign off of a single root.
Later R3 will provide this root for production use, but for testing you
can use ``certSigningRequestUtility.jar`` to generate a node
certificate with a fixed test root:
.. sourcecode:: bash
# Build the jars
./gradlew buildCordaJAR
# Generate certificate
java -jar build/libs/certSigningRequestUtility.jar --base-dir NODE_DIRECTORY/
Configuration
-------------
A node can be configured by adding/editing ``node.conf`` in the node's directory. For details see :doc:`corda-configuration-file`.
An example configuration:
.. literalinclude:: example-code/src/main/resources/example-node.conf
:language: cfg
The most important fields regarding network configuration are:
* ``artemisAddress``: This specifies a host and port. Note that the address bound will **NOT** be ``my-corda-node``,
but rather ``::`` (all addresses on all interfaces). The hostname specified is the hostname *that must be externally
resolvable by other nodes in the network*. In the above configuration this is the resolvable name of a machine in a vpn.
* ``webAddress``: The address the webserver should bind. Note that the port should be distinct from that of ``artemisAddress``.
* ``networkMapAddress``: The resolvable name and artemis port of the network map node. Note that if this node itself
is to be the network map this field should not be specified.
Starting the nodes
------------------
You may now start the nodes in any order. Note that the node is not fully started until it has successfully registered with the network map!
You should see a banner, some log lines and eventually ``Node started up and registered``, indicating that the node is fully started.
.. TODO: Add a better way of polling for startup. A programmatic way of determining whether a node is up is to check whether it's ``webAddress`` is bound.
In terms of process management there is no prescribed method. You may start the jars by hand or perhaps use systemd and friends.
Logging
-------
Only a handful of important lines are printed to the console. For
details/diagnosing problems check the logs.
Logging is standard log4j2_ and may be configured accordingly. Logs
are by default redirected to files in ``NODE_DIRECTORY/logs/``.
Connecting to the nodes
-----------------------
Once a node has started up successfully you may connect to it as a client to initiate protocols/query state etc.
Depending on your network setup you may need to tunnel to do this remotely.
See the :doc:`tutorial-clientrpc-api` on how to establish an RPC link.
Sidenote: A client is always associated with a single node with a single identity, which only sees their part of the ledger.

View File

@ -1,6 +1,6 @@
.. _graphstream: http://graphstream-project.org/
Client RPC API Tutorial
Client RPC API tutorial
=======================
In this tutorial we will build a simple command line utility that
@ -66,6 +66,8 @@ The RPC we need to initiate a Cash transaction is ``startFlowDynamic`` which may
Finally we have everything in place: we start a couple of nodes, connect to them, and start creating transactions while listening on successfully created ones, which are dumped to the console. We just need to run it!:
.. sourcecode:: bash
# Build the example
./gradlew docs/source/example-code:installDist
# Start it
@ -80,7 +82,7 @@ Now let's try to visualise the transaction graph. We will use a graph drawing li
If we run the client with ``Visualise`` we should see a simple random graph being drawn as new transactions are being created.
Registering classes from your Cordapp with RPC Kryo
Registering classes from your CorDapp with RPC Kryo
---------------------------------------------------
As described in :doc:`clientrpc`, you currently have to register any additional classes you add that are needed in RPC
@ -94,4 +96,4 @@ requests or responses with the `Kryo` instance RPC uses. Here's an example of h
See more on plugins in :doc:`creating-a-cordapp`.
.. warning:: We will be replacing the use of Kryo in RPC with a stable message format and this will mean that this plugin
customisation point will either go away completely or change.
customisation point will either go away completely or change.

View File

@ -134,7 +134,7 @@ The ``Move`` clause for the commercial paper contract is relatively simple, so w
}
}
Group Clause
Group clause
------------
We need to wrap the move clause (as well as the issue and redeem clauses - see the relevant contract code for their

View File

@ -0,0 +1,139 @@
Using a notary service
----------------------
This tutorial describes how to assign a notary to a newly issued state, and how to get a transaction notarised by
obtaining a signature of the required notary. It assumes some familiarity with *flows* and how to write them, as described
in :doc:`flow-state-machines`.
Assigning a notary
==================
The first step is to choose a notary and obtain its identity. Identities of all notaries on the network are kept by
the :ref:`network-map-service`. The network map cache exposes two methods for obtaining a notary:
.. sourcecode:: kotlin
/**
* Gets a notary identity by the given name.
*/
fun getNotary(name: String): Party?
/**
* Returns a notary identity advertised by any of the nodes on the network (chosen at random)
*
* @param type Limits the result to notaries of the specified type (optional)
*/
fun getAnyNotary(type: ServiceType? = null): Party?
Currently notaries can only be differentiated by name and type, but in the future the network map service will be
able to provide more metadata, such as location or legal identities of the nodes operating it.
Now, let's say we want to issue an asset and assign it to a notary named "Notary A".
The first step is to obtain the notary identity -- ``Party``:
.. sourcecode:: kotlin
val ourNotary: Party = serviceHub.networkMapCache.getNotary("Central Bank Notary")
Then we initialise the transaction builder:
.. sourcecode:: kotlin
val builder: TransactionBuilder = TransactionType.General.Builder(notary = ourNotary)
For any output state we add to this transaction builder, ``ourNotary`` will be assigned as its notary.
Next we create a state object and assign ourselves as the owner. For this example we'll use a
``DummyContract.State``, which is a simple state that just maintains an integer and can change ownership.
.. sourcecode:: kotlin
val myIdentity = serviceHub.myInfo.legalIdentity
val state = DummyContract.SingleOwnerState(magicNumber = 42, owner = myIdentity.owningKey)
Then we add the state as the transaction output along with the relevant command. The state will automatically be assigned
to our previously specified "Notary A".
.. sourcecode:: kotlin
builder.addOutputState(state)
val createCommand = DummyContract.Commands.Create()
builder.addCommand(Command(createCommand, myIdentity))
We then sign the transaction, build and record it to our transaction storage:
.. sourcecode:: kotlin
val mySigningKey: KeyPair = serviceHub.legalIdentityKey
builder.signWith(mySigningKey)
val issueTransaction = builder.toSignedTransaction()
serviceHub.recordTransactions(issueTransaction)
The transaction is recorded and we now have a state (asset) in possession that we can transfer to someone else. Note
that the issuing transaction does not need to be notarised, as it doesn't consume any input states.
Notarising a transaction
========================
Following our example for the previous section, let's say we now want to transfer our issued state to Alice.
First we obtain a reference to the state, which will be the input to our "move" transaction:
.. sourcecode:: kotlin
val stateRef = StateRef(txhash = issueTransaction.id, index = 0)
Then we create a new state -- a copy of our state but with the owner set to Alice. This is a bit more involved so
we just use a helper that handles it for us. We also assume that we already have the ``Party`` for Alice, ``aliceParty``.
.. sourcecode:: kotlin
val inputState = StateAndRef(sate, stateRef)
val moveTransactionBuilder = DummyContract.move(inputState, newOwner = aliceParty.owningKey)
The ``DummyContract.move()`` method will a new transaction builder with our old state as the input, a new state
with Alice as the owner, and a relevant contract command for "move".
Again we sign the transaction, and build it:
.. sourcecode:: kotlin
moveTransactionBuilder.signWith(mySigningKey)
// We build it without checking if all signatures are present, because we know that the notary signature is missing
val moveTransaction = builder.toSignedTransaction(checkSufficientSignatures = false)
Next we need to obtain a signature from the notary for the transaction to be valid. Prior to signing, the notary will
commit our old (input) state so it cannot be used again.
To manually obtain a signature from a notary we can run the ``NotaryFlow.Client`` flow. The flow will work out
which notary needs to be called based on the input states (and the timestamp command, if it's present).
.. sourcecode:: kotlin
// The subFlow() helper is available within the context of a Flow
val notarySignature: DigitalSignature = subFlow(NotaryFlow.Client(moveTransaction))
.. note:: If our input state has already been consumed in another transaction, then ``NotaryFlow`` with throw a ``NotaryException``
containing the conflict details:
.. sourcecode:: kotlin
/** Specifies the consuming transaction for the conflicting input state */
data class Conflict(val stateHistory: Map<StateRef, ConsumingTx>)
/**
* Specifies the transaction id, the position of the consumed state in the inputs, and
* the caller identity requesting the commit
*/
data class ConsumingTx(val id: SecureHash, val inputIndex: Int, val requestingParty: Party)
Conflict handling and resolution is currently the responsibility of the flow author.
Note that instead of calling the notary directly, we would normally call ``FinalityFlow`` passing in the ``SignedTransaction``
(including signatures from the participants) and a list of participants to notify. The flow will request a notary signature
if needed, record the notarised transaction, and then send a copy of the transaction to all participants for them to store.
``FinalityFlow`` delegates to ``NotaryFlow.Client`` followed by ``BroadcastTransactionFlow`` to do the
actual work of notarising and broadcasting the transaction. For example:
.. sourcecode:: kotlin
subFlow(FinalityFlow(moveTransaction, setOf(aliceParty))

View File

@ -1171,6 +1171,12 @@ container), shares of the same class in a specific company are fungible and coun
</tr>
<tr>
<td>
<a href="../net.corda.core/java.util.concurrent.-future/index.html">java.util.concurrent.Future</a> (extensions in package net.corda.core)</td>
<td>
</td>
</tr>
<tr>
<td>
<a href="../net.corda.client.model/-gathered-transaction-data/index.html">net.corda.client.model.GatheredTransactionData</a></td>
<td>
</td>
@ -2506,6 +2512,12 @@ functionality and you dont want to hard-code which types in the interface.</p>
</tr>
<tr>
<td>
<a href="../net.corda.node.utilities/-service-identity-generator/index.html">net.corda.node.utilities.ServiceIdentityGenerator</a></td>
<td>
</td>
</tr>
<tr>
<td>
<a href="../net.corda.core.node.services/-service-info/index.html">net.corda.core.node.services.ServiceInfo</a></td>
<td>
<p>A container for additional information for an advertised service.</p>

View File

@ -2260,7 +2260,7 @@
</HEAD>
<BODY>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.persistence/-d-b-transaction-storage/-init-.html"><span class="identifier">DBTransactionStorage</span><span class="symbol">(</span><span class="symbol">)</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.persistence/-d-b-transaction-storage/add-transaction.html"><span class="keyword">fun </span><span class="identifier">addTransaction</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.persistence.DBTransactionStorage$addTransaction(net.corda.core.transactions.SignedTransaction)/transaction">transaction</span><span class="symbol">:</span>&nbsp;<a href="net.corda.core.transactions/-signed-transaction/index.html"><span class="identifier">SignedTransaction</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.persistence/-d-b-transaction-storage/add-transaction.html"><span class="keyword">fun </span><span class="identifier">addTransaction</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.persistence.DBTransactionStorage$addTransaction(net.corda.core.transactions.SignedTransaction)/transaction">transaction</span><span class="symbol">:</span>&nbsp;<a href="net.corda.core.transactions/-signed-transaction/index.html"><span class="identifier">SignedTransaction</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Boolean</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.persistence/-d-b-transaction-storage/get-transaction.html"><span class="keyword">fun </span><span class="identifier">getTransaction</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.persistence.DBTransactionStorage$getTransaction(net.corda.core.crypto.SecureHash)/id">id</span><span class="symbol">:</span>&nbsp;<a href="net.corda.core.crypto/-secure-hash/index.html"><span class="identifier">SecureHash</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="net.corda.core.transactions/-signed-transaction/index.html"><span class="identifier">SignedTransaction</span></a><span class="symbol">?</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.persistence/-d-b-transaction-storage/track.html"><span class="keyword">fun </span><span class="identifier">track</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><span class="identifier">List</span><span class="symbol">&lt;</span><a href="net.corda.core.transactions/-signed-transaction/index.html"><span class="identifier">SignedTransaction</span></a><span class="symbol">&gt;</span><span class="symbol">,</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="net.corda.core.transactions/-signed-transaction/index.html"><span class="identifier">SignedTransaction</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.persistence/-d-b-transaction-storage/transactions.html"><span class="keyword">val </span><span class="identifier">transactions</span><span class="symbol">: </span><span class="identifier">Iterable</span><span class="symbol">&lt;</span><a href="net.corda.core.transactions/-signed-transaction/index.html"><span class="identifier">SignedTransaction</span></a><span class="symbol">&gt;</span></a></a><br/>
@ -2560,7 +2560,7 @@
<link rel="stylesheet" href="style.css">
</HEAD>
<BODY>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.transactions/-distributed-immutable-map/-init-.html"><span class="identifier">DistributedImmutableMap</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.transactions.DistributedImmutableMap$<init>(, kotlin.String)/db">db</span><span class="symbol">:</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.services.transactions.DistributedImmutableMap$<init>(, kotlin.String)/tableName">tableName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span>&nbsp;<span class="symbol">=</span>&nbsp;DEFAULT_TABLE_NAME<span class="symbol">)</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.transactions/-distributed-immutable-map/-init-.html"><span class="identifier">DistributedImmutableMap</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.transactions.DistributedImmutableMap$<init>(, kotlin.String)/db">db</span><span class="symbol">:</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.services.transactions.DistributedImmutableMap$<init>(, kotlin.String)/tableName">tableName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">)</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.transactions/-distributed-immutable-map/-commands/index.html"><span class="keyword">object </span><span class="identifier">Commands</span></a></a><br/>
<ul>
<HTML>
@ -2653,7 +2653,8 @@
<a href="docs/build/html/api/index"><a href="net.corda.node.driver/-driver-d-s-l/register-process.html"><span class="keyword">fun </span><span class="identifier">registerProcess</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.driver.DriverDSL$registerProcess(java.lang.Process)/process">process</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Process.html"><span class="identifier">Process</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.driver/-driver-d-s-l/shutdown.html"><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">shutdown</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.driver/-driver-d-s-l/start.html"><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">start</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.driver/-driver-d-s-l/start-node.html"><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">startNode</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)))/providedName">providedName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">?</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)))/advertisedServices">advertisedServices</span><span class="symbol">:</span>&nbsp;<span class="identifier">Set</span><span class="symbol">&lt;</span><a href="net.corda.core.node.services/-service-info/index.html"><span class="identifier">ServiceInfo</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)))/rpcUsers">rpcUsers</span><span class="symbol">:</span>&nbsp;<span class="identifier">List</span><span class="symbol">&lt;</span><a href="net.corda.node.services/-user/index.html"><span class="identifier">User</span></a><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html"><span class="identifier">Future</span></a><span class="symbol">&lt;</span><a href="net.corda.node.driver/-node-info-and-config/index.html"><span class="identifier">NodeInfoAndConfig</span></a><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.driver/-driver-d-s-l/start-node.html"><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">startNode</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/providedName">providedName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">?</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/advertisedServices">advertisedServices</span><span class="symbol">:</span>&nbsp;<span class="identifier">Set</span><span class="symbol">&lt;</span><a href="net.corda.core.node.services/-service-info/index.html"><span class="identifier">ServiceInfo</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/rpcUsers">rpcUsers</span><span class="symbol">:</span>&nbsp;<span class="identifier">List</span><span class="symbol">&lt;</span><a href="net.corda.node.services/-user/index.html"><span class="identifier">User</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/customOverrides">customOverrides</span><span class="symbol">:</span>&nbsp;<span class="identifier">Map</span><span class="symbol">&lt;</span><span class="identifier">String</span><span class="symbol">,</span>&nbsp;<span class="identifier">Any</span><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html"><span class="identifier">Future</span></a><span class="symbol">&lt;</span><a href="net.corda.node.driver/-node-info-and-config/index.html"><span class="identifier">NodeInfoAndConfig</span></a><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.driver/-driver-d-s-l/start-notary-cluster.html"><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">startNotaryCluster</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNotaryCluster(kotlin.String, kotlin.Int, net.corda.core.node.services.ServiceType)/notaryName">notaryName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNotaryCluster(kotlin.String, kotlin.Int, net.corda.core.node.services.ServiceType)/clusterSize">clusterSize</span><span class="symbol">:</span>&nbsp;<span class="identifier">Int</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNotaryCluster(kotlin.String, kotlin.Int, net.corda.core.node.services.ServiceType)/type">type</span><span class="symbol">:</span>&nbsp;<a href="net.corda.core.node.services/-service-type/index.html"><span class="identifier">ServiceType</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.driver/-driver-d-s-l/use-test-clock.html"><span class="keyword">val </span><span class="identifier">useTestClock</span><span class="symbol">: </span><span class="identifier">Boolean</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.driver/-driver-d-s-l/wait-for-all-nodes-to-finish.html"><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">waitForAllNodesToFinish</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></a></a><br/>
</BODY>
@ -2667,7 +2668,8 @@
<link rel="stylesheet" href="style.css">
</HEAD>
<BODY>
<a href="docs/build/html/api/index"><a href="net.corda.node.driver/-driver-d-s-l-exposed-interface/start-node.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">startNode</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)))/providedName">providedName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)))/advertisedServices">advertisedServices</span><span class="symbol">:</span>&nbsp;<span class="identifier">Set</span><span class="symbol">&lt;</span><a href="net.corda.core.node.services/-service-info/index.html"><span class="identifier">ServiceInfo</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;emptySet()<span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)))/rpcUsers">rpcUsers</span><span class="symbol">:</span>&nbsp;<span class="identifier">List</span><span class="symbol">&lt;</span><a href="net.corda.node.services/-user/index.html"><span class="identifier">User</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;emptyList()<span class="symbol">)</span><span class="symbol">: </span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html"><span class="identifier">Future</span></a><span class="symbol">&lt;</span><a href="net.corda.node.driver/-node-info-and-config/index.html"><span class="identifier">NodeInfoAndConfig</span></a><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.driver/-driver-d-s-l-exposed-interface/start-node.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">startNode</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/providedName">providedName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/advertisedServices">advertisedServices</span><span class="symbol">:</span>&nbsp;<span class="identifier">Set</span><span class="symbol">&lt;</span><a href="net.corda.core.node.services/-service-info/index.html"><span class="identifier">ServiceInfo</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;emptySet()<span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/rpcUsers">rpcUsers</span><span class="symbol">:</span>&nbsp;<span class="identifier">List</span><span class="symbol">&lt;</span><a href="net.corda.node.services/-user/index.html"><span class="identifier">User</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;emptyList()<span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/customOverrides">customOverrides</span><span class="symbol">:</span>&nbsp;<span class="identifier">Map</span><span class="symbol">&lt;</span><span class="identifier">String</span><span class="symbol">,</span>&nbsp;<span class="identifier">Any</span><span class="symbol">?</span><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;emptyMap()<span class="symbol">)</span><span class="symbol">: </span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html"><span class="identifier">Future</span></a><span class="symbol">&lt;</span><a href="net.corda.node.driver/-node-info-and-config/index.html"><span class="identifier">NodeInfoAndConfig</span></a><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.driver/-driver-d-s-l-exposed-interface/start-notary-cluster.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">startNotaryCluster</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNotaryCluster(kotlin.String, kotlin.Int, net.corda.core.node.services.ServiceType)/notaryName">notaryName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNotaryCluster(kotlin.String, kotlin.Int, net.corda.core.node.services.ServiceType)/clusterSize">clusterSize</span><span class="symbol">:</span>&nbsp;<span class="identifier">Int</span>&nbsp;<span class="symbol">=</span>&nbsp;3<span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNotaryCluster(kotlin.String, kotlin.Int, net.corda.core.node.services.ServiceType)/type">type</span><span class="symbol">:</span>&nbsp;<a href="net.corda.core.node.services/-service-type/index.html"><span class="identifier">ServiceType</span></a>&nbsp;<span class="symbol">=</span>&nbsp;RaftValidatingNotaryService.type<span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.driver/-driver-d-s-l-exposed-interface/wait-for-all-nodes-to-finish.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">waitForAllNodesToFinish</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></a></a><br/>
</BODY>
</HTML>
@ -3648,6 +3650,7 @@
<a href="docs/build/html/api/index"><a href="net.corda.node.services.config/-full-node-configuration/network-map-address.html"><span class="keyword">val </span><span class="identifier">networkMapAddress</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">?</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.config/-full-node-configuration/notary-cluster-addresses.html"><span class="keyword">val </span><span class="identifier">notaryClusterAddresses</span><span class="symbol">: </span><span class="identifier">List</span><span class="symbol">&lt;</span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.config/-full-node-configuration/notary-node-address.html"><span class="keyword">val </span><span class="identifier">notaryNodeAddress</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">?</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.config/-full-node-configuration/rpc-users.html"><span class="keyword">val </span><span class="identifier">rpcUsers</span><span class="symbol">: </span><span class="identifier">List</span><span class="symbol">&lt;</span><a href="net.corda.node.services/-user/index.html"><span class="identifier">User</span></a><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.config/-full-node-configuration/trust-store-password.html"><span class="keyword">val </span><span class="identifier">trustStorePassword</span><span class="symbol">: </span><span class="identifier">String</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.config/-full-node-configuration/use-h-t-t-p-s.html"><span class="keyword">val </span><span class="identifier">useHTTPS</span><span class="symbol">: </span><span class="identifier">Boolean</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.config/-full-node-configuration/use-test-clock.html"><span class="keyword">val </span><span class="identifier">useTestClock</span><span class="symbol">: </span><span class="identifier">Boolean</span></a></a><br/>
@ -3821,6 +3824,7 @@
<link rel="stylesheet" href="style.css">
</HEAD>
<BODY>
<a href="docs/build/html/api/index"><a href="net.corda.core.node.services/-identity-service/get-all-identities.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">getAllIdentities</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Iterable</span><span class="symbol">&lt;</span><a href="net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.core.node.services/-identity-service/party-from-key.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">partyFromKey</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.node.services.IdentityService$partyFromKey(net.corda.core.crypto.CompositeKey)/key">key</span><span class="symbol">:</span>&nbsp;<a href="net.corda.core.crypto/-composite-key/index.html"><span class="identifier">CompositeKey</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">?</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.core.node.services/-identity-service/party-from-name.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">partyFromName</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.node.services.IdentityService$partyFromName(kotlin.String)/name">name</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">)</span><span class="symbol">: </span><a href="net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">?</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.core.node.services/-identity-service/register-identity.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">registerIdentity</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.node.services.IdentityService$registerIdentity(net.corda.core.crypto.Party)/party">party</span><span class="symbol">:</span>&nbsp;<a href="net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></a></a><br/>
@ -3866,6 +3870,7 @@
</HEAD>
<BODY>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.identity/-in-memory-identity-service/-init-.html"><span class="identifier">InMemoryIdentityService</span><span class="symbol">(</span><span class="symbol">)</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.identity/-in-memory-identity-service/get-all-identities.html"><span class="keyword">fun </span><span class="identifier">getAllIdentities</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Iterable</span><span class="symbol">&lt;</span><a href="net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.identity/-in-memory-identity-service/party-from-key.html"><span class="keyword">fun </span><span class="identifier">partyFromKey</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.identity.InMemoryIdentityService$partyFromKey(net.corda.core.crypto.CompositeKey)/key">key</span><span class="symbol">:</span>&nbsp;<a href="net.corda.core.crypto/-composite-key/index.html"><span class="identifier">CompositeKey</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">?</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.identity/-in-memory-identity-service/party-from-name.html"><span class="keyword">fun </span><span class="identifier">partyFromName</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.identity.InMemoryIdentityService$partyFromName(kotlin.String)/name">name</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">)</span><span class="symbol">: </span><a href="net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">?</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.identity/-in-memory-identity-service/register-identity.html"><span class="keyword">fun </span><span class="identifier">registerIdentity</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.identity.InMemoryIdentityService$registerIdentity(net.corda.core.crypto.Party)/party">party</span><span class="symbol">:</span>&nbsp;<a href="net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></a></a><br/>
@ -6907,7 +6912,7 @@
<link rel="stylesheet" href="style.css">
</HEAD>
<BODY>
<a href="docs/build/html/api/index"><a href="net.corda.node.services/-r-p-c-user-service-impl/-init-.html"><span class="identifier">RPCUserServiceImpl</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.RPCUserServiceImpl$<init>()/config">config</span><span class="symbol">:</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">)</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services/-r-p-c-user-service-impl/-init-.html"><span class="identifier">RPCUserServiceImpl</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.RPCUserServiceImpl$<init>(net.corda.node.services.config.FullNodeConfiguration)/config">config</span><span class="symbol">:</span>&nbsp;<a href="net.corda.node.services.config/-full-node-configuration/index.html"><span class="identifier">FullNodeConfiguration</span></a><span class="symbol">)</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services/-r-p-c-user-service-impl/get-user.html"><span class="keyword">fun </span><span class="identifier">getUser</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.RPCUserServiceImpl$getUser(kotlin.String)/username">username</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">)</span><span class="symbol">: </span><a href="net.corda.node.services/-user/index.html"><span class="identifier">User</span></a><span class="symbol">?</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services/-r-p-c-user-service-impl/users.html"><span class="keyword">val </span><span class="identifier">users</span><span class="symbol">: </span><span class="identifier">List</span><span class="symbol">&lt;</span><a href="net.corda.node.services/-user/index.html"><span class="identifier">User</span></a><span class="symbol">&gt;</span></a></a><br/>
</BODY>
@ -7462,6 +7467,18 @@
</BODY>
</HTML>
</ul>
<a href="docs/build/html/api/index"><a href="net.corda.node.utilities/-service-identity-generator/index.html"><span class="keyword">object </span><span class="identifier">ServiceIdentityGenerator</span></a></a><br/>
<ul>
<HTML>
<HEAD>
<title>Module Contents</title>
<link rel="stylesheet" href="style.css">
</HEAD>
<BODY>
<a href="docs/build/html/api/index"><a href="net.corda.node.utilities/-service-identity-generator/generate-to-disk.html"><span class="keyword">fun </span><span class="identifier">generateToDisk</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.utilities.ServiceIdentityGenerator$generateToDisk(kotlin.collections.List((java.nio.file.Path)), kotlin.String, kotlin.String, kotlin.Int)/dirs">dirs</span><span class="symbol">:</span>&nbsp;<span class="identifier">List</span><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/nio/file/Path.html"><span class="identifier">Path</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.utilities.ServiceIdentityGenerator$generateToDisk(kotlin.collections.List((java.nio.file.Path)), kotlin.String, kotlin.String, kotlin.Int)/serviceId">serviceId</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.utilities.ServiceIdentityGenerator$generateToDisk(kotlin.collections.List((java.nio.file.Path)), kotlin.String, kotlin.String, kotlin.Int)/serviceName">serviceName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.utilities.ServiceIdentityGenerator$generateToDisk(kotlin.collections.List((java.nio.file.Path)), kotlin.String, kotlin.String, kotlin.Int)/threshold">threshold</span><span class="symbol">:</span>&nbsp;<span class="identifier">Int</span>&nbsp;<span class="symbol">=</span>&nbsp;1<span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></a></a><br/>
</BODY>
</HTML>
</ul>
<a href="docs/build/html/api/index"><a href="net.corda.core.node.services/-service-info/index.html"><span class="keyword">data</span> <span class="keyword">class </span><span class="identifier">ServiceInfo</span></a></a><br/>
<ul>
<HTML>
@ -8673,7 +8690,7 @@
<link rel="stylesheet" href="style.css">
</HEAD>
<BODY>
<a href="docs/build/html/api/index"><a href="net.corda.core.node.services/-transaction-storage/add-transaction.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">addTransaction</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.node.services.TransactionStorage$addTransaction(net.corda.core.transactions.SignedTransaction)/transaction">transaction</span><span class="symbol">:</span>&nbsp;<a href="net.corda.core.transactions/-signed-transaction/index.html"><span class="identifier">SignedTransaction</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.core.node.services/-transaction-storage/add-transaction.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">addTransaction</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.node.services.TransactionStorage$addTransaction(net.corda.core.transactions.SignedTransaction)/transaction">transaction</span><span class="symbol">:</span>&nbsp;<a href="net.corda.core.transactions/-signed-transaction/index.html"><span class="identifier">SignedTransaction</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Boolean</span></a></a><br/>
</BODY>
</HTML>
</ul>
@ -9714,6 +9731,18 @@
</BODY>
</HTML>
</ul>
<a href="docs/build/html/api/index"><a href="net.corda.core/java.util.concurrent.-future/index.html"><span class="identifier">java.util.concurrent.Future</span></a></a><br/>
<ul>
<HTML>
<HEAD>
<title>Module Contents</title>
<link rel="stylesheet" href="style.css">
</HEAD>
<BODY>
<a href="docs/build/html/api/index"><a href="net.corda.core/java.util.concurrent.-future/get-or-throw.html"><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html"><span class="identifier">Future</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">.</span><span class="identifier">getOrThrow</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">T</span></a></a><br/>
</BODY>
</HTML>
</ul>
<a href="docs/build/html/api/index"><a href="net.corda.client.fxutils/javafx.beans.value.-observable-value/index.html"><span class="identifier">javafx.beans.value.ObservableValue</span></a></a><br/>
<ul>
<HTML>
@ -12212,7 +12241,7 @@
</BODY>
</HTML>
</ul>
<a href="docs/build/html/api/index"><a href="net.corda.core/-run-on-caller-thread.html"><span class="keyword">val </span><span class="identifier">RunOnCallerThread</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.core/-run-on-caller-thread.html"><span class="keyword">val </span><span class="identifier">RunOnCallerThread</span><span class="symbol">: </span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Executor.html"><span class="identifier">Executor</span></a></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.core/-thread-box/index.html"><span class="keyword">class </span><span class="identifier">ThreadBox</span><span class="symbol">&lt;</span><span class="keyword">out</span>&nbsp;<span class="identifier">T</span><span class="symbol">&gt;</span></a></a><br/>
<ul>
<HTML>
@ -12249,7 +12278,7 @@
<a href="docs/build/html/api/index"><a href="net.corda.core/failure.html"><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">.</span><span class="identifier">failure</span><span class="symbol">(</span><span class="identifier" id="net.corda.core$failure(((net.corda.core.failure.T)), java.util.concurrent.Executor, kotlin.Function1((kotlin.Throwable, kotlin.Unit)))/executor">executor</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Executor.html"><span class="identifier">Executor</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core$failure(((net.corda.core.failure.T)), java.util.concurrent.Executor, kotlin.Function1((kotlin.Throwable, kotlin.Unit)))/body">body</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="identifier">Throwable</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<span class="identifier">Unit</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.core/failure.html"><span class="keyword">infix</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">.</span><span class="identifier">failure</span><span class="symbol">(</span><span class="identifier" id="net.corda.core$failure(((net.corda.core.failure.T)), kotlin.Function1((kotlin.Throwable, kotlin.Unit)))/body">body</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="identifier">Throwable</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<span class="identifier">Unit</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.core/flat-map.html"><span class="keyword">infix</span> <span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">F</span><span class="symbol">, </span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><span class="identifier">F</span><span class="symbol">&gt;</span><span class="symbol">.</span><span class="identifier">flatMap</span><span class="symbol">(</span><span class="identifier" id="net.corda.core$flatMap(((net.corda.core.flatMap.F)), kotlin.Function1((net.corda.core.flatMap.F, ((net.corda.core.flatMap.T)))))/mapper">mapper</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="identifier">F</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.core/future.html"><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">future</span><span class="symbol">(</span><span class="identifier" id="net.corda.core$future(kotlin.Function0((net.corda.core.future.T)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<span class="identifier">T</span><span class="symbol">)</span><span class="symbol">: </span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html"><span class="identifier">Future</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.core/future.html"><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">future</span><span class="symbol">(</span><span class="identifier" id="net.corda.core$future(kotlin.Function0((net.corda.core.future.T)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<span class="identifier">T</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.core/java.io.-input-stream/index.html"><span class="identifier">java.io.InputStream</span></a></a><br/>
<ul>
<HTML>
@ -12300,6 +12329,18 @@
</BODY>
</HTML>
</ul>
<a href="docs/build/html/api/index"><a href="net.corda.core/java.util.concurrent.-future/index.html"><span class="identifier">java.util.concurrent.Future</span></a></a><br/>
<ul>
<HTML>
<HEAD>
<title>Module Contents</title>
<link rel="stylesheet" href="style.css">
</HEAD>
<BODY>
<a href="docs/build/html/api/index"><a href="net.corda.core/java.util.concurrent.-future/get-or-throw.html"><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html"><span class="identifier">Future</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">.</span><span class="identifier">getOrThrow</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">T</span></a></a><br/>
</BODY>
</HTML>
</ul>
<a href="docs/build/html/api/index"><a href="net.corda.core/kotlin.-double/index.html"><span class="identifier">kotlin.Double</span></a></a><br/>
<ul>
<HTML>
@ -14941,6 +14982,7 @@
<link rel="stylesheet" href="style.css">
</HEAD>
<BODY>
<a href="docs/build/html/api/index"><a href="net.corda.core.node.services/-identity-service/get-all-identities.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">getAllIdentities</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Iterable</span><span class="symbol">&lt;</span><a href="net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.core.node.services/-identity-service/party-from-key.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">partyFromKey</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.node.services.IdentityService$partyFromKey(net.corda.core.crypto.CompositeKey)/key">key</span><span class="symbol">:</span>&nbsp;<a href="net.corda.core.crypto/-composite-key/index.html"><span class="identifier">CompositeKey</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">?</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.core.node.services/-identity-service/party-from-name.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">partyFromName</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.node.services.IdentityService$partyFromName(kotlin.String)/name">name</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">)</span><span class="symbol">: </span><a href="net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">?</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.core.node.services/-identity-service/register-identity.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">registerIdentity</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.node.services.IdentityService$registerIdentity(net.corda.core.crypto.Party)/party">party</span><span class="symbol">:</span>&nbsp;<a href="net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></a></a><br/>
@ -15178,7 +15220,7 @@
<link rel="stylesheet" href="style.css">
</HEAD>
<BODY>
<a href="docs/build/html/api/index"><a href="net.corda.core.node.services/-transaction-storage/add-transaction.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">addTransaction</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.node.services.TransactionStorage$addTransaction(net.corda.core.transactions.SignedTransaction)/transaction">transaction</span><span class="symbol">:</span>&nbsp;<a href="net.corda.core.transactions/-signed-transaction/index.html"><span class="identifier">SignedTransaction</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.core.node.services/-transaction-storage/add-transaction.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">addTransaction</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.node.services.TransactionStorage$addTransaction(net.corda.core.transactions.SignedTransaction)/transaction">transaction</span><span class="symbol">:</span>&nbsp;<a href="net.corda.core.transactions/-signed-transaction/index.html"><span class="identifier">SignedTransaction</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Boolean</span></a></a><br/>
</BODY>
</HTML>
</ul>
@ -17654,7 +17696,8 @@
<a href="docs/build/html/api/index"><a href="net.corda.node.driver/-driver-d-s-l/register-process.html"><span class="keyword">fun </span><span class="identifier">registerProcess</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.driver.DriverDSL$registerProcess(java.lang.Process)/process">process</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Process.html"><span class="identifier">Process</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.driver/-driver-d-s-l/shutdown.html"><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">shutdown</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.driver/-driver-d-s-l/start.html"><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">start</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.driver/-driver-d-s-l/start-node.html"><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">startNode</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)))/providedName">providedName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">?</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)))/advertisedServices">advertisedServices</span><span class="symbol">:</span>&nbsp;<span class="identifier">Set</span><span class="symbol">&lt;</span><a href="net.corda.core.node.services/-service-info/index.html"><span class="identifier">ServiceInfo</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)))/rpcUsers">rpcUsers</span><span class="symbol">:</span>&nbsp;<span class="identifier">List</span><span class="symbol">&lt;</span><a href="net.corda.node.services/-user/index.html"><span class="identifier">User</span></a><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html"><span class="identifier">Future</span></a><span class="symbol">&lt;</span><a href="net.corda.node.driver/-node-info-and-config/index.html"><span class="identifier">NodeInfoAndConfig</span></a><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.driver/-driver-d-s-l/start-node.html"><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">startNode</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/providedName">providedName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">?</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/advertisedServices">advertisedServices</span><span class="symbol">:</span>&nbsp;<span class="identifier">Set</span><span class="symbol">&lt;</span><a href="net.corda.core.node.services/-service-info/index.html"><span class="identifier">ServiceInfo</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/rpcUsers">rpcUsers</span><span class="symbol">:</span>&nbsp;<span class="identifier">List</span><span class="symbol">&lt;</span><a href="net.corda.node.services/-user/index.html"><span class="identifier">User</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/customOverrides">customOverrides</span><span class="symbol">:</span>&nbsp;<span class="identifier">Map</span><span class="symbol">&lt;</span><span class="identifier">String</span><span class="symbol">,</span>&nbsp;<span class="identifier">Any</span><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html"><span class="identifier">Future</span></a><span class="symbol">&lt;</span><a href="net.corda.node.driver/-node-info-and-config/index.html"><span class="identifier">NodeInfoAndConfig</span></a><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.driver/-driver-d-s-l/start-notary-cluster.html"><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">startNotaryCluster</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNotaryCluster(kotlin.String, kotlin.Int, net.corda.core.node.services.ServiceType)/notaryName">notaryName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNotaryCluster(kotlin.String, kotlin.Int, net.corda.core.node.services.ServiceType)/clusterSize">clusterSize</span><span class="symbol">:</span>&nbsp;<span class="identifier">Int</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNotaryCluster(kotlin.String, kotlin.Int, net.corda.core.node.services.ServiceType)/type">type</span><span class="symbol">:</span>&nbsp;<a href="net.corda.core.node.services/-service-type/index.html"><span class="identifier">ServiceType</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.driver/-driver-d-s-l/use-test-clock.html"><span class="keyword">val </span><span class="identifier">useTestClock</span><span class="symbol">: </span><span class="identifier">Boolean</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.driver/-driver-d-s-l/wait-for-all-nodes-to-finish.html"><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">waitForAllNodesToFinish</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></a></a><br/>
</BODY>
@ -17668,7 +17711,8 @@
<link rel="stylesheet" href="style.css">
</HEAD>
<BODY>
<a href="docs/build/html/api/index"><a href="net.corda.node.driver/-driver-d-s-l-exposed-interface/start-node.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">startNode</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)))/providedName">providedName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)))/advertisedServices">advertisedServices</span><span class="symbol">:</span>&nbsp;<span class="identifier">Set</span><span class="symbol">&lt;</span><a href="net.corda.core.node.services/-service-info/index.html"><span class="identifier">ServiceInfo</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;emptySet()<span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)))/rpcUsers">rpcUsers</span><span class="symbol">:</span>&nbsp;<span class="identifier">List</span><span class="symbol">&lt;</span><a href="net.corda.node.services/-user/index.html"><span class="identifier">User</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;emptyList()<span class="symbol">)</span><span class="symbol">: </span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html"><span class="identifier">Future</span></a><span class="symbol">&lt;</span><a href="net.corda.node.driver/-node-info-and-config/index.html"><span class="identifier">NodeInfoAndConfig</span></a><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.driver/-driver-d-s-l-exposed-interface/start-node.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">startNode</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/providedName">providedName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/advertisedServices">advertisedServices</span><span class="symbol">:</span>&nbsp;<span class="identifier">Set</span><span class="symbol">&lt;</span><a href="net.corda.core.node.services/-service-info/index.html"><span class="identifier">ServiceInfo</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;emptySet()<span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/rpcUsers">rpcUsers</span><span class="symbol">:</span>&nbsp;<span class="identifier">List</span><span class="symbol">&lt;</span><a href="net.corda.node.services/-user/index.html"><span class="identifier">User</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;emptyList()<span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/customOverrides">customOverrides</span><span class="symbol">:</span>&nbsp;<span class="identifier">Map</span><span class="symbol">&lt;</span><span class="identifier">String</span><span class="symbol">,</span>&nbsp;<span class="identifier">Any</span><span class="symbol">?</span><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;emptyMap()<span class="symbol">)</span><span class="symbol">: </span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html"><span class="identifier">Future</span></a><span class="symbol">&lt;</span><a href="net.corda.node.driver/-node-info-and-config/index.html"><span class="identifier">NodeInfoAndConfig</span></a><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.driver/-driver-d-s-l-exposed-interface/start-notary-cluster.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">startNotaryCluster</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNotaryCluster(kotlin.String, kotlin.Int, net.corda.core.node.services.ServiceType)/notaryName">notaryName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNotaryCluster(kotlin.String, kotlin.Int, net.corda.core.node.services.ServiceType)/clusterSize">clusterSize</span><span class="symbol">:</span>&nbsp;<span class="identifier">Int</span>&nbsp;<span class="symbol">=</span>&nbsp;3<span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNotaryCluster(kotlin.String, kotlin.Int, net.corda.core.node.services.ServiceType)/type">type</span><span class="symbol">:</span>&nbsp;<a href="net.corda.core.node.services/-service-type/index.html"><span class="identifier">ServiceType</span></a>&nbsp;<span class="symbol">=</span>&nbsp;RaftValidatingNotaryService.type<span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.driver/-driver-d-s-l-exposed-interface/wait-for-all-nodes-to-finish.html"><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">waitForAllNodesToFinish</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></a></a><br/>
</BODY>
</HTML>
@ -18024,7 +18068,7 @@
<link rel="stylesheet" href="style.css">
</HEAD>
<BODY>
<a href="docs/build/html/api/index"><a href="net.corda.node.services/-r-p-c-user-service-impl/-init-.html"><span class="identifier">RPCUserServiceImpl</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.RPCUserServiceImpl$<init>()/config">config</span><span class="symbol">:</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">)</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services/-r-p-c-user-service-impl/-init-.html"><span class="identifier">RPCUserServiceImpl</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.RPCUserServiceImpl$<init>(net.corda.node.services.config.FullNodeConfiguration)/config">config</span><span class="symbol">:</span>&nbsp;<a href="net.corda.node.services.config/-full-node-configuration/index.html"><span class="identifier">FullNodeConfiguration</span></a><span class="symbol">)</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services/-r-p-c-user-service-impl/get-user.html"><span class="keyword">fun </span><span class="identifier">getUser</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.RPCUserServiceImpl$getUser(kotlin.String)/username">username</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">)</span><span class="symbol">: </span><a href="net.corda.node.services/-user/index.html"><span class="identifier">User</span></a><span class="symbol">?</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services/-r-p-c-user-service-impl/users.html"><span class="keyword">val </span><span class="identifier">users</span><span class="symbol">: </span><span class="identifier">List</span><span class="symbol">&lt;</span><a href="net.corda.node.services/-user/index.html"><span class="identifier">User</span></a><span class="symbol">&gt;</span></a></a><br/>
</BODY>
@ -18264,6 +18308,7 @@
<a href="docs/build/html/api/index"><a href="net.corda.node.services.config/-full-node-configuration/network-map-address.html"><span class="keyword">val </span><span class="identifier">networkMapAddress</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">?</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.config/-full-node-configuration/notary-cluster-addresses.html"><span class="keyword">val </span><span class="identifier">notaryClusterAddresses</span><span class="symbol">: </span><span class="identifier">List</span><span class="symbol">&lt;</span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.config/-full-node-configuration/notary-node-address.html"><span class="keyword">val </span><span class="identifier">notaryNodeAddress</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">?</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.config/-full-node-configuration/rpc-users.html"><span class="keyword">val </span><span class="identifier">rpcUsers</span><span class="symbol">: </span><span class="identifier">List</span><span class="symbol">&lt;</span><a href="net.corda.node.services/-user/index.html"><span class="identifier">User</span></a><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.config/-full-node-configuration/trust-store-password.html"><span class="keyword">val </span><span class="identifier">trustStorePassword</span><span class="symbol">: </span><span class="identifier">String</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.config/-full-node-configuration/use-h-t-t-p-s.html"><span class="keyword">val </span><span class="identifier">useHTTPS</span><span class="symbol">: </span><span class="identifier">Boolean</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.config/-full-node-configuration/use-test-clock.html"><span class="keyword">val </span><span class="identifier">useTestClock</span><span class="symbol">: </span><span class="identifier">Boolean</span></a></a><br/>
@ -18404,6 +18449,7 @@
</HEAD>
<BODY>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.identity/-in-memory-identity-service/-init-.html"><span class="identifier">InMemoryIdentityService</span><span class="symbol">(</span><span class="symbol">)</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.identity/-in-memory-identity-service/get-all-identities.html"><span class="keyword">fun </span><span class="identifier">getAllIdentities</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Iterable</span><span class="symbol">&lt;</span><a href="net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.identity/-in-memory-identity-service/party-from-key.html"><span class="keyword">fun </span><span class="identifier">partyFromKey</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.identity.InMemoryIdentityService$partyFromKey(net.corda.core.crypto.CompositeKey)/key">key</span><span class="symbol">:</span>&nbsp;<a href="net.corda.core.crypto/-composite-key/index.html"><span class="identifier">CompositeKey</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">?</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.identity/-in-memory-identity-service/party-from-name.html"><span class="keyword">fun </span><span class="identifier">partyFromName</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.identity.InMemoryIdentityService$partyFromName(kotlin.String)/name">name</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">)</span><span class="symbol">: </span><a href="net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">?</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.identity/-in-memory-identity-service/register-identity.html"><span class="keyword">fun </span><span class="identifier">registerIdentity</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.identity.InMemoryIdentityService$registerIdentity(net.corda.core.crypto.Party)/party">party</span><span class="symbol">:</span>&nbsp;<a href="net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></a></a><br/>
@ -19269,7 +19315,7 @@
</HEAD>
<BODY>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.persistence/-d-b-transaction-storage/-init-.html"><span class="identifier">DBTransactionStorage</span><span class="symbol">(</span><span class="symbol">)</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.persistence/-d-b-transaction-storage/add-transaction.html"><span class="keyword">fun </span><span class="identifier">addTransaction</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.persistence.DBTransactionStorage$addTransaction(net.corda.core.transactions.SignedTransaction)/transaction">transaction</span><span class="symbol">:</span>&nbsp;<a href="net.corda.core.transactions/-signed-transaction/index.html"><span class="identifier">SignedTransaction</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.persistence/-d-b-transaction-storage/add-transaction.html"><span class="keyword">fun </span><span class="identifier">addTransaction</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.persistence.DBTransactionStorage$addTransaction(net.corda.core.transactions.SignedTransaction)/transaction">transaction</span><span class="symbol">:</span>&nbsp;<a href="net.corda.core.transactions/-signed-transaction/index.html"><span class="identifier">SignedTransaction</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Boolean</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.persistence/-d-b-transaction-storage/get-transaction.html"><span class="keyword">fun </span><span class="identifier">getTransaction</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.persistence.DBTransactionStorage$getTransaction(net.corda.core.crypto.SecureHash)/id">id</span><span class="symbol">:</span>&nbsp;<a href="net.corda.core.crypto/-secure-hash/index.html"><span class="identifier">SecureHash</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="net.corda.core.transactions/-signed-transaction/index.html"><span class="identifier">SignedTransaction</span></a><span class="symbol">?</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.persistence/-d-b-transaction-storage/track.html"><span class="keyword">fun </span><span class="identifier">track</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><span class="identifier">List</span><span class="symbol">&lt;</span><a href="net.corda.core.transactions/-signed-transaction/index.html"><span class="identifier">SignedTransaction</span></a><span class="symbol">&gt;</span><span class="symbol">,</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><a href="net.corda.core.transactions/-signed-transaction/index.html"><span class="identifier">SignedTransaction</span></a><span class="symbol">&gt;</span><span class="symbol">&gt;</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.persistence/-d-b-transaction-storage/transactions.html"><span class="keyword">val </span><span class="identifier">transactions</span><span class="symbol">: </span><span class="identifier">Iterable</span><span class="symbol">&lt;</span><a href="net.corda.core.transactions/-signed-transaction/index.html"><span class="identifier">SignedTransaction</span></a><span class="symbol">&gt;</span></a></a><br/>
@ -19768,7 +19814,7 @@
<link rel="stylesheet" href="style.css">
</HEAD>
<BODY>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.transactions/-distributed-immutable-map/-init-.html"><span class="identifier">DistributedImmutableMap</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.transactions.DistributedImmutableMap$<init>(, kotlin.String)/db">db</span><span class="symbol">:</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.services.transactions.DistributedImmutableMap$<init>(, kotlin.String)/tableName">tableName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span>&nbsp;<span class="symbol">=</span>&nbsp;DEFAULT_TABLE_NAME<span class="symbol">)</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.transactions/-distributed-immutable-map/-init-.html"><span class="identifier">DistributedImmutableMap</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.transactions.DistributedImmutableMap$<init>(, kotlin.String)/db">db</span><span class="symbol">:</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.services.transactions.DistributedImmutableMap$<init>(, kotlin.String)/tableName">tableName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">)</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.services.transactions/-distributed-immutable-map/-commands/index.html"><span class="keyword">object </span><span class="identifier">Commands</span></a></a><br/>
<ul>
<HTML>
@ -20587,6 +20633,18 @@
</BODY>
</HTML>
</ul>
<a href="docs/build/html/api/index"><a href="net.corda.node.utilities/-service-identity-generator/index.html"><span class="keyword">object </span><span class="identifier">ServiceIdentityGenerator</span></a></a><br/>
<ul>
<HTML>
<HEAD>
<title>Module Contents</title>
<link rel="stylesheet" href="style.css">
</HEAD>
<BODY>
<a href="docs/build/html/api/index"><a href="net.corda.node.utilities/-service-identity-generator/generate-to-disk.html"><span class="keyword">fun </span><span class="identifier">generateToDisk</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.utilities.ServiceIdentityGenerator$generateToDisk(kotlin.collections.List((java.nio.file.Path)), kotlin.String, kotlin.String, kotlin.Int)/dirs">dirs</span><span class="symbol">:</span>&nbsp;<span class="identifier">List</span><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/nio/file/Path.html"><span class="identifier">Path</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.utilities.ServiceIdentityGenerator$generateToDisk(kotlin.collections.List((java.nio.file.Path)), kotlin.String, kotlin.String, kotlin.Int)/serviceId">serviceId</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.utilities.ServiceIdentityGenerator$generateToDisk(kotlin.collections.List((java.nio.file.Path)), kotlin.String, kotlin.String, kotlin.Int)/serviceName">serviceName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.utilities.ServiceIdentityGenerator$generateToDisk(kotlin.collections.List((java.nio.file.Path)), kotlin.String, kotlin.String, kotlin.Int)/threshold">threshold</span><span class="symbol">:</span>&nbsp;<span class="identifier">Int</span>&nbsp;<span class="symbol">=</span>&nbsp;1<span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></a></a><br/>
</BODY>
</HTML>
</ul>
<a href="docs/build/html/api/index"><a href="net.corda.node.utilities/-state-ref-columns/index.html"><span class="keyword">data</span> <span class="keyword">class </span><span class="identifier">StateRefColumns</span></a></a><br/>
<ul>
<HTML>
@ -20686,6 +20744,7 @@
</ul>
<a href="docs/build/html/api/index"><a href="net.corda.node.utilities/local-date.html"><span class="keyword">fun </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">.</span><span class="identifier">localDate</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.utilities$localDate(, kotlin.String)/name">name</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.utilities/local-date-time.html"><span class="keyword">fun </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">.</span><span class="identifier">localDateTime</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.utilities$localDateTime(, kotlin.String)/name">name</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.utilities/main.html"><span class="keyword">fun </span><span class="identifier">main</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.utilities$main(kotlin.Array((kotlin.String)))/args">args</span><span class="symbol">:</span>&nbsp;<span class="identifier">Array</span><span class="symbol">&lt;</span><span class="identifier">String</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.utilities/party.html"><span class="keyword">fun </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">.</span><span class="identifier">party</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.utilities$party(, kotlin.String, kotlin.String)/nameColumnName">nameColumnName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.utilities$party(, kotlin.String, kotlin.String)/keyColumnName">keyColumnName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.utilities/public-key.html"><span class="keyword">fun </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">.</span><span class="identifier">publicKey</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.utilities$publicKey(, kotlin.String)/name">name</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></a></a><br/>
<a href="docs/build/html/api/index"><a href="net.corda.node.utilities/secure-hash.html"><span class="keyword">fun </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">.</span><span class="identifier">secureHash</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.utilities$secureHash(, kotlin.String)/name">name</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></a></a><br/>

View File

@ -0,0 +1,17 @@
<HTML>
<HEAD>
<title>IdentityService.getAllIdentities - </title>
<link rel="stylesheet" href="../../style.css">
</HEAD>
<BODY>
<a href="../index.html">net.corda.core.node.services</a>&nbsp;/&nbsp;<a href="index.html">IdentityService</a>&nbsp;/&nbsp;<a href=".">getAllIdentities</a><br/>
<br/>
<h1>getAllIdentities</h1>
<a name="net.corda.core.node.services.IdentityService$getAllIdentities()"></a>
<code><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">getAllIdentities</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Iterable</span><span class="symbol">&lt;</span><a href="../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">&gt;</span></code><br/>
<p>Get all identities known to the service. This is expensive, and <a href="party-from-key.html">partyFromKey</a> or <a href="party-from-name.html">partyFromName</a> should be
used in preference where possible.</p>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -18,6 +18,14 @@ service would provide.</p>
<tbody>
<tr>
<td>
<a href="get-all-identities.html">getAllIdentities</a></td>
<td>
<code><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">getAllIdentities</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Iterable</span><span class="symbol">&lt;</span><a href="../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">&gt;</span></code><p>Get all identities known to the service. This is expensive, and <a href="party-from-key.html">partyFromKey</a> or <a href="party-from-name.html">partyFromName</a> should be
used in preference where possible.</p>
</td>
</tr>
<tr>
<td>
<a href="party-from-key.html">partyFromKey</a></td>
<td>
<code><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">partyFromKey</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.node.services.IdentityService$partyFromKey(net.corda.core.crypto.CompositeKey)/key">key</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.crypto/-composite-key/index.html"><span class="identifier">CompositeKey</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">?</span></code></td>

View File

@ -8,9 +8,14 @@
<br/>
<h1>addTransaction</h1>
<a name="net.corda.core.node.services.TransactionStorage$addTransaction(net.corda.core.transactions.SignedTransaction)"></a>
<code><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">addTransaction</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.node.services.TransactionStorage$addTransaction(net.corda.core.transactions.SignedTransaction)/transaction">transaction</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.transactions/-signed-transaction/index.html"><span class="identifier">SignedTransaction</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></code><br/>
<code><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">addTransaction</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.node.services.TransactionStorage$addTransaction(net.corda.core.transactions.SignedTransaction)/transaction">transaction</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.transactions/-signed-transaction/index.html"><span class="identifier">SignedTransaction</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Boolean</span></code><br/>
<p>Add a new transaction to the store. If the store already has a transaction with the same id it will be
overwritten.</p>
<h3>Parameters</h3>
<a name="transaction"></a>
<code>transaction</code> - The transaction to be recorded.<br/>
<p><strong>Return</strong><br/>
true if the transaction was recorded successfully, false if it was already recorded.</p>
<br/>
<br/>
</BODY>

View File

@ -31,7 +31,7 @@ incorporate the update.</p>
<td>
<a href="add-transaction.html">addTransaction</a></td>
<td>
<code><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">addTransaction</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.node.services.TransactionStorage$addTransaction(net.corda.core.transactions.SignedTransaction)/transaction">transaction</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.transactions/-signed-transaction/index.html"><span class="identifier">SignedTransaction</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></code><p>Add a new transaction to the store. If the store already has a transaction with the same id it will be
<code><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">addTransaction</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.node.services.TransactionStorage$addTransaction(net.corda.core.transactions.SignedTransaction)/transaction">transaction</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.transactions/-signed-transaction/index.html"><span class="identifier">SignedTransaction</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Boolean</span></code><p>Add a new transaction to the store. If the store already has a transaction with the same id it will be
overwritten.</p>
</td>
</tr>

View File

@ -8,7 +8,7 @@
<br/>
<h1>RunOnCallerThread</h1>
<a name="net.corda.core$RunOnCallerThread"></a>
<code><span class="keyword">val </span><span class="identifier">RunOnCallerThread</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code><br/>
<code><span class="keyword">val </span><span class="identifier">RunOnCallerThread</span><span class="symbol">: </span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Executor.html"><span class="identifier">Executor</span></a></code><br/>
<br/>
<br/>
</BODY>

View File

@ -8,7 +8,7 @@
<br/>
<h1>future</h1>
<a name="net.corda.core$future(kotlin.Function0((net.corda.core.future.T)))"></a>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">future</span><span class="symbol">(</span><span class="identifier" id="net.corda.core$future(kotlin.Function0((net.corda.core.future.T)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<span class="identifier">T</span><span class="symbol">)</span><span class="symbol">: </span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html"><span class="identifier">Future</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">future</span><span class="symbol">(</span><span class="identifier" id="net.corda.core$future(kotlin.Function0((net.corda.core.future.T)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<span class="identifier">T</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code><br/>
<br/>
<br/>
</BODY>

View File

@ -74,6 +74,12 @@ again.</p>
</tr>
<tr>
<td>
<a href="java.util.concurrent.-future/index.html">java.util.concurrent.Future</a></td>
<td>
</td>
</tr>
<tr>
<td>
<a href="kotlin.-double/index.html">kotlin.Double</a></td>
<td>
</td>
@ -123,7 +129,7 @@ again.</p>
<td>
<a href="-run-on-caller-thread.html">RunOnCallerThread</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">RunOnCallerThread</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code></td>
<code><span class="keyword">val </span><span class="identifier">RunOnCallerThread</span><span class="symbol">: </span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Executor.html"><span class="identifier">Executor</span></a></code></td>
</tr>
</tbody>
</table>
@ -168,7 +174,7 @@ again.</p>
<td>
<a href="future.html">future</a></td>
<td>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">future</span><span class="symbol">(</span><span class="identifier" id="net.corda.core$future(kotlin.Function0((net.corda.core.future.T)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<span class="identifier">T</span><span class="symbol">)</span><span class="symbol">: </span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html"><span class="identifier">Future</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code></td>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <span class="identifier">future</span><span class="symbol">(</span><span class="identifier" id="net.corda.core$future(kotlin.Function0((net.corda.core.future.T)))/block">block</span><span class="symbol">:</span>&nbsp;<span class="symbol">(</span><span class="symbol">)</span>&nbsp;<span class="symbol">-&gt;</span>&nbsp;<span class="identifier">T</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code></td>
</tr>
<tr>
<td>

View File

@ -0,0 +1,16 @@
<HTML>
<HEAD>
<title>getOrThrow - </title>
<link rel="stylesheet" href="../../style.css">
</HEAD>
<BODY>
<a href="../index.html">net.corda.core</a>&nbsp;/&nbsp;<a href="index.html">java.util.concurrent.Future</a>&nbsp;/&nbsp;<a href=".">getOrThrow</a><br/>
<br/>
<h1>getOrThrow</h1>
<a name="net.corda.core$getOrThrow(java.util.concurrent.Future((net.corda.core.getOrThrow.T)))"></a>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html"><span class="identifier">Future</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">.</span><span class="identifier">getOrThrow</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">T</span></code><br/>
<p>Same as <a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html#get()">Future.get</a> but with a more descriptive name, and doesnt throw <a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ExecutionException.html">ExecutionException</a>, instead throwing its cause</p>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,22 @@
<HTML>
<HEAD>
<title>net.corda.core.java.util.concurrent.Future - </title>
<link rel="stylesheet" href="../../style.css">
</HEAD>
<BODY>
<a href="../index.html">net.corda.core</a>&nbsp;/&nbsp;<a href=".">java.util.concurrent.Future</a><br/>
<br/>
<h3>Extensions for java.util.concurrent.Future</h3>
<table>
<tbody>
<tr>
<td>
<a href="get-or-throw.html">getOrThrow</a></td>
<td>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span> <a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html"><span class="identifier">Future</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">.</span><span class="identifier">getOrThrow</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">T</span></code><p>Same as <a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html#get()">Future.get</a> but with a more descriptive name, and doesnt throw <a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ExecutionException.html">ExecutionException</a>, instead throwing its cause</p>
</td>
</tr>
</tbody>
</table>
</BODY>
</HTML>

View File

@ -143,8 +143,8 @@ will do as long as the other side registers with it.</p>
<td>
<a href="../../../net.corda.core.flows/-flow-logic/send-and-receive.html">sendAndReceive</a></td>
<td>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/receiveType">receiveType</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code></td>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/receiveType">receiveType</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code></td>
</tr>
<tr>
<td>

View File

@ -146,8 +146,8 @@ will do as long as the other side registers with it.</p>
<td>
<a href="../../../net.corda.core.flows/-flow-logic/send-and-receive.html">sendAndReceive</a></td>
<td>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/receiveType">receiveType</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code></td>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/receiveType">receiveType</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code></td>
</tr>
<tr>
<td>

View File

@ -127,8 +127,8 @@ will do as long as the other side registers with it.</p>
<td>
<a href="../../net.corda.core.flows/-flow-logic/receive.html">receive</a></td>
<td>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">receive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$receive(net.corda.core.crypto.Party)/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">receive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$receive(net.corda.core.crypto.Party, java.lang.Class((net.corda.core.flows.FlowLogic.receive.T)))/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$receive(net.corda.core.crypto.Party, java.lang.Class((net.corda.core.flows.FlowLogic.receive.T)))/receiveType">receiveType</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code></td>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">receive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$receive(net.corda.core.crypto.Party, java.lang.Class((net.corda.core.flows.FlowLogic.receive.T)))/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$receive(net.corda.core.crypto.Party, java.lang.Class((net.corda.core.flows.FlowLogic.receive.T)))/receiveType">receiveType</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">receive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$receive(net.corda.core.crypto.Party)/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code></td>
</tr>
<tr>
<td>
@ -140,8 +140,8 @@ will do as long as the other side registers with it.</p>
<td>
<a href="../../net.corda.core.flows/-flow-logic/send-and-receive.html">sendAndReceive</a></td>
<td>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/receiveType">receiveType</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code></td>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/receiveType">receiveType</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code></td>
</tr>
<tr>
<td>

View File

@ -116,8 +116,8 @@ will do as long as the other side registers with it.</p>
<td>
<a href="../../net.corda.core.flows/-flow-logic/send-and-receive.html">sendAndReceive</a></td>
<td>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/receiveType">receiveType</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code></td>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/receiveType">receiveType</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code></td>
</tr>
<tr>
<td>

View File

@ -179,8 +179,8 @@ will do as long as the other side registers with it.</p>
<td>
<a href="../../net.corda.core.flows/-flow-logic/receive.html">receive</a></td>
<td>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">receive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$receive(net.corda.core.crypto.Party)/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">receive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$receive(net.corda.core.crypto.Party, java.lang.Class((net.corda.core.flows.FlowLogic.receive.T)))/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$receive(net.corda.core.crypto.Party, java.lang.Class((net.corda.core.flows.FlowLogic.receive.T)))/receiveType">receiveType</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code></td>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">receive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$receive(net.corda.core.crypto.Party, java.lang.Class((net.corda.core.flows.FlowLogic.receive.T)))/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$receive(net.corda.core.crypto.Party, java.lang.Class((net.corda.core.flows.FlowLogic.receive.T)))/receiveType">receiveType</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">receive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$receive(net.corda.core.crypto.Party)/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code></td>
</tr>
<tr>
<td>

View File

@ -144,8 +144,8 @@ will do as long as the other side registers with it.</p>
<td>
<a href="../../net.corda.core.flows/-flow-logic/send-and-receive.html">sendAndReceive</a></td>
<td>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/receiveType">receiveType</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code></td>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/receiveType">receiveType</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code></td>
</tr>
<tr>
<td>

View File

@ -143,8 +143,8 @@ will do as long as the other side registers with it.</p>
<td>
<a href="../../../net.corda.core.flows/-flow-logic/send-and-receive.html">sendAndReceive</a></td>
<td>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/receiveType">receiveType</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code></td>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/receiveType">receiveType</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code></td>
</tr>
<tr>
<td>

View File

@ -126,8 +126,8 @@ will do as long as the other side registers with it.</p>
<td>
<a href="../../net.corda.core.flows/-flow-logic/receive.html">receive</a></td>
<td>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">receive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$receive(net.corda.core.crypto.Party, java.lang.Class((net.corda.core.flows.FlowLogic.receive.T)))/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$receive(net.corda.core.crypto.Party, java.lang.Class((net.corda.core.flows.FlowLogic.receive.T)))/receiveType">receiveType</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">receive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$receive(net.corda.core.crypto.Party)/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code></td>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">receive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$receive(net.corda.core.crypto.Party)/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">receive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$receive(net.corda.core.crypto.Party, java.lang.Class((net.corda.core.flows.FlowLogic.receive.T)))/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$receive(net.corda.core.crypto.Party, java.lang.Class((net.corda.core.flows.FlowLogic.receive.T)))/receiveType">receiveType</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code></td>
</tr>
<tr>
<td>

View File

@ -187,8 +187,8 @@ will do as long as the other side registers with it.</p>
<td>
<a href="../../../net.corda.core.flows/-flow-logic/receive.html">receive</a></td>
<td>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">receive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$receive(net.corda.core.crypto.Party, java.lang.Class((net.corda.core.flows.FlowLogic.receive.T)))/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$receive(net.corda.core.crypto.Party, java.lang.Class((net.corda.core.flows.FlowLogic.receive.T)))/receiveType">receiveType</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">receive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$receive(net.corda.core.crypto.Party)/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code></td>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">receive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$receive(net.corda.core.crypto.Party)/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">receive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$receive(net.corda.core.crypto.Party, java.lang.Class((net.corda.core.flows.FlowLogic.receive.T)))/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$receive(net.corda.core.crypto.Party, java.lang.Class((net.corda.core.flows.FlowLogic.receive.T)))/receiveType">receiveType</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code></td>
</tr>
<tr>
<td>
@ -200,8 +200,8 @@ will do as long as the other side registers with it.</p>
<td>
<a href="../../../net.corda.core.flows/-flow-logic/send-and-receive.html">sendAndReceive</a></td>
<td>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/receiveType">receiveType</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code></td>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/receiveType">receiveType</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code></td>
</tr>
<tr>
<td>

View File

@ -176,8 +176,8 @@ will do as long as the other side registers with it.</p>
<td>
<a href="../../../net.corda.core.flows/-flow-logic/send-and-receive.html">sendAndReceive</a></td>
<td>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/receiveType">receiveType</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code></td>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/receiveType">receiveType</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code></td>
</tr>
<tr>
<td>

View File

@ -18,7 +18,14 @@
<td>
<a href="start-node.html">startNode</a></td>
<td>
<code><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">startNode</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)))/providedName">providedName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)))/advertisedServices">advertisedServices</span><span class="symbol">:</span>&nbsp;<span class="identifier">Set</span><span class="symbol">&lt;</span><a href="../../net.corda.core.node.services/-service-info/index.html"><span class="identifier">ServiceInfo</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;emptySet()<span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)))/rpcUsers">rpcUsers</span><span class="symbol">:</span>&nbsp;<span class="identifier">List</span><span class="symbol">&lt;</span><a href="../../net.corda.node.services/-user/index.html"><span class="identifier">User</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;emptyList()<span class="symbol">)</span><span class="symbol">: </span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html"><span class="identifier">Future</span></a><span class="symbol">&lt;</span><a href="../-node-info-and-config/index.html"><span class="identifier">NodeInfoAndConfig</span></a><span class="symbol">&gt;</span></code><p>Starts a <a href="#">Node</a> in a separate process.</p>
<code><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">startNode</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/providedName">providedName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/advertisedServices">advertisedServices</span><span class="symbol">:</span>&nbsp;<span class="identifier">Set</span><span class="symbol">&lt;</span><a href="../../net.corda.core.node.services/-service-info/index.html"><span class="identifier">ServiceInfo</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;emptySet()<span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/rpcUsers">rpcUsers</span><span class="symbol">:</span>&nbsp;<span class="identifier">List</span><span class="symbol">&lt;</span><a href="../../net.corda.node.services/-user/index.html"><span class="identifier">User</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;emptyList()<span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/customOverrides">customOverrides</span><span class="symbol">:</span>&nbsp;<span class="identifier">Map</span><span class="symbol">&lt;</span><span class="identifier">String</span><span class="symbol">,</span>&nbsp;<span class="identifier">Any</span><span class="symbol">?</span><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;emptyMap()<span class="symbol">)</span><span class="symbol">: </span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html"><span class="identifier">Future</span></a><span class="symbol">&lt;</span><a href="../-node-info-and-config/index.html"><span class="identifier">NodeInfoAndConfig</span></a><span class="symbol">&gt;</span></code><p>Starts a <a href="#">Node</a> in a separate process.</p>
</td>
</tr>
<tr>
<td>
<a href="start-notary-cluster.html">startNotaryCluster</a></td>
<td>
<code><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">startNotaryCluster</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNotaryCluster(kotlin.String, kotlin.Int, net.corda.core.node.services.ServiceType)/notaryName">notaryName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNotaryCluster(kotlin.String, kotlin.Int, net.corda.core.node.services.ServiceType)/clusterSize">clusterSize</span><span class="symbol">:</span>&nbsp;<span class="identifier">Int</span>&nbsp;<span class="symbol">=</span>&nbsp;3<span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNotaryCluster(kotlin.String, kotlin.Int, net.corda.core.node.services.ServiceType)/type">type</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.node.services/-service-type/index.html"><span class="identifier">ServiceType</span></a>&nbsp;<span class="symbol">=</span>&nbsp;RaftValidatingNotaryService.type<span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></code><p>Starts a distributed notary cluster.</p>
</td>
</tr>
<tr>

View File

@ -7,8 +7,8 @@
<a href="../index.html">net.corda.node.driver</a>&nbsp;/&nbsp;<a href="index.html">DriverDSLExposedInterface</a>&nbsp;/&nbsp;<a href=".">startNode</a><br/>
<br/>
<h1>startNode</h1>
<a name="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)))"></a>
<code><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">startNode</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)))/providedName">providedName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)))/advertisedServices">advertisedServices</span><span class="symbol">:</span>&nbsp;<span class="identifier">Set</span><span class="symbol">&lt;</span><a href="../../net.corda.core.node.services/-service-info/index.html"><span class="identifier">ServiceInfo</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;emptySet()<span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)))/rpcUsers">rpcUsers</span><span class="symbol">:</span>&nbsp;<span class="identifier">List</span><span class="symbol">&lt;</span><a href="../../net.corda.node.services/-user/index.html"><span class="identifier">User</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;emptyList()<span class="symbol">)</span><span class="symbol">: </span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html"><span class="identifier">Future</span></a><span class="symbol">&lt;</span><a href="../-node-info-and-config/index.html"><span class="identifier">NodeInfoAndConfig</span></a><span class="symbol">&gt;</span></code><br/>
<a name="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))"></a>
<code><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">startNode</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/providedName">providedName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/advertisedServices">advertisedServices</span><span class="symbol">:</span>&nbsp;<span class="identifier">Set</span><span class="symbol">&lt;</span><a href="../../net.corda.core.node.services/-service-info/index.html"><span class="identifier">ServiceInfo</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;emptySet()<span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/rpcUsers">rpcUsers</span><span class="symbol">:</span>&nbsp;<span class="identifier">List</span><span class="symbol">&lt;</span><a href="../../net.corda.node.services/-user/index.html"><span class="identifier">User</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;emptyList()<span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/customOverrides">customOverrides</span><span class="symbol">:</span>&nbsp;<span class="identifier">Map</span><span class="symbol">&lt;</span><span class="identifier">String</span><span class="symbol">,</span>&nbsp;<span class="identifier">Any</span><span class="symbol">?</span><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;emptyMap()<span class="symbol">)</span><span class="symbol">: </span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html"><span class="identifier">Future</span></a><span class="symbol">&lt;</span><a href="../-node-info-and-config/index.html"><span class="identifier">NodeInfoAndConfig</span></a><span class="symbol">&gt;</span></code><br/>
<p>Starts a <a href="#">Node</a> in a separate process.</p>
<h3>Parameters</h3>
<a name="providedName"></a>

View File

@ -0,0 +1,25 @@
<HTML>
<HEAD>
<title>DriverDSLExposedInterface.startNotaryCluster - </title>
<link rel="stylesheet" href="../../style.css">
</HEAD>
<BODY>
<a href="../index.html">net.corda.node.driver</a>&nbsp;/&nbsp;<a href="index.html">DriverDSLExposedInterface</a>&nbsp;/&nbsp;<a href=".">startNotaryCluster</a><br/>
<br/>
<h1>startNotaryCluster</h1>
<a name="net.corda.node.driver.DriverDSLExposedInterface$startNotaryCluster(kotlin.String, kotlin.Int, net.corda.core.node.services.ServiceType)"></a>
<code><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">startNotaryCluster</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNotaryCluster(kotlin.String, kotlin.Int, net.corda.core.node.services.ServiceType)/notaryName">notaryName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNotaryCluster(kotlin.String, kotlin.Int, net.corda.core.node.services.ServiceType)/clusterSize">clusterSize</span><span class="symbol">:</span>&nbsp;<span class="identifier">Int</span>&nbsp;<span class="symbol">=</span>&nbsp;3<span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNotaryCluster(kotlin.String, kotlin.Int, net.corda.core.node.services.ServiceType)/type">type</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.node.services/-service-type/index.html"><span class="identifier">ServiceType</span></a>&nbsp;<span class="symbol">=</span>&nbsp;RaftValidatingNotaryService.type<span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></code><br/>
<p>Starts a distributed notary cluster.</p>
<h3>Parameters</h3>
<a name="notaryName"></a>
<code>notaryName</code> - The legal name of the advertised distributed notary service.<br/>
<br/>
<a name="clusterSize"></a>
<code>clusterSize</code> - Number of nodes to create for the cluster.<br/>
<br/>
<a name="type"></a>
<code>type</code> - The advertised notary service type. Currently the only supported type is <a href="../../net.corda.node.services.transactions/-raft-validating-notary-service/type.html">RaftValidatingNotaryService.type</a>.<br/>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -34,7 +34,14 @@
<td>
<a href="../-driver-d-s-l-exposed-interface/start-node.html">startNode</a></td>
<td>
<code><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">startNode</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)))/providedName">providedName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)))/advertisedServices">advertisedServices</span><span class="symbol">:</span>&nbsp;<span class="identifier">Set</span><span class="symbol">&lt;</span><a href="../../net.corda.core.node.services/-service-info/index.html"><span class="identifier">ServiceInfo</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;emptySet()<span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)))/rpcUsers">rpcUsers</span><span class="symbol">:</span>&nbsp;<span class="identifier">List</span><span class="symbol">&lt;</span><a href="../../net.corda.node.services/-user/index.html"><span class="identifier">User</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;emptyList()<span class="symbol">)</span><span class="symbol">: </span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html"><span class="identifier">Future</span></a><span class="symbol">&lt;</span><a href="../-node-info-and-config/index.html"><span class="identifier">NodeInfoAndConfig</span></a><span class="symbol">&gt;</span></code><p>Starts a <a href="#">Node</a> in a separate process.</p>
<code><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">startNode</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/providedName">providedName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">?</span>&nbsp;<span class="symbol">=</span>&nbsp;null<span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/advertisedServices">advertisedServices</span><span class="symbol">:</span>&nbsp;<span class="identifier">Set</span><span class="symbol">&lt;</span><a href="../../net.corda.core.node.services/-service-info/index.html"><span class="identifier">ServiceInfo</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;emptySet()<span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/rpcUsers">rpcUsers</span><span class="symbol">:</span>&nbsp;<span class="identifier">List</span><span class="symbol">&lt;</span><a href="../../net.corda.node.services/-user/index.html"><span class="identifier">User</span></a><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;emptyList()<span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/customOverrides">customOverrides</span><span class="symbol">:</span>&nbsp;<span class="identifier">Map</span><span class="symbol">&lt;</span><span class="identifier">String</span><span class="symbol">,</span>&nbsp;<span class="identifier">Any</span><span class="symbol">?</span><span class="symbol">&gt;</span>&nbsp;<span class="symbol">=</span>&nbsp;emptyMap()<span class="symbol">)</span><span class="symbol">: </span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html"><span class="identifier">Future</span></a><span class="symbol">&lt;</span><a href="../-node-info-and-config/index.html"><span class="identifier">NodeInfoAndConfig</span></a><span class="symbol">&gt;</span></code><p>Starts a <a href="#">Node</a> in a separate process.</p>
</td>
</tr>
<tr>
<td>
<a href="../-driver-d-s-l-exposed-interface/start-notary-cluster.html">startNotaryCluster</a></td>
<td>
<code><span class="keyword">abstract</span> <span class="keyword">fun </span><span class="identifier">startNotaryCluster</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNotaryCluster(kotlin.String, kotlin.Int, net.corda.core.node.services.ServiceType)/notaryName">notaryName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNotaryCluster(kotlin.String, kotlin.Int, net.corda.core.node.services.ServiceType)/clusterSize">clusterSize</span><span class="symbol">:</span>&nbsp;<span class="identifier">Int</span>&nbsp;<span class="symbol">=</span>&nbsp;3<span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSLExposedInterface$startNotaryCluster(kotlin.String, kotlin.Int, net.corda.core.node.services.ServiceType)/type">type</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.node.services/-service-type/index.html"><span class="identifier">ServiceType</span></a>&nbsp;<span class="symbol">=</span>&nbsp;RaftValidatingNotaryService.type<span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></code><p>Starts a distributed notary cluster.</p>
</td>
</tr>
<tr>

View File

@ -92,7 +92,14 @@
<td>
<a href="start-node.html">startNode</a></td>
<td>
<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">startNode</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)))/providedName">providedName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">?</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)))/advertisedServices">advertisedServices</span><span class="symbol">:</span>&nbsp;<span class="identifier">Set</span><span class="symbol">&lt;</span><a href="../../net.corda.core.node.services/-service-info/index.html"><span class="identifier">ServiceInfo</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)))/rpcUsers">rpcUsers</span><span class="symbol">:</span>&nbsp;<span class="identifier">List</span><span class="symbol">&lt;</span><a href="../../net.corda.node.services/-user/index.html"><span class="identifier">User</span></a><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html"><span class="identifier">Future</span></a><span class="symbol">&lt;</span><a href="../-node-info-and-config/index.html"><span class="identifier">NodeInfoAndConfig</span></a><span class="symbol">&gt;</span></code><p>Starts a <a href="#">Node</a> in a separate process.</p>
<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">startNode</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/providedName">providedName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">?</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/advertisedServices">advertisedServices</span><span class="symbol">:</span>&nbsp;<span class="identifier">Set</span><span class="symbol">&lt;</span><a href="../../net.corda.core.node.services/-service-info/index.html"><span class="identifier">ServiceInfo</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/rpcUsers">rpcUsers</span><span class="symbol">:</span>&nbsp;<span class="identifier">List</span><span class="symbol">&lt;</span><a href="../../net.corda.node.services/-user/index.html"><span class="identifier">User</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/customOverrides">customOverrides</span><span class="symbol">:</span>&nbsp;<span class="identifier">Map</span><span class="symbol">&lt;</span><span class="identifier">String</span><span class="symbol">,</span>&nbsp;<span class="identifier">Any</span><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html"><span class="identifier">Future</span></a><span class="symbol">&lt;</span><a href="../-node-info-and-config/index.html"><span class="identifier">NodeInfoAndConfig</span></a><span class="symbol">&gt;</span></code><p>Starts a <a href="#">Node</a> in a separate process.</p>
</td>
</tr>
<tr>
<td>
<a href="start-notary-cluster.html">startNotaryCluster</a></td>
<td>
<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">startNotaryCluster</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNotaryCluster(kotlin.String, kotlin.Int, net.corda.core.node.services.ServiceType)/notaryName">notaryName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNotaryCluster(kotlin.String, kotlin.Int, net.corda.core.node.services.ServiceType)/clusterSize">clusterSize</span><span class="symbol">:</span>&nbsp;<span class="identifier">Int</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNotaryCluster(kotlin.String, kotlin.Int, net.corda.core.node.services.ServiceType)/type">type</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.node.services/-service-type/index.html"><span class="identifier">ServiceType</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></code><p>Starts a distributed notary cluster.</p>
</td>
</tr>
<tr>

View File

@ -7,8 +7,8 @@
<a href="../index.html">net.corda.node.driver</a>&nbsp;/&nbsp;<a href="index.html">DriverDSL</a>&nbsp;/&nbsp;<a href=".">startNode</a><br/>
<br/>
<h1>startNode</h1>
<a name="net.corda.node.driver.DriverDSL$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)))"></a>
<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">startNode</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)))/providedName">providedName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">?</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)))/advertisedServices">advertisedServices</span><span class="symbol">:</span>&nbsp;<span class="identifier">Set</span><span class="symbol">&lt;</span><a href="../../net.corda.core.node.services/-service-info/index.html"><span class="identifier">ServiceInfo</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)))/rpcUsers">rpcUsers</span><span class="symbol">:</span>&nbsp;<span class="identifier">List</span><span class="symbol">&lt;</span><a href="../../net.corda.node.services/-user/index.html"><span class="identifier">User</span></a><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html"><span class="identifier">Future</span></a><span class="symbol">&lt;</span><a href="../-node-info-and-config/index.html"><span class="identifier">NodeInfoAndConfig</span></a><span class="symbol">&gt;</span></code><br/>
<a name="net.corda.node.driver.DriverDSL$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))"></a>
<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">startNode</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/providedName">providedName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">?</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/advertisedServices">advertisedServices</span><span class="symbol">:</span>&nbsp;<span class="identifier">Set</span><span class="symbol">&lt;</span><a href="../../net.corda.core.node.services/-service-info/index.html"><span class="identifier">ServiceInfo</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/rpcUsers">rpcUsers</span><span class="symbol">:</span>&nbsp;<span class="identifier">List</span><span class="symbol">&lt;</span><a href="../../net.corda.node.services/-user/index.html"><span class="identifier">User</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNode(kotlin.String, kotlin.collections.Set((net.corda.core.node.services.ServiceInfo)), kotlin.collections.List((net.corda.node.services.User)), kotlin.collections.Map((kotlin.String, kotlin.Any)))/customOverrides">customOverrides</span><span class="symbol">:</span>&nbsp;<span class="identifier">Map</span><span class="symbol">&lt;</span><span class="identifier">String</span><span class="symbol">,</span>&nbsp;<span class="identifier">Any</span><span class="symbol">?</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html"><span class="identifier">Future</span></a><span class="symbol">&lt;</span><a href="../-node-info-and-config/index.html"><span class="identifier">NodeInfoAndConfig</span></a><span class="symbol">&gt;</span></code><br/>
Overrides <a href="../-driver-d-s-l-exposed-interface/start-node.html">DriverDSLExposedInterface.startNode</a><br/>
<p>Starts a <a href="#">Node</a> in a separate process.</p>
<h3>Parameters</h3>

View File

@ -0,0 +1,26 @@
<HTML>
<HEAD>
<title>DriverDSL.startNotaryCluster - </title>
<link rel="stylesheet" href="../../style.css">
</HEAD>
<BODY>
<a href="../index.html">net.corda.node.driver</a>&nbsp;/&nbsp;<a href="index.html">DriverDSL</a>&nbsp;/&nbsp;<a href=".">startNotaryCluster</a><br/>
<br/>
<h1>startNotaryCluster</h1>
<a name="net.corda.node.driver.DriverDSL$startNotaryCluster(kotlin.String, kotlin.Int, net.corda.core.node.services.ServiceType)"></a>
<code><span class="keyword">open</span> <span class="keyword">fun </span><span class="identifier">startNotaryCluster</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNotaryCluster(kotlin.String, kotlin.Int, net.corda.core.node.services.ServiceType)/notaryName">notaryName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNotaryCluster(kotlin.String, kotlin.Int, net.corda.core.node.services.ServiceType)/clusterSize">clusterSize</span><span class="symbol">:</span>&nbsp;<span class="identifier">Int</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.driver.DriverDSL$startNotaryCluster(kotlin.String, kotlin.Int, net.corda.core.node.services.ServiceType)/type">type</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.node.services/-service-type/index.html"><span class="identifier">ServiceType</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></code><br/>
Overrides <a href="../-driver-d-s-l-exposed-interface/start-notary-cluster.html">DriverDSLExposedInterface.startNotaryCluster</a><br/>
<p>Starts a distributed notary cluster.</p>
<h3>Parameters</h3>
<a name="notaryName"></a>
<code>notaryName</code> - The legal name of the advertised distributed notary service.<br/>
<br/>
<a name="clusterSize"></a>
<code>clusterSize</code> - Number of nodes to create for the cluster.<br/>
<br/>
<a name="type"></a>
<code>type</code> - The advertised notary service type. Currently the only supported type is <a href="../../net.corda.node.services.transactions/-raft-validating-notary-service/type.html">RaftValidatingNotaryService.type</a>.<br/>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -116,6 +116,12 @@
</tr>
<tr>
<td>
<a href="rpc-users.html">rpcUsers</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">rpcUsers</span><span class="symbol">: </span><span class="identifier">List</span><span class="symbol">&lt;</span><a href="../../net.corda.node.services/-user/index.html"><span class="identifier">User</span></a><span class="symbol">&gt;</span></code></td>
</tr>
<tr>
<td>
<a href="trust-store-password.html">trustStorePassword</a></td>
<td>
<code><span class="keyword">val </span><span class="identifier">trustStorePassword</span><span class="symbol">: </span><span class="identifier">String</span></code></td>

View File

@ -0,0 +1,15 @@
<HTML>
<HEAD>
<title>FullNodeConfiguration.rpcUsers - </title>
<link rel="stylesheet" href="../../style.css">
</HEAD>
<BODY>
<a href="../index.html">net.corda.node.services.config</a>&nbsp;/&nbsp;<a href="index.html">FullNodeConfiguration</a>&nbsp;/&nbsp;<a href=".">rpcUsers</a><br/>
<br/>
<h1>rpcUsers</h1>
<a name="net.corda.node.services.config.FullNodeConfiguration$rpcUsers"></a>
<code><span class="keyword">val </span><span class="identifier">rpcUsers</span><span class="symbol">: </span><span class="identifier">List</span><span class="symbol">&lt;</span><a href="../../net.corda.node.services/-user/index.html"><span class="identifier">User</span></a><span class="symbol">&gt;</span></code><br/>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -128,8 +128,8 @@ will do as long as the other side registers with it.</p>
<td>
<a href="../../../net.corda.core.flows/-flow-logic/send-and-receive.html">sendAndReceive</a></td>
<td>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/receiveType">receiveType</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code></td>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any, java.lang.Class((net.corda.core.flows.FlowLogic.sendAndReceive.T)))/receiveType">receiveType</span><span class="symbol">:</span>&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html"><span class="identifier">Class</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code><br/>
<code><span class="keyword">fun </span><span class="symbol">&lt;</span><span class="identifier">T</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">&gt;</span> <span class="identifier">sendAndReceive</span><span class="symbol">(</span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/otherParty">otherParty</span><span class="symbol">:</span>&nbsp;<a href="../../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">, </span><span class="identifier" id="net.corda.core.flows.FlowLogic$sendAndReceive(net.corda.core.crypto.Party, kotlin.Any)/payload">payload</span><span class="symbol">:</span>&nbsp;<span class="identifier">Any</span><span class="symbol">)</span><span class="symbol">: </span><a href="../../../net.corda.core.utilities/-untrustworthy-data/index.html"><span class="identifier">UntrustworthyData</span></a><span class="symbol">&lt;</span><span class="identifier">T</span><span class="symbol">&gt;</span></code></td>
</tr>
<tr>
<td>

View File

@ -0,0 +1,18 @@
<HTML>
<HEAD>
<title>InMemoryIdentityService.getAllIdentities - </title>
<link rel="stylesheet" href="../../style.css">
</HEAD>
<BODY>
<a href="../index.html">net.corda.node.services.identity</a>&nbsp;/&nbsp;<a href="index.html">InMemoryIdentityService</a>&nbsp;/&nbsp;<a href=".">getAllIdentities</a><br/>
<br/>
<h1>getAllIdentities</h1>
<a name="net.corda.node.services.identity.InMemoryIdentityService$getAllIdentities()"></a>
<code><span class="keyword">fun </span><span class="identifier">getAllIdentities</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Iterable</span><span class="symbol">&lt;</span><a href="../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">&gt;</span></code><br/>
Overrides <a href="../../net.corda.core.node.services/-identity-service/get-all-identities.html">IdentityService.getAllIdentities</a><br/>
<p>Get all identities known to the service. This is expensive, and <a href="party-from-key.html">partyFromKey</a> or <a href="party-from-name.html">partyFromName</a> should be
used in preference where possible.</p>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -28,6 +28,14 @@
<tbody>
<tr>
<td>
<a href="get-all-identities.html">getAllIdentities</a></td>
<td>
<code><span class="keyword">fun </span><span class="identifier">getAllIdentities</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Iterable</span><span class="symbol">&lt;</span><a href="../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">&gt;</span></code><p>Get all identities known to the service. This is expensive, and <a href="party-from-key.html">partyFromKey</a> or <a href="party-from-name.html">partyFromName</a> should be
used in preference where possible.</p>
</td>
</tr>
<tr>
<td>
<a href="party-from-key.html">partyFromKey</a></td>
<td>
<code><span class="keyword">fun </span><span class="identifier">partyFromKey</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.identity.InMemoryIdentityService$partyFromKey(net.corda.core.crypto.CompositeKey)/key">key</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.crypto/-composite-key/index.html"><span class="identifier">CompositeKey</span></a><span class="symbol">)</span><span class="symbol">: </span><a href="../../net.corda.core.crypto/-party/index.html"><span class="identifier">Party</span></a><span class="symbol">?</span></code></td>

View File

@ -8,10 +8,15 @@
<br/>
<h1>addTransaction</h1>
<a name="net.corda.node.services.persistence.DBTransactionStorage$addTransaction(net.corda.core.transactions.SignedTransaction)"></a>
<code><span class="keyword">fun </span><span class="identifier">addTransaction</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.persistence.DBTransactionStorage$addTransaction(net.corda.core.transactions.SignedTransaction)/transaction">transaction</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.transactions/-signed-transaction/index.html"><span class="identifier">SignedTransaction</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></code><br/>
<code><span class="keyword">fun </span><span class="identifier">addTransaction</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.persistence.DBTransactionStorage$addTransaction(net.corda.core.transactions.SignedTransaction)/transaction">transaction</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.transactions/-signed-transaction/index.html"><span class="identifier">SignedTransaction</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Boolean</span></code><br/>
Overrides <a href="../../net.corda.core.node.services/-transaction-storage/add-transaction.html">TransactionStorage.addTransaction</a><br/>
<p>Add a new transaction to the store. If the store already has a transaction with the same id it will be
overwritten.</p>
<h3>Parameters</h3>
<a name="transaction"></a>
<code>transaction</code> - The transaction to be recorded.<br/>
<p><strong>Return</strong><br/>
true if the transaction was recorded successfully, false if it was already recorded.</p>
<br/>
<br/>
</BODY>

View File

@ -53,7 +53,7 @@ incorporate the update.</p>
<td>
<a href="add-transaction.html">addTransaction</a></td>
<td>
<code><span class="keyword">fun </span><span class="identifier">addTransaction</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.persistence.DBTransactionStorage$addTransaction(net.corda.core.transactions.SignedTransaction)/transaction">transaction</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.transactions/-signed-transaction/index.html"><span class="identifier">SignedTransaction</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></code><p>Add a new transaction to the store. If the store already has a transaction with the same id it will be
<code><span class="keyword">fun </span><span class="identifier">addTransaction</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.persistence.DBTransactionStorage$addTransaction(net.corda.core.transactions.SignedTransaction)/transaction">transaction</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.core.transactions/-signed-transaction/index.html"><span class="identifier">SignedTransaction</span></a><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Boolean</span></code><p>Add a new transaction to the store. If the store already has a transaction with the same id it will be
overwritten.</p>
</td>
</tr>

View File

@ -7,7 +7,7 @@
<a href="../index.html">net.corda.node.services.transactions</a>&nbsp;/&nbsp;<a href="index.html">DistributedImmutableMap</a>&nbsp;/&nbsp;<a href=".">&lt;init&gt;</a><br/>
<br/>
<h1>&lt;init&gt;</h1>
<code><span class="identifier">DistributedImmutableMap</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.transactions.DistributedImmutableMap$<init>(, kotlin.String)/db">db</span><span class="symbol">:</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.services.transactions.DistributedImmutableMap$<init>(, kotlin.String)/tableName">tableName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span>&nbsp;<span class="symbol">=</span>&nbsp;DEFAULT_TABLE_NAME<span class="symbol">)</span></code><br/>
<code><span class="identifier">DistributedImmutableMap</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.transactions.DistributedImmutableMap$<init>(, kotlin.String)/db">db</span><span class="symbol">:</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.services.transactions.DistributedImmutableMap$<init>(, kotlin.String)/tableName">tableName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">)</span></code><br/>
<p>A distributed map state machine that doesnt allow overriding values. The state machine is replicated
across a Copycat Raft cluster.</p>
<p>The map contents are backed by a JDBC table. State re-synchronisation is achieved by periodically persisting snapshots

View File

@ -35,7 +35,7 @@ containing the entire JDBC table contents.</p>
<td>
<a href="-init-.html">&lt;init&gt;</a></td>
<td>
<code><span class="identifier">DistributedImmutableMap</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.transactions.DistributedImmutableMap$<init>(, kotlin.String)/db">db</span><span class="symbol">:</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.services.transactions.DistributedImmutableMap$<init>(, kotlin.String)/tableName">tableName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span>&nbsp;<span class="symbol">=</span>&nbsp;DEFAULT_TABLE_NAME<span class="symbol">)</span></code><p>A distributed map state machine that doesnt allow overriding values. The state machine is replicated
<code><span class="identifier">DistributedImmutableMap</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.transactions.DistributedImmutableMap$<init>(, kotlin.String)/db">db</span><span class="symbol">:</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.services.transactions.DistributedImmutableMap$<init>(, kotlin.String)/tableName">tableName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">)</span></code><p>A distributed map state machine that doesnt allow overriding values. The state machine is replicated
across a Copycat Raft cluster.</p>
</td>
</tr>

View File

@ -7,7 +7,7 @@
<a href="../index.html">net.corda.node.services</a>&nbsp;/&nbsp;<a href="index.html">RPCUserServiceImpl</a>&nbsp;/&nbsp;<a href=".">&lt;init&gt;</a><br/>
<br/>
<h1>&lt;init&gt;</h1>
<code><span class="identifier">RPCUserServiceImpl</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.RPCUserServiceImpl$<init>()/config">config</span><span class="symbol">:</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">)</span></code><br/>
<code><span class="identifier">RPCUserServiceImpl</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.RPCUserServiceImpl$<init>(net.corda.node.services.config.FullNodeConfiguration)/config">config</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.node.services.config/-full-node-configuration/index.html"><span class="identifier">FullNodeConfiguration</span></a><span class="symbol">)</span></code><br/>
<br/>
<br/>
</BODY>

View File

@ -17,7 +17,7 @@
<td>
<a href="-init-.html">&lt;init&gt;</a></td>
<td>
<code><span class="identifier">RPCUserServiceImpl</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.RPCUserServiceImpl$<init>()/config">config</span><span class="symbol">:</span>&nbsp;<span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">)</span></code></td>
<code><span class="identifier">RPCUserServiceImpl</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.services.RPCUserServiceImpl$<init>(net.corda.node.services.config.FullNodeConfiguration)/config">config</span><span class="symbol">:</span>&nbsp;<a href="../../net.corda.node.services.config/-full-node-configuration/index.html"><span class="identifier">FullNodeConfiguration</span></a><span class="symbol">)</span></code></td>
</tr>
</tbody>
</table>

View File

@ -0,0 +1,30 @@
<HTML>
<HEAD>
<title>ServiceIdentityGenerator.generateToDisk - </title>
<link rel="stylesheet" href="../../style.css">
</HEAD>
<BODY>
<a href="../index.html">net.corda.node.utilities</a>&nbsp;/&nbsp;<a href="index.html">ServiceIdentityGenerator</a>&nbsp;/&nbsp;<a href=".">generateToDisk</a><br/>
<br/>
<h1>generateToDisk</h1>
<a name="net.corda.node.utilities.ServiceIdentityGenerator$generateToDisk(kotlin.collections.List((java.nio.file.Path)), kotlin.String, kotlin.String, kotlin.Int)"></a>
<code><span class="keyword">fun </span><span class="identifier">generateToDisk</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.utilities.ServiceIdentityGenerator$generateToDisk(kotlin.collections.List((java.nio.file.Path)), kotlin.String, kotlin.String, kotlin.Int)/dirs">dirs</span><span class="symbol">:</span>&nbsp;<span class="identifier">List</span><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/nio/file/Path.html"><span class="identifier">Path</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.utilities.ServiceIdentityGenerator$generateToDisk(kotlin.collections.List((java.nio.file.Path)), kotlin.String, kotlin.String, kotlin.Int)/serviceId">serviceId</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.utilities.ServiceIdentityGenerator$generateToDisk(kotlin.collections.List((java.nio.file.Path)), kotlin.String, kotlin.String, kotlin.Int)/serviceName">serviceName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.utilities.ServiceIdentityGenerator$generateToDisk(kotlin.collections.List((java.nio.file.Path)), kotlin.String, kotlin.String, kotlin.Int)/threshold">threshold</span><span class="symbol">:</span>&nbsp;<span class="identifier">Int</span>&nbsp;<span class="symbol">=</span>&nbsp;1<span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></code><br/>
<p>Generates signing key pairs and a common distributed service identity for a set of nodes.
The key pairs and the group identity get serialized to disk in the corresponding node directories.
This method should be called <emph>before</emph> any of the nodes are started.</p>
<h3>Parameters</h3>
<a name="dirs"></a>
<code>dirs</code> - List of node directories to place the generated identity and key pairs in.<br/>
<br/>
<a name="serviceId"></a>
<code>serviceId</code> - The service id of the distributed service.<br/>
<br/>
<a name="serviceName"></a>
<code>serviceName</code> - The legal name of the distributed service.<br/>
<br/>
<a name="threshold"></a>
<code>threshold</code> - The threshold for the generated group <a href="../../net.corda.core.crypto/-composite-key/-node/index.html">CompositeKey.Node</a>.<br/>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -0,0 +1,28 @@
<HTML>
<HEAD>
<title>ServiceIdentityGenerator - </title>
<link rel="stylesheet" href="../../style.css">
</HEAD>
<BODY>
<a href="../index.html">net.corda.node.utilities</a>&nbsp;/&nbsp;<a href=".">ServiceIdentityGenerator</a><br/>
<br/>
<h1>ServiceIdentityGenerator</h1>
<code><span class="keyword">object </span><span class="identifier">ServiceIdentityGenerator</span></code><br/>
<br/>
<br/>
<h3>Functions</h3>
<table>
<tbody>
<tr>
<td>
<a href="generate-to-disk.html">generateToDisk</a></td>
<td>
<code><span class="keyword">fun </span><span class="identifier">generateToDisk</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.utilities.ServiceIdentityGenerator$generateToDisk(kotlin.collections.List((java.nio.file.Path)), kotlin.String, kotlin.String, kotlin.Int)/dirs">dirs</span><span class="symbol">:</span>&nbsp;<span class="identifier">List</span><span class="symbol">&lt;</span><a href="http://docs.oracle.com/javase/6/docs/api/java/nio/file/Path.html"><span class="identifier">Path</span></a><span class="symbol">&gt;</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.utilities.ServiceIdentityGenerator$generateToDisk(kotlin.collections.List((java.nio.file.Path)), kotlin.String, kotlin.String, kotlin.Int)/serviceId">serviceId</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.utilities.ServiceIdentityGenerator$generateToDisk(kotlin.collections.List((java.nio.file.Path)), kotlin.String, kotlin.String, kotlin.Int)/serviceName">serviceName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.utilities.ServiceIdentityGenerator$generateToDisk(kotlin.collections.List((java.nio.file.Path)), kotlin.String, kotlin.String, kotlin.Int)/threshold">threshold</span><span class="symbol">:</span>&nbsp;<span class="identifier">Int</span>&nbsp;<span class="symbol">=</span>&nbsp;1<span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></code><p>Generates signing key pairs and a common distributed service identity for a set of nodes.
The key pairs and the group identity get serialized to disk in the corresponding node directories.
This method should be called <emph>before</emph> any of the nodes are started.</p>
</td>
</tr>
</tbody>
</table>
</BODY>
</HTML>

View File

@ -154,6 +154,12 @@ adjusted externally.</p>
</tr>
<tr>
<td>
<a href="-service-identity-generator/index.html">ServiceIdentityGenerator</a></td>
<td>
<code><span class="keyword">object </span><span class="identifier">ServiceIdentityGenerator</span></code></td>
</tr>
<tr>
<td>
<a href="-state-ref-columns/index.html">StateRefColumns</a></td>
<td>
<code><span class="keyword">data</span> <span class="keyword">class </span><span class="identifier">StateRefColumns</span></code></td>
@ -282,6 +288,12 @@ our environment:</p>
</tr>
<tr>
<td>
<a href="main.html">main</a></td>
<td>
<code><span class="keyword">fun </span><span class="identifier">main</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.utilities$main(kotlin.Array((kotlin.String)))/args">args</span><span class="symbol">:</span>&nbsp;<span class="identifier">Array</span><span class="symbol">&lt;</span><span class="identifier">String</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></code></td>
</tr>
<tr>
<td>
<a href="party.html">party</a></td>
<td>
<code><span class="keyword">fun </span><span class="identifier">&lt;ERROR CLASS&gt;</span><span class="symbol">.</span><span class="identifier">party</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.utilities$party(, kotlin.String, kotlin.String)/nameColumnName">nameColumnName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">, </span><span class="identifier" id="net.corda.node.utilities$party(, kotlin.String, kotlin.String)/keyColumnName">keyColumnName</span><span class="symbol">:</span>&nbsp;<span class="identifier">String</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">&lt;ERROR CLASS&gt;</span></code></td>

View File

@ -0,0 +1,15 @@
<HTML>
<HEAD>
<title>main - </title>
<link rel="stylesheet" href="../style.css">
</HEAD>
<BODY>
<a href="index.html">net.corda.node.utilities</a>&nbsp;/&nbsp;<a href=".">main</a><br/>
<br/>
<h1>main</h1>
<a name="net.corda.node.utilities$main(kotlin.Array((kotlin.String)))"></a>
<code><span class="keyword">fun </span><span class="identifier">main</span><span class="symbol">(</span><span class="identifier" id="net.corda.node.utilities$main(kotlin.Array((kotlin.String)))/args">args</span><span class="symbol">:</span>&nbsp;<span class="identifier">Array</span><span class="symbol">&lt;</span><span class="identifier">String</span><span class="symbol">&gt;</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></code><br/>
<br/>
<br/>
</BODY>
</HTML>

View File

@ -95,7 +95,7 @@
<ul>
<li class="toctree-l1"><a class="reference internal" href="data-model.html">Data model</a></li>
<li class="toctree-l1"><a class="reference internal" href="transaction-data-types.html">Data types</a></li>
<li class="toctree-l1"><a class="reference internal" href="merkle-trees.html">Transaction Tear-offs</a></li>
<li class="toctree-l1"><a class="reference internal" href="merkle-trees.html">Transaction tear-offs</a></li>
<li class="toctree-l1"><a class="reference internal" href="consensus.html">Consensus model</a></li>
</ul>
<p class="caption"><span class="caption-text">The Corda node</span></p>
@ -107,20 +107,22 @@
<li class="toctree-l2"><a class="reference internal" href="#thread-safety">Thread safety</a></li>
<li class="toctree-l2"><a class="reference internal" href="#error-handling">Error handling</a></li>
<li class="toctree-l2"><a class="reference internal" href="#wire-protocol">Wire protocol</a></li>
<li class="toctree-l2"><a class="reference internal" href="#registering-classes-with-rpc-kryo">Registering Classes With RPC Kryo</a></li>
<li class="toctree-l2"><a class="reference internal" href="#registering-classes-with-rpc-kryo">Registering classes with RPC Kryo</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="messaging.html">Networking and messaging</a></li>
<li class="toctree-l1"><a class="reference internal" href="persistence.html">Persistence</a></li>
<li class="toctree-l1"><a class="reference internal" href="node-administration.html">Node administration</a></li>
<li class="toctree-l1"><a class="reference internal" href="corda-configuration-files.html">The Corda Configuration File</a></li>
<li class="toctree-l1"><a class="reference internal" href="corda-plugins.html">The Corda Plugin Framework</a></li>
<li class="toctree-l1"><a class="reference internal" href="node-services.html">A Brief Introduction To The Node Services</a></li>
<li class="toctree-l1"><a class="reference internal" href="corda-configuration-file.html">Node configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="corda-plugins.html">The Corda plugin framework</a></li>
<li class="toctree-l1"><a class="reference internal" href="node-services.html">Brief introduction to the node services</a></li>
<li class="toctree-l1"><a class="reference internal" href="node-explorer.html">Node Explorer</a></li>
<li class="toctree-l1"><a class="reference internal" href="permissioning.html">Network permissioning</a></li>
</ul>
<p class="caption"><span class="caption-text">CorDapps</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="creating-a-cordapp.html">Creating a Cordapp</a></li>
<li class="toctree-l1"><a class="reference internal" href="creating-a-cordapp.html#gradle-plugins-for-cordapps">Gradle Plugins for Cordapps</a></li>
<li class="toctree-l1"><a class="reference internal" href="creating-a-cordapp.html">Creating a CorDapp</a></li>
<li class="toctree-l1"><a class="reference internal" href="creating-a-cordapp.html#gradle-plugins-for-cordapps">Gradle plugins for CorDapps</a></li>
</ul>
<p class="caption"><span class="caption-text">Tutorials</span></p>
<ul>
@ -128,9 +130,11 @@
<li class="toctree-l1"><a class="reference internal" href="tutorial-contract.html">Writing a contract</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial-contract-clauses.html">Writing a contract using clauses</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial-test-dsl.html">Writing a contract test</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial-clientrpc-api.html">Client RPC API Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial-clientrpc-api.html">Client RPC API tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="flow-state-machines.html">Writing flows</a></li>
<li class="toctree-l1"><a class="reference internal" href="flow-testing.html">Writing flow tests</a></li>
<li class="toctree-l1"><a class="reference internal" href="running-a-notary.html">Running a notary service</a></li>
<li class="toctree-l1"><a class="reference internal" href="using-a-notary.html">Using a notary service</a></li>
<li class="toctree-l1"><a class="reference internal" href="oracles.html">Writing oracle services</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial-attachments.html">Using attachments</a></li>
<li class="toctree-l1"><a class="reference internal" href="event-scheduling.html">Event scheduling</a></li>
@ -138,13 +142,12 @@
<p class="caption"><span class="caption-text">Other</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="network-simulator.html">Network Simulator</a></li>
<li class="toctree-l1"><a class="reference internal" href="node-explorer.html">Node Explorer</a></li>
<li class="toctree-l1"><a class="reference internal" href="initial-margin-agreement.html">Initial Margin Agreements</a></li>
<li class="toctree-l1"><a class="reference internal" href="initial-margin-agreement.html">Initial margin agreements</a></li>
</ul>
<p class="caption"><span class="caption-text">Component library</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="contract-catalogue.html">Contract catalogue</a></li>
<li class="toctree-l1"><a class="reference internal" href="contract-irs.html">Interest Rate Swaps</a></li>
<li class="toctree-l1"><a class="reference internal" href="contract-irs.html">Interest rate swaps</a></li>
</ul>
<p class="caption"><span class="caption-text">Appendix</span></p>
<ul>
@ -219,7 +222,7 @@ detail on how to use this is provided in the docs for the proxy method.</p>
resources. When you&#8217;re done with it, cast it to <code class="docutils literal"><span class="pre">Closeable</span></code> or <code class="docutils literal"><span class="pre">AutoCloseable</span></code> and close it. Don&#8217;t create
one for every call you make - create a proxy and reuse it.</p>
</div>
<p>For a brief tutorial on how one can use the RPC API see <a class="reference internal" href="tutorial-clientrpc-api.html"><span class="doc">Client RPC API Tutorial</span></a>.</p>
<p>For a brief tutorial on how one can use the RPC API see <a class="reference internal" href="tutorial-clientrpc-api.html"><span class="doc">Client RPC API tutorial</span></a>.</p>
<div class="section" id="security">
<h2>Security<a class="headerlink" href="#security" title="Permalink to this headline"></a></h2>
<p>Users wanting to use the RPC library are first required to authenticate themselves with the node using a valid username
@ -277,12 +280,12 @@ side as if it was thrown from inside the called RPC method. These exceptions can
This is likely to change in a future release.</p>
</div>
<div class="section" id="registering-classes-with-rpc-kryo">
<h2>Registering Classes With RPC Kryo<a class="headerlink" href="#registering-classes-with-rpc-kryo" title="Permalink to this headline"></a></h2>
<h2>Registering classes with RPC Kryo<a class="headerlink" href="#registering-classes-with-rpc-kryo" title="Permalink to this headline"></a></h2>
<p>In the present implementation of the node we use Kryo to generate the <em>on the wire</em> representation of contracts states
or any other classes that form part of the RPC arguments or response. To avoid the RPC interface being wide open to all
classes on the classpath, Cordapps will currently have to register any classes or custom serialisers they require with Kryo
if they are not one of those registered by default in <code class="docutils literal"><span class="pre">RPCKryo</span></code> via the plugin architecture. See <a class="reference internal" href="creating-a-cordapp.html"><span class="doc">Creating a Cordapp</span></a>.
This will require some familiarity with Kryo. An example is shown in <a class="reference internal" href="tutorial-clientrpc-api.html"><span class="doc">Client RPC API Tutorial</span></a>.</p>
if they are not one of those registered by default in <code class="docutils literal"><span class="pre">RPCKryo</span></code> via the plugin architecture. See <a class="reference internal" href="creating-a-cordapp.html"><span class="doc">Creating a CorDapp</span></a>.
This will require some familiarity with Kryo. An example is shown in <a class="reference internal" href="tutorial-clientrpc-api.html"><span class="doc">Client RPC API tutorial</span></a>.</p>
<div class="admonition warning">
<p class="first admonition-title">Warning</p>
<p class="last">We will be replacing the use of Kryo in RPC with a stable message format and this will mean that this plugin

View File

@ -32,7 +32,7 @@
<link rel="top" title="R3 Corda latest documentation" href="index.html"/>
<link rel="next" title="Client RPC" href="clientrpc.html"/>
<link rel="prev" title="Transaction Tear-offs" href="merkle-trees.html"/>
<link rel="prev" title="Transaction tear-offs" href="merkle-trees.html"/>
<script src="_static/js/modernizr.min.js"></script>
@ -95,7 +95,7 @@
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="data-model.html">Data model</a></li>
<li class="toctree-l1"><a class="reference internal" href="transaction-data-types.html">Data types</a></li>
<li class="toctree-l1"><a class="reference internal" href="merkle-trees.html">Transaction Tear-offs</a></li>
<li class="toctree-l1"><a class="reference internal" href="merkle-trees.html">Transaction tear-offs</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Consensus model</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#notary">Notary</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#multiple-notaries">Multiple notaries</a></li>
@ -104,8 +104,6 @@
</li>
<li class="toctree-l2"><a class="reference internal" href="#validation">Validation</a></li>
<li class="toctree-l2"><a class="reference internal" href="#timestamping">Timestamping</a></li>
<li class="toctree-l2"><a class="reference internal" href="#running-a-notary-service">Running a notary service</a></li>
<li class="toctree-l2"><a class="reference internal" href="#obtaining-a-signature">Obtaining a signature</a></li>
</ul>
</li>
</ul>
@ -115,14 +113,16 @@
<li class="toctree-l1"><a class="reference internal" href="messaging.html">Networking and messaging</a></li>
<li class="toctree-l1"><a class="reference internal" href="persistence.html">Persistence</a></li>
<li class="toctree-l1"><a class="reference internal" href="node-administration.html">Node administration</a></li>
<li class="toctree-l1"><a class="reference internal" href="corda-configuration-files.html">The Corda Configuration File</a></li>
<li class="toctree-l1"><a class="reference internal" href="corda-plugins.html">The Corda Plugin Framework</a></li>
<li class="toctree-l1"><a class="reference internal" href="node-services.html">A Brief Introduction To The Node Services</a></li>
<li class="toctree-l1"><a class="reference internal" href="corda-configuration-file.html">Node configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="corda-plugins.html">The Corda plugin framework</a></li>
<li class="toctree-l1"><a class="reference internal" href="node-services.html">Brief introduction to the node services</a></li>
<li class="toctree-l1"><a class="reference internal" href="node-explorer.html">Node Explorer</a></li>
<li class="toctree-l1"><a class="reference internal" href="permissioning.html">Network permissioning</a></li>
</ul>
<p class="caption"><span class="caption-text">CorDapps</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="creating-a-cordapp.html">Creating a Cordapp</a></li>
<li class="toctree-l1"><a class="reference internal" href="creating-a-cordapp.html#gradle-plugins-for-cordapps">Gradle Plugins for Cordapps</a></li>
<li class="toctree-l1"><a class="reference internal" href="creating-a-cordapp.html">Creating a CorDapp</a></li>
<li class="toctree-l1"><a class="reference internal" href="creating-a-cordapp.html#gradle-plugins-for-cordapps">Gradle plugins for CorDapps</a></li>
</ul>
<p class="caption"><span class="caption-text">Tutorials</span></p>
<ul>
@ -130,9 +130,11 @@
<li class="toctree-l1"><a class="reference internal" href="tutorial-contract.html">Writing a contract</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial-contract-clauses.html">Writing a contract using clauses</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial-test-dsl.html">Writing a contract test</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial-clientrpc-api.html">Client RPC API Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial-clientrpc-api.html">Client RPC API tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="flow-state-machines.html">Writing flows</a></li>
<li class="toctree-l1"><a class="reference internal" href="flow-testing.html">Writing flow tests</a></li>
<li class="toctree-l1"><a class="reference internal" href="running-a-notary.html">Running a notary service</a></li>
<li class="toctree-l1"><a class="reference internal" href="using-a-notary.html">Using a notary service</a></li>
<li class="toctree-l1"><a class="reference internal" href="oracles.html">Writing oracle services</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial-attachments.html">Using attachments</a></li>
<li class="toctree-l1"><a class="reference internal" href="event-scheduling.html">Event scheduling</a></li>
@ -140,13 +142,12 @@
<p class="caption"><span class="caption-text">Other</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="network-simulator.html">Network Simulator</a></li>
<li class="toctree-l1"><a class="reference internal" href="node-explorer.html">Node Explorer</a></li>
<li class="toctree-l1"><a class="reference internal" href="initial-margin-agreement.html">Initial Margin Agreements</a></li>
<li class="toctree-l1"><a class="reference internal" href="initial-margin-agreement.html">Initial margin agreements</a></li>
</ul>
<p class="caption"><span class="caption-text">Component library</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="contract-catalogue.html">Contract catalogue</a></li>
<li class="toctree-l1"><a class="reference internal" href="contract-irs.html">Interest Rate Swaps</a></li>
<li class="toctree-l1"><a class="reference internal" href="contract-irs.html">Interest rate swaps</a></li>
</ul>
<p class="caption"><span class="caption-text">Appendix</span></p>
<ul>
@ -294,7 +295,7 @@ This is an obvious privacy leak.</p>
<p class="last">In the non-validating model the &#8220;denial of state&#8221; attack is partially alleviated by requiring the calling
party to authenticate and storing its identity for the request. The conflict information returned by the notary
specifies the consuming transaction ID along with the identity of the party that had requested the commit. If the
conflicting transaction is valid, the current one gets aborted; if not a dispute can be raised and the input states
conflicting transaction is valid, the current one gets aborted; if not - a dispute can be raised and the input states
of the conflicting invalid transaction are &#8220;un-committed&#8221; (to be covered by legal process).</p>
</div>
<div class="admonition note">
@ -321,7 +322,7 @@ time observed in step 1.</p>
<p>For this reason, times in transactions are specified as time <em>windows</em>, not absolute times. Time windows can be
open-ended, i.e. specify only one of &#8220;before&#8221; and &#8220;after&#8221; or they can be fully bounded. If a time window needs to
be converted to an absolute time for e.g. display purposes, there is a utility method on <code class="docutils literal"><span class="pre">Timestamp</span></code> to
calculate the mid point - but in a distributed system there can never be &#8220;true time&#8221;, only an approximation of it.</p>
calculate the mid point &#8211; but in a distributed system there can never be &#8220;true time&#8221;, only an approximation of it.</p>
<p>In this way we express that the <em>true value</em> of the fact &#8220;the current time&#8221; is actually unknowable. Even when both before and
after times are included, the transaction could have occurred at any point between those two timestamps. Here
&#8220;occurrence&#8221; could mean the execution date, the value date, the trade date etc ... the notary doesn&#8217;t care what precise
@ -338,52 +339,6 @@ meaning the timestamp has to the contract.</p>
clocks at the US Naval Observatory. This time feed is extremely accurate and available globally for free.</p>
</div>
</div>
<div class="section" id="running-a-notary-service">
<h2>Running a notary service<a class="headerlink" href="#running-a-notary-service" title="Permalink to this headline"></a></h2>
<p>At present we have two basic implementations that store committed input states in memory:</p>
<ul class="simple">
<li><code class="docutils literal"><span class="pre">SimpleNotaryService</span></code> &#8211; commits the provided transaction without any validation</li>
<li><code class="docutils literal"><span class="pre">ValidatingNotaryService</span></code> &#8211; retrieves and validates the whole transaction history (including the given transaction) before committing</li>
</ul>
</div>
<div class="section" id="obtaining-a-signature">
<h2>Obtaining a signature<a class="headerlink" href="#obtaining-a-signature" title="Permalink to this headline"></a></h2>
<p>Once a transaction is built and ready to be finalised, normally you would call <code class="docutils literal"><span class="pre">FinalityFlow</span></code> passing in a
<code class="docutils literal"><span class="pre">SignedTransaction</span></code> (including signatures from the participants) and a list of participants to notify. This requests a
notary signature if needed, and then sends a copy of the notarised transaction to all participants for them to store.
<code class="docutils literal"><span class="pre">FinalityFlow</span></code> delegates to <code class="docutils literal"><span class="pre">NotaryFlow.Client</span></code> followed by <code class="docutils literal"><span class="pre">BroadcastTransactionFlow</span></code> to do the
actual work of notarising and broadcasting the transaction. For example:</p>
<div class="highlight-kotlin"><div class="highlight"><pre><span></span><span class="k">fun</span> <span class="nf">finaliseTransaction</span><span class="p">(</span><span class="n">serviceHub</span><span class="p">:</span> <span class="n">ServiceHubInternal</span><span class="p">,</span> <span class="n">ptx</span><span class="p">:</span> <span class="n">TransactionBuilder</span><span class="p">,</span> <span class="n">participants</span><span class="p">:</span> <span class="n">Set</span><span class="p">&lt;</span><span class="n">Party</span><span class="p">&gt;)</span>
<span class="p">:</span> <span class="n">ListenableFuture</span><span class="p">&lt;</span><span class="n">Unit</span><span class="p">&gt;</span> <span class="p">{</span>
<span class="c1">// We conclusively cannot have all the signatures, as the notary has not signed yet</span>
<span class="k">val</span> <span class="py">tx</span> <span class="p">=</span> <span class="n">ptx</span><span class="p">.</span><span class="n">toSignedTransaction</span><span class="p">(</span><span class="n">checkSufficientSignatures</span> <span class="p">=</span> <span class="k">false</span><span class="p">)</span>
<span class="c1">// The empty set would be the trigger events, which are not used here</span>
<span class="k">val</span> <span class="py">flow</span> <span class="p">=</span> <span class="n">FinalityFlow</span><span class="p">(</span><span class="n">tx</span><span class="p">,</span> <span class="n">emptySet</span><span class="p">(),</span> <span class="n">participants</span><span class="p">)</span>
<span class="k">return</span> <span class="n">serviceHub</span><span class="p">.</span><span class="n">startFlow</span><span class="p">(</span><span class="s">&quot;flow.finalisation&quot;</span><span class="p">,</span> <span class="n">flow</span><span class="p">)</span>
<span class="p">}</span>
</pre></div>
</div>
<p>To manually obtain a signature from a notary you can call <code class="docutils literal"><span class="pre">NotaryFlow.Client</span></code> directly. The flow will work out
which notary needs to be called based on the input states and the timestamp command. For example, the following snippet
can be used when writing a custom flow:</p>
<div class="highlight-kotlin"><div class="highlight"><pre><span></span><span class="k">fun</span> <span class="nf">getNotarySignature</span><span class="p">(</span><span class="n">wtx</span><span class="p">:</span> <span class="n">WireTransaction</span><span class="p">):</span> <span class="n">DigitalSignature</span><span class="p">.</span><span class="n">LegallyIdentifiable</span> <span class="p">{</span>
<span class="k">return</span> <span class="n">subFlow</span><span class="p">(</span><span class="n">NotaryFlow</span><span class="p">.</span><span class="n">Client</span><span class="p">(</span><span class="n">wtx</span><span class="p">))</span>
<span class="p">}</span>
</pre></div>
</div>
<p>On conflict the <code class="docutils literal"><span class="pre">NotaryFlow</span></code> with throw a <code class="docutils literal"><span class="pre">NotaryException</span></code> containing the conflict details:</p>
<div class="highlight-kotlin"><div class="highlight"><pre><span></span><span class="cm">/** Specifies the consuming transaction for the conflicting input state */</span>
<span class="k">data</span> <span class="k">class</span> <span class="nc">Conflict</span><span class="p">(</span><span class="k">val</span> <span class="py">stateHistory</span><span class="p">:</span> <span class="n">Map</span><span class="p">&lt;</span><span class="n">StateRef</span><span class="p">,</span> <span class="n">ConsumingTx</span><span class="p">&gt;)</span>
<span class="cm">/**</span>
<span class="cm"> * Specifies the transaction id, the position of the consumed state in the inputs, and</span>
<span class="cm"> * the caller identity requesting the commit</span>
<span class="cm"> */</span>
<span class="k">data</span> <span class="k">class</span> <span class="nc">ConsumingTx</span><span class="p">(</span><span class="k">val</span> <span class="py">id</span><span class="p">:</span> <span class="n">SecureHash</span><span class="p">,</span> <span class="k">val</span> <span class="py">inputIndex</span><span class="p">:</span> <span class="n">Int</span><span class="p">,</span> <span class="k">val</span> <span class="py">requestingParty</span><span class="p">:</span> <span class="n">Party</span><span class="p">)</span>
</pre></div>
</div>
<p>Conflict handling and resolution is currently the responsibility of the flow author.</p>
</div>
</div>
@ -396,7 +351,7 @@ can be used when writing a custom flow:</p>
<a href="clientrpc.html" class="btn btn-neutral float-right" title="Client RPC" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="merkle-trees.html" class="btn btn-neutral" title="Transaction Tear-offs" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="merkle-trees.html" class="btn btn-neutral" title="Transaction tear-offs" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>

View File

@ -31,8 +31,8 @@
<link rel="top" title="R3 Corda latest documentation" href="index.html"/>
<link rel="next" title="Interest Rate Swaps" href="contract-irs.html"/>
<link rel="prev" title="Initial Margin Agreements" href="initial-margin-agreement.html"/>
<link rel="next" title="Interest rate swaps" href="contract-irs.html"/>
<link rel="prev" title="Initial margin agreements" href="initial-margin-agreement.html"/>
<script src="_static/js/modernizr.min.js"></script>
@ -95,7 +95,7 @@
<ul>
<li class="toctree-l1"><a class="reference internal" href="data-model.html">Data model</a></li>
<li class="toctree-l1"><a class="reference internal" href="transaction-data-types.html">Data types</a></li>
<li class="toctree-l1"><a class="reference internal" href="merkle-trees.html">Transaction Tear-offs</a></li>
<li class="toctree-l1"><a class="reference internal" href="merkle-trees.html">Transaction tear-offs</a></li>
<li class="toctree-l1"><a class="reference internal" href="consensus.html">Consensus model</a></li>
</ul>
<p class="caption"><span class="caption-text">The Corda node</span></p>
@ -104,13 +104,16 @@
<li class="toctree-l1"><a class="reference internal" href="messaging.html">Networking and messaging</a></li>
<li class="toctree-l1"><a class="reference internal" href="persistence.html">Persistence</a></li>
<li class="toctree-l1"><a class="reference internal" href="node-administration.html">Node administration</a></li>
<li class="toctree-l1"><a class="reference internal" href="corda-configuration-files.html">The Corda Configuration File</a></li>
<li class="toctree-l1"><a class="reference internal" href="node-services.html">A Brief Introduction To The Node Services</a></li>
<li class="toctree-l1"><a class="reference internal" href="corda-configuration-file.html">Node configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="corda-plugins.html">The Corda plugin framework</a></li>
<li class="toctree-l1"><a class="reference internal" href="node-services.html">Brief introduction to the node services</a></li>
<li class="toctree-l1"><a class="reference internal" href="node-explorer.html">Node Explorer</a></li>
<li class="toctree-l1"><a class="reference internal" href="permissioning.html">Network permissioning</a></li>
</ul>
<p class="caption"><span class="caption-text">CorDapps</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="creating-a-cordapp.html">Creating a Cordapp</a></li>
<li class="toctree-l1"><a class="reference internal" href="creating-a-cordapp.html#gradle-plugins-for-cordapps">Gradle Plugins for Cordapps</a></li>
<li class="toctree-l1"><a class="reference internal" href="creating-a-cordapp.html">Creating a CorDapp</a></li>
<li class="toctree-l1"><a class="reference internal" href="creating-a-cordapp.html#gradle-plugins-for-cordapps">Gradle plugins for CorDapps</a></li>
</ul>
<p class="caption"><span class="caption-text">Tutorials</span></p>
<ul>
@ -118,8 +121,11 @@
<li class="toctree-l1"><a class="reference internal" href="tutorial-contract.html">Writing a contract</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial-contract-clauses.html">Writing a contract using clauses</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial-test-dsl.html">Writing a contract test</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial-clientrpc-api.html">Client RPC API Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="flow-state-machines.html">Flow state machines</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial-clientrpc-api.html">Client RPC API tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="flow-state-machines.html">Writing flows</a></li>
<li class="toctree-l1"><a class="reference internal" href="flow-testing.html">Writing flow tests</a></li>
<li class="toctree-l1"><a class="reference internal" href="running-a-notary.html">Running a notary service</a></li>
<li class="toctree-l1"><a class="reference internal" href="using-a-notary.html">Using a notary service</a></li>
<li class="toctree-l1"><a class="reference internal" href="oracles.html">Writing oracle services</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial-attachments.html">Using attachments</a></li>
<li class="toctree-l1"><a class="reference internal" href="event-scheduling.html">Event scheduling</a></li>
@ -127,20 +133,19 @@
<p class="caption"><span class="caption-text">Other</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="network-simulator.html">Network Simulator</a></li>
<li class="toctree-l1"><a class="reference internal" href="node-explorer.html">Node Explorer</a></li>
<li class="toctree-l1"><a class="reference internal" href="initial-margin-agreement.html">Initial Margin Agreements</a></li>
<li class="toctree-l1"><a class="reference internal" href="initial-margin-agreement.html">Initial margin agreements</a></li>
</ul>
<p class="caption"><span class="caption-text">Component library</span></p>
<ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="#">Contract catalogue</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#cash">Cash</a></li>
<li class="toctree-l2"><a class="reference internal" href="#commodity">Commodity</a></li>
<li class="toctree-l2"><a class="reference internal" href="#commercial-paper">Commercial Paper</a></li>
<li class="toctree-l2"><a class="reference internal" href="#interest-rate-swap">Interest Rate Swap</a></li>
<li class="toctree-l2"><a class="reference internal" href="#commercial-paper">Commercial paper</a></li>
<li class="toctree-l2"><a class="reference internal" href="#interest-rate-swap">Interest rate swap</a></li>
<li class="toctree-l2"><a class="reference internal" href="#obligation">Obligation</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="contract-irs.html">Interest Rate Swaps</a></li>
<li class="toctree-l1"><a class="reference internal" href="contract-irs.html">Interest rate swaps</a></li>
</ul>
<p class="caption"><span class="caption-text">Appendix</span></p>
<ul>
@ -224,7 +229,7 @@ behaviour.</p>
interface. This is used as a proof of concept for non-cash obligations.</p>
</div>
<div class="section" id="commercial-paper">
<h2>Commercial Paper<a class="headerlink" href="#commercial-paper" title="Permalink to this headline"></a></h2>
<h2>Commercial paper<a class="headerlink" href="#commercial-paper" title="Permalink to this headline"></a></h2>
<p><code class="docutils literal"><span class="pre">CommercialPaper</span></code> is a very simple obligation to pay an amount of cash at some future point in time (the maturity
date), and exists primarily as a simplified contract for use in tutorials. Commercial paper supports issuing, moving
and redeeming (settling) states. Unlike the full obligation contract it does not support locking the state so it cannot
@ -232,12 +237,12 @@ be settled if the obligor defaults on payment, or netting of state objects. All
commercial paper commands. Use the <code class="docutils literal"><span class="pre">Obligation</span></code> contract for more advanced functionality.</p>
</div>
<div class="section" id="interest-rate-swap">
<h2>Interest Rate Swap<a class="headerlink" href="#interest-rate-swap" title="Permalink to this headline"></a></h2>
<h2>Interest rate swap<a class="headerlink" href="#interest-rate-swap" title="Permalink to this headline"></a></h2>
<p>The Interest Rate Swap (IRS) contract is a bilateral contract to implement a vanilla fixed / floating same currency
interest rate swap. In general, an IRS allows two counterparties to modify their exposure from changes in the underlying
interest rate. They are often used as a hedging instrument, convert a fixed rate loan to a floating rate loan, vice
versa etc.</p>
<p>See &#8220;<a class="reference internal" href="contract-irs.html"><span class="doc">Interest Rate Swaps</span></a>&#8221; for full details on the IRS contract.</p>
<p>See &#8220;<a class="reference internal" href="contract-irs.html"><span class="doc">Interest rate swaps</span></a>&#8221; for full details on the IRS contract.</p>
</div>
<div class="section" id="obligation">
<h2>Obligation<a class="headerlink" href="#obligation" title="Permalink to this headline"></a></h2>
@ -269,10 +274,10 @@ multilateral netting).</p>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="contract-irs.html" class="btn btn-neutral float-right" title="Interest Rate Swaps" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="contract-irs.html" class="btn btn-neutral float-right" title="Interest rate swaps" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="initial-margin-agreement.html" class="btn btn-neutral" title="Initial Margin Agreements" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="initial-margin-agreement.html" class="btn btn-neutral" title="Initial margin agreements" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Interest Rate Swaps &mdash; R3 Corda latest documentation</title>
<title>Interest rate swaps &mdash; R3 Corda latest documentation</title>
@ -95,7 +95,7 @@
<ul>
<li class="toctree-l1"><a class="reference internal" href="data-model.html">Data model</a></li>
<li class="toctree-l1"><a class="reference internal" href="transaction-data-types.html">Data types</a></li>
<li class="toctree-l1"><a class="reference internal" href="merkle-trees.html">Transaction Tear-offs</a></li>
<li class="toctree-l1"><a class="reference internal" href="merkle-trees.html">Transaction tear-offs</a></li>
<li class="toctree-l1"><a class="reference internal" href="consensus.html">Consensus model</a></li>
</ul>
<p class="caption"><span class="caption-text">The Corda node</span></p>
@ -104,13 +104,16 @@
<li class="toctree-l1"><a class="reference internal" href="messaging.html">Networking and messaging</a></li>
<li class="toctree-l1"><a class="reference internal" href="persistence.html">Persistence</a></li>
<li class="toctree-l1"><a class="reference internal" href="node-administration.html">Node administration</a></li>
<li class="toctree-l1"><a class="reference internal" href="corda-configuration-files.html">The Corda Configuration File</a></li>
<li class="toctree-l1"><a class="reference internal" href="node-services.html">A Brief Introduction To The Node Services</a></li>
<li class="toctree-l1"><a class="reference internal" href="corda-configuration-file.html">Node configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="corda-plugins.html">The Corda plugin framework</a></li>
<li class="toctree-l1"><a class="reference internal" href="node-services.html">Brief introduction to the node services</a></li>
<li class="toctree-l1"><a class="reference internal" href="node-explorer.html">Node Explorer</a></li>
<li class="toctree-l1"><a class="reference internal" href="permissioning.html">Network permissioning</a></li>
</ul>
<p class="caption"><span class="caption-text">CorDapps</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="creating-a-cordapp.html">Creating a Cordapp</a></li>
<li class="toctree-l1"><a class="reference internal" href="creating-a-cordapp.html#gradle-plugins-for-cordapps">Gradle Plugins for Cordapps</a></li>
<li class="toctree-l1"><a class="reference internal" href="creating-a-cordapp.html">Creating a CorDapp</a></li>
<li class="toctree-l1"><a class="reference internal" href="creating-a-cordapp.html#gradle-plugins-for-cordapps">Gradle plugins for CorDapps</a></li>
</ul>
<p class="caption"><span class="caption-text">Tutorials</span></p>
<ul>
@ -118,8 +121,11 @@
<li class="toctree-l1"><a class="reference internal" href="tutorial-contract.html">Writing a contract</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial-contract-clauses.html">Writing a contract using clauses</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial-test-dsl.html">Writing a contract test</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial-clientrpc-api.html">Client RPC API Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="flow-state-machines.html">Flow state machines</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial-clientrpc-api.html">Client RPC API tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="flow-state-machines.html">Writing flows</a></li>
<li class="toctree-l1"><a class="reference internal" href="flow-testing.html">Writing flow tests</a></li>
<li class="toctree-l1"><a class="reference internal" href="running-a-notary.html">Running a notary service</a></li>
<li class="toctree-l1"><a class="reference internal" href="using-a-notary.html">Using a notary service</a></li>
<li class="toctree-l1"><a class="reference internal" href="oracles.html">Writing oracle services</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial-attachments.html">Using attachments</a></li>
<li class="toctree-l1"><a class="reference internal" href="event-scheduling.html">Event scheduling</a></li>
@ -127,15 +133,14 @@
<p class="caption"><span class="caption-text">Other</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="network-simulator.html">Network Simulator</a></li>
<li class="toctree-l1"><a class="reference internal" href="node-explorer.html">Node Explorer</a></li>
<li class="toctree-l1"><a class="reference internal" href="initial-margin-agreement.html">Initial Margin Agreements</a></li>
<li class="toctree-l1"><a class="reference internal" href="initial-margin-agreement.html">Initial margin agreements</a></li>
</ul>
<p class="caption"><span class="caption-text">Component library</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="contract-catalogue.html">Contract catalogue</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Interest Rate Swaps</a><ul>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Interest rate swaps</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#creating-an-instance-and-lifecycle">Creating an instance and lifecycle</a></li>
<li class="toctree-l2"><a class="reference internal" href="#technical-details">Technical Details</a></li>
<li class="toctree-l2"><a class="reference internal" href="#technical-details">Technical details</a></li>
</ul>
</li>
</ul>
@ -182,7 +187,7 @@
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li>Interest Rate Swaps</li>
<li>Interest rate swaps</li>
<li class="wy-breadcrumbs-aside">
@ -197,7 +202,7 @@
<div itemprop="articleBody">
<div class="section" id="interest-rate-swaps">
<h1>Interest Rate Swaps<a class="headerlink" href="#interest-rate-swaps" title="Permalink to this headline"></a></h1>
<h1>Interest rate swaps<a class="headerlink" href="#interest-rate-swaps" title="Permalink to this headline"></a></h1>
<p>The Interest Rate Swap (IRS) Contract (source: IRS.kt, IRSUtils.kt, IRSExport.kt) is a bilateral contract to implement a
vanilla fixed / floating same currency IRS.</p>
<p>In general, an IRS allows two counterparties to modify their exposure from changes in the underlying interest rate. They
@ -247,7 +252,7 @@ event.</p>
<p>Currently, there are no matured, termination or dispute operations.</p>
</div>
<div class="section" id="technical-details">
<h2>Technical Details<a class="headerlink" href="#technical-details" title="Permalink to this headline"></a></h2>
<h2>Technical details<a class="headerlink" href="#technical-details" title="Permalink to this headline"></a></h2>
<p>The contract itself comprises of 4 data state classes, <code class="docutils literal"><span class="pre">FixedLeg</span></code>, <code class="docutils literal"><span class="pre">FloatingLeg</span></code>, <code class="docutils literal"><span class="pre">Common</span></code> and <code class="docutils literal"><span class="pre">Calculation</span></code>.
Recall that the platform model is strictly immutable. To further that, between states, the only class that is modified
is the <code class="docutils literal"><span class="pre">Calculation</span></code> class.</p>

View File

@ -0,0 +1,433 @@
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Node configuration &mdash; R3 Corda latest documentation</title>
<link rel="stylesheet" href="_static/css/custom.css" type="text/css" />
<link rel="top" title="R3 Corda latest documentation" href="index.html"/>
<link rel="next" title="The Corda plugin framework" href="corda-plugins.html"/>
<link rel="prev" title="Node administration" href="node-administration.html"/>
<script src="_static/js/modernizr.min.js"></script>
</head>
<body class="wy-body-for-nav" role="document">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href="index.html" class="icon icon-home"> R3 Corda
</a>
<div class="version">
latest
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
<br>
<a href="api/index.html">API reference</a>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<p class="caption"><span class="caption-text">Getting started</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="inthebox.html">What&#8217;s included?</a></li>
<li class="toctree-l1"><a class="reference internal" href="getting-set-up.html">Getting set up</a></li>
<li class="toctree-l1"><a class="reference internal" href="running-the-demos.html">Running the demos</a></li>
</ul>
<p class="caption"><span class="caption-text">Key concepts</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="data-model.html">Data model</a></li>
<li class="toctree-l1"><a class="reference internal" href="transaction-data-types.html">Data types</a></li>
<li class="toctree-l1"><a class="reference internal" href="merkle-trees.html">Transaction tear-offs</a></li>
<li class="toctree-l1"><a class="reference internal" href="consensus.html">Consensus model</a></li>
</ul>
<p class="caption"><span class="caption-text">The Corda node</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="clientrpc.html">Client RPC</a></li>
<li class="toctree-l1"><a class="reference internal" href="messaging.html">Networking and messaging</a></li>
<li class="toctree-l1"><a class="reference internal" href="persistence.html">Persistence</a></li>
<li class="toctree-l1"><a class="reference internal" href="node-administration.html">Node administration</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Node configuration</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#file-location">File location</a></li>
<li class="toctree-l2"><a class="reference internal" href="#format">Format</a></li>
<li class="toctree-l2"><a class="reference internal" href="#examples">Examples</a></li>
<li class="toctree-l2"><a class="reference internal" href="#fields">Fields</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="corda-plugins.html">The Corda plugin framework</a></li>
<li class="toctree-l1"><a class="reference internal" href="node-services.html">Brief introduction to the node services</a></li>
<li class="toctree-l1"><a class="reference internal" href="node-explorer.html">Node Explorer</a></li>
<li class="toctree-l1"><a class="reference internal" href="permissioning.html">Network permissioning</a></li>
</ul>
<p class="caption"><span class="caption-text">CorDapps</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="creating-a-cordapp.html">Creating a CorDapp</a></li>
<li class="toctree-l1"><a class="reference internal" href="creating-a-cordapp.html#gradle-plugins-for-cordapps">Gradle plugins for CorDapps</a></li>
</ul>
<p class="caption"><span class="caption-text">Tutorials</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="where-to-start.html">Where to start</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial-contract.html">Writing a contract</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial-contract-clauses.html">Writing a contract using clauses</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial-test-dsl.html">Writing a contract test</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial-clientrpc-api.html">Client RPC API tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="flow-state-machines.html">Writing flows</a></li>
<li class="toctree-l1"><a class="reference internal" href="flow-testing.html">Writing flow tests</a></li>
<li class="toctree-l1"><a class="reference internal" href="running-a-notary.html">Running a notary service</a></li>
<li class="toctree-l1"><a class="reference internal" href="using-a-notary.html">Using a notary service</a></li>
<li class="toctree-l1"><a class="reference internal" href="oracles.html">Writing oracle services</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorial-attachments.html">Using attachments</a></li>
<li class="toctree-l1"><a class="reference internal" href="event-scheduling.html">Event scheduling</a></li>
</ul>
<p class="caption"><span class="caption-text">Other</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="network-simulator.html">Network Simulator</a></li>
<li class="toctree-l1"><a class="reference internal" href="initial-margin-agreement.html">Initial margin agreements</a></li>
</ul>
<p class="caption"><span class="caption-text">Component library</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="contract-catalogue.html">Contract catalogue</a></li>
<li class="toctree-l1"><a class="reference internal" href="contract-irs.html">Interest rate swaps</a></li>
</ul>
<p class="caption"><span class="caption-text">Appendix</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="loadtesting.html">Load testing</a></li>
<li class="toctree-l1"><a class="reference internal" href="secure-coding-guidelines.html">Secure coding guidelines</a></li>
<li class="toctree-l1"><a class="reference internal" href="release-process.html">Release process</a></li>
<li class="toctree-l1"><a class="reference internal" href="release-process.html#steps-to-cut-a-release">Steps to cut a release</a></li>
<li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="codestyle.html">Code style guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="building-the-docs.html">Building the documentation</a></li>
</ul>
<p class="caption"><span class="caption-text">Glossary</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="glossary.html">Glossary</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">R3 Corda</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li>Node configuration</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/corda-configuration-file.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="node-configuration">
<h1>Node configuration<a class="headerlink" href="#node-configuration" title="Permalink to this headline"></a></h1>
<div class="section" id="file-location">
<h2>File location<a class="headerlink" href="#file-location" title="Permalink to this headline"></a></h2>
<p>The Corda all-in-one <code class="docutils literal"><span class="pre">corda.jar</span></code> file is generated by the <code class="docutils literal"><span class="pre">gradle</span> <span class="pre">buildCordaJAR</span></code> task and defaults to reading configuration from a <code class="docutils literal"><span class="pre">node.conf</span></code> file in the present working directory.
This behaviour can be overidden using the <code class="docutils literal"><span class="pre">--config-file</span></code> command line option to target configuration files with different names, or different file location (relative paths are relative to the current working directory).
Also, the <code class="docutils literal"><span class="pre">--base-directory</span></code> command line option alters the Corda node workspace location and if specified a <code class="docutils literal"><span class="pre">node.conf</span></code> configuration file is then expected in the root of the workspace.</p>
<p>The configuration file templates used for the <code class="docutils literal"><span class="pre">gradle</span> <span class="pre">deployNodes</span></code> task are to be found in the <code class="docutils literal"><span class="pre">/config/dev</span></code> folder. Also note that there is a basic set of defaults loaded from
the built in resource file <code class="docutils literal"><span class="pre">/node/src/main/resources/reference.conf</span></code> of the <code class="docutils literal"><span class="pre">:node</span></code> gradle module. All properties in this can be overidden in the file configuration
and for rarely changed properties this defaulting allows the property to be excluded from the configuration file.</p>
</div>
<div class="section" id="format">
<h2>Format<a class="headerlink" href="#format" title="Permalink to this headline"></a></h2>
<p>Corda uses the Typesafe configuration library to parse the configuration see the <a class="reference external" href="https://github.com/typesafehub/config/">typesafe config on Github</a> the format of the configuration files can be simple JSON, but for the more powerful substitution features
uses HOCON format see <a class="reference external" href="https://github.com/typesafehub/config/blob/master/HOCON.md">HOCON documents</a></p>
</div>
<div class="section" id="examples">
<h2>Examples<a class="headerlink" href="#examples" title="Permalink to this headline"></a></h2>
<p>General node configuration file for hosting the IRSDemo services.</p>
<div class="highlight-javascript"><div class="highlight"><pre><span></span><span class="nx">basedir</span> <span class="o">:</span> <span class="s2">&quot;./nodea&quot;</span>
<span class="nx">myLegalName</span> <span class="o">:</span> <span class="s2">&quot;Bank A&quot;</span>
<span class="nx">nearestCity</span> <span class="o">:</span> <span class="s2">&quot;London&quot;</span>
<span class="nx">keyStorePassword</span> <span class="o">:</span> <span class="s2">&quot;cordacadevpass&quot;</span>
<span class="nx">trustStorePassword</span> <span class="o">:</span> <span class="s2">&quot;trustpass&quot;</span>
<span class="nx">dataSourceProperties</span> <span class="o">:</span> <span class="p">{</span>
<span class="nx">dataSourceClassName</span> <span class="o">:</span> <span class="nx">org</span><span class="p">.</span><span class="nx">h2</span><span class="p">.</span><span class="nx">jdbcx</span><span class="p">.</span><span class="nx">JdbcDataSource</span>
<span class="s2">&quot;dataSource.url&quot;</span> <span class="o">:</span> <span class="s2">&quot;jdbc:h2:&quot;</span><span class="nx">$</span><span class="p">{</span><span class="nx">basedir</span><span class="p">}</span><span class="s2">&quot;/persistence&quot;</span>
<span class="s2">&quot;dataSource.user&quot;</span> <span class="o">:</span> <span class="nx">sa</span>
<span class="s2">&quot;dataSource.password&quot;</span> <span class="o">:</span> <span class="s2">&quot;&quot;</span>
<span class="p">}</span>
<span class="nx">artemisAddress</span> <span class="o">:</span> <span class="s2">&quot;my-corda-node:10002&quot;</span>
<span class="nx">webAddress</span> <span class="o">:</span> <span class="s2">&quot;localhost:10003&quot;</span>
<span class="nx">extraAdvertisedServiceIds</span><span class="o">:</span> <span class="s2">&quot;corda.interest_rates&quot;</span>
<span class="nx">networkMapAddress</span> <span class="o">:</span> <span class="s2">&quot;my-network-map:10000&quot;</span>
<span class="nx">useHTTPS</span> <span class="o">:</span> <span class="kc">false</span>
<span class="nx">rpcUsers</span> <span class="o">:</span> <span class="p">[</span>
<span class="p">{</span> <span class="nx">user</span><span class="o">=</span><span class="nx">user1</span><span class="p">,</span> <span class="nx">password</span><span class="o">=</span><span class="nx">letmein</span><span class="p">,</span> <span class="nx">permissions</span><span class="o">=</span><span class="p">[</span> <span class="nx">StartProtocol</span><span class="p">.</span><span class="nx">net</span><span class="p">.</span><span class="nx">corda</span><span class="p">.</span><span class="nx">protocols</span><span class="p">.</span><span class="nx">CashProtocol</span> <span class="p">]</span> <span class="p">}</span>
<span class="p">]</span>
<span class="nx">devMode</span> <span class="o">:</span> <span class="kc">true</span>
<span class="c1">// Certificate signing service will be hosted by R3 in the near future.</span>
<span class="c1">//certificateSigningService : &quot;https://testnet.certificate.corda.net&quot;</span>
</pre></div>
</div>
<p>NetworkMapService plus Simple Notary configuration file.</p>
<div class="highlight-kotlin"><div class="highlight"><pre><span></span><span class="n">basedir</span> <span class="p">:</span> <span class="s">&quot;./nameserver&quot;</span>
<span class="n">myLegalName</span> <span class="p">:</span> <span class="s">&quot;Notary Service&quot;</span>
<span class="n">nearestCity</span> <span class="p">:</span> <span class="s">&quot;London&quot;</span>
<span class="n">keyStorePassword</span> <span class="p">:</span> <span class="s">&quot;cordacadevpass&quot;</span>
<span class="n">trustStorePassword</span> <span class="p">:</span> <span class="s">&quot;trustpass&quot;</span>
<span class="n">artemisAddress</span> <span class="p">:</span> <span class="s">&quot;localhost:12345&quot;</span>
<span class="n">webAddress</span> <span class="p">:</span> <span class="s">&quot;localhost:12346&quot;</span>
<span class="n">extraAdvertisedServiceIds</span><span class="p">:</span> <span class="s">&quot;&quot;</span>
<span class="n">useHTTPS</span> <span class="p">:</span> <span class="k">false</span>
<span class="n">devMode</span> <span class="p">:</span> <span class="k">true</span>
<span class="c1">// Certificate signing service will be hosted by R3 in the near future.</span>
<span class="c1">//certificateSigningService : &quot;https://testnet.certificate.corda.net&quot;</span>
</pre></div>
</div>
</div>
<div class="section" id="fields">
<h2>Fields<a class="headerlink" href="#fields" title="Permalink to this headline"></a></h2>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">basedir:</th><td class="field-body"><p class="first">This specifies the node workspace folder either as an absolute path, or relative to the current working directory. It can be overidden by the <code class="docutils literal"><span class="pre">--base-directory</span></code> command line option, in which case the the value in the file is ignored and a <code class="docutils literal"><span class="pre">node.conf</span></code> file is expected in that workspace directory as the configuration source.</p>
</td>
</tr>
<tr class="field-even field"><th class="field-name">myLegalName:</th><td class="field-body"><p class="first">The legal identity of the node acts as a human readable alias to the node&#8217;s public key and several demos use this to lookup the NodeInfo.</p>
</td>
</tr>
<tr class="field-odd field"><th class="field-name">nearestCity:</th><td class="field-body"><p class="first">The location of the node as used to locate coordinates on the world map when running the network simulator demo. See <a class="reference internal" href="network-simulator.html"><span class="doc">Network Simulator</span></a>.</p>
</td>
</tr>
<tr class="field-even field"><th class="field-name" colspan="2">keyStorePassword:</th></tr>
<tr class="field-even field"><td>&nbsp;</td><td class="field-body"><p class="first">The password to unlock the KeyStore file (<code class="docutils literal"><span class="pre">&lt;workspace&gt;/certificates/sslkeystore.jks</span></code>) containing the node certificate and private key.</p>
<p>note:: This is the non-secret value for the development certificates automatically generated during the first node run. Longer term these keys will be managed in secure hardware devices.</p>
</td>
</tr>
<tr class="field-odd field"><th class="field-name" colspan="2">trustStorePassword:</th></tr>
<tr class="field-odd field"><td>&nbsp;</td><td class="field-body"><p class="first">The password to unlock the Trust store file (<code class="docutils literal"><span class="pre">&lt;workspace&gt;/certificates/truststore.jks</span></code>) containing the R3 Corda root certificate. This is the non-secret value for the development certificates automatically generated during the first node run.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">Longer term these keys will be managed in secure hardware devices.</p>
</div>
</td>
</tr>
<tr class="field-even field"><th class="field-name" colspan="2">dataSourceProperties:</th></tr>
<tr class="field-even field"><td>&nbsp;</td><td class="field-body"><p class="first">This section is used to configure the jdbc connection and database driver used for the nodes persistence. Currently the defaults in <code class="docutils literal"><span class="pre">/node/src/main/resources/reference.conf</span></code> are as shown in the first example. This is currently the only configuration that has been tested, although in the future full support for other storage layers will be validated.</p>
</td>
</tr>
<tr class="field-odd field"><th class="field-name">artemisAddress:</th><td class="field-body"><p class="first">The host and port on which the node is available for protocol operations over ArtemisMQ.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">In practice the ArtemisMQ messaging services bind to all local addresses on the specified port. However, note that the host is the included as the advertised entry in the NetworkMapService. As a result the value listed here must be externally accessible when running nodes across a cluster of machines.</p>
</div>
</td>
</tr>
<tr class="field-even field"><th class="field-name" colspan="2">messagingServerAddress:</th></tr>
<tr class="field-even field"><td>&nbsp;</td><td class="field-body"><p class="first">The address of the ArtemisMQ broker instance. If not provided the node will run one locally.</p>
</td>
</tr>
<tr class="field-odd field"><th class="field-name">webAddress:</th><td class="field-body"><p class="first">The host and port on which the node is available for web operations.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">If HTTPS is enabled then the browser security checks will require that the accessing url host name is one of either the machine name, fully qualified machine name, or server IP address to line up with the Subject Alternative Names contained within the development certificates. This is addition to requiring the <code class="docutils literal"><span class="pre">/config/dev/corda_dev_ca.cer</span></code> root certificate be installed as a Trusted CA.</p>
</div>
</td>
</tr>
<tr class="field-even field"><th class="field-name" colspan="2">extraAdvertisedServiceIds:</th></tr>
<tr class="field-even field"><td>&nbsp;</td><td class="field-body"><p class="first">A list of ServiceType id strings to be advertised to the NetworkMapService and thus be available when other nodes query the NetworkMapCache for supporting nodes. This can also include plugin services loaded from .jar files in the plugins folder.</p>
</td>
</tr>
<tr class="field-odd field"><th class="field-name" colspan="2">notaryNodeAddress:</th></tr>
<tr class="field-odd field"><td>&nbsp;</td><td class="field-body"><p class="first">The host and port to which to bind the embedded Raft server. Required only when running a distributed notary service. A group of Corda nodes can run a distributed notary service by each running an embedded Raft server and joining them to the same cluster to replicate the committed state log. Note that the Raft cluster uses a separate transport layer for communication that does not integrate with ArtemisMQ messaging services.</p>
</td>
</tr>
<tr class="field-even field"><th class="field-name" colspan="2">notaryClusterAddresses:</th></tr>
<tr class="field-even field"><td>&nbsp;</td><td class="field-body"><p class="first">List of Raft cluster member addresses used to joining the cluster. At least one of the specified members must be active and be able to communicate with the cluster leader for joining. If empty, a new cluster will be bootstrapped. Required only when running a distributed notary service.</p>
</td>
</tr>
<tr class="field-odd field"><th class="field-name" colspan="2">networkMapAddress:</th></tr>
<tr class="field-odd field"><td>&nbsp;</td><td class="field-body"><p class="first">If <cite>null</cite>, or missing the node is declaring itself as the NetworkMapService host. Otherwise the configuration value is the remote HostAndPort string for the ArtemisMQ service on the hosting node.</p>
</td>
</tr>
<tr class="field-even field"><th class="field-name">useHTTPS:</th><td class="field-body"><p class="first">If false the node&#8217;s web server will be plain HTTP. If true the node will use the same certificate and private key from the <code class="docutils literal"><span class="pre">&lt;workspace&gt;/certificates/sslkeystore.jks</span></code> file as the ArtemisMQ port for HTTPS. If HTTPS is enabled then unencrypted HTTP traffic to the node&#8217;s <strong>webAddress</strong> port is not supported.</p>
</td>
</tr>
<tr class="field-odd field"><th class="field-name">rpcUsers:</th><td class="field-body"><p class="first">A list of users who are authorised to access the RPC system. Each user in the list is a config object with the
following fields:</p>
<blockquote>
<div><table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">user:</th><td class="field-body">Username consisting only of word characters (a-z, A-Z, 0-9 and _)</td>
</tr>
<tr class="field-even field"><th class="field-name">password:</th><td class="field-body">The password</td>
</tr>
<tr class="field-odd field"><th class="field-name">permissions:</th><td class="field-body">A list of permission strings which RPC methods can use to control access</td>
</tr>
</tbody>
</table>
</div></blockquote>
<p>If this field is absent or an empty list then RPC is effectively locked down.</p>
</td>
</tr>
<tr class="field-even field"><th class="field-name">devMode:</th><td class="field-body"><p class="first">This flag indicate if the node is running in development mode. On startup, if the keystore <code class="docutils literal"><span class="pre">&lt;workspace&gt;/certificates/sslkeystore.jks</span></code> does not exist, a developer keystore will be used if <code class="docutils literal"><span class="pre">devMode</span></code> is true. The node will exit if <code class="docutils literal"><span class="pre">devMode</span></code> is false and keystore does not exist.</p>
</td>
</tr>
<tr class="field-odd field"><th class="field-name" colspan="2">certificateSigningService:</th></tr>
<tr class="field-odd field"><td>&nbsp;</td><td class="field-body"><p class="first last">Certificate Signing Server address. It is used by the certificate signing request utility to obtain SSL certificate. (See <a class="reference internal" href="permissioning.html"><span class="doc">Network permissioning</span></a> for more information.)</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="corda-plugins.html" class="btn btn-neutral float-right" title="The Corda plugin framework" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="node-administration.html" class="btn btn-neutral" title="Node administration" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2016, Distributed Ledger Group, LLC.
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'latest',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.StickyNav.enable();
});
</script>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More