Solana Validator のはじめかた。(お引越しも対応)
こんにちは。Kawasaki です。
私はアムステルダムソフトウェア研究所(ELSOUL LABO B.V.)
でソフトウェア研究の研究をしております。
今日は Solana Validator のノードの立て方を共有したいと思います。
🔴 YouTube:
📗 ドキュメント:
(*2023年11月10日更新)📖 🌟 Solana バリデーターマスターガイド: 設定、保守、移転から収益のモニタリングまでの完全手引き 🚀
(※2023年12月本にまとめました🎉)
背景
最先端のテックには更新のスピードがとても早く、ドキュメントがなかったり、動かなかったりなどよくある話ですが、
私も Solana のバリデーターに興味を持ち、立ち上げようときに最初は情報が散らばっていて
どれが本当の手順なのかよくわからない状態でした。
現在はアムステルダム、東京、ニューヨークの3つのリージョンに Solana Testnet バリデーターサーバーを設置、運用しています。
Solana のテストネットバリデーターには報酬があり、
報酬を獲得するには定期的にアナウンスされるメンテナスを行わなければいけません。
毎回、3つのサーバーに同じスクリプトや設定をしているうちに更新するスクリプトを書くようになりました。
この作成からメンテ、更新作業に関するコードをオープンソース化することで、
多くのメリットがあるのではと思い、 Solv というパッケージ名で公開することにしました。
この取り組みの詳細は以下の記事で紹介しています👇
ここでは「solv」を使用してSolanaバリデーターノードを構築する方法をご紹介します。この手順は3ステップで完了し、エンジニアだけでなく一般のユーザーにも実行可能です。真の分散型ネットワークは、技術的な背景に関わらず、誰もが簡単にバリデーターノードを設置できることが重要です。
ステップ1 - solv のインストール
まずはサーバーに SSH接続します。
各自の接続設定に変更してください。
$ ssh username@<your-server-ip-address>
そして solv ドキュメントページにあるステップ1のコードをコピー&ペーストして実行します。
Edgevana と Latitude 版があるので、使用するタイプをタブで選択して下さい。
$ sh -c "$(curl -sSfL "https://storage.googleapis.com/epics-bucket/resource/solv/v1.6.2/install")"
このコマンドで最初に solv ユーザーを作成するので、
パスワードを設定します。
インストール完了後、solv ユーザーに切り替えるためのパスワードを聞かれるので、
設定したパスワードを入力し、ユーザーを切り替えます。
ステップ2 - 設定の更新
次に、ステップ2のコードを実行し、設定を反映させます。
$ cd ~ && source ~/.profile
ステップ3 - solv セットアップ
最後にステップ3のコードを実行すれば完了です!
$ solv setup
これで無事に Solana バリデーターが起動しました 🎊
ログの確認
Solana バリデーターのログを確認します。
$ solv log
異常なログを出力するには
$ solv log -e
スナップショットのダウンロード
バリデーターノードを起動すると最初にスナップショットをダウンロードします。
ダウンロードまでネットワークの状態によって異なりますが、時間がかかることがあります。
なにか不具合が起きる場合、スナップショットが破損している場合がありますので、
以下のコマンドで再起動することで、スナップショットを再ダウンロードすることができます。
$ solv restart --snapshot
バリデーターキーの交換(引越し・TDS用)
TDSプログラムに参加している方や、サーバーの引越しの方はすでに鍵をお持ちだと思います。
この場合、solv setup
後にサーバーを一度停止します。
$ solv stop
その後、バリデーターキーを差し替え、サーバーを再起動します。
以下のコマンドで、バリデーターキーの場所を表示することができます。
$ solv config
鍵交換後の再起動には --snapshot
をつけて再起動する必要があります。
$ solv restart --snapshot
テストネット SOLの準備
テストネットバリデーターで投票に参加するには、年間およそ315テストSOL必要になります。
その他に、自分のテストネットバリデーターにどのアカウントからでも数SOLで良いのでステーキングを行うと進行が早まります。
$ solana airdrop 1
上記のコマンドでテストネットのSOL を Airdropすることができますが、
ネットワークの状況により、手に入りにくいことがあります。
EpicsDAOのディスコードチャンネルで、在庫があれば配布しておりますので、
お気軽にお立ち寄りください!
Solana Testnet バリデーターの報酬について
こちらのリンクにテストネットバリデーター報酬の詳細があります。
ざっくり サーバー代2倍分のSOLが報酬としてもらえるというものです。
Tour de Sun(TDS) プログラム
サーバープログラム
テストネットで報酬を得るには上記のプログラムで推奨されているサーバー会社から、
サーバーリソースを契約する必要があります。
Solana Delegation プログラム
このプログラムに参加すると、財団から委任ステークを受取ることができるようです。
必要な条件
さらに、以下のコマンドで Pubkey に署名を行う必要があります。
(この辺の説明さがすのが大変でした。。)
インストール
$ sudo apt install libudev-dev
$ cargo install solana-foundation-delegation-program-cli
$ solana-foundation-delegation-program --version
署名を行うのにはメインネットで行うため、
多少の SOL が必要です。
$ solana -um balance
実行
$ solana-foundation-delegation-program apply --mainnet mainnet-validator-keypair.json --testnet testnet-validator-keypair.json
これを行なっていないと以下のフォームで弾かれます
推奨環境
Solana Validator に必要なコンピューターの要件は、
正直、他のどのブロックチェーンよりも圧倒的に求められてる要件が高いです。
Solana のトランザクションの速さの秘密のうちの一つですね!
最小なSOLの要件
要件 | 数値 |
---|---|
合意参加に必要な投票アカウントのリザーブ | 0.02685864 SOL |
各ブロックごとの投票トランザクション送信のコスト | 最大 1.1 SOL/日 |
CPU
- 12コア / 24スレッド以上
- ベースクロック速度: 2.8GHz以上
RAM
- 256GB以上
- 512GB以上のマザーボード容量推奨
ディスク
- PCIe Gen3 x4 NVME SSDまたはそれ以上
- アカウント用: 500GB以上、高いTBW(Total Bytes Written)対応
- Ledger用: 1TB以上、高いTBW推奨
- OS用(オプション): 500GB以上、SATAでも可
CPU
- 16コア / 32スレッド以上
RAM
- アカウントインデックスを使用する場合: 512GB以上
こちら詳細リンクになります。
必要最低条件
まとめ
SolanaのValidatorノードの起動自体は複雑ではありませんが、設定を個々に合わせる際にばらつきが生じることがあり、これが混乱を招くことがあります。
そこで、私はオープンソースのアプローチを採用し、コミュニティの発展に寄与したいと考えました。
EpicsDAO Discord Channel solv スレッド:https://discord.gg/Dbehhscxm5
Discussion