Splice 0.5.13
Participant pruning for super validators is now supported and recommended. Follow the documentation for instructions on how to enable it. scan_txlog.py script has been deprecated. It will not be maintained moving…
- A newer release in the 0.5 line: Splice 0.5.18
- Newest Splice: Splice 0.9.4
Open the release notes (opens in a new tab)docs.canton.network
- SV Participant
- Participant pruning for super validators is now supported and recommended. Follow the documentation for instructions on how to enable it.
- Scan txlog script
- scan_txlog.py script has been deprecated. It will not be maintained moving forward, and will be removed completely in a future release. A user interested in understanding how to parse transactions from history is reffered to the Reading and parsing transaction history involving Token Standard contracts section.
- Canton
-
JSON Ledger API OpenAPI/AsyncAPI Specification Updates
We’ve corrected the OpenAPI and AsyncAPI specification files to properly reflect field requirements as defined in the Ledger API
.protofiles. Additionally, specification files now include the Canton version in their filenames (e.g.,openapi-3.4.11.yaml).-
Impact and Migration If you regenerate client code from these updated specifications, your code may require changes due to corrected field optionality. You have two options:
- Keep using the old specification - The JSON API server maintains backward compatibility with previous specification versions.
- Upgrade to the new specification - Update your client code to handle the corrected optional/required fields:
- Java (OpenAPI Generator): Code compiles without changes, but static analysis tools may flag nullability differences.
- TypeScript: Handle optional fields using
!or??operators as needed.
-
Impact and Migration If you regenerate client code from these updated specifications, your code may require changes due to corrected field optionality. You have two options:
- Sequencer Inspection Service A new service is available on the Admin API of the sequencer. It provides an RPC that allows to query for traffic summaries of sequenced events. Refer to the traffic documentation for more details.
-
Minor Improvements
- The
sequencer-client.enable-amplification-improvementsflag now defaults totrue - New connection pool:
- The connections gRPC channels are now correctly using the defined client keep-alive configuration. If you had disabled the new connection pools because of issues before, please reenable them and report any issues.
- The connections gRPC channels are now configured with a
maxInboundMessageSizeset toMaxIntinstead of the default 4MB (this will be improved in the future to use the dynamic synchronizer parametermaxRequestSize).
- Added
keep-alive-without-callsandidle-timeoutconfig values in the keep alive gRPC client configuration. See https://grpc.io/docs/guides/keepalive/#keepalive-configuration-specification for details. Note that whenkeep-alive-without-callsis enabled,permit-keep-alive-without-callsmust be enabled on the server side, andpermit-keep-alive-timeadjusted to allow for a potentially higher frequency of keep alives coming from the client.
- The
-
JSON Ledger API OpenAPI/AsyncAPI Specification Updates
We’ve corrected the OpenAPI and AsyncAPI specification files to properly reflect field requirements as defined in the Ledger API
keep-alive-without-calls can have a negative performance impact. Be cautious when turning it on, and in general prefer using idle-timeout when possible.
The value for
idle-timeout should be set lower than timeouts in the network stack between client and server. In particular, check the idle timeout configuration of Load Balancers. Defaults for AWS ALB, AWS NLB, GCP.
Example:
Participant config:
- Lowered the log level of certain warnings to INFO level, if validation of the confirmation request or confirmation response failed due to a race with a topology change.
-
Bugfixes
- Switched the gRPC service
SequencerService.subscribeandSequencerService.downloadTopologyStateForInitto manual control flow, so that the sequencer doesn’t crash with anOutOfMemoryErrorwhen responding to slow clients. - When the new connection pool is disabled using
sequencer-client.use-new-connection-pool = false, the health of the connection pool is no longer reported as a component in<node>.health.status(before the fix, the connection pool component would report a “Not initialized” status). - Fixed a race condition in mediator that could cause verdicts for invalid requests to not be emitted to ongoing inspection service streams. If you have disabled asynchronous processing using
canton.mediators.mediator.mediator.asynchronous-processing = false, you may remove this override now.
- Switched the gRPC service