📌
【Movementテストノード挑戦記】10章:バージョン固定のポイントと再現性確保
【Movementテストノード挑戦記】10章:バージョン固定のポイントと再現性確保
再現性を最重視したバージョン固定の基本方針
- 手順書どおりに実行すれば、誰でも何度でも必ず同じ結果になることを最重要方針とする。
- サーバー・ツール・依存関係・各種コマンドのバージョンをすべて明示的に固定し、記録する。
今回実際に固定したもの・記録したもの
1. OS・VPS
- Ubuntu 22.04.5 LTS (カーネル 5.15.0-79-generic)
- サーバ: ConoHa VPS(メモリ1GB/CPU2Core/SSD100GB)
2. swap構成
- /swapfile(2GB)
- /var/spool/swap/swapfile(2GB)
- 合計4GB(手順どおりにコマンド実行)
3. Rust
- rustc 1.88.0 (6b00bc388 2025-06-23)
- cargo 1.88.0 (873a06493 2025-05-10)
-
rustup default 1.88.0
で明示的に固定
4. APTパッケージ
- インストールコマンド内ですべてのパッケージにバージョン指定
- 例: curl=7.81.0-1ubuntu1.20 など
-
libz-dev
は使わず、zlib1g-devのみでOK - 実際に成功した環境で
apt list --installed
を保存して記録
5. Movementリポジトリ
- mainブランチ
- コミットID: e5e78e6d575505d50b49e225a79f12cc322266c4
-
git checkout <コミットID>
で必ず固定
6. 設定ファイルとコマンド
- config.jsonは
setup full-node
で自動生成、allow_sync_from_zero
のみ手動変更 - DAセットアップ・ノード起動も同じコマンド・順番で毎回実行
実践:再現性確保の具体的ポイント
- 手順は「1コマンド1ステップ」で明確に記録・公開
- コマンドや編集手順の「省略」や「省略形」は使わず、必ずそのまま明記
- サーバ・VPS間で環境差異が生じないよう、同じ初期化・インストール・ビルドを新規VPSでも毎回検証
- 「何のコマンドが・どのバージョン・どの状態で」成功したかをすべて保存
- 不具合や想定外の挙動が出た場合は、すべてのバージョンとコマンド履歴を1から見直し、ズレを修正
よくある落とし穴と回避
-
バージョン指定忘れ・依存のズレ
- APTやRustをアップデートせず、必ず明記したバージョンで固定して実行
-
メモリ不足やswap忘れ
- 毎回手順どおりにswap作成・有効化すること
-
config.jsonの編集忘れや編集ミス
- 例: sedコマンドやエディタ編集で変更した場合は必ず内容確認
ドキュメント・記録の運用
- 実際に動いたコマンド・ファイル・バージョンを、必ず記録・公開
- バージョンやコマンドを変えた場合は「いつ・なぜ・どう変えたか」も記録
- テストノード・メインネットノード両方で「同じ手順で」再現できることを最重視
まとめ
- Movementノード構築・起動における「再現性」は「全バージョン固定+手順全記録」の徹底に尽きる
- どんな些細なズレ・省略・曖昧さも再現性を崩す要因なので、ひとつひとつ全部明記・管理
- バージョンが変わったら必ず新規サーバで再現テストし、成功した手順を最新化していく
この章では、今回実際に運用した「バージョン固定」「手順全記録」による再現性確保のノウハウをまとめました。
次章では今後の展望やメインネット・バリデータへの応用を見据えた振り返りをします。
Discussion