package config

  1. Alphabetic
  1. Public
  2. Protected

Type Members

  1. case class ActiveContractsServiceConfig(acsIdPageSize: Int = DamlIndexServiceConfig.DefaultAcsIdPageSize, acsIdPageBufferSize: Int = DamlIndexServiceConfig.DefaultAcsIdPageBufferSize, acsIdFetchingParallelism: Int = DamlIndexServiceConfig.DefaultAcsIdFetchingParallelism, acsContractFetchingParallelism: Int = DamlIndexServiceConfig.DefaultAcsContractFetchingParallelism, acsGlobalParallelism: Int = DamlIndexServiceConfig.DefaultAcsGlobalParallelism) extends Product with Serializable

    Ledger api active contracts service specific configurations

    Ledger api active contracts service specific configurations


    number of contract ids fetched from the index for every round trip when serving ACS calls


    buffer size used for indexer fetching


    number of contract id pages fetched in parallel when serving ACS calls


    number of event pages fetched in parallel when serving ACS calls


    maximum number of concurrent ACS queries to the index database Note _completenessCheck performed in LedgerApiServerConfig above

  2. sealed trait AuthServiceConfig extends AnyRef
  3. trait BaseParticipantConfig extends NodeConfig

    Base for all participant configs - both local and remote

  4. case class CommandServiceConfig(trackerRetentionPeriod: NonNegativeFiniteDuration = NonNegativeFiniteDuration( CommandConfiguration.Default.trackerRetentionPeriod ), inputBufferSize: Int = CommandConfiguration.Default.inputBufferSize, maxCommandsInFlight: Int = CommandConfiguration.Default.maxCommandsInFlight) extends Product with Serializable

    Ledger api command service specific configurations

    Ledger api command service specific configurations


    maximum command tracking duration


    maximum number of commands queued for submission for each distinct set of parties


    maximum number of submitted commands waiting to be completed for each distinct set of parties

  5. case class CommunityParticipantConfig(init: ParticipantInitConfig = ParticipantInitConfig(), crypto: CommunityCryptoConfig = CommunityCryptoConfig(), ledgerApi: LedgerApiServerConfig = LedgerApiServerConfig(), adminApi: CommunityAdminServerConfig = CommunityAdminServerConfig(), storage: CommunityStorageConfig = CommunityStorageConfig.Memory(), testingTime: Option[TestingTimeServiceConfig] = None, parameters: ParticipantNodeParameterConfig = ParticipantNodeParameterConfig(), sequencerClient: SequencerClientConfig = SequencerClientConfig(), caching: CachingConfigs = CachingConfigs()) extends LocalParticipantConfig with CommunityLocalNodeConfig with ConfigDefaults[DefaultPorts, CommunityParticipantConfig] with Product with Serializable

    Configuration parameters for a single participant

    Configuration parameters for a single participant

    Please note that any client connecting to the ledger-api of the respective participant must set his GRPC max inbound message size to 2x the value defined here, as we assume that a Canton transaction of N bytes will not be bigger than 2x N on the ledger-api. Though this is just an assumption. Please also note that the participant will refuse to connect to a domain where its max inbound message size is not sufficient to guarantee the processing of all transactions.

  6. case class EnterpriseParticipantConfig(init: ParticipantInitConfig = ParticipantInitConfig(), crypto: EnterpriseCryptoConfig = EnterpriseCryptoConfig(), ledgerApi: LedgerApiServerConfig = LedgerApiServerConfig(), adminApi: EnterpriseAdminServerConfig = EnterpriseAdminServerConfig(), storage: EnterpriseStorageConfig = EnterpriseStorageConfig.Memory(), testingTime: Option[TestingTimeServiceConfig] = None, parameters: ParticipantNodeParameterConfig = ParticipantNodeParameterConfig(), sequencerClient: SequencerClientConfig = SequencerClientConfig(), caching: CachingConfigs = CachingConfigs(), replication: ReplicationConfig = ReplicationConfig(), features: EnterpriseParticipantFeaturesConfig = EnterpriseParticipantFeaturesConfig()) extends LocalParticipantConfig with EnterpriseLocalNodeConfig with ConfigDefaults[DefaultPorts, EnterpriseParticipantConfig] with Product with Serializable
  7. case class EnterpriseParticipantFeaturesConfig(profileDir: Option[Path] = None) extends Product with Serializable

    Enterprise features configuration

    Enterprise features configuration


    path to the directory used for Daml profiling

  8. case class IndexerConfig(restartDelay: NonNegativeFiniteDuration = IndexerConfig.DefaultRestartDelay, maxInputBufferSize: NonNegativeInt = NonNegativeInt.tryCreate(DamlIndexerConfig.DefaultMaxInputBufferSize), inputMappingParallelism: NonNegativeInt = NonNegativeInt.tryCreate(DamlIndexerConfig.DefaultInputMappingParallelism), batchingParallelism: NonNegativeInt = NonNegativeInt.tryCreate(DamlIndexerConfig.DefaultBatchingParallelism), ingestionParallelism: NonNegativeInt = NonNegativeInt.tryCreate(DamlIndexerConfig.DefaultIngestionParallelism), submissionBatchSize: Long = DamlIndexerConfig.DefaultSubmissionBatchSize, enableCompression: Boolean = DamlIndexerConfig.DefaultEnableCompression, schemaMigrationAttempts: Int = IndexerStartupMode.DefaultSchemaMigrationAttempts, schemaMigrationAttemptBackoff: NonNegativeFiniteDuration = IndexerConfig.DefaultSchemaMigrationAttemptBackoff, packageMetadataView: PackageMetadataViewConfig = DamlIndexerConfig.DefaultPackageMetadataViewConfig, maxOutputBatchedBufferSize: Int = DamlIndexerConfig.DefaultMaxOutputBatchedBufferSize, maxTailerBatchSize: Int = DamlIndexerConfig.DefaultMaxTailerBatchSize) extends Product with Serializable

    Ledger api indexer specific configurations

    Ledger api indexer specific configurations

    See com.daml.platform.indexer.JdbcIndexer for semantics on these configurations.

  9. case class LedgerApiServerConfig(address: String = "", internalPort: Option[Port] = None, maxEventCacheWeight: Long = 0L, maxContractCacheWeight: Long = 0L, tls: Option[TlsServerConfig] = None, configurationLoadTimeout: NonNegativeFiniteDuration = LedgerApiServerConfig.DefaultConfigurationLoadTimeout, eventsPageSize: Int = LedgerApiServerConfig.DefaultEventsPageSize, eventsProcessingParallelism: Int = LedgerApiServerConfig.DefaultEventsProcessingParallelism, bufferedStreamsPageSize: Int = DamlIndexServiceConfig.DefaultBufferedStreamsPageSize, activeContractsService: ActiveContractsServiceConfig = ActiveContractsServiceConfig(), commandService: CommandServiceConfig = CommandServiceConfig(), userManagementService: UserManagementServiceConfig = UserManagementServiceConfig(), managementServiceTimeout: NonNegativeFiniteDuration = LedgerApiServerConfig.DefaultManagementServiceTimeout, postgresDataSource: PostgresDataSourceConfigCanton = PostgresDataSourceConfigCanton(), authServices: Seq[AuthServiceConfig] = Seq.empty, keepAliveServer: Option[KeepAliveServerConfig] = Some(KeepAliveServerConfig()), maxContractStateCacheSize: Long = LedgerApiServerConfig.DefaultMaxContractStateCacheSize, maxContractKeyStateCacheSize: Long = LedgerApiServerConfig.DefaultMaxContractKeyStateCacheSize, maxInboundMessageSize: NonNegativeInt = ServerConfig.defaultMaxInboundMessageSize, databaseConnectionTimeout: NonNegativeFiniteDuration = LedgerApiServerConfig.DefaultDatabaseConnectionTimeout, apiStreamShutdownTimeout: NonNegativeFiniteDuration = LedgerApiServerConfig.DefaultApiStreamShutdownTimeout, maxTransactionsInMemoryFanOutBufferSize: Int = LedgerApiServerConfig.DefaultMaxTransactionsInMemoryFanOutBufferSize, enableInMemoryFanOutForLedgerApi: Boolean = false, additionalMigrationPaths: Seq[String] = Seq.empty, inMemoryStateUpdaterParallelism: Int = LedgerApiServerConfig.DefaultInMemoryStateUpdaterParallelism, inMemoryFanOutThreadPoolSize: Option[Int] = None, rateLimit: Option[RateLimitingConfig] = Some(DefaultRateLimit), preparePackageMetadataTimeOutWarning: NonNegativeFiniteDuration = LedgerApiServerConfig.DefaultPreparePackageMetadataTimeOutWarning, completionsMaxPayloadsPerPayloadsPage: Int = LedgerApiServerConfig.DefaultCompletionsMaxPayloadsPerPayloadsPage) extends CommunityServerConfig with Product with Serializable

    Canton configuration case class to pass-through configuration options to the ledger api server

    Canton configuration case class to pass-through configuration options to the ledger api server


    ledger api server host name.


    ledger api server port.


    ledger api server event cache maximum weight (caffeine cache size)


    ledger api server contract cache maximum weight (caffeine cache size)


    tls configuration setting from ledger api server.


    ledger api server startup delay if no timemodel has been sent by canton via ReadService


    database / akka page size for batching of ledger api server index ledger events queries.


    parallelism for loading and decoding ledger events


    configurations pertaining to the ledger api server's "active contracts service"


    configurations pertaining to the ledger api server's "command service"


    ledger api server management service maximum duration. Duration has to be finite as the ledger api server uses java.time.duration that does not support infinite scala durations.


    config for ledger api server when using postgres


    type of authentication services used by ledger-api server. If empty, we use a wildcard. Otherwise, the first service response that does not say "unauthenticated" will be used.


    keep-alive configuration for ledger api requests


    maximum caffeine cache size of mutable state cache of contracts


    maximum caffeine cache size of mutable state cache of contract keys


    maximum inbound message size on the ledger api


    database connection timeout


    maximum number of transactions to hold in the "in-memory fanout" (if enabled)


    enable the "in-memory fan-out" performance optimization (default false; not tested for production yet)


    Optional extra paths for the database migrations


    The processing parallelism of the Ledger API server in-memory state updater


    Size of the thread-pool backing the Ledger API in-memory fan-out. If not set, defaults to ((number of thread)/4 + 1)


    limit the ledger api server request rates based on system metrics

  10. case class LedgerApiServerParametersConfig(contractIdSeeding: Seeding = Seeding.Strong, indexer: IndexerConfig = IndexerConfig(), jwtTimestampLeeway: Option[JwtTimestampLeeway] = None) extends Product with Serializable

    Parameters for the ledger api server

    Parameters for the ledger api server


    test-only way to override the contract-id seeding scheme. Must be Strong in production (and Strong is the default). Only configurable to reduce the amount of secure random numbers consumed by tests and to avoid flaky timeouts during continuous integration.


    parameters how the participant populates the index db used to serve the ledger api


    leeway parameters for JWTs

  11. trait LocalParticipantConfig extends BaseParticipantConfig with LocalNodeConfig

    Base for local participant configurations

  12. case class ParticipantInitConfig(identity: Option[Identity] = Some(InitConfigBase.Identity()), ledgerApi: ParticipantLedgerApiInitConfig = ParticipantLedgerApiInitConfig(), parameters: ParticipantParametersInitConfig = ParticipantParametersInitConfig()) extends InitConfigBase with Product with Serializable

    Init configuration specific to participant nodes

    Init configuration specific to participant nodes


    ledgerApi related init config


    participant init config parameters

  13. case class ParticipantNodeParameterConfig(adminWorkflow: AdminWorkflowConfig = AdminWorkflowConfig(), partyChangeNotification: PartyNotificationConfig = PartyNotificationConfig.ViaDomain, maxUnzippedDarSize: Int = 1024 * 1024 * 1024, stores: ParticipantStoreConfig = ParticipantStoreConfig(), transferTimeProofFreshnessProportion: NonNegativeInt = NonNegativeInt.tryCreate(3), minimumProtocolVersion: Option[ParticipantProtocolVersion] = Some( ParticipantProtocolVersion( ProtocolVersion.v3 ) ), unsafeEnableDamlLfDevVersion: Boolean = false, initialProtocolVersion: ParticipantProtocolVersion = ParticipantProtocolVersion( ProtocolVersion.latest ), willCorruptYourSystemDevVersionSupport: Boolean = false, dontWarnOnDeprecatedPV: Boolean = false, warnIfOverloadedFor: Option[NonNegativeFiniteDuration] = Some( NonNegativeFiniteDuration.ofSeconds(20) ), ledgerApiServerParameters: LedgerApiServerParametersConfig = LedgerApiServerParametersConfig(), excludeInfrastructureTransactions: Boolean = true) extends Product with Serializable

    General participant node parameters

    General participant node parameters


    Configuration options for Canton admin workflows


    Determines how eagerly the participant nodes notify the ledger api of party changes. By default ensure that parties are added via at least one domain before ACKing party creation to ledger api server indexer. This not only avoids flakiness in tests, but reflects that a party is not actually usable in canton until it's available through at least one domain.


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


    Proportion of the target domain exclusivity timeout that is used as a freshness bound when requesting a time proof. Setting to 3 means we'll take a 1/3 of the target domain exclusivity timeout and potentially we reuse a recent timeout if one exists within that bound, otherwise a new time proof will be requested. Setting to zero will disable reusing recent time proofs and will instead always fetch a new proof.


    The minimum protocol version that this participant will speak when connecting to a domain


    If set to true (default false), packages referring to the dev LF version can be used with Canton.


    The initial protocol version used by the participant (default latest), e.g., used to create the initial topology transactions.


    If set to true, development protocol versions (and database schemas) will be supported. Do NOT use this in production, as it will break your system.


    If true, then this participant will not emit a warning when connecting to a sequencer using a deprecated protocol version (such as 2.0.0).


    If all incoming commands have been rejected due to PARTICIPANT_BACKPRESSURE during this interval, the participant will log a warning.


    ledger api server parameters The following specialized participant node performance tuning parameters may be grouped once a more final set of configs emerges.


    If set, infrastructure transactions (i.e. ping, bong and dar distribution) will be excluded from participant metering.

  14. case class ParticipantNodeParameters(tracing: TracingConfig, delayLoggingThreshold: NonNegativeFiniteDuration, loggingConfig: LoggingConfig, logQueryCost: Option[QueryCostMonitoringConfig], enableAdditionalConsistencyChecks: Boolean, enablePreviewFeatures: Boolean, processingTimeouts: ProcessingTimeout, nonStandardConfig: Boolean, partyChangeNotification: PartyNotificationConfig, adminWorkflow: AdminWorkflowConfig, maxUnzippedDarSize: Int, stores: ParticipantStoreConfig, cachingConfigs: CachingConfigs, sequencerClient: SequencerClientConfig, transferTimeProofFreshnessProportion: NonNegativeInt, protocolConfig: ParticipantProtocolConfig, uniqueContractKeys: Boolean, enableCausalityTracking: Boolean, unsafeEnableDamlLfDevVersion: Boolean, ledgerApiServerParameters: LedgerApiServerParametersConfig, maxDbConnections: Int, excludeInfrastructureTransactions: Boolean) extends LocalNodeParameters with Product with Serializable
  15. case class ParticipantProtocolConfig(minimumProtocolVersion: Option[ProtocolVersion], devVersionSupport: Boolean, dontWarnOnDeprecatedPV: Boolean, initialProtocolVersion: ProtocolVersion) extends Product with Serializable
  16. case class ParticipantStoreConfig(maxItemsInSqlClause: PositiveNumeric[Int] = PositiveNumeric.tryCreate(100), maxPruningBatchSize: Int = 1000, acsPruningInterval: NonNegativeFiniteDuration = NonNegativeFiniteDuration.ofSeconds(60), dbBatchAggregationConfig: BatchAggregatorConfig = BatchAggregatorConfig.Batching()) extends Product with Serializable

    Parameters for the participant node's stores

    Parameters for the participant node's stores


    maximum number of items to place in sql "in clauses"


    maximum number of events to prune from a participant at a time, used to break up batches internally


    How often to prune the ACS journal in the background. A very high interval will let the journal grow larger and eventually slow queries down. A very low interval may cause a high load on the journal table and the DB. The default is 60 seconds. A domain's reconciliation interval also limits the frequency of background pruning. Setting the pruning interval below the reconciliation interval doesn't not increase the frequency further.


    Batching configuration for Db queries

  17. sealed trait PartyNotificationConfig extends AnyRef

    How eagerly participants make the ledger api aware of added (and eventually changed or removed) parties

  18. final case class PostgresDataSourceConfigCanton(synchronousCommit: Option[String] = None, tcpKeepalivesIdle: Option[Int] = DefaultPostgresTcpKeepalivesIdle, tcpKeepalivesInterval: Option[Int] = DefaultPostgresTcpKeepalivesInterval, tcpKeepalivesCount: Option[Int] = DefaultPostgresTcpKeepalivesCount) extends Product with Serializable
  19. case class RemoteParticipantConfig(adminApi: ClientConfig, ledgerApi: ClientConfig, token: Option[String] = None) extends BaseParticipantConfig with Product with Serializable

    Configuration to connect the console to a participant running remotely.

    Configuration to connect the console to a participant running remotely.


    the configuration to connect the console to the remote admin api


    the configuration to connect the console to the remote ledger api


    optional bearer token to use on the ledger-api if jwt authorization is enabled

  20. sealed trait TestingTimeServiceConfig extends AnyRef

    Optional ledger api time service configuration for demo and testing only

  21. case class UserManagementServiceConfig(enabled: Boolean = true, maxCacheSize: Int = UserManagementConfig.DefaultMaxCacheSize, cacheExpiryAfterWriteInSeconds: Int = UserManagementConfig.DefaultCacheExpiryAfterWriteInSeconds, maxRightsPerUser: Int = UserManagementConfig.MaxRightsPerUser, maxUsersPageSize: Int = UserManagementConfig.DefaultMaxUsersPageSize) extends Product with Serializable

    Ledger api user management service specific configurations

    Ledger api user management service specific configurations


    whether to enable participant user management


    maximum in-memory cache size for user management state


    determines the maximum delay for propagating user management state changes


    maximum number of rights per user


    maximum number of users returned