Skip to main content
La cadena confirma bloques. Las aplicaciones hacen preguntas como cuáles fueron las ejecuciones de esta cuenta la semana pasada o qué aspecto tiene el libro ahora mismo, preguntas que un registro con forma de bloque responde mal. El indexador es lo que convierte lo uno en lo otro. En la mayoría de las cadenas el indexador es crítico para la infraestructura: la cadena emite eventos opacos y terceros reconstruyen el significado a partir de ellos, de modo que lo que tu aplicación cree depende de en qué indexador confía. Aquí el paso de reconstrucción no existe. El kernel emite salida tipada y atribuida, con cada cambio de estado ya ligado a la transacción que lo causó, así que el indexador remodela los datos en lugar de inferirlos. Eso cambia para qué sirve el indexador. Es una capa de servicio, no una fuente de verdad. Todo lo que reporta se puede comprobar contra la cadena, y una discrepancia es un fallo del indexador y no una cuestión abierta.

La ruta

por antigüedad
Nodo completobloques confirmados como registros tipados
Cachéreciente — en memoria
Almacén de ficheroshistórico — duradero
Servicio de datosambos como un solo flujo
Pasarela → REST · WebSocketacceso, cuotas, enrutamiento
Por qué se separanSeguir la cabeza es sensible a la latencia y ligero; las consultas históricas, al rendimiento y pesadas. Un relleno por la ruta compartida atascaría la ruta en vivo.
Capa de servicio, no fuente de verdadEl kernel emite salida tipada y atribuida, así que el indexador remodela en lugar de inferir. Una discrepancia con la cadena es un fallo del indexador.
Un nodo completo es el origen. Los registros de trading salen de él en streaming como datos tipados, no como transacciones en bruto que haya que interpretar. La caché y el almacén de ficheros dividen el flujo por antigüedad. Los datos recientes se sirven desde memoria, porque es lo que quiere la mayoría de los consumidores y la latencia importa. Los datos históricos se escriben en almacenamiento duradero en ficheros, porque retenerlo todo en memoria no es una estrategia. Un consumidor que pide algo antiguo y otro que sigue la cabeza de la cadena se sirven desde sitios distintos sin que ninguno lo note. El servicio de datos presenta ambos como un único flujo. Un cliente pide un rango que empieza en cualquier punto; si ese rango se sirve desde la caché, desde los ficheros o desde ambos no es problema del cliente. La pasarela se ocupa de lo que corresponde entre un servicio y la internet pública: acceso, cuotas y enrutamiento. Las superficies REST y WebSocket son lo que usan de verdad las aplicaciones: datos de mercado, historial de órdenes y ejecuciones, posiciones, estado de la cuenta, pagos de financiación y suscripciones en vivo. Consulta la referencia de la API para el detalle a nivel de endpoint.

Por qué existe la separación

Un único servicio que siguiera la cabeza de la cadena y a la vez respondiera consultas históricas no haría bien ninguna de las dos cosas. Seguir la cabeza es sensible a la latencia y ligero; las consultas históricas son sensibles al rendimiento y pesadas, y un solo relleno histórico grande atascaría la ruta en vivo. Separarlos significa que rellenar el histórico de un consumidor nuevo desde hace meses no degrada el feed de un market maker que sigue la cabeza, y que ambos se pueden escalar de forma independiente, cosa que necesitan porque sus perfiles de carga no tienen nada en común.

De qué es seguro depender

Seguro. Todo lo que sirve el indexador y se deriva de bloques confirmados: ejecuciones, órdenes, posiciones, pagos de financiación, transferencias, datos de mercado. Son una remodelación de la salida de la cadena. No es lo mismo. Todo lo que aún no está confirmado. Una orden aceptada en el mempool no ha sido ordenada, y el indexador no tiene nada que decir sobre ella. Que algo falte en el indexador significa que todavía no está confirmado, no que haya sido rechazado. Verificable. Si una respuesta importa lo suficiente (una disputa de compensación, una auditoría, una conciliación contable), se puede comprobar directamente contra la cadena en vez de tomarla del indexador. Ejecutar tu propio nodo completo es la forma más fuerte de hacerlo, y es lo que debería hacer un participante que no se puede permitir equivocarse. Consulta Ejecutar un nodo.
Dos consumidores que lean el mismo rango confirmado deberían obtener la misma respuesta. Si no es así, la discrepancia está en la ruta de servicio y es un fallo que hay que reportar, no una propiedad inherente a leer una cadena a través de un indexador.

Qué leer a continuación

Modelo de estado

Qué está leyendo el indexador y qué representación es la autoritativa.

Desarrolladores

Superficies REST y WebSocket, SDK y herramientas.

Ejecutar un nodo

Verificar tú mismo contra la cadena, y por qué el conjunto es cerrado.

Servicios de programa

Qué consume este flujo para calcular el estado derivado de las cuentas.