コンテンツへスキップ
0%

RPCノードとは?

Alchemy team headshot

執筆者 Alchemy

2025年4月11日 公開読了時間 2 分

アプリがオンチェーンの残高を確認するとき、トランザクションを送信するとき、コントラクトのイベントを読み取るとき、そのたびにアプリはブロックチェーンノードにしか答えられない問いを投げています。その問いがどこへ送られ、誰が答えるかによって、ユーザーが感じるアプリの速さと信頼性が決まります。その役割を担うのがRPCノードです。RPCノードとは、ブロックチェーンのクライアントソフトウェアを実行し、アプリのリクエストにブロックチェーンデータで応答するサーバーです。

リモートプロシージャコール(RPC)とは?

リモートプロシージャコール(RPC)とは、あるマシン上のプログラムが別のマシン上のプログラムに処理の実行を依頼し、その結果を受け取るためのプロトコルです。依頼する側のプログラムは、リモートシステムの内部の仕組みを知る必要がありません。ブロックチェーンでは、アプリがクライアントで、そのリクエストに応答するノードがサーバーです。

RPCノードとは?

RPCノードとは、ブロックチェーンのクライアントソフトウェアを実行し、JSON-RPCリクエストを受け取ってブロックチェーンデータを返すコンピューターです。返すデータには、残高、ブロックデータ、トランザクションレシート、コントラクトの状態、署名済みトランザクションをブロードキャストした結果などがあります。

Ethereumでは、ノードは2つのクライアントを並行して実行します。Gethなどの実行クライアントと、Lighthouseなどのコンセンサスクライアントです。Ethereumノードにはいくつかの種類があり、ライトノードはブロックヘッダーのみを、フルノードは現在の状態を、アーカイブノードは過去のすべての状態を保持します。Solanaでは役割の分かれ方が異なります。SolanaのRPCノードはバリデーターと同じソフトウェアを実行し、ブロックの正当性への投票以外はバリデーターと同じことをすべて行います。投票はせず、報酬も得ません。役割はアプリにデータを提供することです。

RPCエンドポイントとは?

RPCエンドポイントとは、プログラムがサーバーのデータにアクセスするためにRPCリクエストを送るネットワーク上の場所です。たとえばEthereumのRPCエンドポイントがこれにあたります。すべてのRPCエンドポイントはノード上で動作するため、多くのドキュメントではノードとエンドポイントを同じ意味で使っています。違いが表れるのはプロバイダーを使う場合です。1つのエンドポイントURLの背後にノードのフリート全体があるため、リクエストが1台のマシンに縛られることはありません。

RPCはアプリの問い合わせ方、ノードは答える側、エンドポイントはリクエストの送り先です。

用語
意味
例

RPC

別のマシン上のプログラムに処理を依頼し、結果を受け取るためのプロトコル

アプリがウォレットの残高を問い合わせる

RPCノード

ブロックチェーンのクライアントソフトウェアを実行し、RPCリクエストにチェーンのデータで応答するサーバー

GethとLighthouseを実行するマシン、またはSolanaのRPCノード

RPCエンドポイント

アプリがRPCリクエストを送るURL

https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY

RPCノードはどのように機能するのか?

アプリがノードのエンドポイントにリクエストを送ると、ノードは手元のチェーンのコピーに対してそれを実行し、結果を返します。リクエストは、ブロックチェーンで使われる標準のRPC仕様であるJSON-RPCで記述します。JSON-RPCはJSON-RPC 2.0仕様で定義されています。各リクエストは、メソッドとそのパラメーターを指定する小さなJSONオブジェクトです。

JSON-RPCリクエストは通常のHTTP POSTです。次の例は、Ethereumのエンドポイントに最新のブロック番号を問い合わせます。

bash
Copied
curl https://eth-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY \ -X POST -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'

メソッドの一覧は各ネットワークが公開しています。EthereumにはJSON-RPC APIドキュメントがあり、SolanaにはRPC APIドキュメントがあります。Ethereumは主要なメソッドを3つのカテゴリーに分けています。

  1. ゴシップメソッドはブロックチェーンの先頭を追跡し、ブロックを見つけるために使われます。
  2. ステートメソッドは、残高やコントラクトのストレージなど、ブロックチェーンデータの現在の状態を返します。
  3. ヒストリーメソッドは、チェーン上の任意のブロックの過去の記録を取得します。

パブリックとプライベート、どちらのRPCエンドポイントを使うべきか?

テストにはパブリックエンドポイントを、実ユーザーが使うものにはプライベートエンドポイントを使いましょう。パブリックエンドポイントは共有で、レート制限があり、無料です。ちょっとしたテストやチュートリアルには十分ですが、稼働率の保証もサポートもないため、実ユーザーからの本番トラフィックはいずれ制限にぶつかります。

プライベートエンドポイントは、自分で運用するノード、またはプロバイダーが発行するキー付きURLを通じて、アプリ専用のアクセスを提供します。プロバイダーを使えば、専用のレート制限、公開された稼働率、問題が起きたときに頼れるチームが得られます。URLはあなた専用ですが、その背後のノードは共有です。1社専用のハードウェアが必要な場合は、Dedicated Clustersを利用できます。本番アプリはプライベートエンドポイントで運用すべきです。

