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. Aunque el código open-source del ticker sigue disponible — y cualquiera es libre de desplegarlo, 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 debido a que el uso insuficiente no justificaba 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 la anterior, más:

  • Nuevos datos sobre Mercados, como valores OHLC (apertura-máximo-mínimo-cierre) y estadísticas de 7d
  • Estadísticas del 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 comercio de Activos (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 a la 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 nuestra hoja de ruta.

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 endpoints 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 token PUSH 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:

// Ejemplo de Respuesta:
{
 "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 utiliza GraphQL:

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

¿Puedo ejecutar / modificar mi propio Ticker de Stellar?

¡Sí! El ticker es un proyecto open-source alojado en el monorepo de SDF. 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 / modificar 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.