0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

symbol-explorer v1.3.0をインストール

Posted at

Docker のインストール

Docker がまだインストールされていない場合は、以下の手順に従ってインストールしてください。

GPG キーの追加

sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

リポジトリを追加します。

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Docker のインストールコマンドの実行

以下のコマンドを実行して Docker をインストールします。
docker-compose は使用する予定はありませんが、念のためインストールしておきます。

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-compose

Docker を使用するユーザーを docker グループに追加します。

sudo usermod -aG docker $USER

シェルを再起動して変更を反映させます。

exec $SHELL -l

explorer 用ディレクトリの作成

任意の場所に explorer 用のディレクトリを作成します。
さらに設定ファイルを格納する workdir ディレクトリを作成します。

sudo mkdir -p /opt/explorer/workdir
sudo chown -R $(id -u):$(id -g) /opt/explorer
cd /opt/explorer

設定ファイルの作成

workdir ディレクトリに、default.json を作成します。

vi workdir/default.json

メインネット

workdir/default.json
{
  "endpoints": {
    "marketData": "https://min-api.cryptocompare.com/",
    "statisticsService": "https://symbol.services"
  },
  "networkConfig": {
    "namespaceName": "symbol.xym",
    "divisibility": "6",
    "namespaceId": "E74B99BA41F4AFEE"
  },
  "footer": {
    "link": [
      {
        "href": "https://github.com/symbol",
        "text": "GitHub",
        "icon": "IconGithub"
      },
      {
        "href": "https://discord.com/invite/xymcity",
        "text": "Discord",
        "icon": "IconDiscord"
      },
      {
        "href": "https://twitter.com/thesymbolchain",
        "text": "Twitter",
        "icon": "IconTwitter"
      }
    ]
  },
  "timezone": "Local"
}

テストネット

workdir/default.json
{
  "endpoints": {
    "marketData": "https://min-api.cryptocompare.com/",
    "statisticsService": "https://testnet.symbol.services"
  },
  "networkConfig": {
    "namespaceName": "symbol.xym",
    "divisibility": "6",
    "namespaceId": "E74B99BA41F4AFEE"
  },
  "footer": {
    "link": [
      {
        "href": "https://github.com/symbol",
        "text": "GitHub",
        "icon": "IconGithub"
      },
      {
        "href": "https://discord.com/invite/xymcity",
        "text": "Discord",
        "icon": "IconDiscord"
      },
      {
        "href": "https://twitter.com/thesymbolchain",
        "text": "Twitter",
        "icon": "IconTwitter"
      },
      {
        "href": "https://testnet.symbol.tools/",
        "text": "Faucet",
        "icon": "IconCurrencyUsd"
      }
    ]
  },
  "timezone": "Local"
}

statisticsService の URL は、デフォルトでは Symbol の公式サービスを指していますが、必要に応じて自分で用意した statistics-service の URL に変更することも可能です。これにより、独自の統計データを提供するサービスを利用できます。

起動シェル作成

workdir ディレクトリに run.sh を作成します。

vi workdir/run.sh
workdir/run.sh
#!/bin/bash
set -e
echo "Starting explorer $1"
cp default.json /app/src/config/default.json
cd /app
npm start

compose.yml の作成

compose.yml を作成します。

vi compose.yml
compose.yml
services:
  symbol-explorer:
    container_name: symbol-explorer
    restart: always
    image: symbolplatform/symbol-explorer:1.3.0-amd64
    working_dir: /workdir
    entrypoint: ash -c "/bin/ash /workdir/run.sh explorer"
    volumes:
      - ./workdir:/workdir:ro
    ports:
      - "4100:4000"

サービス化

/etc/systemd/systemexplorer.service ファイルを作成します。

sudo vi /etc/systemd/system/explorer.service
/etc/systemd/system/explorer.service
[Unit]
Description=Symbol Explorer
Requires=network.target

[Service]
Type=idle
ExecStart=/usr/bin/docker compose up
ExecStopPost=/usr/bin/docker compose stop
TimeoutStopSec=300
User=<実行ユーザー名>
Group=<実行グループ名>
WorkingDirectory=/opt/explorer
StandardOutput=journal
StandardError=journal
SuccessExitStatus=130

[Install]
WantedBy=multi-user.target

UserGroup には、サービスを実行するユーザー名とグループ名を設定してください。
WorkingDirectory には、作成した explorer 用ディレクトリのパスを指定してください。

Systemd に変更を適用して、サービスを起動します。

sudo systemctl daemon-reload
sudo systemctl enable explorer
sudo systemctl start explorer

なお、以下のコマンドでサービスを停止します。

sudo systemctl stop explorer

動作確認

http://localhost:4100 をブラウザで開き、Symbol Explorer が正しく表示されることを確認してください。

ログの参照

ログはジャーナルに記録されているため、-f オプションを使用してリアルタイムで確認できます。
以下のコマンドを実行すると、explorer サービスのログをリアルタイムで参照できます。

sudo journalctl -f -o cat -u explorer
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?