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 recomendadomethod: <string>
- uma string contendo o método a ser invocadoparams: <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çãoid: <number>
- correspondendo ao identificador da solicitaçãoresult: <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 deHEALTH_CHECK_SLOT_DISTANCE
slots do último slot confirmado pelo clusterbehind { distance }
: O nó está atrás dedistance
slots do último slot confirmado pelo cluster ondedistance > HEALTH_CHECK_SLOT_DISTANCE
unknown
: O nó não consegue determinar onde está em relação ao cluster
Is this page helpful?