RPCのレイテンシーに影響する要因は?

アプリが体感するレイテンシーの大半は、次の3つで説明できます。

  • リージョン間の距離。 シンガポールからバージニアのノードへのリクエストは、そのノードがどれだけ速くても往復の時間がかかります。
  • 共有容量か予約容量か。 パブリックエンドポイントでは、リクエストが他の全員のリクエストの後ろに並びます。プライベートエンドポイントには専用のレート制限があり、専用インフラなら共有そのものがなくなります。
  • メソッドの種類。 現在の状態に対するeth_callと、広い範囲に対するeth_getLogsは、レイテンシーの異なる別種のワークロードです。

Alchemyはこれを測定する公開ベンチマークを公開しています。各メソッドについて、すべてのプロバイダーに同じJSON-RPCペイロード、チェーン、リージョン、タイムアウト、成功条件を適用し、標準の有料アカウントで共有のランナーリージョンからリクエストを送ります。レイテンシーは成功したレスポンスのみを対象とし、失敗は別に集計します。リアルタイムの稼働状況はstatus.alchemy.comで確認でき、Alchemy vs QuickNodeではプロバイダーごとの比較を紹介しています。

適切なRPC構成はどう選べばよいか?

この判断の大部分は、次の3つの問いで決まります。

  1. どのチェーンをサポートする必要があるか? セルフホストの場合、チェーンごとに別のノード基盤が必要です。プロバイダーなら1つのアカウントですべてをカバーできます。
  2. ピーク時にどれだけのリクエスト量とレイテンシーを想定するか? 平均的な日ではなく、最も混み合う時間帯に合わせて規模を決めましょう。パブリックエンドポイントは、まさにトラフィックが急増したときにリクエストを制限します。
  3. ビジネスに本当に必要なサポートと稼働率の保証はどの程度か? 1時間のダウンタイムが収益やユーザーの損失につながるなら、公開された稼働率と頼れる窓口が必要です。
ワークロード
推奨構成

ローカル開発、テストスイート、チュートリアル

パブリックエンドポイントで十分

実ユーザーがいる本番アプリ

複数のチェーンにまたがるアプリ

プロバイダーを使い、チェーンごとにエンドポイントを用意

ログの多いインデックス作成と過去データの読み取り

プライベートエンドポイントに加え、多数の呼び出しを置き換えられる場面ではData API

厳格なデータ所在地要件やカスタムのクライアント設定

自前のノード、またはDedicated Clusters

複数のチェーンで開発するチームや、サイドプロジェクトの段階を超えたチームは、たいていプロバイダーを選びます。インフラに特殊な要件があるチームは、プロバイダーと並行して自前のノードを運用することを選ぶ場合もあります。両者を比較するなら、ブロックチェーンノードプロバイダーの選び方にチェックリストがあり、下のガイドでは自社構築のコストを試算しています。

Build vs. Buy: Blockchain Infrastructure ebook cover
無料ガイド

Build vs. Buy: ブロックチェーンインフラ

インフラチームを雇う前に読んでください:自社構築には、本番リクエストを1件処理する前に年間850,000〜1,400,000ドルかかることがあります。コストの内訳全体はこちら。

ガイドをダウンロード

Alchemy Node RPCを始める

Alchemy Node RPCは、Ethereum、Solana、Base、Robinhood Chainを含む70以上のチェーンに対応しています。チェーンディレクトリでは、各ネットワークのRPC URL、チェーンID、対応プロダクトを確認できます。

  1. Alchemyアカウントを作成します。
  2. アプリを作成し、チェーンとネットワークを選びます。手順はダッシュボードが案内します。
  3. エンドポイントURLをコピーして、最初のリクエストを送ります。上のeth_blockNumberの呼び出しは、APIキーを設定すればそのまま使えます。

チーム専用のハードウェアや、標準プランを超える上限が必要ですか? Dedicated Clustersについてチームに相談する。

よくある質問

RPCノードとは?

RPCノードとは、ブロックチェーンのクライアントソフトウェアを実行し、アプリからのブロックチェーンデータのリクエストにJSON-RPCで応答するコンピューターです。残高、ブロック、トランザクションレシート、コントラクトの状態を返し、署名済みトランザクションをネットワークにブロードキャストします。

RPCエンドポイントとは?

RPCエンドポイントとは、プログラムがサーバーのデータにアクセスするためにRPCリクエストを送るネットワーク上の場所です。実際にはhttps://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEYのようなURLで、1台以上のRPCノードが応答します。

RPCノードとRPCエンドポイントの違いは?

ノードはブロックチェーンのクライアントソフトウェアを実行するサーバーです。エンドポイントは、アプリがリクエストを送るURLです。自前のノードを運用する場合、エンドポイントはその1台のマシンを指します。プロバイダーを使う場合、1つのエンドポイントURLの背後にノードのフリートがあります。

RPCノードはどのように機能するのですか?

