ノード構築
リレー・BP とも、ノードの基本構築手順は共通です。
リレーサーバー・BPサーバーの両方で本ページの手順を実施してください。
まずは両ノードともリレーとして起動してチェーンを同期させ、BP は後の手順(BP用キーの生成)でブロック生成モードへ切り替えます。
事前準備
ノード構築の前に、リレーサーバー・BPサーバーの両方で Ubuntu初期設定 を実施してください。
作業用ユーザーの作成、SSHの鍵認証、ファイアウォール(UFW)、時刻同期などを設定します。
UFW を有効化した場合は、SSHポートに加えてノード待受ポート 3010 の許可が必要です(リレーは外部から、BP はリレーのIPからのみ許可してください)。
本ページの構成
- 公式が配布するリリースバイナリを
/usr/local/binに配置し、systemd で常駐させる、SJG従来と同じ構成です。 - Leios プロトタイプのバイナリは静的リンクされているため、
libsodium/secp256k1/blstの導入やソースからのビルドは不要です。 - Musashi-Testnet は仕様やバージョンが都度変更される可能性があります。新しいリリースが公開された場合は ノードアップデート の手順で差し替えてください。
1. 依存パッケージのインストール
パッケージを更新し、Ubuntu を最新の状態に保ちます。
sudo apt update && sudo apt upgrade -y必要なパッケージをインストールします。
sudo apt install curl jq git wget -y2. cardano-node / cardano-cliのインストール
公式リポジトリの Releases で配布されているバイナリを導入します。
最新のリリースタグを GitHub API から取得します。
RELEASE=$(curl -s "https://api.github.com/repos/input-output-hk/ouroboros-leios/releases?per_page=20" \
| jq -r '[.[] | select(.draft == false)
| select([.assets[].name] | index("cardano-node-leios-x86_64-linux.tar.gz"))]
| sort_by(.published_at) | last | .tag_name')
echo "RELEASE=${RELEASE}"RELEASE=prototype-2026w31aリリースタグについて
Leios のリリースはすべて Pre-release として公開されているため、releases/latest API では取得できません。
上記コマンドは、リリース一覧から cardano-node-leios-x86_64-linux.tar.gz を持つ最も新しいものを選択します。
RELEASE= が空で表示された場合は、Releases ページで最新のタグを確認し、RELEASE=prototype-2026wXX の形式で直接指定してください。
aarch64 環境の場合は、上記コマンドと以降のファイル名を cardano-node-leios-aarch64-linux / cardano-node-leios-aarch64-darwin に読み替えてください。
作業用ディレクトリを作成し、バイナリとチェックサムをダウンロードします。
mkdir -p $HOME/git
cd $HOME/git
wget https://github.com/input-output-hk/ouroboros-leios/releases/download/${RELEASE}/cardano-node-leios-x86_64-linux.tar.gz
wget https://github.com/input-output-hk/ouroboros-leios/releases/download/${RELEASE}/cardano-node-leios-x86_64-linux.sha256チェックサムを検証します。
sha256sum -c cardano-node-leios-x86_64-linux.sha256cardano-node-leios-x86_64-linux.tar.gz: OK
OK以外が表示された場合はダウンロードをやり直してください。
アーカイブを展開します。
tar -xzf cardano-node-leios-x86_64-linux.tar.gz
bin/cardano-nodeとbin/cardano-cliが展開されます。
/usr/local/bin に配置します。
sudo cp bin/cardano-node /usr/local/bin/cardano-node
sudo cp bin/cardano-cli /usr/local/bin/cardano-cli
sudo chmod +x /usr/local/bin/cardano-node /usr/local/bin/cardano-cliバージョンを確認します。
cardano-node --version
cardano-cli --versioncardano-node 11.1.0.164 - linux-x86_64 - ghc-9.6
git rev c5f7d9121beb67e6d03d0632ae2bd3b76259728e
cardano-cli 11.1.0.0 - linux-x86_64 - ghc-9.6
git rev c5f7d9121beb67e6d03d0632ae2bd3b76259728e末尾に
164が含まれていれば Leios プロトタイプ用ビルドです。
3. 作業ディレクトリと環境変数の設定
echo 'export NODE_HOME=$HOME/cnode' >> $HOME/.bashrc
echo 'export CARDANO_NODE_NETWORK_ID=164' >> $HOME/.bashrc
echo 'export CARDANO_NODE_SOCKET_PATH=$HOME/cnode/db/socket' >> $HOME/.bashrc
source $HOME/.bashrc
mkdir -p "$NODE_HOME"4. 設定ファイルの取得
設定ファイル(config.json / topology.json / 各ジェネシスファイル)を取得します。
cd $NODE_HOME
wget https://book.play.dev.cardano.org/environments-pre/leios/config.json -O config.json
wget https://book.play.dev.cardano.org/environments-pre/leios/topology.json -O topology.json
wget https://book.play.dev.cardano.org/environments-pre/leios/peer-snapshot.json -O peer-snapshot.json
wget https://book.play.dev.cardano.org/environments-pre/leios/byron-genesis.json -O byron-genesis.json
wget https://book.play.dev.cardano.org/environments-pre/leios/shelley-genesis.json -O shelley-genesis.json
wget https://book.play.dev.cardano.org/environments-pre/leios/alonzo-genesis.json -O alonzo-genesis.json
wget https://book.play.dev.cardano.org/environments-pre/leios/conway-genesis.json -O conway-genesis.json
wget https://book.play.dev.cardano.org/environments-pre/leios/dijkstra-genesis.json -O dijkstra-genesis.json5. DBスナップショットの復元
ジェネシスからのフル同期には長い時間がかかります。
公開されている DBスナップショット を $NODE_HOME/db に復元することで、同期時間を大幅に短縮できます。
復元はノード起動前に実施してください
DBスナップショットの復元は、ノードを一度も起動していない状態($NODE_HOME/db が空の状態)で行ってください。
既にノードを起動して DB が作成されている場合は、先に停止し db を空にしてから復元します。
zstdを導入します。
sudo apt install zstd -yスナップショットをダウンロードします。
cd "$NODE_HOME"
curl -L -o leios.chain.tar.zst https://leios1-rel-a-1.play.dev.cardano.org/leios.chain.tar.zstcurl -L -o leios.leiosdb.tar.zst https://leios3-rel-c-1.play.dev.cardano.org/leios.leiosdb.tar.zst$NODE_HOMEに展開します。
tar -I zstd -xvf leios.chain.tar.zst -C "$NODE_HOME"
tar -I zstd -xvf leios.leiosdb.tar.zst -C "$NODE_HOME"展開後、不要になったアーカイブを削除します。
rm -f "$NODE_HOME"/leios.chain.tar.zst "$NODE_HOME"/leios.leiosdb.tar.zst6. 起動スクリプトの作成
ノードの起動スクリプトを作成します。
(BP の場合、ブロック生成キーは BP用キーの生成 で作成後に追記します)
cat > $NODE_HOME/startNode.sh << EOF
#!/bin/bash
DIRECTORY=${NODE_HOME}
PORT=3010
HOSTADDR=0.0.0.0
TOPOLOGY=\${DIRECTORY}/topology.json
DB_PATH=\${DIRECTORY}/db
SOCKET_PATH=\${DIRECTORY}/db/socket
CONFIG=\${DIRECTORY}/config.json
/usr/local/bin/cardano-node run --topology \${TOPOLOGY} --database-path \${DB_PATH} --socket-path \${SOCKET_PATH} --host-addr \${HOSTADDR} --port \${PORT} --config \${CONFIG}
EOF
chmod +x $NODE_HOME/startNode.sh7. systemdサービスの作成
ユニットファイルを作成します。
cat > $NODE_HOME/cardano-node.service << EOF
# The Cardano Leios Node Service (part of systemd)
# file: /etc/systemd/system/cardano-node.service
[Unit]
Description = Cardano Leios Node
Wants = network-online.target
After = network-online.target
[Service]
User = ${USER}
Type = simple
WorkingDirectory= ${NODE_HOME}
ExecStart = /bin/bash -c '${NODE_HOME}/startNode.sh'
KillSignal = SIGINT
RestartKillSignal= SIGINT
TimeoutStopSec = 300
LimitNOFILE = 32768
Restart = always
RestartSec = 5
StandardOutput = syslog
StandardError = syslog
SyslogIdentifier= cardano-node
[Install]
WantedBy = multi-user.target
EOF/etc/systemd/system にユニットファイルをコピーし、権限を付与します。
sudo cp $NODE_HOME/cardano-node.service /etc/systemd/system/cardano-node.servicesudo chmod 644 /etc/systemd/system/cardano-node.serviceサービスを有効化して起動します。
sudo systemctl daemon-reloadsudo systemctl enable --now cardano-node8. 同期確認
ログを確認します。
journalctl -u cardano-node -f同期状況を確認します。
cardano-cli query tip初回起動時はDB検証が入るため表示されるまで少し時間かかります
{
"block": 115311,
"epoch": 37,
"era": "Dijkstra",
"hash": "5072a5f8ba0ac4ea54b1844e6117451e751c30097aff94683c7dd0b8f0a80dc7",
"slot": 3244075,
"slotInEpoch": 47275,
"slotsToEpochEnd": 39125,
"syncProgress": "100.00"
}
syncProgressが100.00になればフル同期完了です。
便利なエイリアス設定
echo "alias cnode='journalctl -u cardano-node -f'" >> $HOME/.bashrc
echo "alias cnstart='sudo systemctl start cardano-node'" >> $HOME/.bashrc
echo "alias cnstop='sudo systemctl stop cardano-node'" >> $HOME/.bashrc
echo "alias cnrestart='sudo systemctl restart cardano-node'" >> $HOME/.bashrc
echo alias cnreload='"pkill -HUP cardano-node"' >> $HOME/.bashrc
source $HOME/.bashrc9. gLiveViewのインストール
cardano-node はログが流れる画面だけでは状態が分かりにくいため、ノードの状態を視覚的に確認できる gLiveView を導入します。
gLiveViewは Guild Operators によるツールで、systemd サービスと連携してノードのステータスを表示します。
必要な依存パッケージをインストールし、スクリプト用ディレクトリを作成します。
mkdir -p $NODE_HOME/scripts
cd $NODE_HOME/scripts
sudo apt install bc tcptraceroute -ygLiveView 本体と env ファイルをダウンロードします。
curl -s -o gLiveView.sh https://raw.githubusercontent.com/cardano-community/guild-operators/master/scripts/cnode-helper-scripts/gLiveView.sh
curl -s -o env https://raw.githubusercontent.com/cardano-community/guild-operators/master/scripts/cnode-helper-scripts/env
chmod 755 gLiveView.shenv ファイルの定義を、本マニュアルの構成(ポート 3010)に合わせて修正します。
sed -i $NODE_HOME/scripts/env \
-e '1,73s!#CNODE_HOME="/opt/cardano/cnode"!CNODE_HOME="'${NODE_HOME}'"!' \
-e '1,73s!#CNODE_PORT=6000!CNODE_PORT=3010!' \
-e '1,73s!#UPDATE_CHECK="Y"!UPDATE_CHECK="N"!' \
-e '1,73s!#CONFIG="${CNODE_HOME}/files/config.json"!CONFIG="${CNODE_HOME}/config.json"!' \
-e '1,73s!#SOCKET="${CNODE_HOME}/sockets/socket"!SOCKET="${CNODE_HOME}/db/socket"!' \
-e '1,73s!#PROM_HOST=127.0.0.1!PROM_HOST=127.0.0.1!' \
-e '1,73s!#PROM_PORT=12798!PROM_PORT=12798!'任意の単語で起動できるようエイリアスを登録します。
echo "alias glive='cd $NODE_HOME/scripts; ./gLiveView.sh'" >> $HOME/.bashrc
source $HOME/.bashrcgLiveView を起動します。
glive次のステップ
同期が 100.00 に達したら、
- このマニュアルでBPサーバーをセットアップする
- BP サーバーが完了したら … BP用キーの生成 に進んでください。
Last updated on