includeSource para seleccionar cualquiera de las fuentes.
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, pasada como parámetro de consulta
api-key. Las preconfirmaciones están disponibles en todos los planes de pago.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). Combinar includeSource con el campo obsoleto includeBam también devuelve -32602. Los filtros de instrucciones solo inspeccionan las instrucciones de nivel superior. No coinciden con las instrucciones invocadas mediante una invocación entre programas (CPI). Un desplazamiento final memcmp y dataSize no deben superar los 4,096 bytes.
Los filtros de cuentas no solo coinciden con las claves estáticas de las cuentas de la transacción. Helius resuelve las tablas de búsqueda 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
Para las preconfirmaciones de Helius, la región es donde Helius recibió la transacción. Para las preconfirmaciones de BAM, es el endpoint regional de BAM que emitió la preconfirmación, no el lugar donde Helius la recibió. Los endpoints de BAM en Singapur y Dallas se asignan a
sgp e dal.
Respuesta
integer
ID de la suscripción (necesario para cancelar la suscripción)
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 de bytes empaquetada que contiene una sola transacción:
La carga útil no tiene un campo de fuente. No deduzcas que se originó en BAM a partir de
tx_index = 0, ya que otras fuentes también pueden informar 0.
Una preconfirmación es una señal temprana, no una garantía. La transacción aún no se ha asentado en la cadena y todavía podría fallar o descartarse. Confirma que se haya asentado mediante las comprobaciones de compromiso estándar antes de tratarla como 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 para la versión de la transacción. Las transacciones heredadas y v0 usan la estructura con las firmas primero que producebincode. La transacción v1 (SIMD-0385) usa 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 localmente las transacciones heredadas, v0 y v1 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 las transacciones llega a Helius por ambas fuentes, por lo que puedes recibir la misma firma dos veces y las dos copias pueden informar slots diferentes. Deduplica por firma en el cliente y haz que las acciones activadas por transacciones sean idempotentes. Consulta la guía.Precios
Preconfirmations está disponible en todos los planes de pago: Developer, Business, Professional y Enterprise. Los planes gratuitos no son elegibles. Consulta Créditos para obtener más información. Los slots sin mensajes entregados cuestan cero créditos, incluso cuando el slot tiene cobertura de preconfirmación. Cuando un slot entrega al menos un mensaje, cada suscripciónpreconfSubscribe abierta se factura por el valor que sea mayor entre 300 créditos o 10 créditos por mensaje entregado. Los slots sin cobertura cuestan cero. Consulta Precios para conocer la elegibilidad de facturación según la fuente y la región.
Cada suscripción simultánea se factura de forma independiente cuando recibe al menos un mensaje. Cierra las suscripciones que ya no necesites con
preconfUnsubscribe. Con includeSource: ["helius"], los slots con cobertura exclusiva de BAM se excluyen de la facturación. Cuando se configura regionInclude, los slots con cobertura fuera de las regiones seleccionadas cuestan cero para esa suscripción; los slots coincidentes solo se facturan cuando la suscripción recibe al menos un mensaje.
La facturación se realiza por mensaje, no por firma única. Una transacción entregada tanto por Helius como por BAM cuenta dos veces. Configura includeSource: ["helius"] si solo quieres preconfirmaciones de Helius.
Contenido relacionado
Preconfirmations Overview
Qué es Preconfirmations y dónde se ubica en la canalización del validador.
preconfUnsubscribe
Detén una suscripción mediante su ID.