Skip to main content

Release of Canton 3.5.15

Canton 3.5.15 has been released on August 27, 2026.

Summary

This is a release that officially marks CantonBFT as GA for private synchronizers. It contains a number of improvements for CantonBFT, traffic enforcement app and resource management.

CantonBFT GA

CantonBFT is now GA for private synchronizers, and it is currently undergoing Canton Network production testing as part of the roadmap to Global Synchronizer adoption. CantonBFT, formerly known as DA BFT, is a new tailor-made BFT ordering service for Canton. CantonBFT replaces the current single-leader CometBFT ordering service on the Global Synchronizer with a parallel, multi-leader consensus protocol, enabling significantly higher transaction throughput and better availability, especially in the presence of slow or faulty peers. CantonBFT draws inspiration from two recent research projects. From Narwhal, CantonBFT decouples data dissemination from data ordering to eliminate the bottleneck of sharing data on the consensus (Byzantine agreement) critical path. From ISS, CantonBFT divides block ordering into epochs, in which each eligible leader concurrently leads an independent instance of a BFT ordering algorithm (e.g., a PBFT variant), which load balances the overhead associated with performing the leader role (compared to all other followers). More information about the bft orderer architecture can be found in the docs.

Traffic Enforcement App Improvements

Added tracing and metrics for the Traffic Enforcement App performing local traffic accounting on validator nodes. Trace context now propagates across the in-process traffic service. Enforcement decisions emit TrafficEnforcementBackend.validateTraffic spans with outcome and optional reason attributes, while applied projection deltas emit TeaProjectionHandler.applyDelta spans with event attributes. New metrics: All metrics are prefixed by daml.participant.traffic-enforcement..

Resource management

  • Fixed shutdown of subscription queue when client is cancelled or disconnected
  • Fixed an issue with the P2P grpc connection channel to ensure it closes properly during shutdown.

CantonBFT Improvements

  • Fixed an issue with the P2P grpc connection channel to ensure it closes properly during shutdown.
  • Added metrics about how much time batch fetches take and to count batch fetch timeouts, in both cases labelled by counterparty node.
  • Added support for flushing a node’s segment once it sees that a quorum of other segments have completed.
  • Added metric to track the rate of flushed blocks in the local node’s segments

Minor Improvements

  • Fixed cryptographic metrics related to signing and decryption that were not being reported correctly.
  • The JSON Ledger API now accepts traceparent and tracestate request header names case-insensitively, in compliance with the specification.
  • Updated Docker base image to 1.0.13, which updates gRPC health probe to v0.4.55.

Compatibility

The following Canton protocol versions are supported: Canton has been tested against the following versions of its dependencies: