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 finalizado
  • confirmed - 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 campo slot 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:

ProgramaEstado de cuentaInstrucciones
Address Lookupv1.15.0v1.15.0
BPF Loadern/aestable
BPF Upgradeable Loaderestableestable
Configestable
SPL Associated Token Accountn/aestable
SPL Memon/aestable
SPL Tokenestableestable
SPL Token 2022estableestable
Stakeestableestable
Voteestableestable

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ón
    • bytes: string - datos a comparar, como cadena codificada
    • encoding: string - codificación para filtrar datos bytes, 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?

Tabla de Contenidos

Editar Página