見出し画像

Elixir Testnet v3 バリデータ設定ガイド

本記事はElixirチームに許可をいただき、Elixir Protocol公式ドキュメントのうち、テストネットバリデーター設定方法を日本語訳したものです。
元記事:https://docs.elixir.xyz/running-an-elixir-validator
以下は、Elixir Network のテストネット上でバリデータを実行し、オーダーブック構築のセキュリティと有効性を確保するためのステップバイステップのガイドです。

Testnet v3 の準備

ハードウェア要件

ほとんどのハードウェアでバリデータノードを動作させることができます。ただし、

  • 8GBのメモリ

  • 信頼性の高い100Mbitのインターネット接続

  • ディスク使用量は最低100GBのストレージ

  • 24時間稼働できるシステム

を推奨します。

Dockerのインストール

バリデータを実行するには、最新のDockerがインストールされたシステムが必要です。お使いのオペレーティングシステムのインストールガイドに従ってください。ターミナルを開き、

docker ps

を実行して、インストールがうまくいくことを確認してください。以下のような出力が表示されるはずです。

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

エラーが表示された場合は、お使いのオペレーティング・システムのインストール・ガイドを見直してください。

Validator 秘密鍵の生成

バリデータには専用のウォレット(新しく生成したウォレット)を使うことを推奨します。このウォレットは Elixir Network でのトランザクションの署名に使用され、このウォレットのセキュリティは Elixir Network で報酬を得るために最も重要です。以前のテストネットでバリデータを使用した場合は、同じウォレットをそのまま使用してください。バリデータのセットアップと登録には、秘密鍵と公開ウォレットアドレスの両方が必要です。
Metamask で秘密鍵を生成する
Metamask では、上部のアカウント選択から、「+アカウントまたはハードウェアウォレットを追加」 をクリックします。アカウントを作成したら、右上のアカウントメニューから「アカウントの詳細」をクリックし、「秘密鍵を表示」 をクリックすると秘密鍵が取得できます。
セキュリティのため、このウォレットは Elixirテストネット・バリデーターの実行以外には決して使用しないでください。

バリデータのセットアップ

環境テンプレートのダウンロード

バリデータの環境テンプレートファイルをダウンロードし、テキストエディタで開いてください。以下のように設定し、ファイル名はvalidator.envとします。

ENV=testnet-3

# Allowed characters A-Z, a-z, 0-9, _, -, and space
STRATEGY_EXECUTOR_DISPLAY_NAME="表示名"
STRATEGY_EXECUTOR_BENEFICIARY=ウォレットアドレス
SIGNER_PRIVATE_KEY=秘密鍵

各項目は以下を意味します。
STRATEGY_EXECUTOR_DISPLAY_NAME
あなたやあなたの組織の公開名です。Elixir Networkのダッシュボードに表示され、稼働時間とパフォーマンスメトリクスはこの名前に関連付けられます。英数字、アンダースコア、ダッシュ、スペースのみ使用できます。
STRATEGY_EXECUTOR_BENEFICIARY
Elixir Network validatorの報酬を受け取りたいウォレットのアドレスを設定します(利用可能な場合)。EOA、ハードウェアウォレット、Multisigなど、どのウォレットアドレスでもかまいません。
SIGNER_PRIVATE_KEY
上記の準備ステップで生成した秘密鍵。これは新しい、一度も使われたことのないウォレットであるべきで、資金を必要としません。0xで始まる文字列ではありません

バリデータの登録(Enroll)

次に、Elixir Network から仕事を受け取り、コンセンサスのために注文プロポーザルを提出するために、バリデータを登録(enroll)する必要があります。

Sepolia上のMOCK Elixirトークンをミントする

ElixirのTestnet v3 は、Ethereum Sepolia テストネットワーク上の MOCK トークンで動いています。MOCK トークンを入手するには、任意のウォレットに少量の Sepolia ETH が必要です。Elixir Network Testnet v3 ダッシュボードに移動し、ウォレットを接続します。イーサリアムSepoliaネットワークに接続されていることを確認し、「MINT 1,000 MOCK 」ボタンをクリックします。ウォレットでトランザクションを確認します。
注:このウォレットは、上記の準備ステップで生成したものとは異なるものでなければなりません。

MOCKトークンをステークする

