2018-07-03 12:24:25 +00:00
|
|
|
Setting up a notary service
|
|
|
|
---------------------------
|
2016-11-25 15:11:19 +00:00
|
|
|
|
2018-07-03 12:24:25 +00:00
|
|
|
Corda comes with several notary implementations built-in:
|
2016-11-25 15:11:19 +00:00
|
|
|
|
2018-07-03 12:24:25 +00:00
|
|
|
1. **Single-node**: a simple notary service that persists notarisation requests in the node's database. It is easy to set up
|
|
|
|
and is recommended for testing, and production networks that do not have strict availability requirements.
|
|
|
|
2. **Crash fault-tolerant** *(experimental)*: a highly available notary service operated by a single party.
|
|
|
|
3. **Byzantine fault-tolerant** *(experimental)*: a decentralised highly available notary service operated by a group of parties.
|
2016-11-25 15:11:19 +00:00
|
|
|
|
2018-07-03 12:24:25 +00:00
|
|
|
Single-node
|
|
|
|
===========
|
2016-11-25 15:11:19 +00:00
|
|
|
|
2018-07-03 12:24:25 +00:00
|
|
|
To have a regular Corda node provide a notary service you simply need to set appropriate ``notary`` configuration values
|
|
|
|
before starting it:
|
2016-11-25 15:11:19 +00:00
|
|
|
|
|
|
|
.. parsed-literal::
|
|
|
|
|
2017-10-05 11:27:45 +00:00
|
|
|
notary : { validating : false }
|
2016-11-25 15:11:19 +00:00
|
|
|
|
2018-07-03 12:24:25 +00:00
|
|
|
For a validating notary service specify:
|
2016-11-25 15:11:19 +00:00
|
|
|
|
|
|
|
.. parsed-literal::
|
|
|
|
|
2017-10-05 11:27:45 +00:00
|
|
|
notary : { validating : true }
|
2016-11-25 15:11:19 +00:00
|
|
|
|
2017-11-07 18:31:50 +00:00
|
|
|
|
2018-07-03 12:24:25 +00:00
|
|
|
See :ref:`key_concepts_notaries_validation` for more details about validating versus non-validating notaries.
|
|
|
|
|
|
|
|
For clients to be able to use the notary service, its identity must be added to the network parameters. This will be
|
|
|
|
done automatically when creating the network, if using :doc:`network-bootstrapper`. See :doc:`setting-up-a-corda-network`
|
|
|
|
for more details.
|
|
|
|
|
|
|
|
Crash fault-tolerant (experimental)
|
|
|
|
===================================
|
|
|
|
|
|
|
|
Corda provides a prototype `Raft-based <http://atomix.io/>`_ highly available notary implementation. You can try it out on our
|
|
|
|
`notary demo <https://github.com/corda/corda/tree/release-V3.1/samples/notary-demo>`_ page. Note that it has known limitations
|
|
|
|
and is not recommended for production use.
|
|
|
|
|
|
|
|
Byzantine fault-tolerant (experimental)
|
|
|
|
=======================================
|
|
|
|
|
|
|
|
A prototype BFT notary implementation based on `BFT-Smart <https://github.com/bft-smart/library>`_ is available. You can
|
|
|
|
try it out on our `notary demo <https://github.com/corda/corda/tree/release-V3.1/samples/notary-demo>`_ page. Note that it
|
2018-10-19 10:17:20 +00:00
|
|
|
is still experimental and there is active work ongoing for a production ready solution. Additionally, BFT-Smart requires Java
|
|
|
|
serialization which is disabled by default in Corda due to security risks, and it will only work in dev mode where this can
|
|
|
|
be customised.
|
2018-07-03 12:24:25 +00:00
|
|
|
|
|
|
|
We do not recommend using it in any long-running test or production deployments.
|