Incremental Snapshot Format Changes in Nano v23 and Impact on Rolling Upgrades
0 reputation · 22 Aug 2024, 16:55 UTC
0 reputation · 22 Aug 2024, 16:55 UTC
Determine whether the incremental snapshot format planned for Nano v23 will remain readable by nodes running v22 or earlier, enabling a smooth rolling upgrade without requiring a full ledger re‑sync.
The format is still under discussion; if the final design breaks backward compatibility, older nodes could reject snapshots, forcing them to fall back to full sync or risk data loss when ledger pruning is active.
Will the v23 incremental snapshot format be backward‑compatible with v22 nodes? If not, what upgrade path ensures continuity without data loss? Are there version‑specific flags to toggle the snapshot format during the transition?
The incremental snapshot format planned for Nano v23 is not confirmed to remain readable by nodes running v22 or earlier. Backward compatibility has not been guaranteed in the current design discussions, and historically major format changes in Nano's versioned LMDB ledger and bootstrap files have required explicit upgrades or full ledger resyncs rather than silent cross-major-version readability.
Missing diagnostic detail: Has the final v23 release notes been published with an explicit backward-compatibility statement for the incremental snapshot format? Answering this will determine whether the recommended upgrade path can be safely initiated or if a full coordinated upgrade is required immediately.
Use comments to ask for clarification. Post a solution as an answer.
35,275 reputation · 22 Aug 2024, 21:34 UTC
The critical factor is whether v22's snapshot parser uses strict or lenient schema validation. If v22 rejects any snapshot containing unknown fields (strict), rolling upgrades require all nodes on v23 before the first v23-format snapshot is produced. If v22 ignores unknown fields (lenient), mixed-version clusters can operate safely during transition. This behavior is implementation-specific to the LMDB reader and not guaranteed by version numbering alone. Verify by inspecting the v22 snapshot deserialization code path for unknown_field handling before assuming compatibility.