Release of Daml 2.7.6

Summary

This is a maintenance release that addresses several issues.

What’s New

There are several improvements and bug fixes in this release.  

Improved observability of ledger streams
The observability of the streams served over the ledger api has been improved in both logging and metrics.

  • Most operations related to streams lifetime are now logged at debug level rather then trace.
  • Metrics reporting number of active streams metrics.daml.lapi.streams.active are now collected always, independently of the rate limiting settings.

Setting database connection pool sizes explicitly
The sizes of the connection pools used for interactions with the database storages inside the
canton nodes are determined using a formula described in the max connection settings documentation.  In some situations it may be useful to provide different values.  So, the values can now be manually specified using the configuration settings for the read, write and ledger-api connection pools:
sizes:canton.participants.participant.storage.parameters.connection-allocation.num-reads
canton.participants.participant.storage.parameters.connection-allocation.num-writes
canton.participants.participant.storage.parameters.connection-allocation.num-ledger-api

Similar parameters exist also for other canton nodes: types:canton.sequencers.sequencer.storage.parameters.connection-allocation...
canton.mediators.mediator.storage.parameters.connection-allocation...
canton.domain-managers.domain_manager.storage.parameters.connection-allocation...

The effective connection pool sizes are reported by the canton nodes at start-up log entry:
INFO  c.d.c.r.DbStorageMulti$:participant=participant_b - Creating storage, num-reads: 5, num-writes: 4

Increase the number of parties supported
Increased party scaling.

Error handling after mediator HA failover
In a rare situation, when a mediator node went through an HA failover transition it could get into a stuck state if it also encountered a benign DB transient error at the same time.  This has been fixed.

Database connection error during validity check
Canton periodically checks the validity and health of its connection to the database. Those checks were previously competing with other database queries, sometimes leading to contention which would generate a warning but would not have any material impact.  This contention no longer occurs.

Installation or Download

The Daml 2.7.6 SDK has been released. You can install it using the command:  daml install 2.7.6.

The table below lists how you can download Daml Enterprise or individual components.

Daml Enterprise v2.7.6

Component

File download

Docker Image

SDK

Linux
macOS
Windows

digitalasset/daml-sdk:2.7.6

Canton for Daml Enterprise

Standalone JAR file

digitalasset-docker.jfrog.io/canton-enterprise:2.7.6

Daml Finance

GitHub Page

N/A

HTTP JSON API Service

Standalone JAR file

digitalasset-docker.jfrog.io/http-json:2.7.6

Trigger Service

Standalone JAR file

digitalasset-docker.jfrog.io/trigger-service:2.7.6

OAuth 2.0 middleware (Open-Source)

GitHub Page

digitalasset-docker.jfrog.io/oauth2-middleware:2.7.6

Participant Query Store

Standalone JAR file

digitalasset-docker.jfrog.io/participant-query-store:0.0.2-main.20231102.168.5111.va42f060

Trigger Runner

Standalone JAR file

digitalasset-docker.jfrog.io/trigger-runner:2.7.6

Daml Script

Standalone JAR file

digitalasset-docker.jfrog.io/daml-script:2.7.6

If you are using Oracle JVM and testing security provider signatures, you should note that the provided Canton JAR file embeds the BouncyCastle Provider as a dependency. To enable the JVM to verify the signature, you need to put the “bcprov JAR on the classpath before the Canton Standalone JAR. For example:

java -cp bcprov-jdk15on-1.70.jar:canton-with-drivers-2.7.6-all.jar com.digitalasset.canton.CantonEnterpriseApp

Note: These Docker images are designed to be minimal in size and attack surface, and are thus suitable for production use. Minimal images can sometimes make debugging difficult (e.g. no shell in the containers). For convenience, we provide “debug” versions of each of the above images, which you can access by appending “-debug” to the image tag (e.g. digitalasset-docker.jfrog.io/http-json:2.7.6-debug).