ダッシュボードから新しくミントされたMOCKトークンを受け取ったら、そのトークンをオンチェーンで使うことを承認し、そのトークンをステークする必要があります。
MOCK をステークするウィンドウで、ステークしたい MOCK トークンの量を入力します。「APPROVE MOCK FOR STAKING」をクリックし、自分のウォレットでトランザクションを確認します。オンチェーンで取引が完了するまで待ち、「STAKE <amount> MOCK 」をクリックして取引を確定します。

バリデータの登録

アクティブバリデータリストの右上にある 「Enter validator address」 と書かれた検索ウインドウに、上記の準備ステップで作成したバリデータのパブリックウォレットアドレス(秘密鍵ではない)を入力し、「DELEGATE」 をクリックします。トランザクションを確認し、オンチェーンで完了するまで待ちます。これでバリデータを実行する準備ができました。

バリデータの実行

Dockerイメージをプルする

以下の docker コマンドを実行して、Testnet v3 バリデータの Docker イメージをダウンロードします。

docker pull elixirprotocol/validator:v3

バリデータを起動する

以下の docker コマンドを実行してバリデータを起動します。 /path/to/validator.envの部分を、バリデータのセットアップで作成したバリデータ環境ファイルのフルパス(ファイルの保管先+/validator.env)に置き換えます。

docker run -it --env-file /path/to/validator.env --name elixir elixirprotocol/validator:v3

オプション: バリデータの再起動ポリシーを設定する

Dockerでは、Dockerコンテナの再起動ポリシーを設定できます。Elixirでは、unless-stopped リスタートポリシーでバリデータをデーモンとして実行(バックグラウンドで実行)することを推奨しています

docker run -d --env-file /path/to/validator.env--name elixir --restart unless-stopped elixirprotocol/validator:v3

オプション Apple/ARM Silicon上でValidatorを実行する

x86以外のアーキテクチャで実行する場合は、ValidatorのDockerイメージを起動する際に --platformフラグを適切に設定する必要があるかもしれません。

docker run -d --env-file /path/to/validator.env --name elixir --platform linux/amd64 elixirprotocol/validator:v3

オプション: ヘルスチェックとメトリクスの公開

バリデータイメージは、ヘルスチェックを実行するためのHTTPエンドポイントを公開し、Prometheusで監視するのに適したメトリクスを公開します。このエンドポイントにアクセスするには、docker コンテナでポート 17690 を開く必要があります。そうすることで、コンテナ内の /health および/metricsエンドポイントを表示できるようになります。

docker run -d --env-file /path/to/validator.env --name elixir -p 17690:17690 elixirprotocol/validator:v3

/health および/metricsを表示するには、以下のコマンドを入力します。

curl http://localhost:17690/health
curl http://localhost:17690/metrics

(補足)

実行したバリデータがうまく起動できているかは、基本的にダッシュボードで確認するのが効率的です。以下のように、STATUS: Onlineになっており、AVERAGE UPTIMEに⚪︎%という表示がされていれば正常に動いていると判断できます。



バリデータのアップグレード

Elixir チームはメインネットの立ち上げに向けてバリデータの改良を続けているため、最新バージョンのバリデータにアップデートする必要があるかもしれません。 そのためには、Dockerfileのあるディレクトリでコマンドラインを開き、以下のコマンドを順番に実行します。

docker kill elixir
docker rm elixir
docker pull elixirprotocol/validator:v3

そしてバリデータの起動に使った docker コマンドを再実行してください。

サポート窓口

ディスコード

私たちの Discord サーバーには、活発で協力的なコミュニティがあります。以下は重要なチャンネルに関する簡単な紹介リストです。

  • #validator -announcements: バリデータソフトウェアの新バージョンに関するアラートや通知を受け取るために登録できるお知らせチャンネルです。Elixir チームがバリデータソフトウェアの新バージョンをプルしてアップデートしたり、バージョン固有の指示に従ったりする際に、主にこのチャンネルを使って通知します。

  • #node -operators: DevOps に特化したチャンネルで、ノードオペレータがピアサポートを見つけたり、ヒントやベストプラクティスを共有したり、発見したことを話したりできます。このチャンネルでの会話は、直接的で話題性のあるものにしてください。

バグ報告

バグを発見し、開発者に知らせる必要がある場合は、いつでも Testnet v3 Issue Tracker に報告することができます。