ScalarDL Configurations
This page describes the following available configurations for ScalarDL:
Ledger configurations​
You can configure several settings for the Ledger server, such as service port settings, authentication settings, and TLS settings.
auditor.cert_holder_id (Deprecated)​
- Field:
scalar.dl.ledger.auditor.cert_holder_id - Description: Auditor certificate holder ID. This field is used to identify the certificate holder for the Auditor.
- Default value:
auditor
This configuration is deprecated and will be deleted in release 5.0.0 since Ledger-Auditor authentication will use HMAC only. For more details about authentication, see the ScalarDL Authentication Guide.
auditor.cert_version (Deprecated)​
- Field:
scalar.dl.ledger.auditor.cert_version - Description: Auditor certificate version. This field specifies the version of the Auditor certificate.
- Default value:
1
This configuration is deprecated and will be deleted in release 5.0.0 since Ledger-Auditor authentication will use HMAC only. For more details about authentication, see the ScalarDL Authentication Guide.
auditor.enabled​
- Field:
scalar.dl.ledger.auditor.enabled - Description: A flag to enable Auditor. This field determines whether the Auditor is enabled.
- Default value:
false
authentication.hmac.cipher_key​
- Field:
scalar.dl.ledger.authentication.hmac.cipher_key - Description: A cipher key used to encrypt and decrypt the HMAC secret keys of client entities. This field is used to specify the cipher key for HMAC authentication.
- Default value: empty (Optional)
authentication.method​
- Field:
scalar.dl.ledger.authentication.method - Description: The authentication method for clients and Ledger servers.
digital-signatureorhmaccan be specified. - Default value:
digital-signature(Optional)
direct_asset_access.enabled​
- Field:
scalar.dl.ledger.direct_asset_access.enabled - Description: A flag to access the asset table directly without going through
asset_metadata. This field determines whether direct access to the asset table is enabled. - Default value:
false
executable_contracts​
- Field:
scalar.dl.ledger.executable_contracts - Description: Binary names of contracts that can be executed. This field specifies the binary names of executable contracts.
- Default value: empty
function.enabled​
- Field:
scalar.dl.ledger.function.enabled - Description: A flag to enable function for mutable database. This field determines whether the function for mutable database is enabled.
- Default value:
true
function.non_privileged_port_registration.enabled​
- Field:
scalar.dl.ledger.function.non_privileged_port_registration.enabled - Description: A flag to enable function registration via the non-privileged port. When set to
true, tenants can register functions through the non-privileged port. - Default value:
false
function.non_privileged_port_registration.overwrite.enabled​
- Field:
scalar.dl.ledger.function.non_privileged_port_registration.overwrite.enabled - Description: A flag to allow overwriting an existing function when registering via the non-privileged port. When set to
true, tenants can overwrite existing functions through the non-privileged port. - Default value:
false
name​
- Field:
scalar.dl.ledger.name - Description: Name of the ledger. This field specifies the name of the ledger.
- Default value:
Scalar Ledger(Optional)
namespace​
- Field:
scalar.dl.ledger.namespace - Description: Namespace of ledger tables. This field specifies the namespace of the ledger tables.
- Default value:
scalar(Optional)
proof.enabled​
- Field:
scalar.dl.ledger.proof.enabled - Description: A flag to enable asset proof that is used to verify assets. This field determines whether asset proof is enabled.
- Default value:
false
proof.private_key_path​
- Field:
scalar.dl.ledger.proof.private_key_path - Description: The path of a private key file in PEM format. This field specifies the path of the private key file in PEM format.
- Default value: empty
proof.private_key_pem​
- Field:
scalar.dl.ledger.proof.private_key_pem - Description: PEM-encoded private key data. This field specifies the PEM-encoded private key data.
- Default value: empty
server.admin_port​
- Field:
scalar.dl.ledger.server.admin_port - Description: Server admin port. This field specifies the server admin port.
- Default value:
50053
server.decommissioning_duration_secs​
- Field:
scalar.dl.ledger.server.decommissioning_duration_secs - Description: Decommissioning duration where the servers are running but returning
NOT_SERVINGto a gRPC health check request. This field specifies the decommissioning duration. - Default value:
30 seconds(Optional)
server.grpc.max_inbound_message_size​
- Field:
scalar.dl.ledger.server.grpc.max_inbound_message_size - Description: The maximum message size allowed for a single gRPC frame. This field specifies the maximum message size for a single gRPC frame.
- Default value: empty (Optional)
server.grpc.max_inbound_metadata_size​
- Field:
scalar.dl.ledger.server.grpc.max_inbound_metadata_size - Description: The maximum size of metadata allowed to be received. This field specifies the maximum size of metadata allowed to be received.
- Default value:
8 KiB(Optional)
server.port​
- Field:
scalar.dl.ledger.server.port - Description: Server port. This field specifies the server port.
- Default value:
50051
server.privileged_port​
- Field:
scalar.dl.ledger.server.privileged_port - Description: Server privileged port. This field specifies the server privileged port.
- Default value:
50052
server.prometheus_exporter_port​
- Field:
scalar.dl.ledger.server.prometheus_exporter_port - Description: Prometheus exporter port. This field specifies the Prometheus exporter port.
- Default value:
8080
server.tls.cert_chain_path​
- Field:
scalar.dl.ledger.server.tls.cert_chain_path - Description: Certificate chain file used for TLS communication. This field specifies the certificate chain file used for TLS communication.
- Default value: empty
server.tls.enabled​
- Field:
scalar.dl.ledger.server.tls.enabled - Description: A flag to enable TLS between clients and servers. This field determines whether TLS is enabled between clients and servers.
- Default value:
false
server.tls.private_key_path​
- Field:
scalar.dl.ledger.server.tls.private_key_path - Description: Private key file used for TLS communication. This field specifies the private key file used for TLS communication.
- Default value: empty
servers.authentication.hmac.secret_key​
- Field:
scalar.dl.ledger.servers.authentication.hmac.secret_key - Description: A secret key of HMAC for the authentication of messages between (Ledger and Auditor) servers. This field specifies the secret key of HMAC for authentication between Ledger and Auditor servers.
- Default value: empty
transaction_state_purge.enabled​
- Field:
scalar.dl.ledger.transaction_state_purge.enabled - Description: The master switch on the Ledger side for purging Coordinator state records. While this is set to
false, Ledger rejects transaction state purge requests so that Coordinator state records are not deleted unintentionally. This must be enabled together withscalar.dl.auditor.transaction_state_purge.enabled. Transaction state purge is supported only when Auditor is enabled. For more details, see Purge Residual Transaction State. - Default value:
false(Optional)
tx_state_management.enabled​
- Field:
scalar.dl.ledger.tx_state_management.enabled - Description: A flag to manage transaction states by Ledger. This field determines whether transaction state management is enabled by the Ledger.
- Default value:
false
Auditor configurations​
You can configure several settings for the Auditor server, such as service port settings, authentication settings, and TLS settings.
authentication.hmac.cipher_key​
- Field:
scalar.dl.auditor.authentication.hmac.cipher_key - Description: A cipher key used to encrypt and decrypt the HMAC secret keys of client entities. This is used only when
scalar.dl.auditor.authentication.methodis set tohmac. - Default value: empty (Optional)
authentication.method​
- Field:
scalar.dl.auditor.authentication.method - Description: The authentication method for clients and Auditor servers.
digital-signatureorhmaccan be specified. This must be consistent with the Ledger configuration. - Default value:
digital-signature(Optional)
authorization.credential​
- Field:
scalar.dl.auditor.authorization.credential - Description: An authorization credential (e.g., Bearer token).
- Default value: empty (Optional)
cert_holder_id (Deprecated)​
- Field:
scalar.dl.auditor.cert_holder_id - Description: The holder ID of a certificate. This field is used to identify the certificate holder for the Auditor.
- Default value:
auditor
This configuration is deprecated and will be deleted in release 5.0.0 since Ledger-Auditor authentication will use HMAC only. For more details about authentication, see the ScalarDL Authentication Guide.
cert_version (Deprecated)​
- Field:
scalar.dl.auditor.cert_version - Description: The version of the certificate. This field specifies the version of the Auditor certificate.
- Default value:
1
This configuration is deprecated and will be deleted in release 5.0.0 since Ledger-Auditor authentication will use HMAC only. For more details about authentication, see the ScalarDL Authentication Guide.
grpc.deadline_duration_millis​
- Field:
scalar.dl.auditor.grpc.deadline_duration_millis - Description: Deadline duration in milliseconds for each gRPC request.
- Default value: empty (Optional)
grpc.max_inbound_message_size​
- Field:
scalar.dl.auditor.grpc.max_inbound_message_size - Description: The maximum message size allowed for a single gRPC frame. If an inbound message larger than this limit is received, it will not be processed, and the RPC will fail with
RESOURCE_EXHAUSTED. - Default value: empty (Optional)
grpc.max_inbound_metadata_size​
- Field:
scalar.dl.auditor.grpc.max_inbound_metadata_size - Description: The maximum size of metadata allowed to be received. This is cumulative size of the entries with some overhead, as defined for HTTP/2's SETTINGS_MAX_HEADER_LIST_SIZE.
- Default value:
8 KiB(Optional)
ledger.cert_holder_id (Deprecated)​
- Field:
scalar.dl.auditor.ledger.cert_holder_id - Description: The holder ID of the certificate of Ledger. This field is used to identify the certificate holder for the Ledger.
- Default value:
ledger
This configuration is deprecated and will be deleted in release 5.0.0 since Ledger-Auditor authentication will use HMAC only. For more details about authentication, see the ScalarDL Authentication Guide.
ledger.cert_version (Deprecated)​
- Field:
scalar.dl.auditor.ledger.cert_version - Description: The version of the certificate. This field specifies the version of the Ledger certificate.
- Default value:
1
This configuration is deprecated and will be deleted in release 5.0.0 since Ledger-Auditor authentication will use HMAC only. For more details about authentication, see the ScalarDL Authentication Guide.
ledger.host​
- Field:
scalar.dl.auditor.ledger.host - Description: Hostname or IP address of the Ledger server.
- Default value:
localhost
ledger.port​
- Field:
scalar.dl.auditor.ledger.port - Description: Port number of the Ledger server.
- Default value:
50051
ledger.privileged_port​
- Field:
scalar.dl.auditor.ledger.privileged_port - Description: Privileged port number of the Ledger server.
- Default value:
50052
name​
- Field:
scalar.dl.auditor.name - Description: Name of the auditor.
- Default value:
Scalar Auditor(Optional)
namespace​
- Field:
scalar.dl.auditor.namespace - Description: Namespace of auditor tables.
- Default value:
auditor(Optional)
private_key_path​
- Field:
scalar.dl.auditor.private_key_path - Description: The path to the private key file in PEM format. This or
scalar.dl.auditor.private_key_pemis used to sign certificates with a digital signature. Whenscalar.dl.auditor.servers.authentication.hmac.secret_keyis empty, the signature is also used by Ledger to authenticate the corresponding certificate from Auditor. - Default value: empty (Optional)
private_key_pem​
- Field:
scalar.dl.auditor.private_key_pem - Description: PEM-encoded private key data. This or
scalar.dl.auditor.private_key_pathis used to sign certificates with a digital signature. Whenscalar.dl.auditor.servers.authentication.hmac.secret_keyis empty, the signature is also used by Ledger to authenticate the corresponding certificate from Auditor. - Default value: empty (Optional)
server.admin_port​
- Field:
scalar.dl.auditor.server.admin_port - Description: Server admin port.
- Default value:
40053
server.decommissioning_duration_secs​
- Field:
scalar.dl.auditor.server.decommissioning_duration_secs - Description: Decommissioning duration in seconds where the servers are running but returning
NOT_SERVINGto a gRPC health check request. - Default value:
30
server.grpc.max_inbound_message_size​
- Field:
scalar.dl.auditor.server.grpc.max_inbound_message_size - Description: The maximum message size allowed for a single gRPC frame.
- Default value: empty (Optional)
server.grpc.max_inbound_metadata_size​
- Field:
scalar.dl.auditor.server.grpc.max_inbound_metadata_size - Description: The maximum size of metadata allowed to be received.
- Default value:
8 KiB(Optional)
server.port​
- Field:
scalar.dl.auditor.server.port - Description: Server port.
- Default value:
40051
server.privileged_port​
- Field:
scalar.dl.auditor.server.privileged_port - Description: Server privileged port.
- Default value:
40052
server.prometheus_exporter_port​
- Field:
scalar.dl.auditor.server.prometheus_exporter_port - Description: Prometheus exporter port.
- Default value:
8080
server.tls.cert_chain_path​
- Field:
scalar.dl.auditor.server.tls.cert_chain_path - Description: Path to the certificate chain file used for TLS communication.
- Default value: empty
server.tls.enabled​
- Field:
scalar.dl.auditor.server.tls.enabled - Description: A flag to enable TLS communication between clients and servers.
- Default value:
false
server.tls.private_key_path​
- Field:
scalar.dl.auditor.server.tls.private_key_path - Description: Path to the private key file used for TLS communication.
- Default value: empty
servers.authentication.hmac.secret_key​
- Field:
scalar.dl.auditor.servers.authentication.hmac.secret_key - Description: A secret key of HMAC for the authentication of messages between Ledger and Auditor servers.
- Default value: empty (Optional)
tls.ca_root_cert_path​
- Field:
scalar.dl.auditor.tls.ca_root_cert_path - Description: Path to the custom CA root certificate for TLS communication.
- Default value: empty
tls.ca_root_cert_pem​
- Field:
scalar.dl.auditor.tls.ca_root_cert_pem - Description: PEM-encoded custom CA root certificate for TLS communication.
- Default value: empty
tls.enabled​
- Field:
scalar.dl.auditor.tls.enabled - Description: A flag to enable TLS communication.
- Default value:
false
tls.override_authority​
- Field:
scalar.dl.auditor.tls.override_authority - Description: Custom authority for TLS communication.
- Default value: empty
transaction_state_purge.enabled​
- Field:
scalar.dl.auditor.transaction_state_purge.enabled - Description: The master switch for purging residual transaction state (Coordinator state records and request proofs). While this is set to
false, no state is purged and manual purge requests are rejected. For more details, see Purge Residual Transaction State. - Default value:
false(Optional)
transaction_state_purge.on_completion.enabled​
- Field:
scalar.dl.auditor.transaction_state_purge.on_completion.enabled - Description: A flag to enable on-completion purge, which purges the residual state of each transaction right after the transaction completes. This is effective only when
scalar.dl.auditor.transaction_state_purge.enabledis set totrue. - Default value:
false(Optional)
transaction_state_purge.scan.interval_secs​
- Field:
scalar.dl.auditor.transaction_state_purge.scan.interval_secs - Description: The interval, in seconds, at which scheduled purge scans and purges residual transaction state in the background. If this is set to
0, scheduled purge does not run, but manual purge is still available. This is effective only whenscalar.dl.auditor.transaction_state_purge.enabledis set totrue. - Default value:
0(Optional)
transaction_state_purge.scan.limit​
- Field:
scalar.dl.auditor.transaction_state_purge.scan.limit - Description: The maximum number of records that a single scan processes during scheduled purge or manual purge.
- Default value:
1000(Optional)
Client configurations​
You can configure several settings for clients, such as Ledger server and Auditor server settings, authentication settings, and TLS settings.
auditor.authorization.credential​
- Field:
scalar.dl.client.auditor.authorization.credential - Description: An authorization credential for Auditor.
- Default value: empty (Optional)
auditor.enabled​
- Field:
scalar.dl.client.auditor.enabled - Description: A flag to enable Auditor.
- Default value:
false
auditor.host​
- Field:
scalar.dl.client.auditor.host - Description: A hostname or IP address of the Auditor.
- Default value:
localhost
auditor.linearizable_validation.contract_id​
- Field:
scalar.dl.client.auditor.linearizable_validation.contract_id - Description: The ID of the ValidateLedger contract.
- Default value:
validate-ledger
auditor.port​
- Field:
scalar.dl.client.auditor.port - Description: A port number of the Auditor.
- Default value:
40051
auditor.privileged_port​
- Field:
scalar.dl.client.auditor.privileged_port - Description: A port number of the Auditor for privileged services.
- Default value:
40052
auditor.tls.ca_root_cert_path​
- Field:
scalar.dl.client.auditor.tls.ca_root_cert_path - Description: A custom CA root certificate (file path) for TLS communication for Auditor.
- Default value: empty
auditor.tls.ca_root_cert_pem​
- Field:
scalar.dl.client.auditor.tls.ca_root_cert_pem - Description: A custom CA root certificate (PEM data) for TLS communication for Auditor.
- Default value: empty
auditor.tls.enabled​
- Field:
scalar.dl.client.auditor.tls.enabled - Description: A flag to enable TLS communication for Auditor.
- Default value:
false
auditor.tls.override_authority​
- Field:
scalar.dl.client.auditor.tls.override_authority - Description: A custom authority for TLS communication for Auditor.
- Default value: empty
authentication.method​
- Field:
scalar.dl.client.authentication.method - Description: The authentication method for clients and Ledger/Auditor servers.
digital-signatureorhmaccan be specified. This must be consistent with the Ledger/Auditor configuration. - Default value:
digital-signature(Optional)
authorization.credential​
- Field:
scalar.dl.client.authorization.credential - Description: An authorization credential for Ledger.
- Default value: empty (Optional)
cert_holder_id (Deprecated)​
- Field:
scalar.dl.client.cert_holder_id - Description: The holder ID of a certificate. This field is used to identify the certificate holder for the client.
- Default value: empty
This configuration is deprecated and will be deleted in release 5.0.0. Use scalar.dl.client.entity.id instead. If both configurations are specified, scalar.dl.client.entity.id will be used.
cert_path (Deprecated)​
- Field:
scalar.dl.client.cert_path - Description: The path of a certificate file in PEM format. This field specifies the path to the client certificate file.
- Default value: empty
This configuration is deprecated and will be deleted in release 5.0.0. Use scalar.dl.client.entity.identity.digital_signature.cert_path instead.
cert_pem (Deprecated)​
- Field:
scalar.dl.client.cert_pem - Description: PEM-encoded certificate data. This field specifies the PEM-encoded certificate data for the client.
- Default value: empty
This configuration is deprecated and will be deleted in release 5.0.0. Use scalar.dl.client.entity.identity.digital_signature.cert_pem instead.
cert_version (Deprecated)​
- Field:
scalar.dl.client.cert_version - Description: The version of the certificate. This field specifies the version of the client certificate.
- Default value:
1
This configuration is deprecated and will be deleted in release 5.0.0. Use scalar.dl.client.entity.identity.digital_signature.cert_version instead.
entity.id​
- Field:
scalar.dl.client.entity.id - Description: A unique ID of a requester (e.g., a user or a device).
- Default value: empty
entity.identity.digital_signature.cert_path​
- Field:
scalar.dl.client.entity.identity.digital_signature.cert_path - Description: The path of a certificate file in PEM format, which is required if
scalar.dl.client.entity.identity.digital_signature.cert_pemis empty. - Default value: empty
entity.identity.digital_signature.cert_pem​
- Field:
scalar.dl.client.entity.identity.digital_signature.cert_pem - Description: PEM-encoded certificate data. Required if
scalar.dl.client.entity.identity.digital_signature.cert_pathis empty. - Default value: empty
entity.identity.digital_signature.cert_version​
- Field:
scalar.dl.client.entity.identity.digital_signature.cert_version - Description: The version of the certificate.
- Default value:
1(Optional)
entity.identity.digital_signature.private_key_path​
- Field:
scalar.dl.client.entity.identity.digital_signature.private_key_path - Description: The path of a private key file in PEM format, which corresponds to the specified certificate. Required if
scalar.dl.client.entity.identity.digital_signature.private_key_pemis empty. - Default value: empty
entity.identity.digital_signature.private_key_pem​
- Field:
scalar.dl.client.entity.identity.digital_signature.private_key_pem - Description: PEM-encoded private key data. Required if
scalar.dl.client.entity.identity.digital_signature.private_key_pathis empty. - Default value: empty
entity.identity.hmac.secret_key​
- Field:
scalar.dl.client.entity.identity.hmac.secret_key - Description: A secret key for HMAC.
- Default value: empty
entity.identity.hmac.secret_key_version​
- Field:
scalar.dl.client.entity.identity.hmac.secret_key_version - Description: The version of the HMAC key.
- Default value: empty (Optional)
grpc.deadline_duration_millis​
- Field:
scalar.dl.client.grpc.deadline_duration_millis - Description: A deadline duration for each request.
- Default value: empty (Optional)
grpc.max_inbound_message_size​
- Field:
scalar.dl.client.grpc.max_inbound_message_size - Description: The maximum message size allowed for a single gRPC frame.
- Default value: empty (Optional)
grpc.max_inbound_metadata_size​
- Field:
scalar.dl.client.grpc.max_inbound_metadata_size - Description: The maximum size of metadata allowed to be received.
- Default value: empty (Optional)
mode​
- Field:
scalar.dl.client.mode - Description: A client mode (CLIENT or INTERMEDIARY).
- Default value: empty (Optional)
private_key_path (Deprecated)​
- Field:
scalar.dl.client.private_key_path - Description: The path of a private key file in PEM format. This field specifies the path to the client private key file.
- Default value: empty
This configuration is deprecated and will be deleted in release 5.0.0. Use scalar.dl.client.entity.identity.digital_signature.private_key_path instead.
private_key_pem (Deprecated)​
- Field:
scalar.dl.client.private_key_pem - Description: PEM-encoded private key data. This field specifies the PEM-encoded private key data for the client.
- Default value: empty
This configuration is deprecated and will be deleted in release 5.0.0. Use scalar.dl.client.entity.identity.digital_signature.private_key_pem instead.
server.host​
- Field:
scalar.dl.client.server.host - Description: A hostname or IP address of the server.
- Default value:
localhost
server.port​
- Field:
scalar.dl.client.server.port - Description: A port number of the server.
- Default value:
50051
server.privileged_port​
- Field:
scalar.dl.client.server.privileged_port - Description: A port number of the server for privileged services.
- Default value:
50052
tls.ca_root_cert_path​
- Field:
scalar.dl.client.tls.ca_root_cert_path - Description: A custom CA root certificate (file path) for TLS communication for Ledger.
- Default value: empty
tls.ca_root_cert_pem​
- Field:
scalar.dl.client.tls.ca_root_cert_pem - Description: A custom CA root certificate (PEM data) for TLS communication for Ledger.
- Default value: empty
tls.enabled​
- Field:
scalar.dl.client.tls.enabled - Description: A flag to enable TLS communication for Ledger.
- Default value:
false
tls.override_authority​
- Field:
scalar.dl.client.tls.override_authority - Description: A custom authority for TLS communication for Ledger.
- Default value: empty