9 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. Vedere Gruppi di utenti e ruoli.

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, vedere la specifica OpenAPI in Transazioni Web3 e API dell'istanza 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_sendRawTransaction e eth_getTransactionReceipt.