> ## Documentation Index
> Fetch the complete documentation index at: https://docs.canton.network/llms.txt
> Use this file to discover all available pages before exploring further.

# 3.5.13

> Canton 3.5.13 release notes.

# Release of Canton 3.5.13

Canton 3.5.13 has been released on August 13, 2026.

## Summary

This is a maintenance release with a number of improvements in particular for
CantonBFT and traffic enforcement app, as well as minor improvements in various
areas.

## What’s New

### Traffic Enforcement App Improvements

* Added `reject-multi-party-submissions` to the participant's traffic enforcement configuration.
  Multi-party submissions normally bypass traffic enforcement, since TEA accounts are bound to a
  single party. Setting this to `true` rejects them instead. Disabled by default.

  ```
  canton.participants.participant1.traffic-enforcement {
    enabled = true
    reject-multi-party-submissions = true
  }
  ```
* Added `allow-submissions-on-degradation` to the participant's traffic enforcement
  configuration. When the balance can't be determined, for example during a database outage, this
  lets the submission proceed unchecked instead of failing it, logged at WARN. The submission is
  still charged, so an account without enough traffic ends up with a negative balance until it is
  topped up. Does not apply when the traffic service itself refuses the request. Disabled by
  default.
* Added `database-query-timeout` (default 1 second) and `account-lookup-timeout` (default 20
  seconds) to the internal traffic enforcement server's configuration, bounding the database read
  behind `GetAccount` and the overall call respectively. The former must be at least one
  millisecond and the latter must be strictly larger so a timed-out query still leaves room for a retry.

  ```
  canton.participants.participant1.traffic-enforcement {
    enabled = true
    allow-submissions-on-degradation = true
    traffic-enforcement-server {
      database-query-timeout = "1s"
      account-lookup-timeout = "20s"
    }
  }
  ```

### CantonBFT Improvements

* CantonBFT now deletes unnecessary messages from previous views to prevent excessive memory usage during view changes.
* CantonBFT limits standalone mode to non-standard config enabled
* Fixed relative segment latency metric
* CantonBFT now logs more information about the view change process, including the reason for the view change and the new leader.
* Logs about backpressure and P2P that didn't provide useful information for operators have been removed
  or have seen their threshold lowered to DEBUG; other log messages have been improved.
* The current epoch graph in the "BFT ordering" dashboard is now a time series rather than a mere stat.
* Batch fetching: a node that is contributing to consensus but doesn't receive a batch will try to fetch it
  from other nodes, but previously it would only consider nodes that signed an acknowledgement for the batch.
  Now it will also consider nodes that didn't, as they could have retrieved the batch from other nodes earlier
  and be able to provide it.
  This improves dissemination success chances, and thus overall ordering latency, for nodes that experience connectivity
  issues.
* Fixed a deserialization issue with retransmission request
* Remove a deprecated gRPC header previously used internally for P2P authentication
* Start fetching batches earlier, before consensus starts on the block.
* Add metric for which node we are missing batches and need to fetch
* Retrieval of batches will be attempted by multiple nodes in parallel, by default 3 (configurable)
* CantonBFT's P2P server-side now has configurable keepalive settings and defaults have been made more robust
  against network infrastructure that may drop idle connections, leaving them in a zombie state.
* Fixed a view change nested timeout cancellation issue when receiving a commit certificate
  during a view change.

#### Improved Sequencer Logging

On the sequencer, the log line mentioning all events in a block now also can contain the outcome of the event.
By setting `canton.sequencers.sequencer.parameters.enable-async-sequencer-logging = true`, the logging will be
moved to the end of the block processing, but will include the outcome of the events in the block. The default
remains `false` to preserve the current behavior.
Note that as part of this change, the sequencer-id of the traffic control metrics and of the block event processor
metrics dropped the superfluous leading "SEQ::" string.

#### Detailed Participant to Sequencer Connect Logging

More debug logging has been added to the participant connecting to a sequencer in order to debug a race condition
in which connecting appears to hang at times.

### Minor Improvements

* Fixed deserialization failure in AcsCommitmentCatchUpConfig
* Fixed an issue with `authenticationServiceChannel` to ensure it closes properly during shutdown.
* gRPC servers can now configure manual gRPC flow control window size; also, both gRPC servers and clients can
  now configure automatic gRPC flow control initial window size.
  The default is unchanged, i.e., for servers neither is set unless configured, so that the implementation default
  applies, and for clients manual flow control is enabled by default with a window size of 1 MB.
  Only CantonBFT's default has changed: implementation defaults are used also on the client side.
* LSU: On participant nodes, only expose LSU status of recent LSUs (instead of old past LSUs).

## Bugfixes

* Improved engine handing of `UnsupportedContractIdVersion`: disclosure from a future version of Canton could cause the engine to crash
  and fail submissions with an internal error. A `UnsupportedContractId` interpretation error is now returned instead.
* Preserve `traceparent` information for traces with `tracestate` information.
  When serializing a trace in W3C format, the `traceparent` information was not
  preserved which has been fixed. However, a limitation still exists whereby
  CantonBFT discards the `tracestate` information, which will be fixed in a
  future release.

## 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.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) |
