package config
Type Members
- final case class CommunityDomainConfig(init: InitConfig = InitConfig(), auditLogging: Boolean = false, publicApi: CommunityPublicServerConfig = CommunityPublicServerConfig(), adminApi: CommunityAdminServerConfig = CommunityAdminServerConfig(), storage: CommunityStorageConfig = CommunityStorageConfig.Memory(), crypto: CryptoConfig = CryptoConfig(), topology: TopologyConfig = TopologyConfig(), domainParameters: DomainParametersConfig = DomainParametersConfig(), sequencer: Database = CommunitySequencerConfig.Database(), serviceAgreement: Option[File] = None, timeTracker: DomainTimeTrackerConfig = DomainTimeTrackerConfig(), sequencerClient: SequencerClientConfig = SequencerClientConfig(), caching: CachingConfigs = CachingConfigs()) extends DomainConfig with CommunityLocalNodeConfig with ConfigDefaults[CommunityDomainConfig] with Product with Serializable
- case class CommunityPublicServerConfig(address: String = "127.0.0.1", internalPort: Option[Port] = None, tls: Option[TlsBaseServerConfig] = None, keepAliveServer: Option[KeepAliveServerConfig] = Some(KeepAliveServerConfig()), nonceExpirationTime: NonNegativeFiniteDuration = NonNegativeFiniteDuration.ofMinutes(1), tokenExpirationTime: NonNegativeFiniteDuration = NonNegativeFiniteDuration.ofHours(1)) extends PublicServerConfig with CommunityServerConfig with Product with Serializable
- trait DomainBaseConfig extends LocalNodeConfig
- trait DomainConfig extends DomainBaseConfig
Configuration parameters for a single domain.
- case class DomainManagerConfig(init: InitConfig = InitConfig(), auditLogging: Boolean = false, adminApi: EnterpriseAdminServerConfig = EnterpriseAdminServerConfig(), storage: EnterpriseStorageConfig = EnterpriseStorageConfig.Memory(), crypto: CryptoConfig = CryptoConfig(), topology: TopologyConfig = TopologyConfig(), domainParameters: DomainParametersConfig = DomainParametersConfig(), ccf: Option[DomainCcfConfig] = None, ccfConnection: Option[Http] = None, timeTracker: DomainTimeTrackerConfig = DomainTimeTrackerConfig(), sequencerClient: SequencerClientConfig = SequencerClientConfig(), caching: CachingConfigs = CachingConfigs()) extends DomainBaseConfig with EnterpriseLocalNodeConfig with ConfigDefaults[DomainManagerConfig] with Product with Serializable
Configuration for a single domain manager with the following enterprise-specific config settings.
Configuration for a single domain manager with the following enterprise-specific config settings. The domain manager node is much more lightweight than the domain node, since it does not any embedded sequencers or mediators. It only runs the topology manager and bootstrap the domain in a distributed manner via console commands.
- case class DomainNodeParameters(tracing: TracingConfig, delayLoggingThreshold: NonNegativeFiniteDuration, loggingConfig: LoggingConfig, logQueryCost: Option[QueryCostMonitoringConfig], enableAdditionalConsistencyChecks: Boolean, enablePreviewFeatures: Boolean, processingTimeouts: ProcessingTimeout, sequencerClient: SequencerClientConfig, cachingConfigs: CachingConfigs, nonStandardConfig: Boolean, devVersionSupport: Boolean, dontWarnOnDeprecatedPV: Boolean) extends LocalNodeParameters with Product with Serializable
- final case class DomainParametersConfig(reconciliationInterval: PositiveSeconds = StaticDomainParameters.defaultReconciliationInterval, maxRatePerParticipant: NonNegativeInt = StaticDomainParameters.defaultMaxRatePerParticipant, maxInboundMessageSize: NonNegativeInt = StaticDomainParameters.defaultMaxInboundMessageSize, uniqueContractKeys: Boolean = true, requiredSigningKeySchemes: Option[NonEmpty[Set[SigningKeyScheme]]] = None, requiredEncryptionKeySchemes: Option[NonEmpty[Set[EncryptionKeyScheme]]] = None, requiredSymmetricKeySchemes: Option[NonEmpty[Set[SymmetricKeyScheme]]] = None, requiredHashAlgorithms: Option[NonEmpty[Set[HashAlgorithm]]] = None, requiredCryptoKeyFormats: Option[NonEmpty[Set[CryptoKeyFormat]]] = None, protocolVersion: DomainProtocolVersion = DomainProtocolVersion(
ProtocolVersion.latest
), willCorruptYourSystemDevVersionSupport: Boolean = false, dontWarnOnDeprecatedPV: Boolean = false) extends Product with Serializable
Configuration of domain parameters that all members connecting to a domain must adhere to.
Configuration of domain parameters that all members connecting to a domain must adhere to.
To set these parameters, you need to be familiar with the Canton architecture. See the Canton architecture overview for further information.
- 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.
- requiredSigningKeySchemes
The optional required signing key schemes that a member has to support. If none is specified, all the allowed schemes are required.
- requiredEncryptionKeySchemes
The optional required encryption key schemes that a member has to support. If none is specified, all the allowed schemes are required.
- requiredSymmetricKeySchemes
The optional required symmetric key schemes that a member has to support. If none is specified, all the allowed schemes are required.
- requiredHashAlgorithms
The optional required hash algorithms that a member has to support. If none is specified, all the allowed algorithms are required.
- requiredCryptoKeyFormats
The optional required crypto key formats that a member has to support. If none is specified, all the supported algorithms are required.
- protocolVersion
The protocol version spoken on the domain. All participants and domain nodes attempting to connect to the sequencer need to support this protocol version to connect.
- 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.
- dontWarnOnDeprecatedPV
If true, then this domain will not emit a warning when configured to use a deprecated protocol version (such as 2.0.0).
- final case class EnterpriseDomainConfig(init: InitConfig = InitConfig(), auditLogging: Boolean = false, publicApi: EnterprisePublicServerConfig = EnterprisePublicServerConfig(), adminApi: EnterpriseAdminServerConfig = EnterpriseAdminServerConfig(), storage: EnterpriseStorageConfig = EnterpriseStorageConfig.Memory(), crypto: CryptoConfig = CryptoConfig(), topology: TopologyConfig = TopologyConfig(), domainParameters: DomainParametersConfig = DomainParametersConfig(), sequencer: EnterpriseSequencerConfig = EnterpriseSequencerConfig.Database(), serviceAgreement: Option[File] = None, timeTracker: DomainTimeTrackerConfig = DomainTimeTrackerConfig(), sequencerClient: SequencerClientConfig = SequencerClientConfig(), caching: CachingConfigs = CachingConfigs()) extends DomainConfig with EnterpriseLocalNodeConfig with ConfigDefaults[EnterpriseDomainConfig] with Product with Serializable
Configuration for a single enterprise domain with the following enterprise-specific config settings:
- case class EnterprisePublicServerConfig(address: String = "127.0.0.1", internalPort: Option[Port] = None, tls: Option[TlsBaseServerConfig] = None, keepAliveServer: Option[KeepAliveServerConfig] = Some(KeepAliveServerConfig()), nonceExpirationTime: NonNegativeFiniteDuration = NonNegativeFiniteDuration.ofMinutes(1), tokenExpirationTime: NonNegativeFiniteDuration = NonNegativeFiniteDuration.ofHours(1), concurrencyLimit: Option[ConcurrencyLimitConfig] = None) extends PublicServerConfig with EnterpriseServerConfig with Product with Serializable
- trait PublicServerConfig extends ServerConfig
The public server configuration ServerConfig used by the domain.
The public server configuration ServerConfig used by the domain.
TODO(i4056): Client authentication over TLS is currently unsupported, because there is a token based protocol to authenticate clients. This may change in the future.
- final case class RemoteDomainConfig(adminApi: ClientConfig, publicApi: Grpc, crypto: CryptoConfig = CryptoConfig()) extends NodeConfig with Product with Serializable
Configuration parameters to connect to a domain running remotely
Configuration parameters to connect to a domain running remotely
- adminApi
the client settings used to connect to the admin api of the remote process.
- publicApi
these details are provided to other nodes to use for how they should connect to the sequencer if the domain node has an embedded sequencer
- crypto
determines the algorithms used for signing, hashing, and encryption, used on the client side for serialization.
- final case class RemoteDomainManagerConfig(adminApi: ClientConfig, crypto: CryptoConfig = CryptoConfig()) extends NodeConfig with Product with Serializable
Configuration parameters to connect to a domain manager running remotely
Configuration parameters to connect to a domain manager running remotely
- adminApi
the client settings used to connect to the admin api of the remote process.
- crypto
determines the algorithms used for signing, hashing, and encryption, used on the client side for serialization.
- final case class TopologyConfig(requireParticipantCertificate: Boolean = false, open: Boolean = true) extends Product with Serializable
Configuration parameters for the domain topology manager.
Configuration parameters for the domain topology manager.
- requireParticipantCertificate
requires a participant to provide a certificate of its identity before being added to the domain.
- open
if set to true (default), the domain is open. Anyone who is able to connect to a sequencer node can join. If false, new participants are only accepted if their ParticipantState has already been registered (equivalent to allow-listing).