6 Proxy RPC
El proxy RPC es la interfaz principal para las aplicaciones cliente. Reenvía solicitudes a los puntos finales de nodo ascendente configurados.
El proxy RPC proporciona una capa de acceso autenticada y autorizada para las solicitudes JSON-RPC de Ethereum. También proporciona funciones especializadas para firmar transacciones, ejecutar consultas y gestionar carteras.
Autenticación
Los puntos finales protegidos necesitan un token de portador en la cabecera de autorización:
Authorization: Bearer <access_token> El proxy valida el token de acuerdo con la configuración de despliegue (por ejemplo, validación de firma, caducidad, emisor y público).Puede utilizar el siguiente comando para generar un token de portador mediante el punto final de token de acceso disponible en 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>"
En el siguiente texto se muestra un ejemplo de respuesta. A continuación, utilice el valor de access_token como token de portador para las llamadas posteriores.{
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9....",
"expires_in": 300,
"token_type": "Bearer"
...
}Autorización
El acceso se controla mediante la siguiente afiliación de grupo, que se transmite en las reclamaciones de token.
- El acceso a JSON-RPC requiere ser miembro del siguiente grupo:
BESU_RPC_GW_<instance_id> - Las API de metadatos de instancia también necesitan ser miembros del siguiente grupo:
OBP_<BPMID>_CP_ADMIN
Especificación de OpenAPI
El proxy RPC publica una especificación OpenAPI para sus puntos finales REST. El siguiente texto muestra una solicitud de ejemplo.
curl -sS \
"<RPC_PROXY_BASE_URL>/openapi" \
-H "Authorization: Bearer <access token>" \
-H "Accept: application/yaml"El proxy RPC expone los siguientes tipos de API. Para obtener más información, consulte la especificación OpenAPI en RPC API for Oracle Blockchain Platform Enterprise Edition for Hyperledger Besu.
- API de proxy JSON-RPC: proporciona un punto de entrada autenticado y autorizado para los métodos JSON-RPC de Ethereum, como
eth_call,eth_getBalance,eth_sendRawTransactionyeth_getTransactionReceipt. - API de información de instancia/tiempo de ejecución: proporciona metadatos de instancia destinados a ver el archivo génesis o descargar el archivo
.zipde metadatos que se utilizará al crear una instancia de participante. - API de registro de contratos: proporciona puntos finales para gestionar y consultar metadatos de contratos almacenados. Por ejemplo, Application Binary Interface (ABI), código de byte, manifiestos, implementaciones y diseños de almacenamiento.
- API de cartera: proporciona puntos finales para gestionar carteras, incluida la creación y la lista de carteras, la carga de claves y la activación de carteras.