Ogmios の変更点
#author("2025-04-22T08:50:54+00:00","","")
#author("2025-05-16T14:36:25+00:00","","")
* Ogmios [#q41b240e]
** Ogmiosとは [#k5e23d30]
Ogmios(オグミオス)とは、Cardano ノードに接続するための 軽量な WebSocket API ブリッジ です。
- (GitHub)[https://github.com/CardanoSolutions/ogmios]
Ogmiosを試す機会があったので、リレーノードにインストールする手順をメモしておきたいと思います。
ダウンロードフォルダを作成する
mkdir -p $HOME/git/ogmios
cd $HOME/git/ogmios
Ogmiosバイナリをダウンロードする
wget https://github.com/CardanoSolutions/ogmios/releases/download/v6.11.2/ogmios-v6.11.2-x86_64-linux.zip
アーカイブを解凍し、解凍されたディレクトリに移動する
unzip ogmios-v6.11.2-x86_64-linux.zip
> Command 'unzip' not found, but can be installed with:
> sudo apt install unzip
>
> と表示されたら
> sudo apt install unzip -y
> を実行
バージョン確認
bin/ogmios version
> v6.11.2 (a0791302)
/usr/local/binディレクトリに配置する
sudo cp bin/ogmios /usr/local/bin/ogmios
インストールされたバージョンを確認
ogmios version
> v6.11.2 (a0791302)
起動スクリプトを作成する
cat > $NODE_HOME/startOgmios.sh << EOF
#!/bin/bash
DIRECTORY="${NODE_HOME}"
PORT=1337
HOST="127.0.0.1"
CONFIG_PATH="\${DIRECTORY}/mainnet-config.json"
SOCKET_PATH="\${DIRECTORY}/db/socket"
/usr/local/bin/ogmios --node-config \${CONFIG_PATH} --node-socket \${SOCKET_PATH} --host \${HOST} --port \${PORT}
EOF
常時起動させるためのサービスファイルを作成する
cat > $NODE_HOME/service/ogmios.service << EOF
# file: /etc/systemd/system/ogmios.service
[Unit]
Description=Ogmios WebSocket bridge for Cardano
After=network.target cardano-node.service
Wants=network.target
[Service]
Type=simple
Restart=on-failure
RestartSec=5
User=cardano
WorkingDirectory=${NODE_HOME}
ExecStart=/bin/bash -c '${NODE_HOME}/startOgmios.sh'
KillSignal=SIGINT
RestartKillSignal=SIGINT
SuccessExitStatus=143
TimeoutStopSec=300
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=ogmios
[Install]
WantedBy=multi-user.target
EOF
起動スクリプトに実行権限を付与する
chmod +x $NODE_HOME/startOgmios.sh
サービスファイルを規定のディレクトリに配置
sudo cp $NODE_HOME/service/ogmios.service /etc/systemd/system/ogmios.service
パーミッションを設定する
sudo chmod 644 /etc/systemd/system/ogmios.service
サービスファイルを再読み込みし、ogmiosサービスを有効化する
sudo systemctl daemon-reload
sudo systemctl enable ogmios.service
cardano-walletサービスを開始する
sudo systemctl start ogmios.service
cardano-walletサービスの起動状態を確認する
sudo systemctl status ogmios.service
> systemd[1]: Started Ogmios WebSocket bridge for Cardano.
** 動作確認 [#b2058cd2]
curl http://localhost:1337/ | grep "ogmios"
** 外部からAPIを叩けるようにする [#u0ddeb35]
nginxリバースプロキシの設定(/etc/nginx/sites-available/ogmios)
server {
listen 443;
server_name ogmios.example.com;
location /ogmios/ {
proxy_pass http://localhost:1337/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";
add_header Access-Control-Allow-Headers "Authorization, Content-Type, Upgrade";
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
Basic認証の設定
sudo apt install apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd myuser
リバースプロキシ有効化
sudo ln -s /etc/nginx/sites-available/submit-api /etc/nginx/sites-enabled/
sudo systemctl reload nginx
HTTPS化 (Let's Encrypt)
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d ogmios.example.com
ファイアーウォールの設定(ufw)
sudo ufw allow 443
ブラウザで以下アドレスを開いてみる
https://ogmios.example.com/
* ライター [#hf1a6970]
> DAISUKE