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