Skip to content
CCPEDIAby Unity Nodes
ReleasesCanton 2.8.1

Canton 2.8.1

This is a maintenance release of Canton including reliability fixes and user experience improvements. Users of the Fabric driver are encouraged to upgrade at their disposal.

Canton 2.8.1 has been released on January 31, 2024. You can download the Daml Open Source edition from the Daml Connect Github Release Section. The Enterprise edition is available on Artifactory. Please also consult the full documentation of this release.

Summary

This is a maintenance release of Canton including reliability fixes and user experience improvements. Users of the Fabric driver are encouraged to upgrade at their disposal.

What’s New

Minor Improvements

Improved reference configuration example

We have reworked the reference configuration example. The examples/03_advanced_configuration example has been replaced by a set of reference configuration files which can be found in the config directory. While the previous example contained pieces which could be assembled into a full configuration, the new examples now contain the full configuration which can be simplified by removing parts which are not needed. The installation guide <https://docs.daml.com/canton/usermanual/installation.html>_ has been updated accordingly.

Improved Party Replication Macros

The enterprise version now supports replicating a party from one participant node to another for either migration or to have multiple participants hosting the same party. Please consult the documentation <https://docs.daml.com/2.9.0/canton/usermanual/identity_management.html#replicate-party-to-another-participant-node>_ on how to use this feature.

Reduced Background Journal Cleaning Load

We have improved the background journal cleaning to produce less load on the database by using smaller transactions to clean up the journal.

Executor Service Metrics removed

The metrics for the execution services have been removed:

  • daml.executor.runtime.completed*
  • daml.executor.runtime.duration*
  • daml.executor.runtime.idle*
  • daml.executor.runtime.running*
  • daml.executor.runtime.submitted*
  • daml_executor_pool_size
  • daml_executor_pool_core
  • daml_executor_pool_max
  • daml_executor_pool_largest
  • daml_executor_threads_active
  • daml_executor_threads_running
  • daml_executor_tasks_queued
  • daml_executor_tasks_executing_queued
  • daml_executor_tasks_stolen
  • daml_executor_tasks_submitted
  • daml_executor_tasks_completed
  • daml_executor_tasks_queue_remaining

Bugfixes

(24-001, Major): Fabric Block Sequencer may deadlock when catching up

Issue Description

Fabric Ledger block processing runs into an unintended shutdown and fails to process blocks when the in-memory blocks exceeds 5000. This is caused when catching up after downtime and the Fabric Ledger size has increased substantially in the meantime.

Affected Deployments

Fabric Sequencer Node

Affected Versions

2.3 - 2.7 and 2.8.0

Impact

The sequencer stops feeding new blocks.

Symptom

Participant gets stuck in an old state and does not visibly catch up against a Fabric Ledger. Therefore, a domains.reconnect call on the participant may appear as if it is hanging.

On the sequencer node, each processed message is logged using Observed Send with messageId including a timestamp. Once the emission of these log lines stops, the sequencer is stuck.

Workaround

Restart the sequencer node if it is stuck.

Likeliness

Rarely, only occurs when catching up to a Fabric Ledger that the sequencer node has been an active part of before.

Recommendation

Upgrade to 2.8.1 at your convenience.

Compatibility

The following Canton protocol versions are supported:

DependencyVersion
Canton protocol versions3, 4, 5

Canton has been tested against the following versions of its dependencies:

DependencyVersion
Java RuntimeOpenJDK 64-Bit Server VM Zulu11.66+15-CA (build 11.0.20+8-LTS, mixed mode)
PostgresRecommended: PostgreSQL 12.17 (Debian 12.17-1.pgdg120+1) – Also tested: PostgreSQL 11.16 (Debian 11.16-1.pgdg90+1), PostgreSQL 13.13 (Debian 13.13-1.pgdg120+1), PostgreSQL 14.10 (Debian 14.10-1.pgdg120+1), PostgreSQL 15.5 (Debian 15.5-1.pgdg120+1)
Oracle19.20.0