Ogmios の変更点

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

  編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS