$PI 今回のアップグレードは確かに難易度が非常に高いです。決してお世辞ではありません。主な理由は以下の通りです。
1. 三重のメジャーバージョンの同期アップグレード
プロトコル(22→23)、オペレーティングシステム(Ubuntu 20.04→24.04)、データベース(PostgreSQL 12→16)を同時にアップグレードします。いずれか一つだけのアップグレードでもリスクがありますが、三つ重なると互換性、依存関係、設定ファイルの変更が相互に影響し合います。
2. 内部データの再処理が必要
多くのアップグレードはソフトウェアの置き換えだけですが、今回は基盤のストレージフォーマットやインデックスロジックが変わったため、ノードは既存のデータを新しいロジックで再処理する必要があります。この過程は非常にエラーが起きやすく、途中で中断するとスナップショットからの復元が必要になり、非常に時間がかかります。
3. 本番環境でのゼロトレランス
メインネットのノードがダウンしたりデータが破損したりすると、ネットワーク全体のコンセンサスやブロック生成に影響します。運営者はテストネットで何度も検証し、ダウンタイムを最小限に抑えながら操作を完了させる必要があり、個人のPCのアップグレードよりもはるかに高いプレッシャーがあります。
4. PostgreSQL 12→16の大きな跨度