Nodeの運用とRPCプロバイダーの比較:コストとメリット | Quicknodeターミナル、コード、またはAIエージェントからQuicknodeを管理できます。CLI、Admin API、MCP、SDKが利用可能になりました。
作成を開始する 回答>ブロックチェーンノードについて学ぶ>ノードを運用するとはどういうことですか? // Tags
ブロックチェーンノードを稼働させるノードを実行するノードの起動方法イーサリアムノードの起動、セルフホスト型ノード
要約: ノードを運用するとは、 トランザクションやブロックをダウンロード、検証、中継することで、 ブロックチェーンネットワークに参加するコンピュータを稼働させることを意味します。 これにより、第三者に依存することなく、ブロックチェーンデータに直接かつ信頼不要でアクセスできるようになります。 独自のノードを運用することで最大限の自律性とプライバシーが確保できますが、ハードウェア、メンテナンス、運用上の複雑さといった実質的なコストも伴うため、ほとんどの開発者やチームは、これらの負担をインフラプロバイダーに委託することを選択しています。
わかりやすい説明
本質的に、ノードを運用するということは、マシンにブロックチェーンのクライアントソフトウェアをインストールし、それをピアツーピアネットワークに接続して、チェーンの全履歴を同期させることを意味します。同期が完了すると、そのノードはネットワークのコンセンサスルールに従って、新しいブロックやトランザクションをすべて独自に検証します。他のノードを信頼することはありません。すべてを自ら確認するのです。
これがブロックチェーンの根本的な約束、「信頼するな、検証せよ」です。独自のノードを運用する場合、チェーンの状態について誰かの言葉を鵜呑みにすることはありません。自分のマシンが生データをダウンロードし、トランザクションを実行することで、ネットワーク内の他のすべての誠実なノードと同じ状態に到達します。もし誰かがあなたのノードに無効なブロックや不正なトランザクションを送り込もうとしても、ソフトウェアが自動的にそれを拒否します。
ノードを運用することは、アプリケーションがブロックチェーンと直接かつプライベートな接続を持つことを意味します。自身のノードを通じてウォレットの残高を照会したり、トランザクションを送信したりする場合、そのリクエストは第三者のサーバーを経由することはありません。誰もあなたの照会内容を記録したり、アクセスを制限したり、トランザクションを検閲したりすることはできません。あなたはネットワークにおける第一級の参加者なのです。
ノードを運用するには実際に何が必要か
ノードを運用する実情は、単にソフトウェアをインストールするだけにとどまりません。イーサリアムにおいて、フルノードを運用するには、実行クライアント(Geth、Nethermind、Erigonなど)とコンセンサスクライアント(Prysm、Lighthouse、Tekuなど)という、2つの別々のクライアントプログラムを同時に実行する必要があります。これら2つのクライアントは認証された接続を介して相互に通信しており、ノードが正常に機能するためには、両方が同期を保ち、正常な状態を維持している必要があります。
SOC 2 タイプ II 認証取得 · ISO 27001
ハードウェア要件はチェーンによって異なりますが、決して軽視できるものではありません。イーサリアムのフルノードには、マルチコアCPU、少なくとも16GBのRAM、1TB以上の空き容量がある高速SSD、そして帯域幅が少なくとも25 Mbpsある安定したインターネット接続が必要です。 アーカイブノードには12TB以上のSSDストレージが必要です。ソラナ(Solana)ノードはさらに要件が厳しく、チェーンのスループットに対応するためにハイエンドのCPU、512GBのRAM、およびNVMeドライブが必要となります。ビットコインノードは比較的軽量ですが、それでも数百ギガバイトのストレージが必要です。
初期同期は最初のハードルとなります。チェーンや使用しているハードウェアによっては、ジェネシスブロックからの同期には、数時間(新しいチェーンの場合)から数日、あるいは数週間(イーサリアムのアーカイブノードの場合)かかることがあります。同期中、ノードは数百万ものブロックをダウンロードして検証するため、CPU、ディスク、ネットワークに持続的な負荷がかかります。クラッシュ、停電、ネットワークの問題などによってこのプロセスが中断された場合、同期を再開または修復する必要が生じる可能性があります。
一度同期されると、継続的なメンテナンスが常に必要となります。 クライアントソフトウェアは定期的にアップデートをリリースしており、中には迅速に適用する必要がある重要なセキュリティパッチが含まれることもあります。ブロックチェーンのハードフォークが発生した場合は、特定のブロック高に達する前にクライアントを更新しなければならず、そうしないと正規のチェーンから外れてしまうリスクがあります。新しいブロックが追加されるにつれてディスク使用量は継続的に増加するため、ストレージを監視し、拡張計画を立てる必要があります。何らかの理由でノードの同期がずれてしまった場合は、問題を診断して再同期を行う必要がありますが、同期の遅れ具合によっては、その作業に数時間から数日かかることもあります。
なぜ人々は独自のノードを運用するのか
運用上の負担はあるものの、独自のノードを運用するには説得力のある理由があります。プライバシーはその主な理由の一つです。サードパーティのRPCプロバイダーを利用する場合、実行するすべてのクエリ(残高確認、トランザクションの送信、スマートコントラクトの呼び出し)は、そのプロバイダーのサーバーを経由します。理論上、プロバイダー側は、ユーザーがどのアドレスにクエリを送信しているか、どのコントラクトとやり取りしているか、そしてそれがいつ行われたかを記録する可能性があります。独自のノードを運用すれば、そのような情報漏洩のリスクを完全に排除できます。
検閲への耐性もその一つです。取引の送信を第三者に依存している場合、その第三者が取引の中継を拒否する可能性があります。これは単なる理論上の懸念ではありません。バリデーターや中継者が、規制当局からの圧力に基づいて取引をフィルタリングした事例が実際に報告されています。独自のノードを運用すれば、潜在的なゲートキーパーを迂回して、取引をピアツーピアネットワークに直接送信することができます。
完全な信頼不要性が3つ目の理由です。他者のノードを利用するということは、そのノードが誠実であり、適切に同期されており、正確なデータを返すと信頼することを意味します。ほとんどのユースケースや信頼できるプロバイダーの場合、この信頼は妥当なものと言えます。しかし、高価値なアプリケーションやセキュリティが極めて重要なアプリケーションにおいては、その信頼の前提を完全に排除することには、運用コストを払う価値がある場合があります。
どのような種類のブロックチェーンノードを実行できますか?
「ノードを運用する」とは、そのノードが保持するデータの量や果たす役割によって、いくつかの異なる意味を持ち得ます。最も一般的なタイプを以下にまとめました。ブロックチェーンノードとは何かについて、さらに詳しく知りたい場合は、当社の概要記事をご覧ください。
ノードの種類 | 保存される内容 | 代表的な用途 |
|---|
フルノード | 直近の状態とすべてのブロック | 最新データの検証と提供 |
アーカイブノード | 各ブロックにおける完全な履歴状態 | 過去のクエリと分析 |
ライトノード | ヘッダーのみ | 軽量なウォレットやデバイス |
バリデーターノード | フルノードとバリデータークライアント | ステーキングとブロックの生成 |
RPCノード | APIの背後にある完全なデータまたはアーカイブデータ | アプリの読み取りおよび書き込みトラフィックへの対応 |
ノードを実行するためのハードウェア要件は何ですか?
要件は、チェーンによって、またフルノードとアーカイブノードのどちらを運用するかによって大きく異なります。以下の表には大まかな基準値を示していますので、開始前にハードウェアの構成を決定する際の参考にしてください。
チェーン | ストレージ(満杯) | RAM | 注記 |
|---|
イーサリアム | 1~2 TBのSSD | 16~32 GB | アーカイブには12 TB以上が必要です |
ビットコイン | 数百GBのSSD | 8 GB以上 | 他の製品に比べて軽量 |
ソラナ | マルチTB NVMe | 256~512 GB | 極めて高いスループットが求められる |
どのブロックチェーンにおいても、フルノードとアーカイブノードの区別がコストの大部分を占めています。その違いについては、「フルノードとアーカイブノードの違い」で詳しく説明されています。もしハードウェアを一切使いたくない場合は、イーサリアムや ビットコインなどのブロックチェーン向けのマネージドエンドポイントを利用すれば、機器を運用することなく同様のアクセスが可能になります。
ブロックチェーンノードの同期にはどれくらい時間がかかりますか?
同期にかかる時間は、ハードウェアやネットワーク速度にもよりますが、新しいチェーンでは数時間程度であるのに対し、イーサリアムのアーカイブノードでは数日、場合によっては数週間にも及ぶことがあります。ノードは数百万ものブロックをダウンロードして再検証する必要があるため、純粋なCPU性能よりも、高速なNVMeドライブと十分な帯域幅の方が重要になります。また、このプロセス全体を通じて、同期の進捗状況やディスク使用量を監視する必要があるため、ブロックチェーンインフラのモニタリングが不可欠となります。
独自のノードを運用するのと、プロバイダーを利用するのと、どちらが安上がりでしょうか?
単なる趣味のノードであれば、セルフホスティングは安上がりです。しかし、本番環境のワークロードの場合、冗長化されたハードウェア、帯域幅、監視、オンコール要員、そしてユーザーが期待するレベルのノードの信頼性と 高可用性を維持するためのエンジニアリング時間を考慮すると、通常はプロバイダーを利用するのがコスト面で有利になります。マネージドRPCエンドポイントを利用すれば、多額の固定運用コストを、予測可能な従量課金制に変えることができます。
よくある質問
ブロックチェーンを利用するには、ノードを稼働させる必要がありますか?
いいえ。ほとんどの開発者やユーザーは、管理されたRPCプロバイダーを通じてチェーンにアクセスしており、自らノードを運用することはありません。独自のノードを運用する主な目的は、プライバシーの確保、検閲耐性、そして完全な信頼不要性にあります。
すべてのノードが報酬を獲得できるのですか?
いいえ。担保をステーキングしているバリデーターノードのみが、プロトコルの報酬を獲得できます。バリデーターではないフルノード、アーカイブノード、ライトノードは、ネットワークのセキュリティ確保と運用に貢献しますが、それ自体ではステーキング報酬を獲得することはできません。
フルノードとアーカイブノードの違いは何ですか?
フルノードは直近の状態を保持し、ブロックチェーンの検証を行うことができます。一方、アーカイブノードは各ブロックにおける過去の状態をすべて保持しています。アーカイブノードははるかに多くのストレージを必要とし、過去のデータに関する詳細なクエリに使用されます。
クラウド上でブロックチェーンノードを稼働させることはできますか?
はい。多くの事業者は、稼働時間と帯域幅を確保するために、クラウドやベアメタルサーバー上でノードを運用しています。その代償として、継続的な運用コストがかかるほか、更新、同期、フェイルオーバーを自ら管理する必要があります。
ノードのメンテナンスにはどれくらいの労力が必要ですか?
継続的な作業です。クライアントの更新を適用し、ハードフォークに備え、チェーンの拡大に合わせてストレージを増設し、ノードが同期遅れを起こした場合は再同期を行う必要があります。こうした継続的なメンテナンスが、多くのチームがこれをプロバイダーに委託する理由です。
なぜ多くの開発者がNodeプロバイダーを使うのか
開発者やチームの圧倒的多数にとって、独自のノードを運用することによるトレードオフは合理的ではありません。本番環境向けのアプリケーションを構築するには、ノードが24時間365日稼働し、低遅延で、場合によっては複数のチェーンにまたがり、フルデータとアーカイブデータの両方にアクセスできる状態である必要があります。自前でホストするインフラでこのレベルの信頼性を実現するには、冗長化されたハードウェア、監視、アラート、フェイルオーバーシステム、そしてブロックチェーン運用の専門知識を持つチームが必要となります。
Quicknodeは、まさにこの問題を解決するために構築されました。Quicknodeは、80以上のチェーンにまたがるグローバルに分散されたブロックチェーンノードネットワークを運用しており、99.99%の稼働率を保証するSLAに加え、APIの応答時間は競合他社よりも平均で2.5倍高速です。Quicknodeのエンドポイントを作成すると、ハードウェアやソフトウェアに一切触れることなく、専門的に管理されたノードへのRPCおよびWebSocketアクセスを即座に利用できます。 Quicknodeがクライアントの更新、ハードフォーク、ディスク管理、同期の問題をすべて処理するため、お客様はアプリケーションの開発に専念できます。運用上の負担をかけずに、専用インフラストラクチャの分離性と制御性を必要とするチームには、Quicknodeの「Dedicated Clusters」が、パフォーマンスが保証されたプライベートで冗長化されたノードバックエンドを提供します。
参考資料