Artículo de Blog

Un Nuevo Ticker para la Comunidad Stellar

Autor

Alex Cordeiro

Fecha de publicación

Ticker

API

Horizonte

ACTUALIZACIÓN:

Cuando se escribió esta publicación, SDF alojaba una instancia del ticker de Stellar. Mientras el código open-source para el ticker sigue disponible — y cualquiera es libre de implementarlo, modificarlo o adaptarlo a su caso de uso — la instancia alojada por SDF fue desmantelada el 3 de enero de 2024.


La instancia alojada por SDF del ticker de Stellar estaba destinada a permitir pruebas y desarrollar pruebas de concepto, y no estaba destinada para uso en producción. La instancia fue desmantelada porque no había suficiente uso para justificar los recursos de ingeniería y operacionales requeridos para mantener el servicio actualizado, y optamos por dedicar esos recursos a proyectos de mayor prioridad. Si tienes preguntas, comentarios o sugerencias sobre el ticker, infraestructura de pruebas, o cualquier otra cosa, por favor compártelos en el Stellar Dev Discord!

Estamos muy felices de anunciar que Stellar Development Foundation está lanzando una nueva API de ticker para proporcionar los datos más recientes sobre Mercados, Emisores y Activos en la red de Stellar.

SDF ya tenía un ticker de larga duración, pero su tasa de actualización no era lo suficientemente rápida para representar la red dinámica y en constante crecimiento, y los datos proporcionados eran solo un subconjunto de lo que actualmente está disponible a través de herramientas como Horizon.

El nuevo ticker proporciona una API de backend con la misma funcionalidad que el anterior, más:

  • Nuevos datos sobre Mercados, tales como valores OHLC (abierto-alto-bajo-cierre) y estadísticas de 7d
  • Estadísticas de libro de órdenes (número de ofertas, demandas, diferencia, etc) por Mercado
  • Una lista de todos los Activos razonablemente activos dentro de la red
  • Una interfaz GraphQL para consultar datos sobre Pares de Activos específicos (p. ej. XLM / EURT GAP5…OS2S) o agregados (p. ej. XLM_EUR) dentro de un intervalo de tiempo arbitrario, así como listar Activos y Emisores. Si tienes curiosidad, pruébalo pegando la siguiente consulta aquí (y presiona play):

{
 ticker(numHoursAgo: 24) {
 tradePair
 baseVolume
 counterVolume
 orderbookStats {
 bidMax
 askMin
 spread
 }
 }
}

¿Qué es un Ticker y por qué es importante?

Según Investopedia:

Un ticker de acciones es un informe del precio de ciertos valores, actualizado continuamente a lo largo de la sesión de negociación por las diversas bolsas de valores. Un “tick” es cualquier cambio en el precio, ya sea que el movimiento sea hacia arriba o hacia abajo. Un ticker de acciones muestra automáticamente estos ticks, junto con otra información relevante, como el volumen, que los inversores y comerciantes utilizan para mantenerse informados sobre las condiciones actuales del mercado.

En el contexto de la red de Stellar, un ticker proporciona los datos asociados con diferentes pares de Activos de comercio (p. ej. XLM y USDT), a los que llamamos Mercados.

Un ticker es importante para dar una visión precisa de la actividad del mercado en cualquier momento dado. Sitios web como CoinMarketCap dependen de los datos del ticker para mostrar correctamente la información sobre los pares de comercio.

¿Cómo uso el ticker?

Como un proyecto de backend, el nuevo ticker es agnóstico de UI, es decir, no ofrece por sí mismo una interfaz amigable para visualizar datos–aunque tenemos algunos proyectos para construir UIs para mostrar datos del ticker en nuestro roadmap.

En términos más técnicos, esta es la raíz de la API del nuevo ticker: https://ticker.stellar.org.

El nuevo ticker ofrece dos puntos finales JSON:

  • /assets.json: muestra información sobre todos los activos disponibles:

// Ejemplo de Respuesta:

