9 Proxy RPC

O proxy RPC é a interface principal para aplicativos cliente. Encaminha solicitações para os pontos finais do nó upstream configurados.

O proxy RPC fornece uma camada de acesso autenticada e autorizada para solicitações Ethereum JSON-RPC. Ele também fornece recursos especializados para assinar transações, executar consultas e gerenciar carteiras.

Autenticação

Pontos finais protegidos exigem um token de portador no cabeçalho de autorização:
Authorization: Bearer <access_token>
O proxy valida o token de acordo com a configuração de implantação (por exemplo, validação de assinatura, expiração, emissor e público).

Você pode usar o comando a seguir para gerar um token ao portador usando o ponto final do token de acesso que está disponível no 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>"
O texto a seguir mostra um exemplo de resposta. Em seguida, use o valor de access_token como o token ao portador para chamadas subsequentes.
{
  "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9....",
  "expires_in": 300,
  "token_type": "Bearer"
    ...
}

Autorização

O acesso é controlado usando a seguinte associação de grupo, que é transmitida nas reivindicações de token. Consulte Grupos de Usuários e Atribuições.

Especificação OpenAPI

O proxy RPC publica uma especificação OpenAPI para seus pontos finais REST. O texto a seguir mostra um exemplo de solicitação.

curl -sS \
  "<RPC_PROXY_BASE_URL>/openapi" \
  -H "Authorization: Bearer <access token>" \
  -H "Accept: application/yaml"
Os tipos de APIs a seguir são expostos pelo proxy RPC. Para obter detalhes completos, consulte a especificação OpenAPI em Web3 Transactions e APIs de Instância Besu.
  • API de proxy JSON-RPC: Fornece um ponto de entrada autenticado e autorizado para métodos JSON-RPC Ethereum, como eth_call, eth_getBalance, eth_sendRawTransaction e eth_getTransactionReceipt.