Métodos HTTP RPC de Solana

Los nodos de Solana aceptan solicitudes HTTP utilizando la especificación JSON-RPC 2.0.

Para aplicaciones JavaScript, utiliza la biblioteca @solana/web3.js como una interfaz conveniente para los métodos RPC para interactuar con un nodo de Solana. Para una conexión PubSub a un nodo de Solana, utiliza la API de Websocket.

Punto de conexión HTTP RPC

Puerto predeterminado: 8899

Formato de solicitud

Para realizar una solicitud JSON-RPC, envía una solicitud HTTP POST con un encabezado Content-Type: application/json. Los datos de la solicitud JSON deben contener 4 campos:

  • jsonrpc: <string> - establecido como "2.0"
  • id: <string | number | null> - un identificador único para la solicitud, generado por el cliente. Típicamente una cadena o número, aunque null es técnicamente permitido pero no recomendado
  • method: <string> - una cadena que contiene el método a invocar
  • params: <array> - un array JSON de valores de parámetros ordenados

Ejemplo 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"
]
}
'

La salida de respuesta será un objeto JSON con los siguientes campos:

  • jsonrpc: <string> - coincidiendo con la especificación de la solicitud
  • id: <number> - coincidiendo con el identificador de la solicitud
  • result: <array|number|object|string> - datos solicitados o confirmación de éxito

Las solicitudes pueden enviarse en lotes enviando un array de objetos de solicitud JSON-RPC como datos para un solo POST.

Ejemplo de solicitud

El parámetro de compromiso debe incluirse como el último elemento en el 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"
}
]
}
'

Definiciones

  • Hash: Un hash SHA-256 de un fragmento de datos.
  • Pubkey: La clave pública de un par de claves Ed25519.
  • Transacción: Una lista de instrucciones de Solana firmadas por un keypair de cliente para autorizar esas acciones.
  • Firma: Una firma Ed25519 de los datos de carga útil de la transacción, incluyendo instrucciones. Esto puede usarse para identificar transacciones.

Verificación de salud

Aunque no es una API JSON RPC, una GET /health en el punto final HTTP RPC proporciona un mecanismo de verificación de salud para uso de balanceadores de carga u otra infraestructura de red. Esta solicitud siempre devolverá una respuesta HTTP 200 OK con un cuerpo de "ok", "behind" o "unknown":

  • ok: El nodo está dentro de HEALTH_CHECK_SLOT_DISTANCE slots desde el último slot confirmado del clúster
  • behind { distance }: El nodo está retrasado distance slots desde el último slot confirmado del clúster donde distance > HEALTH_CHECK_SLOT_DISTANCE
  • unknown: El nodo no puede determinar su posición en relación con el clúster

Is this page helpful?

Tabla de Contenidos

Editar Página