私が思う、カルダノステークプールの構築・運用の課題感と技術的解決策について
はじめに
こんにちは、LSL Stake PoolのオペレーターのMarshaです。
先日、LSL Stake Poolというプールを運営し始め、下記の記事を執筆致しました。
本記事では、上記記事の「なぜSPOになったのか?」の項目で触れたカルダノステークプールの構築・運用の課題感とその解決策について私なりにまとめてみました。
想定読者
- カルダノステークプールオペレーター (SPO) の方々
- ADAのステーキングの委任先をお探しの委任者様
本記事の内容
- カルダノステークプールの構築・運用の課題に対して、DevOps・コンテナ・コンテナオーケストレーション・CI/CDなどの近年では主流となっているエンジニアリングの思想に基づき解決策を提示
カルダノステークプールの構築・運営に感じる課題感
前提として、あくまでも個人的に感じている課題感です。
正直ベースで意見を書いていますが、決してコミュニティやSPOの方々を否定する意図はない旨ご理解いただければ幸いです。
課題(1): プールサーバー構築のハードルが高い
カルダノを更に分散化させるには、より多くの人々がカルダノプールを構築・運用していく必要がありますが、プールサーバーの構築・運用をするにあたり、Linux、ネットワーク、セキュリティ、コンピュータサイエンスなどが幅広い知識が要求され、学習コストがそれなりに掛かります。
また、AWSをはじめとするクラウドサービスの特徴を把握した上で技術選定をしていく必要があったりと、一般的な人々の感覚からすると、プール構築のハードルはなかなか高いのではないでしょうか。
課題(2): プールサーバーのメンテナンスに手間暇が掛かる
ステークプールオペレーター (SPO) には大きく下記2つ責務があると思っています。
- 委任者を募るためのマーケティング(カルダノの最新情報へのキャッチアップやSNSやブログ等での発信)
- プールサーバーの運用およびメンテナンス
1と2のいずれも疎かにできないタスクであり、SPOの方々はこれらを両立する必要があります。
2に関しては、日々のサーバーの監視、各種チューニング、アップデートなどでそれなりに手間や時間が取られたり神経をすり減らすこともあるため、可能であれば自動化・効率化して1の委任者を募るタスクに使える時間を捻出したいという気持ちが強いSPOも一定数存在するのではないでしょうか。
課題(3): サーバー運用に不慣れなSPOも存在する
Discord上でのやり取りを見ていると、実はサーバー運用に不慣れなSPOも存在することが分かります。(※1)
これは前述したようにLinuxなど一定の学習コストは掛かるものの、カルダノステークプールの構築マニュアルが大変充実していることで頑張れば誰でもカルダノステークプールの構築をすることができるという間口の広さの証明にもなっており、カルダノのコミュニティの素晴らさに感銘を受けた点です。
そう感じる一方で、委任者目線で見た時に、サーバー運用の初心者が委任を受けてプールの運営をしているという現実は少しだけ不安に感じる部分もあります。(実際に私がSPOになる前にステーキング委任先を選定する際、そう感じてしまいました。)
(※1) 決してその方々を否定する意図はございません。むしろ経験が浅くても日々キャッチアップしながら安定的な運用を実現し、カルダノの分散化への貢献をしていることに対して尊敬の念を抱いております。
技術的解決策
前提
- 下記の解決策はあくまでも私の現時点での考えを「こういう世界線になるともっと楽になりそうだな〜」程度に書き殴ったものです。
- 本職エンジニアのため一般的な技術的解決策には詳しい一方で、カルダノSPOとしては新米であるためカルダノステークプールの運用においては実現が難しい解決策を提示している場合があるかもしれません。
上記を踏まえ、もし勘違いしていそうな部分や、考えが及んでいない部分、より良いアイデアなどございましたらご意見いただければ幸いです。
各課題に対する具体的な解決策
課題(1): プールサーバー構築のハードルが高い
- コンテナ化
- インフラのコード管理 (Infrastructure as Code)
- 継続的インテグレーション (CI)
によって下記を実現し、カルダノステークプールの構築の煩雑さを軽減させることができるのではないかと考えられます。
- ステークプール構築に必要なステップ数の削減
- プールサーバー構築の高速化
- プールサーバーのセットアップの自動化
- 人為的なミスが介入しにくくなり、サーバー構築での躓きを防げる
そもそもの学習コストが高いという問題は依然として残るものの、コンテナ化・インフラのコード管理化・CIによる自動化を実現することで作業負荷が少なく誰がやっても均質なサーバー構築ができるようになる(サーバー構築がスケールするようになる)ため、分業的な発想でサーバーの構築はノウハウを持つ誰かに委託するというスタイルにシフトしたり、構築作業がアプリ上で行えるSaaSを用意してあげるなどによってある程度は解決できるのではないかと考えています。(下図参照)
課題(2): プールサーバーのメンテナンスに手間暇が掛かる
- コンテナ化
- コンテナオーケストレーションツールの利用
によって下記を実現し、プールサーバーのメンテナンスコストを軽減させることで、SPOが他にもやるべきことに時間を割くことができるようになると考えられます。
- アップデート作業の簡易化
- 基本的にコンテナイメージの差し替えのみ
- サーバーダウン時の自動復旧(オートヒーリング)
- CPU/Memoryの枯渇時のサーバースペックの自動調整(オートスケーリング)
- 人為的なミスが介入しにくくなり、二次的な障害を防げるなどの恩恵あり
- 段階的なアップデート作業の実現(カナリアリリース)
- 大きな変更を伴うアップデート時などに重宝
コンテナオーケストレーションツール自体の学習コストの高さはあるかもしれませんが、上記を実現するための設定自体はyamlファイルで管理されることが多いため、マニュアルさえあれば設定自体は初心者でもそこまで難しくないのではないかと考えられます。
課題(3): サーバー運用に不慣れなSPOも存在する
根本解決ではないですが、課題(2)で記述したコンテナオーケストレーションツールを使って諸々の作業を自動化することなどで、運用の負担を軽減する(SPO自身で管理すべき部分を減らす)ことは可能になると考えています。
また、課題(1)の部分で触れたように、分業的な発想でサーバーの運用はノウハウを持つ誰かに委託するというやり方にシフトしたり、アプリ上からより感覚的に運用をサポートするツールなどの提供といった手段もあるのではないかと考えています。
解決策のまとめ
色々と上述しましたが、私の思想としては楽できるところは徹底的に楽をする仕組みを用意してあげると幸せになれる人が多くなるのではないだろうかというものです。
できるところからどんどん敷居を下げて、カルダノの分散化に貢献できればと考えております。
最後に
LSL Stake Poolでは Low-cost (低コスト) , Steady (堅実) and Lucrative (利益をもたらす) をモットーに、本職エンジニアが運営しております。
エンジニアリングのプロとして、カルダノコミュニティへの貢献およびカルダノの分散化への貢献をしていくとともに、委任してくださった皆様に最大限の還元ができるよう堅実なプール運営をお約束しますので、ご委任いただけることを心よりお待ちしております!
ご質問等ございましたら、TwitterのDMからよろしくお願い致します!