Validator configuration spans several layers: HOCON files for Canton components, Helm values for Kubernetes deployments, and environment variables for Docker Compose. This page covers the most important settings.Documentation Index
Fetch the complete documentation index at: https://cantonfoundation-issue-365-details-history.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Configuration methods by deployment
- Docker Compose — Primary config through environment variables in
.envandcompose.yaml. UseJAVA_TOOL_OPTIONSfor JVM/HOCON overrides. - Kubernetes — Primary config through Helm
values.yamlfiles. Use ConfigMaps, Secrets, and Helm value overrides for environment-specific settings.
Adding ad-hoc configuration
Every app accepts extra configuration through environment variables. All the environment variables passed to the apps, that start with ADDITIONAL_CONFIG will be processed and the configuration will be applied when the app starts.Example env: ADDITIONAL_CONFIG_EXAMPLE=“canton.example.key=value”
point to the release that these docs are built from; or inline the source code or Scaladoc to avoid confusion
Custom bootstrap scripts
Both Canton and splice support bootstrap scripts during initialization. While this usually should not be needed as the validator app takes care of initializing the node, in some scenarios it can be useful. To do so, you need to set theOVERRIDE_BOOTSTRAP_SCRIPT environment variable to the content of your bootstrap script. Note that the script must be wrapped in a main function, e.g.,
additionalEnvVars as described below.
Note that this overwrites any bootstrap scripts baked into the container image. So if you added custom functionality there, you will need to replicate this in the overwrite.
Helm charts support
The helm charts can be configured through the valueadditionalEnvVars, which passes the values as environment variables to the apps.
Participant node configuration
The participant node is the core component of your validator. Its configuration controls synchronizer connections, database settings, and API behavior.Synchronizer connection
The participant connects outbound to the Global Synchronizer sequencer over TLS on port 443. This connection is configured through the onboarding process and stored in the participant’s database after initial setup. You do not need to manually configure sequencer URLs — the onboarding process handles this. If you need to update sequencer endpoints after onboarding (for example, after a network migration), the migration procedure provides the new connection parameters.Database settings
Docker Compose uses environment variables:- Automated backups enabled
- SSL connections enforced
- Connection pooling if your application generates many concurrent connections
- At least 200 max connections for production workloads
API configuration
The participant exposes three APIs:- Ledger API (gRPC, port 5001) — Primary application interface. Supports TLS and JWT authentication.
- JSON Ledger API (port 7575) — HTTP/JSON wrapper around the Ledger API. Suitable for frontend applications.
- Admin API (port 5002) — Node administration. Must never be exposed publicly.
Validator process configuration
The validator process runs alongside the participant and manages Canton Network-specific operations.Traffic auto-top-up
The validator can automatically purchase traffic (bandwidth for submitting transactions) using Canton Coin. Configure the target throughput and minimum interval between purchases. Docker Compose:Sweep and auto-accept
The validator can automatically sweep Canton Coin to a designated wallet and auto-accept transfer offers:- Sweep — Moves CC from the validator wallet to a configured destination
- Auto-accept — Automatically accepts incoming CC transfer offers
Key management
By default, the participant stores cryptographic keys in its PostgreSQL database. For production environments, you can use an external Key Management Service (KMS) to protect keys in hardware security modules. Supported KMS providers (available in community edition):- Google Cloud KMS — Uses Cloud KMS for key storage and signing
- AWS KMS — Uses AWS KMS for key storage and signing
HTTP proxy configuration
If your network requires an HTTP proxy for outbound connections, configure it through JVM system properties: Docker Compose:Participant pruning
Over time, the participant database grows as transactions accumulate. Pruning removes old, committed transaction data that is no longer needed for active contract queries. The active contract set is preserved. Enable pruning in production to manage database growth. Configure the retention period based on your audit and compliance requirements.Environment-specific considerations
DevNet
- Authentication is optional (useful for development)
- Traffic is available through faucets
- Network resets every 3 months — do not store production data
TestNet
- Enable authentication
- Use managed database services
- Monitor traffic balance — faucet CC is limited
MainNet
- Full authentication and TLS required
- External KMS recommended for key management
- Automated monitoring and alerting required
- Canton Coin has real economic value — configure auto-top-up carefully
Next steps
Authorization Setup
Configure JWT authentication for your validator.
Upgrades
Plan for network upgrades.