{
 "generated_at": 1555536150576,
 "assets": [
 {
 "code": "AngelXYZ",
 "issuer": "GANZBUS4726LBT2CBJ3BGF3TP4NJT5MHZMI423NHMXFRWGO2DCBQEXYZ",
 "type": "credit_alphanum12",
 "num_accounts": 282,
 "auth_required": false,
 "auth_revocable": false,
 "amount": 4999999999.999953,
 "asset_controlled_by_domain": true,
 "anchor_asset": "",
 "anchor_asset_type": "",
 "display_decimals": 0,
 "name": "",
 "desc": "",
 "conditions": "",
 "is_asset_anchored": false,
 "fixed_number": 0,
 "max_number": 0,
 "is_unlimited": false,
 "redemption_instructions": "",
 "collateral_addresses": [],
 "collateral_address_signatures": [],
 "countries": "",
 "status": "",
 "last_valid": 1555509989002
 },
 {
 "code": "PUSH",
 "issuer": "GBB5TTFQE5KT3TEBCR7Z3FZR3R3WTVD654XL2KHKVONRIOBEI5UGOFQQ",
 "type": "credit_alphanum4",
 "num_accounts": 15,
 "auth_required": false,
 "auth_revocable": false,
 "amount": 1000000000,
 "asset_controlled_by_domain": true,
 "anchor_asset": "",
 "anchor_asset_type": "",
 "display_decimals": 2,
 "name": "Push",
 "desc": "1 PUSH token te da derecho a acceder a la API de PUSH.",
 "conditions": "Token utilizado para acceder a la API de PUSH para enviar una solicitud de empuje a la red de Stellar.",
 "is_asset_anchored": false,
 "fixed_number": 0,
 "max_number": 0,
 "is_unlimited": false,
 "redemption_instructions": "",
 "collateral_addresses": [],
 "collateral_address_signatures": [],
 "countries": "",
 "status": "",
 "last_valid": 1555509990457
 }
 ]
}
  • /markets.json: muestra información de 24 horas, 7 días y del libro de órdenes sobre mercados que estuvieron activos durante estos períodos:

// Example Response:
{
 "generated_at": 1555529876427,
 "pairs": [
 {
 "name": "ABDT_DOP",
 "base_volume": 2936.8559372,
 "counter_volume": 67288.46914140001,
 "trade_count": 48,
 "open": 0.043734167043589976,
 "low": 0.04348452989055152,
 "high": 0.044444444444444446,
 "change": -0.0001736265897799502,
 "base_volume_7d": 93793.14427990005,
 "counter_volume_7d": 1939718.2717202017,
 "trade_count_7d": 399,
 "open_7d": 0.049850448654037885,
 "low_7d": 0.04348452989055152,
 "high_7d": 0.05100629529387713,
 "change_7d": 0.0059426550206679585,
 "price": 0.043907793633369926,
 "close": 0.043907793633369926,
 "close_time": 1555484876000
 },
 {
 "name": "BTC_ETH",
 "base_volume": 0,
 "counter_volume": 0,
 "trade_count": 0,
 "open": 0,
 "low": 0,
 "high": 0,
 "change": 0,
 "base_volume_7d": 0.00001,
 "counter_volume_7d": 0.00025,
 "trade_count_7d": 1,
 "open_7d": 0,
 "low_7d": 0.04,
 "high_7d": 0.04,
 "change_7d": 0,
 "price": 0.04,
 "close": 0.04,
 "close_time": 1554943803000
 }
 ]
}

El nuevo ticker también habla GraphQL:

  • /graphql: proporciona una interfaz GraphQL para consultar datos
  • /graphiql: proporciona una UI GraphiQL para explorar la interfaz GraphQL, para que puedas probar consultas desde tu navegador. Puedes encontrar documentación más detallada sobre los puntos finales del ticker aquí.

¿Puedo ejecutar / ajustar mi propio Stellar Ticker?

¡Sí! El ticker es un proyecto de código abierto alojado en el monorepo de SDF Go monorepo. Consiste en una serie de rutinas que extraen datos de Horizon, y que procesan y almacenan esos datos de una manera que permite una fácil consulta.

El README.md contiene instrucciones rápidas de Docker para cualquier desarrollador interesado en ejecutar / ajustar su propio ticker.

Este proyecto está en desarrollo activo, así que no dudes en enviar comentarios, crear incidencias y enviar Pull Requests directamente en el monorepo.