includeBam: false para recibir solo preconfirmaciones de Helius.
Endpoints
preconfSubscribe se proporciona desde el endpoint de Gatekeeper de Helius:
wss://beta.helius-rpc.com/?api-key=<API_KEY>
beta hace referencia al despliegue de Gatekeeper, no al nivel de madurez de Preconfirmations. Se convertirá en el endpoint estándar a medida que el tráfico migre a Gatekeeper.
El flujo no es continuo. La cobertura aumenta según la proporción del stake de la red
que reenvía datos a Helius o ejecuta BAM, así que habrá slots sin mensajes. Gestiona
estas interrupciones correctamente. Consulta Cobertura.
Autorizaciones
string
requerido
Tu clave de API de Helius, enviada como parámetro de consulta
api-key. Requiere un plan Professional o superior.Cuerpo
array
Opcional. Omite
params para recibir todas las transacciones de Helius y BAM. Para limitar el flujo, pasa un objeto de filtro como primer elemento. El filtrado ocurre en el servidor, por lo que solo pagas y recibes las transacciones que te interesan.-32602 (parámetros no válidos).
Los filtros de cuenta no solo coinciden con las claves de cuenta estáticas de la transacción. Helius resuelve las tablas de consulta de direcciones v0 en el servidor, por lo que accountInclude, accountExclude e accountRequired también coinciden con las cuentas que una transacción carga mediante una ALT.
Códigos de región
En las preconfirmaciones de Helius, la región indica dónde Helius recibió la transacción. En las preconfirmaciones de BAM, indica el endpoint regional de BAM que emitió la preconfirmación, no dónde Helius la recibió. Los endpoints de BAM de Singapur y Dallas se asignan a
sgp e dal.
Respuesta
integer
Id. de la suscripción (necesario para cancelarla)
Notificaciones
Después de la confirmación JSON, las notificaciones se entregan como tramas WebSocket binarias (no JSON). Las preconfirmaciones de Helius y BAM comparten la misma estructura. Cada trama es una estructura compacta de bytes que contiene una sola transacción:
La carga útil no tiene un campo de origen. No deduzcas que el origen es BAM a partir de
tx_index = 0, ya que las preconfirmaciones de Helius pueden contener los mismos valores.
Una preconfirmación es una señal anticipada, no una garantía. La transacción aún no se ha registrado en la cadena y todavía podría fallar o descartarse. Confirma que se haya registrado mediante las comprobaciones de compromiso estándar antes de considerarla definitiva.
Decodificar la transacción
Los bytes de la transacción se reenvían exactamente como los serializó el validador, con la codificación de transmisión estándar correspondiente a la versión de la transacción. Las transacciones heredadas y v0 usan la estructura con las firmas primero que producebincode. Las transacciones v1 (SIMD-0385) usan una estructura con el mensaje primero y las firmas al final, por lo que bincode falla con las cargas útiles v1.
Usa un decodificador que admita todas las versiones. En Rust, agave-transaction-view analiza las transacciones heredadas, v0 y v1 directamente y es la opción recomendada; wincode con un VersionedTransaction actual del SDK de Solana también funciona. En JavaScript, asegúrate de que la versión de tu biblioteca admita transacciones v1. Consulta la guía para ver un ejemplo en Rust.
Notificaciones duplicadas
Las preconfirmaciones de Helius y BAM se deduplican por fuente, no entre fuentes. Una pequeña proporción de transacciones llega a Helius por ambas fuentes, por lo que puedes recibir la misma firma dos veces y las dos copias pueden indicar slots diferentes. Deduplica por firma en el cliente y haz que las acciones activadas por transacciones sean idempotentes. Consulta la guía.Precios
Preconfirmations requiere un plan Professional o superior y cuesta 10 créditos por mensaje: un mensaje por cada transacción transmitida. Consulta Créditos para obtener más información. La facturación se calcula por mensaje, no por firma única. Una transacción entregada tanto por Helius como por BAM cuenta dos veces. ConfiguraincludeBam: false si solo quieres preconfirmaciones de Helius.
Contenido relacionado
Preconfirmations Overview
Qué son las Preconfirmations y dónde se ubican en el flujo de procesamiento del validador.
preconfUnsubscribe
Detén una suscripción mediante su id.