アプリは、eth_getBalanceなどのメソッドを指定したJSON-RPCリクエストをノードのエンドポイントに送ります。ノードは手元のチェーンのコピーに対してそのメソッドを実行し、結果をJSONで返します。

JSON-RPCプロトコルとは?

JSON-RPCは、ブロックチェーンで使われる標準のRPC仕様です。各リクエストは、メソッド名、パラメーター、IDを含む小さなJSONオブジェクトです。Ethereumは主要なメソッドを、ゴシップメソッド(新しいブロックの検出)、ステートメソッド(現在の残高とストレージ)、ヒストリーメソッド(過去のブロックとトランザクション)に分けています。

RPCノードとフルノードの違いは?

フルノードはブロックチェーンの履歴を保存し、検証します。RPCノードは、フルノードかどうかにかかわらず、RPCリクエストを受け付けて応答するよう設定されたノードです。RPCノードの多くはフルノードですが、2つの用語が表すものは異なります。一方はノードが保持するデータの範囲を、もう一方はリクエストに応答するかどうかを表します。

RPCノードはバリデーターと同じですか?

いいえ。バリデーターはコンセンサスに参加し、ブロックに投票して報酬を得ます。一方、RPCノードはアプリにデータを提供します。Solanaでは、RPCノードはバリデーターと同じソフトウェアを実行し、ブロックの正当性への投票以外はバリデーターと同じことをすべて行うため、報酬は得ません。

RPCエンドポイントにはどのような種類がありますか?

主に2種類あります。パブリックエンドポイントは共有で無料、レート制限があり、プライベートエンドポイントはアプリ専用のアクセスを提供します。本番運用している多くのチームは、メインのエンドポイントに障害が起きたときの予備として代替RPCエンドポイントも設定しています。

パブリックではなくプライベートエンドポイントが必要なのはなぜですか?

プライベートエンドポイントでは、専用のレート制限、公開された稼働率、サポートが得られますが、パブリックエンドポイントにはそのいずれもありません。プライベートエンドポイントがないと、実ユーザーのいるアプリはトラフィックが急増したまさにその瞬間に制限を受けます。

無料のパブリックエンドポイントは本番環境で使えますか?

いいえ。ローカル開発、チュートリアル、テストスイートには十分ですが、共有でレート制限があり、稼働率の保証もサポートもありません。実ユーザーにサービスを提供するものはすべて、プライベートエンドポイントで運用すべきです。

1つのRPCエンドポイントで複数のチェーンに対応できますか?

いいえ。1つのRPCエンドポイントは1つのネットワークに限定されます。マルチチェーンのアプリはチェーンごとに別のエンドポイントに接続しますが、プロバイダーを使えば1つのダッシュボードですべてを管理できます。

RPCのレイテンシーはアプリにどう影響しますか?

インターフェース上のオンチェーンの読み取りはすべてRPCの応答を待つため、ノードのレイテンシーはそのままページの読み込みや承認の遅れとしてユーザーに伝わります。最も影響が大きいのは、リクエストが移動する距離、容量が共有か予約か、そして呼び出すメソッドです。

JSON-RPCを直接使う場合とData APIを使う場合の使い分けは?

現在のコントラクトの状態をeth_callで読み取る、署名済みトランザクションをブロードキャストするなど、特定のノードメソッドが必要な場合はJSON-RPCを直接使います。ウォレットのすべてのトークン残高や取引履歴をまとめるなど、本来なら多数のJSON-RPC呼び出しを組み合わせる必要がある場合は、1回のリクエストで数十回分を置き換えられるData APIを使います。

自前でRPCノードを運用する場合とノードプロバイダーを使う場合の違いは?

自前のノードなら完全に制御できますが、ハードウェア、数日から数週間かかる同期、クライアントのアップデート、オンコール対応をすべて自分で担うことになります。Alchemyのようなプロバイダーはそれらをすべて引き受けるため、数分で多くのチェーンにリクエストを送れるようになります。

どのブロックチェーンがRPCノードに対応していますか?

Ethereum、Solana、Base、Arbitrum、Optimism、Monadをはじめ、主要なブロックチェーンはすべてRPCインターフェースを公開しています。Alchemy Node RPCは、Robinhood Chainを含む70以上のチェーンに1つのアカウントで対応しています。

RPCエンドポイントが開発者にとって重要なのはなぜですか?

RPCエンドポイントは、アプリが独自のインフラを運用せずにオンチェーンのデータを読み書きするための手段です。アプリが行う残高の確認、コントラクトの読み取り、トランザクションの送信は、すべてRPCエンドポイントを経由します。

RPCノードを使い始めるにはどうすればよいですか?

Alchemyアカウントを作成し、使うチェーンとネットワーク向けのアプリを作成して、ダッシュボードからエンドポイントURLをコピーします。APIキーを設定すれば、すぐに最初のリクエストを送れます。

Background gradient

ブロックチェーンで魔法を生み出す

Alchemyは、最も強力なweb3開発者向けプロダクトとツールを、豊富なリソース、コミュニティ、そして卓越したサポートと組み合わせて提供します。