> ## Documentation Index
> Fetch the complete documentation index at: https://cantonfoundation-generated-references-ledger-bindings-update.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 3.5.15

> Canton 3.5.15 release notes.

# 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](https://docs.canton.network/global-synchronizer/extension-synchronizers/bft-orderer).

### 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:

| Metrics Name                 | Type      | Description                                                                                                                        |   |
| ---------------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------- | - |
| `decisions`                  | Counter   | The number of enforcement decisions, labeled by `traffic_enforcement_outcome` and, where applicable, `traffic_enforcement_reason`. |   |
| `enforcement-check-duration` | Histogram | The time taken to perform traffic enforcement checks, including balance lookups and decision making.                               |   |
| `projection-timestamp`       | Gauge     | The timestamp of the latest event consumed by the traffic enforcement projection.                                                  |   |
| `projection-offset`          | Gauge     | The latest saved offset of the traffic enforcement projection.                                                                     |   |

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:

| Dependency               | Version |
| ------------------------ | ------- |
| Canton protocol versions | 34, 35  |

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

| Dependency   | Version                                                                                                                                                                                                                                             |
| ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Java Runtime | OpenJDK 64-Bit Server VM (build 21.0.12+2-nixos, mixed mode, sharing)                                                                                                                                                                               |
| Postgres     | Recommended: PostgreSQL 17.10 (Debian 17.10-1.pgdg13+1) – Also tested: PostgreSQL 14.24 (Debian 14.24-1.pgdg13+2), PostgreSQL 15.19 (Debian 15.19-1.pgdg13+2), PostgreSQL 16.15 (Debian 16.15-1.pgdg13+2), PostgreSQL 18.6 (Debian 18.6-1.pgdg13+2) |
