分散型アプリケーション(DApp)は、ブロックチェーンを利用したアプリとして、暗号資産取引、NFT、DeFi(分散型金融)などで幅広く開発が進んでいます。DAppを実際に使用する際には、情報のやり取りのために、ブロックチェーンとの通信が必要になります。それではどういう方法で、DAppとブロックチェーンは通信しているのでしょうか?両者を接続、言いかえれば橋渡しとなる手段は、RPC(リモートプロシージャコール)ノードと呼ばれるものでまかなわれています。
ブロックチェーンには、2つの重要なノードがあります。1つはブロックチェーンノード(ブロックチェーンソフトウェアを実行し、ブロックチェーンのトランザクション記録を保持するコンピュータ)ですが、これは、パーミッションレス(自由参加型)およびパーミッションド(許可型)の分散型台帳のすべてにおいて不可欠なものです。もう1つが、ブロックチェーンのRPCノードです。これは、Web3開発者にとって簡単かつ低コストでブロックチェーンにアクセスできるゲートウェイとして広く使用されています。
今回は、RPCノードとは何か、その仕組み、使い方、Web3分野における役割、RPCノードを使ったソリューションのあり方などについて解説します。
ブロックチェーンのRPCノードとは?
ブロックチェーンのRPCノードは、世界中の暗号資産エコシステムに欠かせない重要な要素で、またWeb3のあらゆるユースケースで活躍しています。NFTマーケットプレイス、暗号資産取引所、取引ボット、分散型データストレージシステムなど、これらすべてにおいて、ブロックチェーンノードにRPCを送信して情報のやり取りが行なわれています。
DAppは、ブロックチェーンのRPCノードがあれば、ブロックチェーンノード(の要求)を個別に実行する必要はありません。その場合、DAppはRPCノードのパブリックとプライベートRPCエンドポイントのどちらかに接続します。ちなみにプライベートエンドポイントは、ブロックチェーンのRPCノードのプロバイダーが保持する商用利用に向いたソリューションです。
RPCの定義
RPCまたはリモートプロシージャコールは、あるコンピュータ上のプログラムが別のコンピュータのサブルーチン(標準化された手順または操作)を呼び出せる、リクエスト-レスポンスタイプのプロトコルです。人に例えるなら、アリスは、ボブがどこにいるか知らなくても、ボブに何かをするように頼んでいるイメージです(場所に関係なく、その場にいるようなやり取りができるという意味)。
RPCプロトコルでは、それぞれの呼び出し(リクエスト)に対して応答(レスポンス)が返されます。開発者は同じプログラム(コード)をその都度繰り返し書く必要がないため、開発プロセスが簡素化され、計算に要する手間も省けコストの効率化が図られます。
RPCエンドポイントとは?
RPCエンドポイントは、通常のURLとは意味が異なり、分散型アプリケーション(DApp)がブロックチェーンノードにリクエストを送ることができる場所を指します。ブロックチェーンノードとは、特別なクライアントソフトウェアを搭載したコンピュータのことで、他の同様の複数のコンピュータと同期しています。ブロックチェーンは実際には、互いに情報を共有している複数のブロックチェーンノードからなるエコシステムです。
DAppは、RPCエンドポイントに接続されると、ブロックチェーンのデータの利用がスタートします。つまり、そのブロックチェーンから情報を取得し、別のブロックチェーンに送信(「書き込み」)します。RPCエンドポイントは、ブロックチェーンへの入り口(ゲートウェイ)として機能します。DAppは、RPCエンドポイントでユーザーが正式に求めた操作を確認します。
わかりやすく例えると、ブロックチェーンベースのゲームにおけるプレイヤーがトーナメントで優勝したとき、そのゲームはプレイヤーの残高を積み増す必要がでてきます。その際に、ゲームのアプリケーションはブロックチェーンのRPCエンドポイントを使用して、トーナメント前の(プレーヤーの)残高に関するデータを要求します。そして、(プレーヤーの)ゲームアカウントからのトランザクション処理が完了すると、今度は残高を増やす必要があるという情報を(そこから)ブロックチェーンに送信します。
ブロックチェーンにおけるRPCエンドポイントの種類
様々なアプリケーションが異なるタイプのブロックチェーンRPCエンドポイントを使用していますが、大きく分けて、パブリックRPCエンドポイントとプライベートRPCエンドポイントの2つのサブクラスが存在します。
パブリックRPCエンドポイント
パブリックRPCエンドポイントは、RPCノードへの基礎的なゲートウェイです。それらは一般的に、開発者が最小限の費用で彼らのノードで(リクエストの)構築をスタートできるように、各ブロックチェーンのチームによって作成・管理されています。例えば、イーサリアムのパブリックRPCエンドポイントはイーサリアム財団によってそのリストが収集され、AVAXのパブリックRPCエンドポイントのリストはアバランチのメインウェブサイトで公開されているなどです。
パブリックRPCエンドポイントの何が特別で、何が人気の理由なのでしょうか?その答えは、簡単に言えば、無料でアクセスできるということです。誰もがこれらのエンドポイント上に(リクエストを)構築でき、手数料なしでパブリックRPCエンドポイントを分散型アプリケーションに接続できます。これらのエンドポイントのリストは公開されており、ユーザーは登録や個人データの共有なしに利用できます。
パブリックRPCエンドポイントは、研究開発、検証、教育などの目的に役立ちます。しかし、これらのエンドポイントは、商用利用には適しません。 パブリックRPCエンドポイントの帯域幅は限られており、「そのまま(手を加えずに)」提供されています。ユーザーは、技術サポート、カスタマイズ、特定のソリューションの要求はできません。
パブリックRPCエンドポイントは、大規模な分散型アプリケーションを実行するには要求量に対処できず、遅すぎます。そのため、パブリックエンドポイントは、個人で使用するブロックチェーンベースのアプリ(ウォレット、取引ボットなど)への接続が向いています。
プライベートRPCエンドポイント
ウォレット、NFTマーケットプレイス、DeFiなど、あらゆるタイプの分散型アプリは、2023年、RPCノードへの高いスケーラビリティ(要求処理能力)、高速性、柔軟なアクセスを必要としています。プライベートRPCエンドポイントは、2020~2021年の爆発的人気以来、その勢いが続いています。
プライベートRPCエンドポイントは、民間組織によって管理されるブロックチェーンノード向けのエンドポイントです。その管理者(ブロックチェーンのRPCノードプロバイダー)は、アクティブ性、操作性、スケーラビリティを維持する義務を負っています。プロバイダーはまた、リクエストをブロックチェーンに送信するクライアント(ユーザー)に対して課金します。
ユーザーは、ブロックチェーンのプライベートRPCノードと連携しながら、使用するブロックチェーンの数(例:イーサリアム、ソラナ、アービトラムのエンドポイントに単一のインターフェースでアクセス可能)、24時間あたりのリクエスト数(または月間の数量制限のないリクエスト)、ネットワークの種類(テストネット/メインネット)、インターフェース(JSON RPC、WebSocket、gRPC)等をカスタマイズできます。これらのサービスに対して、クライアントは暗号資産またはフィアットで支払います。
一方、暗号資産アプリケーションの開発者は、プライベートRPCエンドポイントの使用を始めるには、アカウントを登録し、エンドポイントツールキットをセットアップして、パッケージ料金を支払う必要があります。
Web3開発者がプライベートRPCエンドポイントを必要とする理由は?
プライベートRPCエンドポイントは、高速かつ柔軟、スケーラブルな機能を持つため、昨今の分散型アプリケーションには不可欠になっています。以下は違いを見るための、パブリックRPCエンドポイントのデメリットです。
1. 速度:パブリックRPCエンドポイントのリソースは限られているため、昨今のアプリケーションに必要な応答速度を達成できない。また、多くのユーザーが無料で利用しようとするため、一般向けの接続を持続的に提供できない。
2. 柔軟性:パブリックRPCエンドポイントには、様々なユースケースに適したAPIを作成するサポートチームがない。例えば、DAppをアービトラムのノードに接続して記録するのは運用コストが高すぎるため、どのパブリックエンドポイントのインフラプロバイダーもできない。
3. スケーラビリティ:ユーザーは、プライベートエンドポイントのインフラにおいては、リクエスト(の処理能力)が足りなくなった場合、いつでも追加のスループット(単位時間あたりの処理能力)を求めることができる。また、ユーザーのニーズに合わせたオンリーワンのソリューションである、プレミアムのインフラの予約もできる。
以上から、ウェブ開発者にとって、2023年にブロックチェーンノードプロバイダーと(プライベートRPCエンドポイントで)連携することは、賢い選択と言えます。
ブロックチェーンノードプロバイダーを利用したRPCエンドポイント
ブロックチェーンノードプロバイダーは、プライベートRPCエンドポイントを使って分散型アプリケーションに便宜をはかるサービス(RPCノードサービス)を提供している業者です。RPCプロバイダーを使えば、スピードが遅いパブリックRPCエンドポイントを使う必要はなく、セルフホストノード(独自のホストによるRPCノード)を実行する必要もありません。
開発者は、ブロックチェーンのRPCノードプロバイダーを使えば、手頃な価格で、プログラマブル(イーサリアム、ポリゴン、アービトラム)とノンプログラマブル(ビットコイン、ライトコイン)の両方のブロックチェーンへアクセスできます。
Web3用インフラ構築で定評のあるGetBlockは、最も注目されているブロックチェーンのRPCノードプロバイダーの1つです。開発者は、GetBlockの無料・有料のパッケージを利用して50以上のブロックチェーンにアクセスできます。GetBlockにおいては、(RPCネットワークシステムの)稼働時間は99.9%で、利用の仕方も簡単です:ユーザーはMetaMaskウォレットでアカウントに登録するだけです。
Chainstack、Alchemy、Infuraも、GetBlockの代替品として人気があります。これらの競合サービスも、あらゆる分散型アプリケーション用のRPCエンドポイントを提供しています。
DApp用のRPCエンドポイントを利用する方法
開発者は、ブロックチェーンのプライベートRPCエンドポイントの利用にあたって、以下のステップを踏む必要があります:
1. RPCノードプロバイダーのWebサイト上でアカウントを登録する
2. 使用するブロックチェーンを選択する
3. APIエンドポイントの構成を選択する
4. 料金プランを選択する。有料パッケージを選択した場合は、暗号資産またはフィアット(法定通貨)で支 払う
5. RPCエンドポイントが起動したら、それをDAppのコードベースに接続し、ブロックチェーンノードへリクエスト送信をスタートする
プロバイダーは通常、ユーザーのリクエスト数の上限が迫ると、彼らのアカウントに(金額の)上乗せが必要であることを通知します。
ブロックチェーンのRPCノードはDAppのゲームチェンジャー
ブロックチェーンのRPCノードとは、一言でいえば、ブロックチェーン内で、同様の複数のノードと同期して、当該ブロックチェーンへのリクエストを処理するコンピュータのことです。分散型アプリケーションは、その必要な処理を実行するのにブロックチェーンのRPCノードが必要です。RPCエンドポイントは、DAppsをブロックチェーンノードへ接続するための特殊なURLです。それらは、DAppsのコードベースに接続されて、ネットワークとデータの送受信ができるようになります。
2023年には、パブリックとプライベートのRPCエンドポイントが利用可能になります。パブリックエンドポイントは無料で利用でき、プライベートエンドポイントは商用利用や処理量の増大に適しています。プライベートRPCエンドポイントを利用する場合は、ブロックチェーンノードプロバイダーへ依頼することになりますが、ユーザーがブロックチェーンに送信するリクエストに対しては課金されます。こうしたプライベートRPCエンドポイントを提供するブロックチェーンノードプロバイダーは、ユーザーによるリクエストのスケーラビリティと利便性を向上させるものです。加えて、Web3におけるDAppsの構築と運用を、シームレスかつ効率的に実現するうえでも大きな役割を果たしています。ブロックチェーンのRPCノードは、その利用においてはプライベートRPCエンドポイントを中心に、プロバイダーを有効に活用して、DAppからWeb3分野へと活躍の場を広げさらに発展していくとみられます。
よくある質問
ブロックチェーンのRPCエンドポイントとは何ですか?
ブロックチェーンはRPCを使っていますか?
RPCエンドポイントとして最適なのはどれですか?
ソラナにおいてRPCノードはどういった働きをしていますか?
イーサリアムにおいてRPCノードはどういった働きをしていますか?
Follow us on:
X(Twitter):@BeInCryptoJapan
Telegramチャンネル:@BeInCrypto Japan オフィシャルチャンネル
免責事項 - Disclaimers
当ウェブサイトに掲載されているすべての情報は、誠意をもって作成され、一般的な情報提供のみを目的としています。当ウェブサイトに掲載されている情報をもとに読者が取る行動は、あくまでも読者自身のリスクで行うものとします。「Learn」サイトでは、質の高い情報を提供することを第一に考えています。私たちは、読者にとって有益な教育的コンテンツを特定し、調査し、作成するために時間をかけています。この基準を維持し、素晴らしいコンテンツを作成し続けるために、私たちのパートナーは、私たちの記事への掲載に対して手数料を支払う場合があります。しかし、これらのコミッションは、偏りのない、誠実で有益なコンテンツを作成するためであり、私たちの活動プロセスに影響を与えることはありません。