If your preferred language is English, you can switch it in the menu.

La red de Stellar es una blockchain open-source utilizada para una variedad de aplicaciones de pagos y remesas. Aprende sobre la Stellar Development Foundation sin fines de lucro y los fundamentos de cómo funciona la red.

Descubre cómo puedes usar la red de Stellar y explora los muchos proyectos y aplicaciones que se están construyendo en ella hoy.

Sumérgete en la documentación o explora nuestros recursos para desarrolladores. Explora y solicita una variedad de programas de financiación.

Stellar une a una comunidad global para crear una red abierta y transformar el sistema financiero global.

Dev Docs

Artículo del Blog

Horizon acaba de mejorar mucho: nuestro nuevo motor de ingestión y otras cosas geniales

Autor

Stellar Development Foundation

Fecha de publicación

Horizonte

Ingestión

API

Hace más de un año, el equipo de StellarX añadió un GitHub problema sobre un extraño 500 Internal Server Error devuelto por Horizon de vez en cuando. Después de revisarlo, nos dimos cuenta de la causa: Horizon estaba obteniendo ofertas de la base de datos de Stellar-Core y algunas de esas ofertas venían de libros contables aún no ingeridos por Horizon. Para obtener un tiempo de creación para las ofertas, Horizon verifica el tiempo de cierre del libro contable, y si un libro contable aún no ha sido ingerido, esa verificación resulta vacía. De ahí el error del servidor.

Mientras tanto, recibíamos informes sobre tiempos de respuesta muy largos para el endpoint /paths. Stellar tiene un libro de órdenes descentralizado que permite a los usuarios intercambiar un activo por otro, y el endpoint /paths te ayuda a encontrar el mejor conjunto de intercambios intermedios para que puedas cambiar la cantidad mínima posible del activo fuente por la cantidad máxima posible del activo destino. Horizon dependía de la base de datos de Stellar-Core, que simplemente no está optimizada para consultas de búsqueda de caminos.

Esos problemas (principalmente menores) no eran exactamente nuevos — habíamos sido conscientes de problemas similares durante años — pero se estaban volviendo cada vez más comunes. Para abordarlos, tuvimos que hacer un cambio fundamental en la arquitectura de Horizon, y construir un sistema completamente nuevo para la ingestión de datos. En los últimos meses, eso es exactamente lo que hemos hecho.

El nuevo sistema de ingestión, que está incluido en la versión Horizon v0.20.1, está listo para pruebas, y en este breve blog explicaré el razonamiento detrás de ello y describiré dos características experimentales en Horizon que no habrían sido posibles en el antiguo sistema. Tiene algunas grandes ventajas sobre el antiguo sistema de ingestión — es más consistente y amigable para los desarrolladores, permite la configuración por parte del usuario, y no sobrecarga a Stellar-Core — y eventualmente planeamos pasarnos completamente a él. En este momento, ambos sistemas están trabajando concurrentemente, y si habilitas una bandera de característica especial en Horizon puedes probar el nuevo sistema y sus nuevas características ¡ahora mismo!

El nuevo paquete de ingestión Golang también puede ser utilizado fuera de Horizon para construir aplicaciones y servicios personalizados. En los próximos meses, publicaremos documentación, ejemplos y una nueva entrada de blog explicando cómo usarlo.

Cuentas para Firmante

“Cuentas para Firmantes” fue una solicitud de característica muy popular en nuestro GitHub. Puedes usarlo para buscar todas las cuentas que coinciden con un firmante dado, lo que facilita a los clientes de Stellar implementar multi-firma de manera amigable para el usuario. Si, por ejemplo, tienes una cuenta principal que también co-firma varias cuentas multi-firma — una cuenta de negocios, una cuenta que compartes con tu pareja, una cuenta de confianza familiar — tu billetera Stellar puede encontrarlas todas usando tu cuenta principal, sin esfuerzo adicional de tu parte. Con una sola llave, puedes gestionar fácilmente múltiples cuentas multi-firma.

Antes del nuevo sistema de ingestión, no podíamos construir la vista “Cuentas para Firmantes” porque Stellar-Core no tiene un índice en el campo firmante en la tabla de firmantes, y la consulta no era lo suficientemente rápida para un uso en tiempo real, en producción. Para complicar más las cosas, una versión posterior de Stellar-Core añadió una actualización de rendimiento que eliminó completamente la tabla de firmantes y movió el array codificado en XDR de firmantes a la tabla de cuentas.

Debido a que el nuevo sistema puede recrear el estado, pudimos crear una tabla en la base de datos de Horizon con todos los firmantes e índices adecuados. Esta característica ha estado disponible desde 0.19.0, pero está oculta detrás de una bandera de característica. También puedes probarlo en nuestros clusters públicos de Horizon.[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

¿Qué sigue?

En el tercer trimestre de 2019 trabajaremos en trasladar todas las características de Horizon al nuevo sistema. También publicaremos documentación para el nuevo paquete de ingestión que se puede utilizar para construir aplicaciones y servicios personalizados y avanzados sin Horizon.