6 RPC-Proxy
Der RPC-Proxy ist die primäre Schnittstelle für Clientanwendungen. Er leitet Anforderungen an die konfigurierten Upstreamknotenendpunkte weiter.
Der RPC-Proxy bietet eine authentifizierte und autorisierte Zugriffsschicht für Ethereum-JSON-RPC-Anforderungen. Es bietet außerdem spezielle Features für das Signieren von Transaktionen, das Ausführen von Abfragen und das Verwalten von Wallets.
Authentifizierung
Gesicherte Endpunkte erfordern ein Bearer-Token im Autorisierungsheader:
Authorization: Bearer <access_token> Der Proxy validiert das Token entsprechend der Deployment-Konfiguration (z.B. Signaturvalidierung, Ablauf, Aussteller und Zielgruppe).Mit dem folgenden Befehl können Sie ein Bearer-Token generieren, indem Sie den Zugriffstokenendpunkt verwenden, der in Blockchain Platform Manager verfügbar ist.
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>"
Der folgende Text zeigt eine Beispielantwort. Anschließend verwenden Sie den Wert access_token als Bearertoken für nachfolgende Aufrufe.{
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9....",
"expires_in": 300,
"token_type": "Bearer"
...
}Autorisierung
Der Zugriff wird über die folgende Gruppenmitgliedschaft gesteuert, die in den Tokenansprüchen vermittelt wird.
- JSON-RPC-Zugriff erfordert Mitgliedschaft in der folgenden Gruppe:
BESU_RPC_GW_<instance_id> - Instanzmetadaten-APIs erfordern auch die Mitgliedschaft in der folgenden Gruppe:
OBP_<BPMID>_CP_ADMIN
OpenAPI Spezifikation
Der RPC-Proxy veröffentlicht eine OpenAPI-Spezifikation für seine REST-Endpunkte. Der folgende Text zeigt eine Beispielanforderung.
curl -sS \
"<RPC_PROXY_BASE_URL>/openapi" \
-H "Authorization: Bearer <access token>" \
-H "Accept: application/yaml"Die folgenden Arten von APIs werden vom RPC-Proxy bereitgestellt. Ausführliche Informationen finden Sie in der Spezifikation OpenAPI unter RPC API for Oracle Blockchain Platform Enterprise Edition for Hyperledger Besu.
- JSON-RPC-Proxy-API: Stellt einen authentifizierten und autorisierten Einstiegspunkt für Ethereum-JSON-RPC-Methoden bereit, wie
eth_call,eth_getBalance,eth_sendRawTransactionundeth_getTransactionReceipt. - API für Instanz-/Laufzeitinformationen: Stellt Instanzmetadaten bereit, die zum Anzeigen der Genesis-Datei oder zum Herunterladen der Metadaten-
.zip-Datei zum Erstellen einer Teilnehmerinstanz verwendet werden sollen. - Vertrags-Registry-API: Stellt Endpunkte für die Verwaltung und Abfrage gespeicherter Vertragsmetadaten bereit. Beispiel: Application Binary Interface (ABI), Bytecode, Manifeste, Implementierungen und Speicherlayouts.
- Wallet-API: Bietet Endpunkte für die Verwaltung von Wallets, einschließlich Erstellung und Auflistung von Wallets, Schlüsselupload und Wallet-Aktivierung.