6 RPCプロキシ
RPCプロキシは、クライアントアプリケーションのプライマリインタフェースです。構成されたアップストリーム・ノード・エンドポイントにリクエストを転送します。
RPCプロキシは、Ethereum JSON-RPCリクエストに対して認証および認可されたアクセス・レイヤーを提供します。また、トランザクションの署名、問合せの実行およびウォレットの管理に特化した機能も提供します。
認証
保護されたエンドポイントでは、認可ヘッダーにベアラー・トークンが必要です:
Authorization: Bearer <access_token> プロキシは、デプロイメント構成(署名検証、有効期限、発行者、オーディエンスなど)に従ってトークンを検証します。次のコマンドを使用して、Blockchain Platform Managerで使用可能なアクセス・トークン・エンドポイントを使用してBearerトークンを生成できます。
curl -sS -X POST \
"<Access Token Endpoint – fetched from Blockchain Platform Manager>" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=password" \
-d "client_id=<CLIENT_ID>" \
-d "client_secret=<CLIENT_SECRET>" \
-d "username=<USERNAME>" \
-d "password=<PASSWORD>"
次のテキストは、レスポンスの例を示しています。次に、access_tokenの値を後続のコール用のベアラー・トークンとして使用します。{
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9....",
"expires_in": 300,
"token_type": "Bearer"
...
}認可
アクセスは、トークン・クレームで伝達される次のグループ・メンバーシップを使用して制御されます。
- JSON-RPCアクセスには、次のグループのメンバーシップが必要です:
BESU_RPC_GW_<instance_id> - インスタンス・メタデータAPIでは、次のグループのメンバーシップも必要です:
OBP_<BPMID>_CP_ADMIN
OpenAPI仕様
RPCプロキシは、そのRESTエンドポイントのOpenAPI仕様を公開します。次のテキストは、リクエストの例を示しています。
curl -sS \
"<RPC_PROXY_BASE_URL>/openapi" \
-H "Authorization: Bearer <access token>" \
-H "Accept: application/yaml"次のタイプのAPIは、RPCプロキシによって公開されます。詳細は、RPC API for Oracle Blockchain Platform Enterprise Edition for Hyperledger BesuのOpenAPI仕様を参照してください。
- JSON-RPCプロキシAPI: Ethereum JSON-RPCメソッド(
eth_call、eth_getBalance、eth_sendRawTransaction、eth_getTransactionReceiptなど)に対して、認証および認可されたエントリ・ポイントを提供します。 - インスタンス/ランタイム情報API: Genesisファイルの表示または参加者インスタンスの作成時に使用するメタデータ
.zipファイルのダウンロードを目的としたインスタンス・メタデータを提供します。 - 契約レジストリAPI: 格納された契約メタデータを管理および問合せするためのエンドポイントを提供します。たとえば、アプリケーションバイナリインタフェース(ABI)、バイトコード、マニフェスト、実装、およびストレージレイアウトです。
- Wallet API: ウォレットの管理、ウォレットの作成とリスト、キーのアップロード、ウォレットのアクティブ化などのエンドポイントを提供します。