Midnight - Partner-Chain-Node 構築手順¶
まずはじめに
Ubuntu Server の設定 を先におこなってからこの手順を実行してください!
1. Docker 環境をインストール¶
1-1. aptリポジトリをアップデート¶
1-2. 必要なパッケージをインストール¶
1-3. keyringsディレクトリをセットアップ¶
1-4. Docker公式のGPGキーをインポート¶
1-5. パーミッションを設定¶
1-6. aptソースにリポジトリを追加¶
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
1-7. aptリポジトリをアップデート¶
1-8. Dockerの最新版をインストール¶
sudo NEEDRESTART_MODE=a apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
2. Docker を rootless モードで動作させる¶
2-1. システムサービスを停止・無効化する¶
2-2. ソケットファイルを削除¶
2-3. uidmapパッケージをインストール¶
2-4. セットアップスクリプトを起動¶
2-5. Dockerの設定ファイルを作成する¶
2-6. ログアウトしてもコンテナが起動し続けるようにする¶
3. direnvをインストールする¶
3-1. direnvパッケージをインストール¶
3-2. .bashrc に追記する¶
3-3. .bashrc を再読み込み¶
4. GitHubからクローンする¶
4-1. クローンする¶
cd $HOME
rm -rf midnight-node-docker
git clone https://github.com/midnightntwrk/midnight-node-docker.git
cd midnight-node-docker
エラーが表示されます
以下のエラーが表示されますが正常です!
5. Partner-Chainsを立ち上げる¶
5-1. dockerで立ち上げる¶
5-2. 同期の進捗をチェックする¶
戻り値について
以下の戻り値の例の "networkSynchronization": 1, の行の 1 が 100%を表します。
この値が 0.01 だった場合は 1% の進捗率です。
例)
{
"startTime": "2025-10-16T04:15:35.560800405Z",
"lastKnownTip": {
"slot": 93950347,
"id": "af11ea0773230dc562b5cbb6702896737039bb0d558e04173e683c3c0e481500",
"height": 3693002
},
"lastTipUpdate": "2025-10-16T09:19:07.137082421Z",
"networkSynchronization": 1,
"currentEra": "conway",
"metrics": {
"activeConnections": 0,
"runtimeStats": {
"cpuTime": 53945188690,
"currentHeapSize": 804,
"gcCpuTime": 46822759954,
"maxHeapSize": 885
},
"sessionDurations": {
"max": 0,
"mean": 0,
"min": 0
},
"totalConnections": 0,
"totalMessages": 0,
"totalUnrouted": 0
},
"connectionStatus": "connected",
"currentEpoch": 1087,
"slotInEpoch": 33547,
"version": "v6.11.0 (6356ede9)",
"network": "preview"
}
5-3. DBのステータスをチェックする¶
PostgreSQLに接続します
エラーが出る場合
dockerコンテナが止まっている可能性があります! 以下のコマンドでdokcerコンテナを立ち上げてから再度実行してください。
SQL文を実行します
SELECT 100 * (
EXTRACT(EPOCH FROM (MAX(time) AT TIME ZONE 'UTC')) -
EXTRACT(EPOCH FROM (MIN(time) AT TIME ZONE 'UTC'))
) / (
EXTRACT(EPOCH FROM (NOW() AT TIME ZONE 'UTC')) -
EXTRACT(EPOCH FROM (MIN(time) AT TIME ZONE 'UTC'))
) AS sync_percent
FROM block;
戻り値について
以下の例では、99.9999...%同期が完了しています。 おおよそこの程度同期が完了していればOKです。
例)
PostgreSQLからログアウトします
5-4. 同期が完了するのを待つ¶
5-2. と 5-3. の両方の同期が完了するまでお待ちください。
両方の同期が完了したら、Midnight-Nodeの構築 に進みます。