7.x to 8.x Migration Guide

This page describes how application developers and operators can prepare for the transition from CCF 7.x to 8.x.

Note

This guide is being developed ahead of 8.0. The removals described below are planned for 8.0; deprecated features remain available in 7.x.

Request Forwarding

Removal of request forwarding between nodes is planned for 8.0. Migrate applications and deployments to HTTP redirection while still running 7.x.

This requires changes to RPC interface configuration, endpoint definitions, and client redirect handling. See Migrating from forwarding to redirection for configuration examples, endpoint strategy mappings, and authentication considerations.

Ringbuffer-Era Configuration

The ringbuffer has been removed. Replace its legacy configuration names with settings for the remaining ledger and node-to-node limits:

Legacy setting

Replacement

memory.circuit_size

ledger.max_pending_append_bytes

memory.max_msg_size

ledger.max_read_size and node_to_node.max_message_size

memory.max_fragment_size

None; this setting is ignored and should be removed.

The defaults remain 16MB for pending ledger appends and 64MB for each size limit. Configure the ledger read and node-to-node message limits independently. See Configuration for the setting descriptions and Resource Usage for backlog threshold behavior.

Legacy fields remain accepted in 7.x and produce INFO deprecation notices at startup and with --check. For each limit, an explicitly supplied new setting takes precedence over its legacy alias; otherwise the alias supplies the value, falling back to the default when neither is supplied. Removal of the entire memory section is planned for 8.0. Migrate to the new settings on a 7.x release that supports them, then remove the memory section before upgrading to 8.x.

ledger.max_read_size limits ledger-entry data bytes, including entry framing. No ringbuffer response metadata allowance is subtracted, even when using the legacy alias. This increases the effective read budget by 2048 bytes compared with previous releases at the same configured size. ledger.max_transaction_size must not exceed this budget. The independent node-to-node limit includes message headers but excludes the 4-byte length prefix.