Skip to content
Documentation/canton-network-docs/Release NotesCantonView on canton-network-docs
canton-network-docs/Release NotesCanton

3.5.12

Release of Canton 3.5.12

Canton 3.5.12 has been released on August 07, 2026.

Summary

This is a maintenance release that ships improvements for CantonBFT and the traffic enforcement app, as well as improving the mitigation for a critical fix shipped with 3.4.11.

What’s New

Traffic Enforcement App

  • This release reworks and improves the way local traffic accounts on the participant are updated. In particular the par_traffic_enforcement_event is dropped and re-created from scratch. Events were never exposed through the API so this will only affect users who have been accessing the database directly. Importantly, the traffic balances are not affected by this change and account balance continuity is preserved, and the API for querying traffic balances remains unchanged.
  • Various bug fixes in the in-memory implementation of the traffic accounting

CantonBFT Improvements

  • Upon completing the locally-led segment in an epoch, CantonBFT nodes now dynamically increase the rate of retransmission requests to decrease the time it takes to retrieve any missing messages from other peers’ segments.
  • Added a new metric relative-segment-latency that records the rate and latency it takes to complete a segment after the segment led by this node completed.
  • Lower log level of dissemination: some batch dissemination logs in CantonBFT were logged at WARN level, which is too high because they don’t imply abnormal conditions nor non-compliant behavior. This change lowers their log level to INFO.

Bugfixes

(26-005, Critical): LSU: Cancelled LSU leftover state prevents PN startup after a successful LSU

A mitigation of this bug has already been shipped in 3.4.11, this patch release improves the early fix.

Issue Description

Cancelled LSU left stale state that combined with a subsequent successful LSU state would prevent a participant node from starting up due to it erroneously recognizing the state mixture as an incomplete LSU and failing to complete it.

Affected Deployments

Participant nodes

Affected Versions

All versions before 3.5.11

Impact

Participants will not start up if restarted for any reason

Symptom

Participant node does not start with a log message: Attempting to run Startup participant node failed with Unable to finish upgrade ...

Workaround

Do not restart a PN before upgrading to a non-affected version. For the cancelled DevNet LSU to the physical synchronizer id ::35-4 the issue could be mitigated by running a database query:
update par_synchronizer_connection_configs
set
  status = 'I'
where
  physical_synchronizer_id = 'global-domain::1220be58c29e65de40bf273be1dc2b266d43a9a002ea5b18955aeef7aac881bb471a::35-4';

Likeliness

The issue happens on a restart of the participant node, regardless of the restart cause, including normal operational procedures.

Recommendation

Upgrade to 3.5.11

Compatibility

The following Canton protocol versions are supported:
| | | |
DependencyVersion
Canton protocol versions34, 35
Canton has been tested against the following versions of its dependencies:
| | | | | |
DependencyVersion
Java RuntimeOpenJDK 64-Bit Server VM (build 21.0.12+2-nixos, mixed mode, sharing)
PostgresRecommended: PostgreSQL 17.10 (Debian 17.10-1.pgdg13+1) – Also tested: PostgreSQL 14.23 (Debian 14.23-1.pgdg13+1), PostgreSQL 15.18 (Debian 15.18-1.pgdg13+1), PostgreSQL 16.14 (Debian 16.14-1.pgdg13+1), PostgreSQL 18.4 (Debian 18.4-1.pgdg13+1)