Métodos RPC de Solana y documentación
Interactúa directamente con los nodos de Solana mediante la API JSON RPC a través de los métodos HTTP y Websocket.
Configuración del compromiso de estado
Para las comprobaciones previas al vuelo y el procesamiento de transacciones, los nodos de Solana eligen qué estado del banco consultar basándose en un requisito de compromiso establecido por el cliente. El compromiso describe cuán finalizado está un bloque en ese momento. Al consultar el estado del libro mayor, se recomienda usar niveles más bajos de compromiso para informar sobre el progreso y niveles más altos para asegurar que el estado no será revertido.
En orden descendente de compromiso (del más finalizado al menos finalizado), los clientes pueden especificar:
finalized
- el nodo consultará el bloque más reciente confirmado por la supermayoría del clúster como habiendo alcanzado el máximo bloqueo, lo que significa que el clúster ha reconocido este bloque como finalizadoconfirmed
- el nodo consultará el bloque más reciente que ha sido votado por la supermayoría del clúster.- Incorpora votos de gossip y replay.
- No cuenta votos en descendientes de un bloque, solo votos directos en ese bloque.
- Este nivel de confirmación también mantiene garantías de "confirmación optimista" en la versión 1.3 y posteriores.
processed
- el nodo consultará su bloque más reciente. Ten en cuenta que el bloque aún puede ser omitido por el clúster.
Para procesar muchas transacciones dependientes en serie, se recomienda usar el
compromiso confirmed
, que equilibra la velocidad con la seguridad contra
reversiones. Para una seguridad total, se recomienda usar el compromiso
finalized
.
Compromiso predeterminado
Si no se proporciona la configuración de compromiso, el nodo
por defecto usará el compromiso finalized
Solo los métodos que consultan el estado del banco aceptan el parámetro de compromiso. Están indicados en la Referencia de API a continuación.
Estructura RpcResponse
Muchos métodos que toman un parámetro de compromiso devuelven un objeto JSON RpcResponse compuesto de dos partes:
context
: Una estructura JSON RpcResponseContext que incluye un camposlot
en el que se evaluó la operación.value
: El valor devuelto por la operación misma.
Respuestas analizadas
Algunos métodos admiten un parámetro encoding
, y pueden devolver datos de
cuenta o instrucción en formato JSON analizado si se solicita
"encoding":"jsonParsed"
y el nodo tiene un analizador para el programa
propietario. Los nodos de Solana actualmente admiten análisis JSON para los
siguientes programas nativos y SPL:
Programa | Estado de cuenta | Instrucciones |
---|---|---|
Address Lookup | v1.15.0 | v1.15.0 |
BPF Loader | n/a | estable |
BPF Upgradeable Loader | estable | estable |
Config | estable | |
SPL Associated Token Account | n/a | estable |
SPL Memo | n/a | estable |
SPL Token | estable | estable |
SPL Token 2022 | estable | estable |
Stake | estable | estable |
Vote | estable | estable |
La lista de analizadores de cuentas se puede encontrar aquí, y los analizadores de instrucciones aquí.
Criterios de filtro
Algunos métodos admiten proporcionar un objeto filters
para habilitar el
pre-filtrado de los datos devueltos dentro del objeto JSON RpcResponse. Existen
los siguientes filtros:
-
memcmp: object
- compara una serie de bytes proporcionada con los datos de la program account en un desplazamiento particular. Campos:offset: usize
- desplazamiento en los datos de la program account para iniciar la comparaciónbytes: string
- datos a comparar, como cadena codificadaencoding: string
- codificación para filtrar datosbytes
, ya sea "base58" o "base64". Los datos están limitados en tamaño a 128 o menos bytes decodificados.
NUEVO: Este campo, y el soporte de base64 en general, solo está disponible en solana-core v1.14.0 o más reciente. Por favor, omítalo cuando consulte nodos en versiones anteriores
-
dataSize: u64
- compara la longitud de los datos de la program account con el tamaño de datos proporcionado
Is this page helpful?