Skip to content

canton v2.8.1

Choose a tag to compare

@canton-machine canton-machine released this 31 Jan 16:12
· 211 commits to main since this release
aadfd21

Release of Canton 2.8.1

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:

Dependency Version
Canton protocol versions 3, 4, 5

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

Dependency Version
Java Runtime OpenJDK 64-Bit Server VM Zulu11.66+15-CA (build 11.0.20+8-LTS, mixed mode)
Postgres Recommended: 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)
Oracle 19.20.0