Skip to content

Commit fea0caf

Browse files
Copiloteddyashton
andauthored
Add 6.x to 7.0 migration guide for snapshot-based upgrades (#7654)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: eddyashton <6000239+eddyashton@users.noreply.github.com> Co-authored-by: Eddy Ashton <edashton@microsoft.com>
1 parent b6cbf59 commit fea0caf

2 files changed

Lines changed: 48 additions & 0 deletions

File tree

doc/build_apps/index.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,13 @@ These endpoints can read or mutate the state of a unique :ref:`build_apps/kv/ind
112112

113113
---
114114

115+
:fa:`arrow-right` :doc:`migration_6_x_to_7_0`
116+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
117+
118+
Migrate from CCF 6.x to 7.0.
119+
120+
---
121+
115122

116123
.. toctree::
117124
:hidden:
@@ -131,3 +138,4 @@ These endpoints can read or mutate the state of a unique :ref:`build_apps/kv/ind
131138
release_policy
132139
fwd_to_redirect
133140
migration_5_x_to_6_0
141+
migration_6_x_to_7_0
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
6.x to 7.0 Migration Guide
2+
==========================
3+
4+
This page outlines the major changes introduced in 7.0 and how developers and operators should update their applications and deployments when migrating from 6.x to 7.0.
5+
6+
A full feature list is available in the `7.0 release notes <https://github.com/microsoft/CCF/releases/tag/ccf-7.0.0-rc0>`_.
7+
8+
9+
Snapshot Requirements for Upgrades
10+
-----------------------------------
11+
12+
When upgrading a CCF service from 6.x to 7.0, operators must ensure that 7.0 nodes start from a snapshot created by a 6.x service at version 6.0.21 or later. This requirement ensures consistent ledger chunk sizes across the network, as changes in 7.0 affect how ledger chunks are sized.
13+
14+
.. warning:: 7.0 nodes joining the network must start from a snapshot created by a 6.0.21 (or later) node. Attempting to join with an older snapshot or no snapshot may result in inconsistent chunk sizes and potential ledger integrity issues.
15+
16+
Upgrade Procedure
17+
~~~~~~~~~~~~~~~~~
18+
19+
The recommended upgrade procedure is:
20+
21+
1. Ensure all nodes in the network are running version 6.0.21 or later (preferably the latest 6.x release).
22+
2. Generate a fresh snapshot from the 6.x service:
23+
24+
- Trigger snapshot generation on the primary node using the ``trigger_snapshot`` governance action, or
25+
- Wait for the next automatic snapshot based on the configured ``snapshots.tx_count``.
26+
27+
3. Verify the snapshot is committed by checking the ``snapshots.directory`` for files ending in ``.committed``.
28+
4. Make the committed snapshot available to new 7.0 nodes (either via shared read-only directory or using the ``fetch_recent_snapshot`` feature).
29+
5. Start upgrading nodes to 7.0 one at a time, ensuring each new 7.0 node joins from the recent 6.x snapshot.
30+
6. Once all nodes are upgraded to 7.0, the service will operate normally with consistent chunk sizes.
31+
32+
For more information on snapshots and ledger management, see :doc:`/operations/ledger_snapshot`.
33+
34+
35+
Version Live Compatibility
36+
--------------------------
37+
38+
When upgrading CCF services from one major version to the next, our usual recommendation is to upgrade from ``N.latest`` to ``N+1.0.0``. Interoperation between other versions is not guaranteed.
39+
40+
.. note:: For upgrades from 6.x to 7.0 specifically, a minimum version of 6.0.21 is required before upgrading. While upgrading from the latest 6.x release is recommended for the best experience, 6.0.21 is the minimum supported version that ensures proper snapshot compatibility and consistent chunk sizes in 7.0.

0 commit comments

Comments
 (0)