Packages

package config

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. Protected

Type Members

  1. trait BaseParticipantConfig extends NodeConfig with Product with Serializable

    Base for all participant configs - both local and remote

  2. final case class CantonEngineConfig(enableEngineStackTraces: Boolean = false, iterationsBetweenInterruptions: Long = 10000, submissionPhaseLogging: EngineLoggingConfig = EngineLoggingConfig(enabled = true), validationPhaseLogging: EngineLoggingConfig = EngineLoggingConfig(enabled = false), enableAdditionalConsistencyChecks: Boolean = false) extends Product with Serializable

    Configure the behaviour of the Daml Engine

    Configure the behaviour of the Daml Engine

    enableEngineStackTraces

    If true, DAMLe stack traces will be enabled

    iterationsBetweenInterruptions

    Number of engine iterations between forced interruptions (outside needs of information).

    submissionPhaseLogging

    Configuration for logging in phase one (command submission) of canton transaction processing

    validationPhaseLogging

    Configuration for logging in phase three (transaction validation) of canton transaction processing

    enableAdditionalConsistencyChecks

    When true, extra consistency checks are performed for transactions, ensuring that serialization/deserialization and enrichment/impoverishment processes remain idempotent on transaction outputs generated by the engine. Requires canton.parameters.non-standard-config = true

  3. final case class ContractLoaderConfig(maxQueueSize: PositiveInt = ContractLoaderConfig.defaultMaxQueueSize, maxBatchSize: PositiveInt = ContractLoaderConfig.defaultMaxBatchSize, parallelism: PositiveInt = ContractLoaderConfig.defaultMaxParallelism) extends Product with Serializable

    Parameters to control batch loading during phase 1 / interpretation

    Parameters to control batch loading during phase 1 / interpretation

    maxQueueSize

    how many parallel lookups can be queued before we start to backpressure loading

    maxBatchSize

    how many contract lookups to batch together

    parallelism

    how many parallel contract lookup requests should be sent to the db when prepopulating the cache

  4. final case class DeclarativeConnectionConfig(synchronizerAlias: String, connections: NonEmpty[Map[String, DeclarativeSequencerConnectionConfig]], manualConnect: Boolean = false, priority: Int = 0, initializeFromTrustedSynchronizer: Boolean = false, trustThreshold: PositiveInt = PositiveInt.one) extends UniformCantonConfigValidation with Product with Serializable

    Declarative synchronizer connection configuration

    Declarative synchronizer connection configuration

    synchronizerAlias

    the alias to refer to this connection

    connections

    the list of sequencers with endpoints

    manualConnect

    if true then the connection should be manual and require explicitly operator action

    priority

    sets the priority of the connection. if a transaction can be sent to several synchronizers, it will use the one with the highest priority

    initializeFromTrustedSynchronizer

    if true then the participant assumes that the synchronizer trust certificate of the participant is already issued

    trustThreshold

    from how many sequencers does the node have to receive a notification to trust that it was really observed

  5. final case class DeclarativeDarConfig(location: String, requestHeaders: Map[String, String] = Map(), expectedMainPackage: Option[String] = None) extends UniformCantonConfigValidation with Product with Serializable

    Declarative dar definition

    Declarative dar definition

    location

    the path (or URL) to the dar or dar directory

    requestHeaders

    optionally add additional request headers to download the dar

    expectedMainPackage

    which package id should be expected as the main package

  6. final case class DeclarativeIdpConfig(identityProviderId: String, isDeactivated: Boolean = false, jwksUrl: String, issuer: String, audience: Option[String] = None) extends UniformCantonConfigValidation with Product with Serializable

    Declarative Idp config

  7. final case class DeclarativeParticipantConfig(checkSelfConsistency: Boolean = true, fetchedDarDirectory: File = new File("fetched-dars"), dars: Seq[DeclarativeDarConfig] = Seq(), parties: Seq[DeclarativePartyConfig] = Seq(), removeParties: Boolean = false, idps: Seq[DeclarativeIdpConfig] = Seq(), removeIdps: Boolean = false, users: Seq[DeclarativeUserConfig] = Seq(), removeUsers: Boolean = false, connections: Seq[DeclarativeConnectionConfig] = Seq(), removeConnections: Boolean = false) extends UniformCantonConfigValidation with Product with Serializable

    Declarative participant config

    Declarative participant config

    checkSelfConsistency

    if set to true (default), then after every sync operation we'll check again if it really succeeded

    fetchedDarDirectory

    temporary directory to store the dars to

    dars

    which dars should be uploaded

    parties

    which parties should be allocated

    removeParties

    if true, then any "excess party" found on the node will be deleted

    idps

    which identity providers should be allocated

    removeIdps

    if true, any excess idp found on the node will be deleted

    users

    which users should be allocated

    removeUsers

    if true, then any "excess user" found on the node will be deleted

    connections

    which connections should be configured

    removeConnections

    if true, then any excess connection will be disabled

  8. final case class DeclarativePartyConfig(party: String, synchronizers: Seq[String] = Seq.empty, permission: ParticipantPermissionConfig = ParticipantPermissionConfig.Submission) extends UniformCantonConfigValidation with Product with Serializable

    Declarative party definition

    Declarative party definition

    synchronizers

    if not empty, the party will be added to the selected synchronizers only, refered to by alias

    permission

    the permission of the hosting participant

  9. final case class DeclarativeSequencerConnectionConfig(endpoints: NonEmpty[Seq[Endpoint]], transportSecurity: Boolean = false, customTrustCertificates: Option[File] = None)(customTrustCertificatesFromNode: Option[ByteString] = None) extends UniformCantonConfigValidation with Product with Serializable

    Declaratively define sequencer endpoints

    Declaratively define sequencer endpoints

    endpoints

    the list of endpoints for the given sequencer. all endpoints must be of the same sequencer (same-id)

    transportSecurity

    if true then TLS will be used

    customTrustCertificates

    if the TLS certificate used cannot be validated against the JVMs trust store, then a trust store can be provided

  10. final case class DeclarativeUserConfig(user: String, primaryParty: Option[String] = None, isDeactivated: Boolean = false, annotations: Map[String, String] = Map.empty, identityProviderId: String = "", rights: DeclarativeUserRightsConfig = DeclarativeUserRightsConfig())(resourceVersion: String = "") extends UniformCantonConfigValidation with Product with Serializable

    Declaratively control users

    Declaratively control users

    user

    the user id

    primaryParty

    the primary party that should be used for the user

    isDeactivated

    if true then the user is deactivatedd

    annotations

    a property bag of annotations that can be stored alongside the user

    identityProviderId

    the idp of the given user

    rights

    the rights granted to the party

  11. final case class DeclarativeUserRightsConfig(actAs: Set[String] = Set(), readAs: Set[String] = Set(), readAsAnyParty: Boolean = false, participantAdmin: Boolean = false, identityProviderAdmin: Boolean = false) extends UniformCantonConfigValidation with Product with Serializable

    Declarative user rights definition

    Declarative user rights definition

    actAs

    the name of the parties the user can act as. parties must exist. if they don't contain a namespace, then the participants namespace will be used

    readAs

    the name of the parties the user can read as.

    readAsAnyParty

    if true then the user can read as any party

    participantAdmin

    if true then the user can act as a participant admin

    identityProviderAdmin

    if true, then the user can act as an identity provider admin

  12. final case class EnterpriseParticipantFeaturesConfig(profileDir: Option[Path] = None) extends PredicatedCantonConfigValidation with Product with Serializable

    Enterprise features configuration

    Enterprise features configuration

    profileDir

    path to the directory used for Daml profiling

  13. final case class JournalPruningConfig(targetBatchSize: PositiveInt = JournalPruningConfig.DefaultTargetBatchSize, initialInterval: NonNegativeFiniteDuration = JournalPruningConfig.DefaultInitialInterval, maxBuckets: PositiveInt = JournalPruningConfig.DefaultMaxBuckets) extends UniformCantonConfigValidation with Product with Serializable

    Control background journal pruning

    Control background journal pruning

    During processing, Canton will keep some data in journals (contract keys, active contracts). These journals can be pruned in order to reclaim space.

    Background pruning is initiated by the ACS commitment processor once a commitment interval has been completed. Therefore, pruning can't run more frequently than the reconciliation interval of a synchronizer.

    targetBatchSize

    The target batch size for pruning. The actual batch size will evolve under load.

    initialInterval

    The initial interval size for pruning

    maxBuckets

    The maximum number of buckets used for any pruning interval

  14. final case class LedgerApiServerConfig(address: String = "127.0.0.1", internalPort: Option[Port] = None, tls: Option[TlsServerConfig] = None, authServices: Seq[AuthServiceConfig] = Seq.empty, adminToken: Option[String] = None, jwtTimestampLeeway: Option[JwtTimestampLeeway] = None, keepAliveServer: Option[LedgerApiKeepAliveServerConfig] = Some( LedgerApiKeepAliveServerConfig() ), maxInboundMessageSize: NonNegativeInt = ServerConfig.defaultMaxInboundMessageSize, rateLimit: Option[RateLimitingConfig] = Some(DefaultRateLimit), postgresDataSource: PostgresDataSourceConfig = PostgresDataSourceConfig(), databaseConnectionTimeout: NonNegativeFiniteDuration = LedgerApiServerConfig.DefaultDatabaseConnectionTimeout, indexService: IndexServiceConfig = LedgerIndexServiceConfig(), commandService: CommandServiceConfig = CommandServiceConfig(), userManagementService: UserManagementServiceConfig = UserManagementServiceConfig(), partyManagementService: PartyManagementServiceConfig = PartyManagementServiceConfig(), managementServiceTimeout: NonNegativeFiniteDuration = LedgerApiServerConfig.DefaultManagementServiceTimeout, enableCommandInspection: Boolean = true, identityProviderManagement: IdentityProviderManagementConfig = LedgerApiServerConfig.DefaultIdentityProviderManagementConfig, interactiveSubmissionService: InteractiveSubmissionServiceConfig = InteractiveSubmissionServiceConfig.Default, topologyAwarePackageSelection: TopologyAwarePackageSelectionConfig = TopologyAwarePackageSelectionConfig.Default) extends ServerConfig 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.

    tls

    tls configuration setting from ledger api server.

    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.

    adminToken

    token that should grant admin access when presented by a client on the ledger api

    jwtTimestampLeeway

    leeway parameters for JWTs

    keepAliveServer

    keep-alive configuration for ledger api requests

    maxInboundMessageSize

    maximum inbound message size on the ledger api

    rateLimit

    limit the ledger api server request rates based on system metrics

    postgresDataSource

    config for ledger api server when using postgres

    databaseConnectionTimeout

    database connection timeout

    indexService

    configurations pertaining to the ledger api server's internal "index service"

    commandService

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

    userManagementService

    configurations pertaining to the ledger api server's "user management service"

    partyManagementService

    configurations pertaining to the ledger api server's "party management 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.

    enableCommandInspection

    enable command inspection service over the ledger api

    identityProviderManagement

    configurations pertaining to the ledger api server's "identity provider management service"

  15. final case class LedgerApiServerParametersConfig(contractIdSeeding: Seeding = Seeding.Strong, indexer: IndexerConfig = IndexerConfig(), tokenExpiryGracePeriodForStreams: Option[NonNegativeDuration] = None, contractLoader: ContractLoaderConfig = ContractLoaderConfig()) extends Product with Serializable

    Parameters for the ledger api server

    Parameters for the ledger api server

    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.

    indexer

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

    tokenExpiryGracePeriodForStreams

    grace periods for streams that postpone termination beyond the JWT expiry

  16. final case class ParticipantInitConfig(identity: IdentityConfig = IdentityConfig.Auto(), ledgerApi: ParticipantLedgerApiInitConfig = ParticipantLedgerApiInitConfig(), generateIntermediateKey: Boolean = false, generateTopologyTransactionsAndKeys: Boolean = true) extends InitConfigBase with UniformCantonConfigValidation with Product with Serializable

    Init configuration specific to participant nodes

    Init configuration specific to participant nodes

    ledgerApi

    ledgerApi related init config

  17. final case class ParticipantNodeConfig(init: ParticipantInitConfig = ParticipantInitConfig(), crypto: CryptoConfig = CryptoConfig(), ledgerApi: LedgerApiServerConfig = LedgerApiServerConfig(), httpLedgerApi: Option[JsonApiConfig] = None, adminApi: AdminServerConfig = AdminServerConfig(), storage: StorageConfig = StorageConfig.Memory(), testingTime: Option[TestingTimeServiceConfig] = None, parameters: ParticipantNodeParameterConfig = ParticipantNodeParameterConfig(), sequencerClient: SequencerClientConfig = SequencerClientConfig(), replication: Option[ReplicationConfig] = None, features: EnterpriseParticipantFeaturesConfig = EnterpriseParticipantFeaturesConfig.default, monitoring: NodeMonitoringConfig = NodeMonitoringConfig(), topology: TopologyConfig = TopologyConfig(), alphaDynamic: DeclarativeParticipantConfig = DeclarativeParticipantConfig()) extends LocalNodeConfig with BaseParticipantConfig with ConfigDefaults[DefaultPorts, ParticipantNodeConfig] with UniformCantonConfigValidation 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 synchronizer where its max inbound message size is not sufficient to guarantee the processing of all transactions.

    init

    determines how this node is initialized

    crypto

    determines the algorithms used for signing, hashing, and encryption

    ledgerApi

    parameters of the interfaces that applications use to change and query the ledger

    httpLedgerApi

    parameters for configuring the interaction with ledger via the HTTP JSON API. Configuring this key will enable the HTTP JSON API server.

    adminApi

    parameters of the interface used to administrate the participant

    storage

    determines how the participant stores the ledger

    testingTime

    determines whether and how to support the ledger API time service

    parameters

    general participant node parameters

  18. final case class ParticipantNodeParameterConfig(adminWorkflow: AdminWorkflowConfig = AdminWorkflowConfig(), maxUnzippedDarSize: Int = 1024 * 1024 * 1024, batching: BatchingConfig = BatchingConfig(), caching: CachingConfigs = CachingConfigs(), stores: ParticipantStoreConfig = ParticipantStoreConfig(), reassignmentTimeProofFreshnessProportion: NonNegativeInt = NonNegativeInt.tryCreate(3), minimumProtocolVersion: Option[ParticipantProtocolVersion] = Some( ParticipantProtocolVersion(ProtocolVersion.v33) ), initialProtocolVersion: ParticipantProtocolVersion = ParticipantProtocolVersion( ProtocolVersion.latest ), sessionSigningKeys: SessionSigningKeysConfig = SessionSigningKeysConfig.disabled, alphaVersionSupport: Boolean = false, betaVersionSupport: Boolean = false, dontWarnOnDeprecatedPV: Boolean = false, warnIfOverloadedFor: Option[NonNegativeFiniteDuration] = Some( config.NonNegativeFiniteDuration.ofSeconds(20) ), ledgerApiServer: LedgerApiServerParametersConfig = LedgerApiServerParametersConfig(), engine: CantonEngineConfig = CantonEngineConfig(), journalGarbageCollectionDelay: NonNegativeFiniteDuration = config.NonNegativeFiniteDuration.ofSeconds(0), disableUpgradeValidation: Boolean = false, watchdog: Option[WatchdogConfig] = None, packageMetadataView: PackageMetadataViewConfig = PackageMetadataViewConfig(), commandProgressTracker: CommandProgressTrackerConfig = CommandProgressTrackerConfig(), unsafeOnlinePartyReplication: Option[UnsafeOnlinePartyReplicationConfig] = None) extends LocalNodeParametersConfig with UniformCantonConfigValidation with Product with Serializable

    General participant node parameters

    General participant node parameters

    adminWorkflow

    Configuration options for Canton admin workflows

    maxUnzippedDarSize

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

    batching

    Various parameters that control batching related behavior

    reassignmentTimeProofFreshnessProportion

    Proportion of the target synchronizer 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 synchronizer 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 synchronizer

    initialProtocolVersion

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

    alphaVersionSupport

    If set to true, will allow the participant to connect to a synchronizer with dev protocol version and will turn on unsafe Daml LF versions.

    dontWarnOnDeprecatedPV

    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).

    warnIfOverloadedFor

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

    ledgerApiServer

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

    journalGarbageCollectionDelay

    How much time to delay the canton journal garbage collection

    disableUpgradeValidation

    Disable the package upgrade verification on DAR upload

    packageMetadataView

    Initialization parameters for the package metadata in-memory store.

  19. sealed trait ParticipantPermissionConfig extends UniformCantonConfigValidation
  20. final case class ParticipantProtocolConfig(minimumProtocolVersion: Option[ProtocolVersion], sessionSigningKeys: SessionSigningKeysConfig, alphaVersionSupport: Boolean, betaVersionSupport: Boolean, dontWarnOnDeprecatedPV: Boolean) extends ProtocolConfig with Product with Serializable
  21. final case class ParticipantStoreConfig(pruningMetricUpdateInterval: Option[PositiveDurationSeconds] = config.PositiveDurationSeconds.ofHours(1L).some, journalPruning: JournalPruningConfig = JournalPruningConfig()) extends UniformCantonConfigValidation with Product with Serializable

    Parameters for the participant node's stores

    Parameters for the participant node's stores

    pruningMetricUpdateInterval

    How frequently to update the max-event-age pruning progress metric in the background. A setting of None disables background metric updating.

  22. final case class RemoteParticipantConfig(adminApi: FullClientConfig, ledgerApi: FullClientConfig, token: Option[String] = None) extends BaseParticipantConfig with UniformCantonConfigValidation 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

    token

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

  23. sealed trait TestingTimeServiceConfig extends UniformCantonConfigValidation

    Optional ledger api time service configuration for demo and testing only

  24. final case class UnsafeOnlinePartyReplicationConfig(pauseSynchronizerIndexingDuringPartyReplication: Boolean = false) extends UniformCantonConfigValidation with Product with Serializable

    Parameters for the Online Party Replication (OPR) preview feature (unsafe for production)

    Parameters for the Online Party Replication (OPR) preview feature (unsafe for production)

    pauseSynchronizerIndexingDuringPartyReplication

    whether to pause synchronizer indexing during party replication

Ungrouped