Elegir Webhooks, WebSocket o sondeo RPC
Compare avisos de direcciones, suscripciones por socket y sondeo acotado según la compatibilidad por cadena, recuperación, requisitos del receptor y facturación.
Utilice Webhooks de direcciones para la entrega a un receptor HTTPS, WebSocket para las suscripciones en tiempo real compatibles y sondeo acotado cuando el flujo necesite su propio cursor y recuperación.
Crear receptores de eventos on-chain para desarrolladores y agentes de IA requiere ajustar la arquitectura de la aplicación a las capacidades de red, las garantías de entrega, las restricciones del receptor y el coste operativo.
Matriz de decisión
La tabla siguiente compara los tres mecanismos de integración según las capacidades de red compatibles, los requisitos de infraestructura, las estrategias de recuperación y los modelos de facturación:
| Dimensión | Webhooks de direcciones | Suscripciones WebSocket | Sondeo RPC acotado |
|---|---|---|---|
| Mecanismo principal | Aviso Push entregado mediante HTTPS POST a un endpoint público | Suscripción a un flujo solicitado mediante una conexión TLS persistente (wss://) | Lotes JSON-RPC HTTP o consultas programadas iniciadas por el cliente |
| Disponibilidad por cadena | Todas las redes compatibles declaradas en GET /v1/push/chains | Compatible con Robinhood Chain (robinhood_mainnet y robinhood_testnet); las redes no servidas tienen ws: false y devuelven HTTP 404 | Todas las redes compatibles en GET /v1/chains mediante RPC público sin clave o JSON-RPC autenticado |
| Requisitos del receptor | URL HTTPS accesible públicamente, certificado TLS válido, respuesta 2xx dentro del tiempo límite, verificación de firma HMAC SHA-256 del body original | Conexión saliente TCP/TLS del cliente (wss://); gestiona latidos ping/pong y esperas progresivas de reconexión | Cliente HTTP sin estado o worker programado; almacena un cursor de bloques local |
| Entrega y orden | Entrega al menos una vez con esperas exponenciales de reintento; el receptor debe deduplicar por id del evento, o por ref + type entre suscripciones | Frames estrictamente ordenados en un único socket activo; los avisos se pierden durante las desconexiones | Respuestas de consulta deterministas para alturas de bloques confirmadas; el cliente regula el ritmo de ejecución |
| Reorganizaciones de cadena | Se emiten avisos de control para chain.reorg; el receptor descarta eventos sustituidos antes de aplicar replays canónicos | Los avisos de logs incluyen "removed": true para logs reorganizados; newHeads requiere comprobar el hash del bloque padre | El cliente rastrea la continuidad de la cadena mediante parentHash entre ciclos de sondeo para detectar reorganizaciones |
| Recuperación ante fallos | La ventana de retención del servidor permite replay mediante POST /v1/push/subscriptions/{id}/replay; las lagunas anteriores al bloque de activación requieren recuperación con eth_getLogs | No hay cola en el servidor; el cliente reconecta y recupera los rangos omitidos mediante eth_getLogs, deduplicados por (blockHash, transactionHash, logIndex) | Reanuda las consultas desde el last_synced_block almacenado; divide en tramos según el max_logs_block_range de la red de GET /v1/chains |
| Modelo de facturación | Tarifa diaria de direcciones por grupo, basada en el mayor número de direcciones mientras está online durante el día UTC, más CU por eventos de datos entregados; consulte Facturación de Webhooks | El handshake y los latidos no se facturan; eth_subscribe / eth_unsubscribe y las unidades de avisos enviados por socket se facturan en CU | Medición por solicitud en Compute Units: eth_blockNumber, eth_call, eth_getLogs; los pesos de los métodos y CU por $1 de GET /v1/plans se muestran a continuación |
| Más adecuado para | Monitoreo de depósitos de usuarios, seguimiento de direcciones de hot wallets, pagos de comercios, webhooks de eventos asíncronos | newHeads en tiempo real y logs filtrados, bots reactivos, interfaces interactivas en redes compatibles | Conciliación por lotes, tareas cron, pipelines ETL, cadenas sin compatibilidad WebSocket (como HyperEVM) |
Parámetros de conversión activos
1 USD = 10,000 unidades de facturación, 1 unidad de facturación = 1,000 CU (1 USD = 10,000,000 CU).
Fórmula: Peso en CU × 1,000,000 ÷ (10,000 × 1,000) USD.
| Método | CU por llamada | Precio por 1M de llamadas (USD) |
|---|---|---|
eth_blockNumber | 1 | $0.10 |
eth_call | 15 | $1.50 |
eth_getLogs | 30 | $3.00 |
debug_traceTransaction | 100 | $10.00 |
data.block | 5 | $0.50 |
Cuándo elegir Webhooks de direcciones
Elija la API de Webhooks blockchain cuando su backend funcione como un servicio web estándar capaz de recibir solicitudes HTTPS entrantes:
- Listas grandes de direcciones: Monitoree depósitos o retiradas de miles de direcciones de clientes sin mantener sockets persistentes para cada billetera.
- Receptores serverless o en contenedores: Las funciones serverless (AWS Lambda, Cloudflare Workers) se activan ante webhooks entrantes y no necesitan mantener conexiones continuas abiertas.
- Reintentos automáticos y replay: Las interrupciones transitorias del receptor se mitigan mediante esperas progresivas de reintento automáticas. Dentro de la ventana de retención del servidor, las entregas omitidas pueden reenviarse utilizando el endpoint de replay.
- Consideraciones del límite de activación: Las coincidencias comienzan solo después de aplicar el cambio de suscripción (
applied_from_block). Los eventos anteriores a la incorporación de una dirección o producidos mientras una suscripción estabaofflinedeben consultarse mediante logs RPC históricos.
Revise los flujos de verificación de firmas y replay antes de exponer receptores de webhook de producción.
Cuándo elegir suscripciones WebSocket
Elija Suscripciones WebSocket cuando necesite baja latencia y su proceso pueda mantener un socket saliente de larga duración:
- Cabeceras de bloques en tiempo real: Reciba un flujo
newHeadsa medida que se añade cada bloque a la cabecera de la cadena. - Filtros de eventos de contratos: Reciba un flujo de
logsde contratos en tiempo real que coincidan con una dirección o untopic0específico. - Entornos privados: Ideal para scripts locales, agentes CLI o servicios backend detrás de NAT o firewalls que no puedan exponer un puerto HTTPS público entrante.
- Comprobación de disponibilidad de red: WebSocket es compatible con Robinhood Chain (slug de red
robinhood_mainnet, Chain ID 4663 yrobinhood_testnet). HyperEVM actualmente no tiene compatibilidad WebSocket (ws: false); intentar una conexión WebSocket a una cadena no servida devuelve HTTP 404 (unknown_chain). - Gestión de desconexiones: Los avisos WebSocket no se conservan en el servidor durante las desconexiones. Cuando el socket se desconecta, los clientes deben reconectar con esperas exponenciales aleatorizadas y recuperar los bloques omitidos mediante
eth_getLogs.
Revise la guía de suscripciones WebSocket para conocer los límites de filtros, los límites de conexiones (20 por clave, 50 por cuenta) y los ejemplos de conexión con viem.
Cuándo elegir sondeo RPC acotado
Elija sondeo JSON-RPC acotado al ejecutar workers programados, pipelines de datos o trabajar en redes donde WebSocket no esté disponible:
- Redes sin WebSocket: HyperEVM (
hyperevm_mainnet) actualmente ofrece acceso JSON-RPC HTTP, pero no WebSocket (ws: false). Sondeareth_blockNumbery consultareth_getLogsdentro de los rangos de bloques compatibles permite procesar eventos de HyperEVM. - Ritmo de consulta controlado: El sondeo permite a los desarrolladores y agentes de IA controlar la frecuencia de solicitudes, gestionar el consumo de Compute Units dentro de los límites de tasa por clave y evitar desconexiones de sockets durante tareas de larga duración. Límites por clave — los valores predeterminados son 400 CU/s y ráfaga de 1,600 CU.
- Límites de rango de bloques: Las consultas
eth_getLogsautenticadas están limitadas por elmax_logs_block_rangede la red de GET /v1/chains. Superar este límite devuelve el código de error-32602(logs_range_too_large). Divida los intervalos más amplios en tramos consecutivos que no superen elmax_logs_block_rangede la red de destino.
| Cadena | Slug de la cadena | max_logs_block_range (bloques) |
|---|---|---|
| Arbitrum One | arb_mainnet | 1,000 |
| Base | base_mainnet | 1,000 |
| BNB Smart Chain | bsc_mainnet | 1,000 |
| Ethereum | eth_mainnet | 1,000 |
| Ethereum Sepolia | eth_sepolia | 1,000 |
| HyperEVM | hyperevm_mainnet | 1,000 |
| Polygon | polygon_mainnet | 1,000 |
| Robinhood Chain | robinhood_mainnet | 1,000 |
| Robinhood Chain Testnet | robinhood_testnet | 1,000 |
Consulte la guía de recuperación de logs de HyperEVM y la guía de rangos de bloques de eth_getLogs para conocer los algoritmos de división en tramos.
Para obtener una lista completa de comprobaciones de carga de trabajo y pruebas propias, comience con Cómo elegir un proveedor RPC.
Al elegir un proveedor para sondeo de bajo volumen, compare proveedores según la facturación y cobertura RPC estándar. Compare la facturación por uso con los costes de pruebas y suscripciones; los costes de avisos y recuperación de historial utilizan medidas diferentes a las lecturas RPC.
Guías de implementación
WebSocket en Robinhood Chain
Para newHeads en tiempo real o logs filtrados en Robinhood Chain, siga la guía de suscripciones WebSocket para conocer la autenticación y las solicitudes de suscripción. Tras una desconexión, reconecte con esperas progresivas, vuelva a suscribirse y recupere los bloques omitidos desde un cursor guardado con eth_getLogs; deduplique los logs por (blockHash, transactionHash, logIndex).
Sondeo acotado en HyperEVM
Para HyperEVM (hyperevm_mainnet), siga la guía de recuperación de logs de HyperEVM para sondeo acotado y recuperación. Consulte desde el cursor guardado en tramos dentro de max_logs_block_range, guarde conjuntamente los eventos y el progreso tras procesarlos correctamente y reintente los rangos incompletos. Compruebe la continuidad de la cadena y explore rangos superpuestos para gestionar reorganizaciones.
Próximos pasos
- Explore el directorio de conjuntos de datos para ver todos los conjuntos de datos indexados por BlockVectra.
- Consulte el plan gratuito y los precios para comprobar lo que incluye su cuenta.
- Inicie sesión en la consola para crear una API key.
Última actualización: