Autor
Urvi Savla
Fecha de publicación
Datos
Herramienta para Desarrolladores
Bienvenido a la última entrega de nuestra serie sobre la Plataforma de Datos Componible, la próxima generación de plataforma de acceso a datos en Stellar. Hoy, estamos emocionados de presentar el primer componente, Galexie, una aplicación ligera que extrae datos del libro mayor de la red Stellar. ¡Sigue leyendo para saber más!
Uno de los principales desafíos al trabajar con datos de la red Stellar es la estrecha vinculación entre los procesos de extracción y transformación de datos. Los desarrolladores tienen herramientas limitadas disponibles para leer y guardar datos directamente de la red Stellar, lo que limita la flexibilidad en el diseño de sus aplicaciones. Para abordar esto, creamos Galexie como una aplicación extractora dedicada, desacoplando la ingesta de datos de la transformación. Este enfoque ofrece mayor versatilidad en comparación con alojar un servicio monolítico, como Horizon o Hubble.
La función principal de Galexie es exportar de manera eficiente todo el corpus de datos de la red Stellar y almacenarlo en un lago de datos basado en la nube. Esto crea una base de datos preprocesados que se puede acceder y transformar rápidamente por varias aplicaciones personalizadas adaptadas a necesidades específicas.
Los datos exportados por Galexie apoyan herramientas como Hubble y Horizon en la construcción de datos derivados. A diferencia de los libros mayores crudos escritos en los Archivos de Historia, que es una vista sin procesar de la historia de la red, Galexie exporta metadatos de transacciones completos, ofreciendo datos precalculados que están listos para usar.
Este diseño no solo apoya las herramientas existentes sino que también permite un procesamiento de datos más eficiente y abre nuevas posibilidades para el análisis de datos dentro del ecosistema Stellar. En las siguientes secciones, exploraremos las características, arquitectura y aplicaciones potenciales de Galexie.
tldr
Galaxie es una aplicación simple y ligera que agrupa datos de la red Stellar, los procesa y los escribe en un almacenamiento de datos externo. Incluye las siguientes capacidades:
Galexie se construye alrededor de unos pocos principios de diseño clave:
No-objetivo: Galexie no está destinado o diseñado para la ingesta en vivo o interactuar con la red Stellar. El núcleo cautivo es mucho más adecuado para la ingesta en vivo.
A continuación, un diagrama de arquitectura que muestra los diversos componentes dentro de Galexie.
Al igual que Stellar Core, Galaxie emite metadatos de transacciones en el formato XDR estándar. Este formato es compatible con sistemas existentes, como Horizon y Hubble, lo que permite a los desarrolladores cambiar sin esfuerzo la fuente de datos XDR de los backends de sus aplicaciones.
Decidimos admitir el almacenamiento de múltiples libros mayores en cada archivo exportado. Esto reduce el número de archivos escritos en un almacén de datos y lo hace significativamente más eficiente para descargar grandes rangos de datos. Encontramos durante la experimentación que la descarga masiva de datos para el mismo rango de libros mayores es dos veces más rápida cuando los archivos contienen un paquete de 64 libros mayores en comparación con archivos que contienen un solo libro mayor.
Todos los archivos subidos se comprimen usando Zstandard como el algoritmo de compresión predeterminado para ahorrar ancho de banda de subida y descarga así como espacio de almacenamiento.
Para permitir una mayor organización de los datos, agregamos soporte para la partición de datos a través de una estructura de directorios. Tanto el número de libros mayores por archivo como el número de archivos por partición son configurables.
Decidimos codificar información adicional en los nombres de archivos y directorios. Estos nombres actúan como un token de ordenación y eliminan la necesidad de una indexación separada. El formato del nombre del archivo incluye dos componentes:
Este esquema de nomenclatura asegura que los archivos y directorios estén ordenados en orden descendente, con los libros mayores más recientes apareciendo primero, optimizando la recuperación de los últimos libros mayores.
Por ejemplo, usando 64,000 archivos por directorio y 64 libros mayores por archivo, el directorio y archivo que contienen los libros mayores 64065 a 64128 se nombrarían:
El enfoque de almacenamiento de datos de Galexie mejora significativamente la eficiencia operacional y la escalabilidad de las herramientas Stellar. En lugar de depender de Captive Core para generar metadatos de transacciones, estas herramientas ahora pueden acceder a metadatos de transacciones precalculados desde el almacén de datos. ¡Este enfoque mejora la velocidad de recuperación de datos por un orden de magnitud!
Además, al eliminar la dependencia en Captive Core, que es un componente intensivo en cómputo, Galaxie reduce los requisitos de hardware y los costos.
Aquí hay dos ejemplos que demuestran la efectividad de usar este enfoque de almacenamiento de datos.
Antes de Galexie, Hubble, la Plataforma de Análisis Stellar, usaba Captive Core para ingerir datos de la Red. Para el procesamiento por lotes, esto era intensivo en recursos porque la fase de puesta al día de Captive Core tomaba más tiempo que leer y procesar ese lote de datos de la Red. Al aprovechar un lago de datos, Hubble se desacopla de Captive Core, lo que significa que puede acceder a metadatos de transacciones directamente desde GCS sin incurrir en el costoso costo de inicio de Captive Core. Esto reduce significativamente el tiempo de ejecución y la sobrecarga.
Horizon, el servidor API de Stellar, tiene la capacidad de reingerir datos históricos dentro de rangos de libros mayores especificados usando una instancia interna de Captive Core. Para gestionar rangos de libros mayores de manera eficiente, Horizon puede ejecutar múltiples procesos de reingestión simultáneamente, cada uno accediendo a su propio Captive Core. Sin embargo, este enfoque es altamente intensivo en recursos. Desacoplar la reingestión de Horizon de Captive Core permite la reingestión directa de datos desde el lago de datos, mejorando tanto la velocidad como la escalabilidad.
Ejecutar tu propia instancia de Galexie te permite crear un lago de datos personalizado con datos extraídos del libro mayor crudo. Este enfoque ofrece un par de beneficios:
Para instrucciones detalladas sobre cómo instalar y ejecutar el servicio, consulta la Guía del Administrador.
Creamos un lago de datos usando Galexie y notamos las siguientes observaciones:
Nota: Las estimaciones de tiempo relacionadas con el rellenado de un lago de datos dependen de varios factores como el número de libros contables agrupados en un solo archivo, la latencia de la red y el ancho de banda.
Nuestro objetivo en SDF es avanzar en aplicaciones verdaderamente descentralizadas y construir componentes de software más pequeños y reutilizables. Galexie se alinea con esta visión, jugando un papel importante en la construcción de la Plataforma de Datos Componible. Nuestro objetivo es expandir la funcionalidad de Galexie agregando soporte para otros almacenes de objetos e integrando con nuevas herramientas de transformación.
Damos la bienvenida a contribuciones de la comunidad para apoyar estos desarrollos futuros. Tu participación puede ayudar a extender las capacidades de Galexie, añadir soporte para soluciones adicionales de almacenamiento en la nube e integrar nuevas herramientas. Para más detalles sobre cómo involucrarte, consulta nuestra Guía para Desarrolladores.
En las próximas publicaciones del blog, nos centraremos en casos de uso específicos, incluyendo la refactorización de los backends de Hubble y Horizon para usar un lago de datos generado por Galexie. Mantente atento mientras profundizamos en estas aplicaciones y sus benchmarks, y proporcionamos insights sobre cómo Galexie puede mejorar el manejo de datos y el rendimiento.
Si tienes preguntas, sugerencias o comentarios, únete a nosotros en Discord en los canales #hubble y #horizon. Nuestro equipo y los miembros de la comunidad están allí para discutir y brindar soporte.
Más para Explorar
Artículo
• Molly Karcher
Herramienta para Desarrolladores
Datos
Este artículo es el primero de una serie expansiva sobre la Plataforma de Datos Componible, la próxima generación de plataforma de acceso a datos en…
Artículo
• Molly Karcher
A partir del 1 de agosto de 2024, las instancias de Mainnet de Horizon de Stellar Development Foundation proporcionarán un año de datos históricos,…
Los Boletines
Entérate de nosotros primero. Suscríbete para obtener información en tiempo real sobre noticias, funcionalidades y recursos del ecosistema Stellar.