corda / net.corda.node.services.transactions / NotaryService

# NotaryService

`abstract class NotaryService : SingletonSerializeAsToken`

A Notary service acts as the final signer of a transaction ensuring two things:

- The (optional) timestamp of the transaction is valid.
- None of the referenced input states have previously been consumed by a transaction signed by this Notary O A transaction has to be signed by a Notary to be considered valid (except for output-only transactions without a timestamp).

This is the base implementation that can be customised with specific Notary transaction commit flow.

### Constructors

<init> | `NotaryService(services: ServiceHubInternal)` A Notary service acts as the final signer of a transaction ensuring two things:

### Functions

createFlow | `abstract fun createFlow(otherParty: Party): Service` Implement a factory that specifies the transaction commit flow for the notary service to use

### Inherited Functions

toToken | `open fun toToken(context: SerializeAsTokenContext): SerializationToken`

### Inheritors

BFTValidatingNotaryService | `class BFTValidatingNotaryService : NotaryService` A validating notary service operated by a group of parties that don't necessarily trust each other.
RaftValidatingNotaryService | `class RaftValidatingNotaryService : NotaryService` A validating notary service operated by a group of mutually trusting parties, uses the Raft algorithm to achieve consensus.
SimpleNotaryService | `class SimpleNotaryService : NotaryService` A simple Notary service that does not perform transaction validation
ValidatingNotaryService | `class ValidatingNotaryService : NotaryService` A Notary service that validates the transaction chain of the submitted transaction before committing it