🤖 新着:Quicknode AIクックブック AIプログラミングの10の実証済みレシピ エージェント.
レシピを見る ブロックチェーン ノードの解説:フルノード、ライトノード、バリデーターノード |QuicknodeSOC 2 タイプ II 認証取得・ISO 27001
回答>ブロックチェーン ノードについて学ぶ>ブロックチェーン ノードとは何ですか? // Tags
ブロックチェーン ノードノードとは何かフルノード
要約: ブロックチェーン ノードとは、 ブロックチェーン のコピーを管理し、取引を検証し、ネットワーク全体にデータを中継するソフトウェアを実行しているコンピュータのことです。ノードは、すべてのブロックチェーン の基盤となっています。ノードがなければ、ネットワークは成り立ちません。取引を検証する軽量ノードから、チェーンの全履歴を保存するフルアーカイブノードまで、さまざまな種類のノードがそれぞれの役割を果たしています。
わかりやすい説明
すべてのブロックチェーン はピアツーピア(P2P)ネットワークであり、中央サーバーが存在しません。その代わりに、何千台もの個々のコンピュータ(ノード)が連携してネットワークを稼働させています。各ノードは、他のノードと接続するためのクライアントソフトウェアを実行し、ブロックチェーン のコピーをダウンロードし、コンセンサスルールに従って新しい取引やブロックを検証し、ネットワーク上の他のノードとデータを共有します。
Ethereum 、Solana 、またはその他のブロックチェーン で取引を送信する場合、その取引は単一の企業のサーバーに送信されるわけではありません。取引はネットワークにブロードキャストされ、by ノードによって受信されます。これらのノードは、取引が有効であるか(正しい署名、十分な残高、適切なフォーマット)を確認し、それをブロックに含め、確認済みのブロックをネットワーク全体に伝播させます。すべてのノードが独立してすべてのブロックを検証するため、ブロックチェーン は「トラストレス」な仕組みとなっています。 すべてのノードが互いの作業を検証し合うため、特定のノードを信頼する必要はありません。
ノードを運用することは、最も根本的なレベルでネットワークに参加する方法です。また、アプリケーションがブロックチェーン とやり取りする手段でもあります。ウォレットが残高を表示するときは、ノードに問い合わせを行っています。dappがスマートコントラクトを実行するときは、ノードを経由してトランザクションを送信しています。分析プラットフォームがオンチェーン のアクティビティを追跡するときは、ノードからデータを読み取っています。ノードは、アプリケーションとブロックチェーン
ノードの種類
すべてのノードが同じように作られているわけではありません。実行(または接続)するノードの種類は、ユースケース、リソース、およびアクセスが必要な履歴データの量によって異なります。
フルノードは 、ブロックチェーン の現在の状態を保存し 、すべての新しいトランザクションとブロックを検証します。チェーンの整合性を確認するために十分な直近の履歴を保持しますが、ストレージ容量を節約するために古いデータは削除します。Ethereum では、フルノードを運用するには通常、マルチコアCPU、少なくとも8GBのRAM、および500GB以上のSSDストレージが必要です。 フルノードはネットワークの要です。コンセンサスルールを適用し、無効なブロックを拒否し、軽量クライアントにとっての信頼の拠り所となります。フルノードを運用すれば、他者のブロックチェーン を信頼する必要がなくなります。
アーカイブノードは、フルノードが行うすべての処理に加え、ジェネシスブロックから現在に至るまでのブロックチェーン の完全な履歴状態を保存します。つまり、過去のどの時点においても、任意のアカウント残高、スマートコントラクトの状態、またはトランザクションを照会することができます。 アーカイブノードは、ブロックチェーン の分析、履歴データの照会、スマートコントラクトのデバッグ、およびブロックエクスプローラーの構築に不可欠です。その代償となるのがストレージ容量です。Gethを実行するEthereum のアーカイブノードには12TB以上のストレージ容量が必要ですが(今後も増加し続けています)、Erigonはより効率的なデータベース設計により、その容量を約2TBにまで削減しています。
ライトノード(またはライトクライアント)は、ブロックチェーン の全データを保存しません。その代わりに、ブロックヘッダーのみをダウンロードし、特定のデータが必要な際にはフルノードに依存して取得します。ライトノードは、チェーン全体を処理することなく、トランザクションがブロックに含まれていることを検証できるため、モバイルウォレットやリソースに制約のある環境に適しています。セキュリティ上の保証をある程度犠牲にする代わりに、ハードウェア要件を大幅に低減しています。
バリデーターノードとは、ブロックの生成やコンセンサス形成にも参加するフルノードのことです。プルーフ・オブ・ステーク(PoS)ネットワークでは、バリデーターはトークンを担保としてステークし、新しいブロックの提案や認証を行う役割を担います。 バリデータノードを運用するには、通常、追加のハードウェア信頼性 、稼働時間の保証、および(Ethereum において)少なくとも32 ETHのステーキングが必要です。Ethereum におけるマージ後の環境では、バリデータノードは実際には2つのクライアントソフトウェア、すなわち実行クライアント(GethやNethermindなど)とコンセンサスクライアント(PrysmやLighthouseなど)から構成され、これらが連携して動作します。
独自のノードを運用するのが難しい理由
ブロックチェーン ノードの運用は、単にソフトウェアをインストールして放置するほど単純なものではありません。Ethereum ノードの完全な同期をゼロから行うには、ハードウェアやインターネットの通信速度にもよりますが、数日かかる場合があります。アーカイブノードの場合はさらに時間がかかります。チェーンに新しいブロックが追加されるにつれて、ストレージ要件は絶えず増加していきます。また、稼働状況を監視し、ソフトウェアの更新を行い、ディスク容量を管理し、ノードの同期がずれたり、ピアとの接続に問題が発生したりした際にはトラブルシューティングを行う必要があります。
開発者 でアプリケーションを構築する場合、課題はさらに複雑になります。アプリケーションでは、ブロックチェーン のデータに対して一貫性があり、低遅延なアクセスが必要です。ノードがダウンすると、アプリケーションも停止してしまいます。ノードの同期が遅れると、アプリケーションは古いデータを返してしまいます。複数のチェーンにアクセスする必要がある場合、チェーンごとに個別のノードを稼働・維持しなければなりません。運用上のオーバーヘッドは急速に増大し、実際の製品開発に充てるべきリソースを奪ってしまうことになります。
これこそが、ノードインフラプロバイダーが解決する課題です。自前でハードウェアやソフトウェア、稼働時間を管理する代わりに、RPCエンドポイントを通じて専門的に管理されたノードに接続し、実際に構築しているものに集中することができます。
Quicknode のQuicknode
Quicknode パフォーマンス、信頼性 、およびスケーラビリティに最適化された、世界中に分散したブロックチェーン ノードのネットワークを運用しています。Quicknode エンドポイントを作成すると、インフラを自ら管理することなく、ノードへのRPC、WebSocket、および(対応チェーンの場合)gRPC へのアクセスが即座に利用可能になります。Quicknode は80以上のブロックチェーン ネットワークに対応しており、すべてのプランでフルノードおよびアーカイブデータへのアクセスが含まれています。つまり、個別のノードタイプを実行することなく、対応するあらゆるチェーンの現在の状態や履歴データを照会することができます。
基本的なRPCアクセス以上の機能が必要な開発者 ユーザー向けに、Quicknode は Streams リアルタイムおよび過去のブロックチェーン データの取り込み、エンタープライズレベルの分離性とパフォーマンスを実現する専用clusters、そしてDeFiデータ、分析、セキュリティツールによってノードへのアクセスを拡張するマーケットプレイス アドオンのエコシステムを提供します。高速な残高照会を必要とするウォレット、信頼性の高いトランザクション送信を必要とするDeFiプロトコル、あるいは完全な履歴データを必要とする分析プラットフォームのいずれを構築する場合でも、Quicknode がノードインフラストラクチャを管理するため、お客様はアプリケーションの開発に集中することができます。
ノードの運用に関する基礎を実際に体験しながら学びたい方のために、Quicknode では、Geth、OpenEthereum、BNB Smart Chain 、Stacks などのクライアントをゼロからセットアップする方法について、詳細なガイドも公開しています。
フルノードとアーカイブノードの違いは何ですか?
最大の違いは、各ノードがどの程度の履歴を保持しているかという点です。フルノードは現在の状態と、チェーンを検証するのに十分な最近のブロックを保持しているのに対し、アーカイブノードはジェネシスブロック以降のすべての履歴を保持しています。アーカイブノードは、過去の任意のブロック時点における残高やコントラクトのストレージに関する問い合わせに応答できますが、フルノードにはそれができません。以下の表に主なノードの種類をまとめました。フルノードとアーカイブノードの違いについては、ガイドでさらに詳しく確認できます。
ノードの種類 | 保存される内容 | 一般的な保管方法 | こんな方に最適 |
|---|
フルノード | 現状と近年の経緯 | 500 GB以上 | チェーンを自分で確認する |
アーカイブノード | 完全な履歴状態 | 2 TB~12 TB以上 | 分析、探索、デバッグ |
ライトノード | ヘッダーのみをブロックする | 数GB | モバイルおよび組み込み型ウォレット |
バリデーターノード | 州の全権限に加え、合意に基づく義務 | 500 GB以上 | プルーフ・オブ・ステーク(PoS)チェーンのセキュリティ確保 |
独自のノードを運用すべきか、それともプロバイダーを利用すべきか?
独自のノードを運用すれば、最大限の制御とプライバシーを確保できますが、その一方で、ハードウェア、同期時間、監視、アップグレード、そして障害発生時のオンコール対応といった、実際の運用コストも伴います。学習や実験、あるいはステーキングを目的とする場合は、それだけの価値があるでしょう。独自のノードを運用する場合と、マネージドプロバイダーを利用する場合のトレードオフについては、詳細な比較表で詳しく確認できます。
本番環境では、ほとんどのチーム はプロバイダーを利用しています。これは、一貫した稼働時間と低遅延が、セルフホスティングよりも重要視されるためです。Node信頼性 は、アプリがオンライン状態を維持し、最新のデータを提供し、手動での介入なしにトラフィックの急増に対応できるかどうかを直接左右します。
ブロックチェーン ノードにはどのように接続すればよいですか?
アプリケーションは、RPC(エンドポイント )を介してノードに接続します。RPCとは、データの読み取りやトランザクションの送信といった標準化されたリクエストを受け付けるURLのことです。コードから残高の取得やトランザクションの送信といったリクエストを送信すると、ノードはそのリクエストを自身の ブロックチェーンに基づいて処理を行い、応答を返します。RPCリクエストの仕組みを理解することで、効率的で耐障害性の高いアプリケーションを設計できるようになります。
よくある質問
ノードとは、マイナーやバリデーターと同じものですか?
必ずしもそうとは限りません。すべてのマイナーとバリデーターはノードを稼働させていますが、すべてのノードがマイナーやバリデーターであるわけではありません。通常のノードは台帳を保存し、データの検証を行うのに対し、マイナー(プルーフ・オブ・ワーク)やバリデーター(プルーフ・オブ・ステーク)は、新しいブロックを生成して報酬を獲得する、特殊なノードです。
Dappを構築するには、独自のノードが必要ですか?
いいえ。マネージドRPCプロバイダーを使用すれば、完全なアプリケーションを構築できます。これにより、ノードハードウェアのホスティングやメンテナンスが不要になります。実稼働中のDappのほとんどは、プロバイダーに接続することで、運用上のオーバーヘッドを伴わずに、複数のチェーンにわたって信頼性が高く低遅延なアクセスを実現しています。
ノードを運用するにはどれくらいの費用がかかりますか?
コストは、by のチェーンやノードの種類によって異なります。フルノードには高性能なマシンと高速なSSDが必要ですが、アーカイブノードには数テラバイト規模の高速ストレージが必要になる場合があります。ハードウェアに加え、帯域幅、電気代、クラウド利用料、および同期と更新を維持するためのエンジニアリング費用もかかります。
ノードではどのようなソフトウェアが実行されていますか?
各ネットワークには、それぞれ独自のクライアントソフトウェアがあります。Ethereum では、Geth、Nethermind、Erigonなどの実行クライアントと、PrysmやLighthouseなどのコンセンサスクライアントを組み合わせて使用しています。Bitcoin では、Bitcoin Coreが一般的に使用されており、Solana ではAgaveバリデータクライアントが稼働しています。クライアントの多様性は、ネットワークの耐障害性を維持するのに役立ちます。
ノードは同期がずれてしまうことがありますか?
はい。ハードウェアの性能が低い、ネットワークの問題、あるいはダウンタイムなどの理由により、ノードがチェーンの先端から遅れをとることがあり、同期が取れていないノードは古いデータを配信してしまいます。これが、本番環境のチーム が、監視され、専門的に運用されているノードに依存している主な理由の一つです。
参考資料