Release of Daml 2.7.4

Summary

This is a maintenance release that addresses several issues.

What’s New

Fixed handling of expired gRPC deadlines on the CommandService:  If the gRPC request deadline is too low, requests can lead to errors (logged on the participant as INTERNAL) in the CommandService endpoints (e.g. submitAndWait)  and never appear as completed for the client. The workaround is to restart the participant and use a higher gRPC request deadline.

A race condition was eliminated. When a PN is being shutdown, the Ledger API can experience a race condition on the CommandService and log internal errors such as  IllegalStateException("Promise already completed.")

Reduced memory consumption due to instrumentation that could negatively impact performance.  

Default trace sampling ratio was reduced to 1% (from 100%) to avoid performance penalties under high throughput scenarios.

Installation or Download

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

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

Daml Enterprise v2.7.4

Component

File download

Docker Image

SDK

Linux
macOS
Windows

N/A

Canton for Daml Enterprise

Standalone JAR file

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

Daml Finance

GitHub Page

N/A

HTTP JSON API Service

Standalone JAR file

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

Trigger Service

Standalone JAR file

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

OAuth 2.0 middleware (Open-Source)

GitHub Page

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

Participant Query Store

Standalone JAR file

N/A

Trigger Runner

Standalone JAR file

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

Daml Script

Standalone JAR file

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


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.4-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.4-debug).