UNPKG

@fairmint/canton-node-sdk

Version:
156 lines (141 loc) 6.12 kB
include required(file("/app/storage.conf")) canton { features { enable-preview-commands = yes enable-testing-commands = yes } parameters { manual-start = no non-standard-config = yes # Bumping because our topology state can get very large due to # a large number of participants. timeouts.processing.verify-active = 40.seconds timeouts.processing.slow-future-warn = 20.seconds } # Bumping because our topology state can get very large due to # a large number of participants. monitoring.logging.delay-logging-threshold = 40.seconds participants { participant { init = { generate-topology-transactions-and-keys = false identity.type = manual } sequencer-client { acknowledgement-interval = 10m # Use a higher number of in flight batches to increase throughput maximum-in-flight-event-batches = 50 use-new-connection-pool = false enable-amplification-improvements = true } monitoring.grpc-health-server { address = "0.0.0.0" port = 5061 } storage = ${_storage} storage { config { properties = { serverName = ${CANTON_PARTICIPANT_POSTGRES_SERVER} portNumber = ${CANTON_PARTICIPANT_POSTGRES_PORT} databaseName = ${?CANTON_PARTICIPANT_POSTGRES_DB} currentSchema = ${CANTON_PARTICIPANT_POSTGRES_SCHEMA} user = ${?CANTON_PARTICIPANT_POSTGRES_USER} password = ${?CANTON_PARTICIPANT_POSTGRES_PASSWORD} } } parameters { max-connections = 32 } } admin-api { address = "0.0.0.0" port = 5002 limits.active { "com.digitalasset.canton.admin.participant.v30.ParticipantRepairService/ExportAcsOld": 1, "com.digitalasset.canton.admin.participant.v30.PartyManagementService/ExportAcsOld": 1, "com.digitalasset.canton.admin.participant.v30.ParticipantRepairService/ImportAcsOld": 1, "com.digitalasset.canton.admin.participant.v30.ParticipantRepairService/ImportAcs": 1, "com.digitalasset.canton.topology.admin.v30.TopologyManagerReadService/ExportTopologySnapshot": 1, "com.digitalasset.canton.topology.admin.v30.TopologyManagerReadService/ExportTopologySnapshotV2": 1 } } init { ledger-api.max-deduplication-duration = 30s } ledger-api { # TODO(DACH-NY/canton-network-internal#2347) Revisit this; we want to avoid users to have to set an exp field in their tokens max-token-lifetime = Inf # Required for pruning admin-token-config.admin-claim=true address = "0.0.0.0" port = 5001 user-management-service.additional-admin-user-id = ${CANTON_PARTICIPANT_ADMIN_USER_NAME} auth-services = [{ type = jwt-jwks url = ${AUTH_JWKS_URL} # TODO(DACH-NY/canton-network-internal#502) Use different audiences per participant. target-audience = ${AUTH_TARGET_AUDIENCE} }] # We need to bump this because we run one stream per user + # polling for domain connections which can add up quite a bit # once you're around ~100 users. rate-limit.max-api-services-queue-size = 80000 interactive-submission-service { enable-verbose-hashing = true } topology-aware-package-selection { enabled = true enabled = ${?CANTON_PARTICIPANT_ENABLE_TOPOLOGY_PACKAGE_SELECTION} } } http-ledger-api { port = 7575 address = 0.0.0.0 path-prefix = ${?CANTON_PARTICIPANT_JSON_API_SERVER_PATH_PREFIX} } parameters { initial-protocol-version = 34 # tune the synchronisation protocols contract store cache caching { contract-store { maximum-size = 1000 # default 1e6 expire-after-access = 120s # default 10 minutes } } # Bump ACS pruning interval to make sure ACS snapshots are available for longer journal-garbage-collection-delay = 24h # TODO(DACH-NY/canton-network-internal#2050) Remove once ACS commitment processing does not block anymore. do-not-await-on-checking-incoming-commitments = true # trigger catchup if the acs commitment processor has more than configuration acs changes to process # this can be useful after longer periods of downtime to avoid hogging resources for acs commitment processing commitment-processor-nr-acs-changes-behind-to-trigger-catch-up = 10000 # Bump batch size to make acs imports faster batching.max-acs-import-batch-size = 10000 } # TODO(DACH-NY/canton-network-node#8331) Tune cache sizes # from https://docs.daml.com/2.8.0/canton/usermanual/performance.html#configuration # tune caching configs of the ledger api server ledger-api { index-service { max-contract-state-cache-size = 1000 # default 1e4 max-contract-key-state-cache-size = 1000 # default 1e4 # The in-memory fan-out will serve the transaction streams from memory as they are finalized, rather than # using the database. Therefore, you should choose this buffer to be large enough such that the likeliness of # applications having to stream transactions from the database is low. Generally, having a 10s buffer is # sensible. Therefore, if you expect e.g. a throughput of 20 tx/s, then setting this number to 200 is sensible. # The default setting assumes 100 tx/s. max-transactions-in-memory-fan-out-buffer-size = 200 # default 1000 } # Restrict the command submission rate (mainly for SV participants, since they are granted unlimited traffic) command-service { max-commands-in-flight = 30 # default = 256 } } topology { broadcast-batch-size = 1 validate-initial-topology-snapshot = false } } } }