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 `_ 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`.