
Solana RPCの仕組み
暗号資産におけるRPCとは?
従来の(Web2)ソフトウェア開発では、通常、APIを利用して必要なデータを取得します。たとえば、決済データにはStripe API、SMSデータにはTwilio、金融データにはBloomberg、銀行データにはPlaidを利用します。
ここで注目すべきなのは、求めているデータが中央集権型の組織によって囲い込まれ、管理されていることが多い点です。
暗号資産では、必要なデータはすべてオンチェーンにあります。完全にパーミッションレスで公開されており、誰でも閲覧して利用できます。では、どうすれば取得できるのでしょうか? そこで使うのがRPCです。
RPCは厳密にはRemote Procedure Call(リモートプロシージャコール)の略ですが、RPCノードを指す略称としてもよく使われます。RPCノードはブロックチェーンネットワークに参加し、開発者が呼び出せるメソッド(リモートプロシージャコール)を公開するノードです。
SolanaでRPCはどのように機能するのか?
Solanaが機能するには、そのソフトウェアクライアントを実行する分散型ノードネットワークが必要です。
これらのノードは、バリデータとRPCの2種類に分けられます。
どちらのノードにも重要な共通点があります。ブロックチェーンを継続的に監視し、最新のデータ(または状態)を保存していることです。
ただし、両者には決定的な違いが1つあります。
バリデータは投票(例:「はい、このブロックは有効です」)を行い、コンセンサスに参加するノードです。
RPCは投票を行わず、オンチェーンデータを扱うためのリクエストを処理するノードです。
この構成は、バリデータノードとRPCノードが同一であることが多いEthereumなど、他のブロックチェーンでは一般的ではありません。
RPCを呼び出すと、ブロックチェーンに参加しているノード上のプロシージャや関数が実行されます。そのノードはネットワークに参加しているため、最新のデータを把握しており、リクエストに応じてそのデータを提供できます。
Solana RPCの利用方法
Solanaブロックチェーンからデータを取得するには、ネットワークに参加しているRPCノードへJSON-RPCリクエストを送信する必要があります。
一般的なJSON-RPCリクエストは次のようになります。
curl http://localhost:8899 -X POST -H "Content-Type: application/json" -d ' { "jsonrpc": "2.0","id":1,"method":"getBlock", "params": [430, { "encoding": "json", "maxSupportedTransactionVersion":0, "transactionDetails":"full", "rewards":false } ] }このリクエストは、localhost:8899にあるRPCノードに対してgetBlock RPCメソッドを要求します。このノードはSolanaブロックチェーンのソフトウェアクライアントを実行しているため、リクエストを受信した際の処理方法を把握しています。
実際には、このようなJSON-RPCリクエストを直接扱うことはほとんどありません(もちろん扱うこともできます)。多くの開発者はRPCクライアントを利用します。最も広く使われているのはSolana Web3 JSライブラリで、こちらから確認できます。Solanaで利用可能なJSON RPCメソッドの全一覧については、ドキュメントをご覧ください。
RPCを使い始める方法
RPCは極めて重要です。RPCがなければ、ブロックチェーンを扱うことは文字どおりできません。そのため、RPC体験の向上を専門とする企業があります。RPCマシンには非常に大きな負荷がかかるため、高負荷時にも優れた性能を発揮することが不可欠です。優れたRPCプロバイダーは信頼性が高く、安定したパフォーマンスを提供し、エンドユーザーが使用傾向を時系列で確認できるメトリクスも公開します。
HeliusはSolanaネイティブのエンジニアチームです。あらゆる開発者に最高のRPC体験を提供することを使命としています。
メール登録もクレジットカードも不要です。こちらからわずか2クリックで無料で始められます。
今回は、Solana RPCについて初心者向けにごく簡潔に紹介しました。すでにご存じの内容も多かったかもしれません。次回は、RPCの最適化、注意点、さらに高度なトピックについて解説します。お読みいただきありがとうございました!
関連記事
Heliusを購読
Solana開発の最新情報や新しい記事の公開通知を受け取れます


