Packages

package config

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. All

Type Members

  1. case class AdminServerConfig(address: String = "127.0.0.1", port: Int, tls: Option[TlsServerConfig] = None, keepAlive: Option[KeepAliveConfig] = Some(KeepAliveConfig())) extends ServerConfig with Product with Serializable

    A variant of ServerConfig that by default listens to connections only on the loopback interface.

  2. sealed trait BaseTlsArguments extends AnyRef
  3. case class CantonCommunityConfig(domains: Map[String, CommunityDomainConfig] = Map.empty, participants: Map[String, ParticipantConfig] = Map.empty, remoteDomains: Map[String, RemoteDomainConfig] = Map.empty, remoteParticipants: Map[String, RemoteParticipantConfig] = Map.empty, monitoring: MonitoringConfig = MonitoringConfig(), parameters: CantonParameters = CantonParameters(), features: CantonFeatures = CantonFeatures()) extends CantonConfig with Product with Serializable
  4. trait CantonConfig extends AnyRef

    Root configuration parameters for a single Canton process.

  5. case class CantonFeatures(enablePreviewCommands: Boolean = false, enableTestingCommands: Boolean = false, enableRepairCommands: Boolean = false) extends Product with Serializable

    Control which features are turned on / off in Canton

    Control which features are turned on / off in Canton

    enablePreviewCommands

    Feature flag to enable the set of commands that use functionality which we don't deem stable.

    enableTestingCommands

    Feature flag to enable the set of commands used by Canton developers for testing purposes.

    enableRepairCommands

    Feature flag to enable the set of commands used by Canton operators for manual repair purposes.

  6. final case class CantonParameters(clock: ClockConfig = ClockConfig.WallClock(), enableAdditionalConsistencyChecks: Boolean = false, manualStart: Boolean = false, timeouts: TimeoutSettings = TimeoutSettings(), participant: ParticipantNodeParameterConfig = ParticipantNodeParameterConfig()) extends Product with Serializable

    Parameters for testing Canton.

    Parameters for testing Canton. Use default values in a production environment.

    enableAdditionalConsistencyChecks

    if true, run additional consistency checks. This will degrade performance.

    manualStart

    If set to true, the nodes have to be manually started via console (default false)

    timeouts

    Sets the timeouts

  7. sealed trait CheckConfig extends AnyRef

    Configuration for a check

  8. case class ClientConfig(address: String = "127.0.0.1", port: Int, tls: Option[TlsClientConfig] = None, keepAlive: Option[KeepAliveConfig] = Some(KeepAliveConfig())) extends Product with Serializable

    A client configuration to a corresponding server configuration

  9. sealed trait ClockConfig extends Product with Serializable
  10. final case class ConsoleCommandTimeout(bounded: TimeoutDuration = ..., unbounded: TimeoutDuration = ...) extends Product with Serializable

    Configuration for console command timeouts

    Configuration for console command timeouts

    bounded

    timeout on how long "bounded" operations, i.e. operations which normally are supposed to conclude in a fixed timeframe can run before the console considers them as failed.

    unbounded

    timeout on how long "unbounded" operations can run, potentially infinite.

  11. sealed trait DbConfig extends StorageConfig with PrettyPrinting

    Dictates that persistent data is stored in a database.

  12. final case class DeadlockDetectionConfig(enabled: Boolean = true, interval: NonNegativeFiniteDuration = ..., maxReports: Int = 10, reportAsWarnings: Boolean = true) extends Product with Serializable

    Deadlock detection configuration

    Deadlock detection configuration

    A simple deadlock detection method. Using a background scheduler, we schedule a trivial future on the EC. If the Future is not executed until we check again, we alert.

    enabled

    if true, we'll monitor the EC for deadlocks (or slow processings)

    interval

    how often we check the EC

    maxReports

    after how many warnings are we going to shut up.

    reportAsWarnings

    if false, the deadlock detector will report using debug messages

  13. final case class DomainParameters(participantResponseTimeout: NonNegativeFiniteDuration = ..., mediatorReactionTimeout: NonNegativeFiniteDuration = ..., heartbeatInterval: NonNegativeFiniteDuration = ..., ledgerTimeRecordTimeTolerance: NonNegativeFiniteDuration = ..., transferExclusivityTimeout: NonNegativeFiniteDuration = ..., reconciliationInterval: NonNegativeFiniteDuration = ..., maxRatePerParticipant: Int = 200, maxInboundMessageSize: Int = 10 * 1024 * 1024, uniqueContractKeys: Boolean = false) extends Product with Serializable

    Domain parameters for performance tuning.

    Domain parameters for performance tuning. To set these parametes, you need to be familiar with the Canton architecture. See the Canton architecture overview for further information.

    participantResponseTimeout

    the amount of time (w.r.t. the sequencer clock) that a participant may take to validate a command and send a response. Once the timeout has elapsed for a request, the mediator will discard all responses for that request. Choose a lower value to reduce the time to reject a command in case one of the involved participants has high load / operational problems. Choose a higher value to reduce the likelihood of commands being rejected due to timeouts.

    mediatorReactionTimeout

    the maximum amount of time (w.r.t. the sequencer clock) that the mediator may take to validate the responses for a request and broadcast the result message. The mediator reaction timeout starts when the confirmation response timeout has elapsed. If the mediator does not send a result message within that timeout, participants must rollback the transaction underlying the request. Chooses a lower value to reduce the time to learn whether a command has been accepted. Choose a higher value to reduce the likelihood of commands being rejected due to timeouts.

    heartbeatInterval

    the time between domain heartbeats. Choose a higher value to reduce the load caused by heartbeats. Choosing a lower value has the following effects:

    • Timeouts occur earlier. Thus, applications learn earlier that a command has timed out. However, this only makes a difference if the system is idle, as sequencer messages other than heartbeats will also trigger timeout.
    • Transfers use a more up-to-date topology on the target domain.
    • The exclusivity timeout for transfer-ins elapses later.
    ledgerTimeRecordTimeTolerance

    the maximum absolute difference between the ledger time and the record time of a command. If the absolute difference would be larger for a command, then the command must be rejected.

    transferExclusivityTimeout

    this timeout affects who can initiate a transfer-in. Before the timeout, only the submitter of the transfer-out can initiate the corresponding transfer-in. After the timeout, every stakeholder of the contract can initiate a transfer-in, if it has not yet happened. Moreover, if this timeout is zero, no automatic transfer-ins will occur. Choose a low value, if you want to lower the time that contracts can be inactive due to ongoing transfers. TODO(andreas): Choosing a high value currently has no practical benefit, but will have benefits in a future version.

    reconciliationInterval

    determines the time between sending two successive ACS commitments. Must be a multiple of 1 second.

    maxRatePerParticipant

    maximum number of messages sent per participant per second

    maxInboundMessageSize

    maximum size of messages (in bytes) that the domain can receive through the public API

    uniqueContractKeys

    When set, participants connected to this domain will check that contract keys are unique. When a participant is connected to a domain with unique contract keys support, it must not connect nor have ever been connected to any other domain.

  14. case class H2(config: Config, databaseName: Option[String] = None, migrationsPath: String = DbConfig.defaultMigrationsPath, ledgerApiJdbcUrl: Option[String] = None) extends DbConfig with Product with Serializable
  15. final case class HealthConfig(server: HealthServerConfig, check: CheckConfig) extends Product with Serializable

    Configuration to expose a health endpoint on the given server running the configured check

    Configuration to expose a health endpoint on the given server running the configured check

    server

    Server details for hosting the health endpoint

    check

    Check for determining whether this canton process is healthy

  16. final case class HealthServerConfig(address: String = "127.0.0.1", port: Int) extends Product with Serializable

    Configuration of health server backend.

  17. case class InitConfig(autoInit: Boolean = true) extends Product with Serializable

    Configuration for the node's init process

    Configuration for the node's init process

    autoInit

    if true, the node will automatically initialize itself. In particular, it will create a new namespace, and initialize its id and its keys for signing and encryption. If false, the user has to manually perform these steps.

  18. case class KeepAliveConfig(time: NonNegativeFiniteDuration = ..., timeout: NonNegativeFiniteDuration = ...) extends Product with Serializable

    GRPC keep alive settings

    time

    Sets the time without read activity before sending a keepalive ping. Do not set to small numbers (default is 40)

    timeout

    Sets the time waiting for read activity after sending a keepalive ping (default is 20)

  19. case class KeyStoreConfig(path: File, password: Option[Password]) extends Product with Serializable

    Configuration for Java keystore with optional password protection.

  20. trait LocalNodeConfig extends NodeConfig
  21. trait LocalNodeParameters extends AnyRef
  22. case class Memory(databaseName: Option[String] = None) extends StorageConfig with Product with Serializable

    Dictates that persistent data is stored in memory.

    Dictates that persistent data is stored in memory. So in fact, the data is not persistent. It is deleted whenever the node is stopped.

    databaseName

    IGNORED configuration option, used to allow users to use configuration mixins with postgres and h2

  23. final case class MonitoringConfig(deadlockDetection: DeadlockDetectionConfig = DeadlockDetectionConfig(), health: Option[HealthConfig] = None, metrics: Option[MetricsConfig] = None, delayLoggingThreshold: NonNegativeFiniteDuration = ..., traceContextPropagation: TraceContextPropagation = TraceContextPropagation.Disabled, logMessagePayloads: Boolean = false) extends Product with Serializable

    Configuration for metrics and tracing

    Configuration for metrics and tracing

    deadlockDetection

    Should we regularly check our environment EC for deadlocks?

    health

    Optional Health check to expose an http server to monitor is the canton process is healthy

    metrics

    Optinal Metrics Reporter used to expose internally captured metrics

    delayLoggingThreshold

    Logs a warning message once the sequencer client falls behind in processing messages from the sequencer (based on the sequencing timestamp).

    traceContextPropagation

    How should trace contexts (debugging details associated with actions) be propagated between nodes. Defaults to all propagation being disabled for privacy reasons.

    logMessagePayloads

    Determines whether message payloads (as well as metadata) sent through GRPC are logged.

  24. trait NodeConfig extends AnyRef
  25. final case class NonNegativeFiniteDuration(duration: Duration) extends PrettyPrinting with Product with Serializable
  26. case class ParticipantNodeParameterConfig(bongTestMaxLevel: Long = 0, participantAdminRetries: Int = 10, partyChangeNotification: PartyNotificationConfig = PartyNotificationConfig.Eager, maxUnzippedDarSize: Int = 1024 * 1024 * 1024) extends Product with Serializable

    General participant node parameters

    General participant node parameters

    bongTestMaxLevel

    upper bound on the level of a bong that the participant can initiate. The participant can still participate in bongs at higher levels. Use this to limit the load the participants can cause by initiating bongs.

    participantAdminRetries

    The maximum number of times the com.digitalasset.canton.ledger.api.client.CommandSubmitterWithRetry will retry an admin command submitted to the com.digitalasset.canton.participant.admin.AdminWorkflowServices.

    partyChangeNotification

    Determines how eagerly the participant nodes notify the ledger api of party changes

    maxUnzippedDarSize

    maximum allowed size of unzipped DAR files (in bytes) the participant can accept for uploading. Defaults to 1GB.

  27. final case class Password(pw: String) extends AnyVal with Product with Serializable

    Password wrapper for keystores to prevent the values being printed in logs.

    Password wrapper for keystores to prevent the values being printed in logs.

    pw

    password value - public for supporting PureConfig parsing but callers should prefer accessing through unwrap

  28. case class Postgres(config: Config, databaseName: Option[String] = None, migrationsPath: String = DbConfig.defaultMigrationsPath, ledgerApiJdbcUrl: Option[String] = None, cleanOnValidationError: Boolean = false) extends DbConfig with Product with Serializable
  29. final case class ProcessingTimeout(unbounded: TimeoutDuration = DefaultProcessingTimeouts.unbounded, io: TimeoutDuration = DefaultProcessingTimeouts.io, default: TimeoutDuration = DefaultProcessingTimeouts.default, network: TimeoutDuration = DefaultProcessingTimeouts.network, shutdown: TimeoutDuration = DefaultProcessingTimeouts.shutdown) extends Product with Serializable

    Configuration for internal await timeouts

    Configuration for internal await timeouts

    unbounded

    timeout on how long "unbounded" operations can run. should be infinite in theory.

    io

    timeout for disk based operations

    default

    default finite processing timeout

    network

    timeout for things related to networking

    shutdown

    timeout used for shutdown processes

  30. sealed trait SequencerConnectionConfig extends ProtoSerializable[protocol.v0.SequencerConnectionConfig]

    Definition provided by the domain node to members with details on how to connect to the domain sequencer.

    Definition provided by the domain node to members with details on how to connect to the domain sequencer. *

  31. sealed trait SequencerConnectionSelectionPolicy extends ProtoSerializable[protocol.v0.SequencerConnectionSelectionPolicy] with PrettyPrinting
  32. sealed trait ServerAuthRequirementConfig extends AnyRef

    Configuration on whether server requires auth, requests auth, or no auth

  33. trait ServerConfig extends AnyRef

    Configuration for hosting a server api

  34. sealed trait StorageConfig extends AnyRef

    Determines how a node stores persistent data.

  35. case class TimeoutDuration(duration: Duration) extends Product with Serializable

    Duration class used for timeouts.

    Duration class used for timeouts.

    There are two options: either it's a non-negative duration or an infinite duration

  36. final case class TimeoutSettings(console: ConsoleCommandTimeout = ConsoleCommandTimeout(), processing: ProcessingTimeout = ProcessingTimeout()) extends Product with Serializable

    Timeout settings configuration

  37. case class TlsBaseServerConfig(certChainFile: File, privateKeyFile: File, protocols: Option[Seq[String]] = ..., ciphers: Option[Seq[String]] = TlsServerConfig.defaultCiphers) extends BaseTlsArguments with Product with Serializable

    A wrapper for TLS server parameters supporting only server side authentication

    A wrapper for TLS server parameters supporting only server side authentication

    Same parameters as the more complete TlsServerConfig

  38. case class TlsClientCertificate(certChainFile: File, privateKeyFile: File) extends Product with Serializable

  39. case class TlsClientConfig(certChainFile: File, clientCert: Option[TlsClientCertificate]) extends Product with Serializable

    A wrapper for TLS related client configurations

    A wrapper for TLS related client configurations

    certChainFile

    the same certificate chain file as used on the server

    clientCert

    the client certificate

  40. case class TlsServerConfig(certChainFile: File, privateKeyFile: File, trustCollectionFile: Option[File] = None, clientAuth: ServerAuthRequirementConfig = ..., protocols: Option[Seq[String]] = ..., ciphers: Option[Seq[String]] = TlsServerConfig.defaultCiphers) extends BaseTlsArguments with Product with Serializable

    A wrapper for TLS related server parameters supporting mutual authentication.

    A wrapper for TLS related server parameters supporting mutual authentication.

    Certificates and keys must be provided in the PEM format. It is recommended to create them with OpenSSL. Other formats (such as GPG) may also work, but have not been tested.

    certChainFile

    a file containing a certificate chain, containing the certificate chain from the server to the root CA. The certificate chain is used to authenticate the server. The order of certificates in the chain matters, i.e., it must start with the server certificate and end with the root certificate.

    privateKeyFile

    a file containing the server's private key. The key must not use a password.

    trustCollectionFile

    a file containing certificates of all nodes the server trusts. Used for client authentication. It depends on the enclosing configuration whether client authentication is mandatory, optional or unsupported. If client authentication is enabled and this parameter is absent, the certificates in the JVM trust store will be used instead.

    clientAuth

    indicates whether server requires, requests, does does not request auth from clients. Normally the ledger api server requires client auth under TLS, but using this setting this requirement can be loosened. See https://github.com/digital-asset/daml/commit/edd73384c427d9afe63bae9d03baa2a26f7b7f54

    protocols

    supported TLS protocols. Set None (or null in config file) to default to JVM settings.

    ciphers

    supported ciphers. Set to None (or null in config file) to default to JVM settings.

Ungrouped