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 recomendadomethod: <string>
- una cadena que contiene el método a invocarparams: <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 solicitudid: <number>
- coincidiendo con el identificador de la solicitudresult: <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 deHEALTH_CHECK_SLOT_DISTANCE
slots desde el último slot confirmado del clústerbehind { distance }
: El nodo está retrasadodistance
slots desde el último slot confirmado del clúster dondedistance > HEALTH_CHECK_SLOT_DISTANCE
unknown
: El nodo no puede determinar su posición en relación con el clúster
Is this page helpful?