Métodos HTTP RPC da Solana

Os nós da Solana aceitam solicitações HTTP usando a especificação JSON-RPC 2.0.

Para aplicações JavaScript, use a biblioteca @solana/web3.js como uma interface conveniente para os métodos RPC para interagir com um nó Solana. Para uma conexão PubSub a um nó Solana, use a API Websocket.

Endpoint HTTP RPC

Porta padrão: 8899

Formatação de solicitação

Para fazer uma solicitação JSON-RPC, envie uma solicitação HTTP POST com um cabeçalho Content-Type: application/json. Os dados da solicitação JSON devem conter 4 campos:

  • jsonrpc: <string> - definido como "2.0"
  • id: <string | number | null> - um identificador único para a solicitação, gerado pelo cliente. Normalmente uma string ou número, embora null seja tecnicamente permitido, mas não recomendado
  • method: <string> - uma string contendo o método a ser invocado
  • params: <array> - um array JSON de valores de parâmetros ordenados

Exemplo usando curl:

curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d '
{
"jsonrpc": "2.0",
"id": 1,
"method": "getBalance",
"params": [
"83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri"
]
}
'

A saída da resposta será um objeto JSON com os seguintes campos:

  • jsonrpc: <string> - correspondendo à especificação da solicitação
  • id: <number> - correspondendo ao identificador da solicitação
  • result: <array|number|object|string> - dados solicitados ou confirmação de sucesso

As solicitações podem ser enviadas em lotes enviando um array de objetos de solicitação JSON-RPC como dados para um único POST.

Exemplo de solicitação

O parâmetro de commitment deve ser incluído como o último elemento no array params:

curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d '
{
"jsonrpc": "2.0",
"id": 1,
"method": "getBalance",
"params": [
"83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri",
{
"commitment": "finalized"
}
]
}
'

Definições

  • Hash: Um hash SHA-256 de um pedaço de dados.
  • Pubkey: A chave pública de um par de chaves Ed25519.
  • Transaction: Uma lista de instruções da Solana assinadas por um keypair do cliente para autorizar essas ações.
  • Signature: Uma assinatura Ed25519 dos dados de payload da transação, incluindo instruções. Isso pode ser usado para identificar transações.

Verificação de saúde

Embora não seja uma API JSON RPC, um GET /health no Endpoint HTTP RPC fornece um mecanismo de verificação de saúde para uso por balanceadores de carga ou outra infraestrutura de rede. Esta solicitação sempre retornará uma resposta HTTP 200 OK com um corpo de "ok", "behind" ou "unknown":

  • ok: O nó está dentro de HEALTH_CHECK_SLOT_DISTANCE slots do último slot confirmado pelo cluster
  • behind { distance }: O nó está atrás de distance slots do último slot confirmado pelo cluster onde distance > HEALTH_CHECK_SLOT_DISTANCE
  • unknown: O nó não consegue determinar onde está em relação ao cluster

Is this page helpful?

Índice

Editar Página