package config
- Alphabetic
- Public
- Protected
Type Members
- case class ActiveContractsServiceConfig(acsIdPageSize: Int = DamlIndexConfiguration.DefaultAcsIdPageSize, acsIdFetchingParallelism: Int = DamlIndexConfiguration.DefaultAcsIdFetchingParallelism, acsContractFetchingParallelism: Int = DamlIndexConfiguration.DefaultAcsContractFetchingParallelism, acsGlobalParallelism: Int = DamlIndexConfiguration.DefaultAcsGlobalParallelism) extends Product with Serializable
Ledger api active contracts service specific configurations
Ledger api active contracts service specific configurations
- acsIdPageSize
number of contract ids fetched from the index for every round trip when serving ACS calls
- acsIdFetchingParallelism
number of contract id pages fetched in parallel when serving ACS calls
- acsContractFetchingParallelism
number of event pages fetched in parallel when serving ACS calls
- acsGlobalParallelism
maximum number of concurrent ACS queries to the index database
- sealed trait AuthServiceConfig extends AnyRef
- trait BaseParticipantConfig extends NodeConfig
Base for all participant configs - both local and remote
- 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
- trackerRetentionPeriod
maximum command tracking duration
- inputBufferSize
maximum number of commands queued for submission for each distinct set of parties
- maxCommandsInFlight
maximum number of submitted commands waiting to be completed for each distinct set of parties
- case class CommunityParticipantConfig(init: InitConfig = InitConfig(), crypto: CryptoConfig = CryptoConfig(), 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[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.
- case class EnterpriseParticipantConfig(init: InitConfig = InitConfig(), crypto: CryptoConfig = CryptoConfig(), 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[EnterpriseParticipantConfig] with Product with Serializable
- case class EnterpriseParticipantFeaturesConfig(profileDir: Option[Path] = None) extends Product with Serializable
Enterprise features configuration
Enterprise features configuration
- profileDir
path to the directory used for Daml profiling
- 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, tailingRateLimitPerSecond: NonNegativeInt = NonNegativeInt.tryCreate(DamlIndexerConfig.DefaultTailingRateLimitPerSecond), batchWithinMillis: Long = DamlIndexerConfig.DefaultBatchWithinMillis, enableCompression: Boolean = DamlIndexerConfig.DefaultEnableCompression, schemaMigrationAttempts: Int = IndexerStartupMode.DefaultSchemaMigrationAttempts, schemaMigrationAttemptBackoff: NonNegativeFiniteDuration = IndexerConfig.DefaultSchemaMigrationAttemptBackoff, postgresTcpKeepalivesIdle: Option[Int] = IndexerConfig.DefaultPostgresTcpKeepalivesIdle, postgresTcpKeepalivesInterval: Option[Int] = IndexerConfig.DefaultPostgresTcpKeepalivesInterval, postgresTcpKeepalivesCount: Option[Int] = IndexerConfig.DefaultPostgresTcpKeepalivesCount) 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.
- case class LedgerApiServerConfig(address: String = "127.0.0.1", internalPort: Option[Port] = None, maxEventCacheWeight: Long = 0L, maxContractCacheWeight: Long = 0L, maxDeduplicationDuration: NonNegativeFiniteDuration = NonNegativeFiniteDuration.ofDays(7L), tls: Option[TlsServerConfig] = None, configurationLoadTimeout: NonNegativeFiniteDuration = LedgerApiServerConfig.DefaultConfigurationLoadTimeout, eventsPageSize: Int = LedgerApiServerConfig.DefaultEventsPageSize, eventsProcessingParallelism: Int = LedgerApiServerConfig.DefaultEventsProcessingParallelism, activeContractsService: ActiveContractsServiceConfig = ActiveContractsServiceConfig(), commandService: CommandServiceConfig = CommandServiceConfig(), userManagementService: UserManagementServiceConfig = UserManagementServiceConfig(), managementServiceTimeout: NonNegativeFiniteDuration = LedgerApiServerConfig.DefaultManagementServiceTimeout, synchronousCommitMode: String = LedgerApiServerConfig.DefaultSynchronousCommitMode, 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, maxTransactionsInMemoryFanOutBufferSize: Long = LedgerApiServerConfig.DefaultMaxTransactionsInMemoryFanOutBufferSize, enableInMemoryFanOutForLedgerApi: Boolean = false, additionalMigrationPaths: Seq[String] = Seq.empty) 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
- address
ledger api server host name.
- internalPort
ledger api server port.
- maxEventCacheWeight
ledger api server event cache maximum weight (caffeine cache size)
- maxContractCacheWeight
ledger api server contract cache maximum weight (caffeine cache size)
- maxDeduplicationDuration
Max deduplication duration of the participant's ledger configuration.
- tls
tls configuration setting from ledger api server.
- configurationLoadTimeout
ledger api server startup delay if no timemodel has been sent by canton via ReadService
- eventsPageSize
database / akka page size for batching of ledger api server index ledger events queries.
- eventsProcessingParallelism
parallelism for loading and decoding ledger events
- activeContractsService
configurations pertaining to the ledger api server's "active contracts service"
- commandService
configurations pertaining to the ledger api server's "command service"
- managementServiceTimeout
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.
- synchronousCommitMode
Postgres-specific indexer synchronous commit mode (defaults to "local")
- authServices
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.
- maxContractStateCacheSize
maximum caffeine cache size of mutable state cache of contracts
- maxContractKeyStateCacheSize
maximum caffeine cache size of mutable state cache of contract keys
- maxInboundMessageSize
maximum inbound message size
- databaseConnectionTimeout
database connection timeout
- maxTransactionsInMemoryFanOutBufferSize
maximum number of transactions to hold in the "in-memory fanout" (if enabled)
- enableInMemoryFanOutForLedgerApi
enable the "in-memory fanout" performance optimization (default false; not tested for production yet)
- additionalMigrationPaths
Optional extra paths for the database migrations
- trait LocalParticipantConfig extends BaseParticipantConfig with LocalNodeConfig
Base for local participant configurations
- case class ParticipantNodeParameterConfig(adminWorkflow: AdminWorkflowConfig = AdminWorkflowConfig(), partyChangeNotification: PartyNotificationConfig = PartyNotificationConfig.ViaDomain, maxUnzippedDarSize: Int = 1024 * 1024 * 1024, contractIdSeeding: Seeding = Seeding.Strong, stores: ParticipantStoreConfig = ParticipantStoreConfig(), indexer: IndexerConfig = IndexerConfig(), transferTimeProofFreshnessProportion: NonNegativeInt = NonNegativeInt.tryCreate(3), minimumProtocolVersion: Option[ParticipantProtocolVersion] = None, uniqueContractKeys: Boolean = true, enableCausalityTracking: Boolean = false, unsafeEnableDamlLfDevVersion: Boolean = false, willCorruptYourSystemDevVersionSupport: Boolean = false, warnIfOverloadedFor: Option[NonNegativeFiniteDuration] = Some(
NonNegativeFiniteDuration.ofSeconds(20)
)) extends Product with Serializable
General participant node parameters
General participant node parameters
- adminWorkflow
Configuration options for Canton admin workflows
- partyChangeNotification
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.
- maxUnzippedDarSize
maximum allowed size of unzipped DAR files (in bytes) the participant can accept for uploading. Defaults to 1GB.
- contractIdSeeding
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. The following specialized participant node performance tuning parameters may be grouped once a more final set of configs emerges.
- indexer
parameters how the participant populates the index db used to serve the ledger api
- transferTimeProofFreshnessProportion
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.
- minimumProtocolVersion
The minimum protocol version that this participant will speak when connecting to a domain
- uniqueContractKeys
Whether the participant can connect only to a single domain that has com.digitalasset.canton.protocol.StaticDomainParameters.uniqueContractKeys set
- unsafeEnableDamlLfDevVersion
If set to true (default false), packages referring to the
dev
LF version can be used with Canton.- willCorruptYourSystemDevVersionSupport
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.
- warnIfOverloadedFor
If all incoming commands have been rejected due to PARTICIPANT_BACKPRESSURE during this interval, the participant will log a warning.
- 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, contractIdSeeding: Seeding, sequencerClient: SequencerClientConfig, indexer: IndexerConfig, transferTimeProofFreshnessProportion: NonNegativeInt, protocolConfig: ParticipantProtocolConfig, uniqueContractKeys: Boolean, enableCausalityTracking: Boolean, unsafeEnableDamlLfDevVersion: Boolean) extends LocalNodeParameters with Product with Serializable
- case class ParticipantProtocolConfig(minimumProtocolVersion: Option[ProtocolVersion], devVersionSupport: Boolean) extends Product with Serializable
- 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
- maxItemsInSqlClause
maximum number of items to place in sql "in clauses"
- maxPruningBatchSize
maximum number of events to prune from a participant at a time, used to break up batches internally
- acsPruningInterval
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.
- dbBatchAggregationConfig
Batching configuration for Db queries
- sealed trait PartyNotificationConfig extends AnyRef
How eagerly participants make the ledger api aware of added (and eventually changed or removed) parties
- case class RemoteParticipantConfig(adminApi: ClientConfig, ledgerApi: ClientConfig, crypto: CryptoConfig = CryptoConfig(), 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.
- adminApi
the configuration to connect the console to the remote admin api
- ledgerApi
the configuration to connect the console to the remote ledger api
- crypto
determines the algorithms used for signing, hashing, and encryption, used on the client side for serialization.
- token
optional bearer token to use on the ledger-api if jwt authorization is enabled
- sealed trait TestingTimeServiceConfig extends AnyRef
Optional ledger api time service configuration for demo and testing only
- 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
- enabled
whether to enable participant user management
- maxCacheSize
maximum in-memory cache size for user management state
- cacheExpiryAfterWriteInSeconds
determines the maximum delay for propagating user management state changes
- maxRightsPerUser
maximum number of rights per user
- maxUsersPageSize
maximum number of users returned
Value Members
- object AuthServiceConfig
- object IndexerConfig extends Serializable
- object LedgerApiServerConfig extends Serializable
- object PartyNotificationConfig
- object TestingTimeServiceConfig