6 Proxy RPC
Il proxy RPC è l'interfaccia principale per le applicazioni client. Inoltra le richieste agli endpoint del nodo a monte configurati.
Il proxy RPC fornisce un livello di accesso autenticato e autorizzato per le richieste Ethereum JSON-RPC. Fornisce inoltre funzioni specializzate per la firma di transazioni, l'esecuzione di query e la gestione di wallet.
Autenticazione
Gli endpoint protetti richiedono un token bearer nell'intestazione di autorizzazione:
Authorization: Bearer <access_token> Il proxy convalida il token in base alla configurazione di distribuzione (ad esempio, convalida della firma, scadenza, emittente e audience).È possibile utilizzare il comando seguente per generare un token bearer utilizzando l'endpoint del token di accesso disponibile in Blockchain Platform Manager.
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>"
Il testo seguente mostra un esempio di risposta. Utilizzare quindi il valore access_token come token bearer per le chiamate successive.{
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9....",
"expires_in": 300,
"token_type": "Bearer"
...
}Autorizzazione
L'accesso viene controllato utilizzando la seguente appartenenza al gruppo, che viene trasmessa nelle richieste di token.
- L'accesso JSON-RPC richiede l'appartenenza al gruppo seguente:
BESU_RPC_GW_<instance_id> - Le API dei metadati delle istanze richiedono anche l'appartenenza al seguente gruppo:
OBP_<BPMID>_CP_ADMIN
Specifica OpenAPI
Il proxy RPC pubblica una specifica OpenAPI per i relativi endpoint REST. Il testo seguente mostra una richiesta di esempio.
curl -sS \
"<RPC_PROXY_BASE_URL>/openapi" \
-H "Authorization: Bearer <access token>" \
-H "Accept: application/yaml"I seguenti tipi di API sono esposti dal proxy RPC. Per i dettagli completi, consulta la specifica OpenAPI all'indirizzo RPC API for Oracle Blockchain Platform Enterprise Edition for Hyperledger Besu.
- API proxy JSON-RPC: fornisce un punto di accesso autenticato e autorizzato per i metodi JSON-RPC di Ethereum come
eth_call,eth_getBalance,eth_sendRawTransactioneeth_getTransactionReceipt. - API delle informazioni sull'istanza o sul runtime: fornisce i metadati dell'istanza destinati alla visualizzazione del file genesis o al download del file
.zipdei metadati da utilizzare durante la creazione di un'istanza partecipante. - API registro contratti: fornisce gli endpoint per la gestione e l'esecuzione di query sui metadati del contratto memorizzati. Ad esempio, Application Binary Interface (ABI), bytecode, manifest, implementazioni e layout di memorizzazione.
- API wallet: fornisce endpoint per la gestione dei wallet, la creazione e l'elenco dei wallet inclusi, il caricamento delle chiavi e l'attivazione del wallet.