Couchbase Capella

Consulta de operaciones de la cadena de bloques Stellar con Couchbase Capella

Anteriormente, compartimos un post sobre cómo controlar los activos Stellar utilizando Couchbase. En este seguimiento, demostraremos cómo cargar transacciones recientes de Stellar blockchain (por ejemplo, operaciones) en nuestra Capella DBaaS, haciéndolas fácilmente accesibles para su uso en aplicaciones de ejemplo. Con la interfaz de usuario de gestión web incorporada de Capella, puede ejecutar consultas de prueba, explorar documentos y realizar varias otras tareas para interactuar con los datos de blockchain sin problemas.

¿Qué son las operaciones Stellar?

Stellar es una plataforma de cadena de bloques descentralizada diseñada para transacciones rápidas, seguras y de bajo coste. Para desarrolladores e ingenieros de bases de datos, Stellar ofrece una oportunidad única para crear aplicaciones financieras que puedan gestionar pagos transfronterizos, micropagos y activos tokenizados a escala. Lo que diferencia a Stellar es su algoritmo de consenso, el Protocolo de Consenso Stellar (SCP), que proporciona una alternativa más eficiente energéticamente que las cadenas de bloques tradicionales de prueba de trabajo. Esto permite a los desarrolladores integrar la funcionalidad de blockchain sin comprometer la velocidad o la escalabilidad.

La API y los SDK de Stellar son compatibles con una amplia gama de lenguajes de programación, lo que facilita la creación, conexión y gestión de aplicaciones respaldadas por blockchain dentro de las infraestructuras de bases de datos existentes. Aprovechando Stellar, los desarrolladores pueden llevar el poder de las finanzas descentralizadas (DeFi) a sus sistemas con la mínima fricción y el máximo impacto.

Estelar comercios son operaciones que se producen en la blockchain de Stellar, facilitando la transferencia de activos entre cuentas o interactuando con la red de diversas formas. Cada transacción se compone de un conjunto de operaciones y requiere la autorización del titular de la cuenta que la inicia mediante una firma digital. Stellar admite varios tipos de operaciones dentro de una misma transacción, lo que le confiere una gran versatilidad.

Los aspectos clave de las transacciones Stellar incluyen:

    • Transferencia de activos: Stellar permite la transferencia de cualquier tipo de activo, incluyendo XLM nativo (Lumens) y monedas fiduciarias tokenizadas, entre cuentas.
    • Pagos por trayecto: Esta función permite a los usuarios enviar un tipo de activo mientras el destinatario recibe otro. El intercambio descentralizado de Stellar (DEX) encuentra automáticamente la mejor ruta de intercambio para facilitar la conversión.
    • Creación y gestión de cuentas: Las transacciones pueden crear nuevas cuentas, asignar saldos iniciales y establecer diversos parámetros de cuenta, como líneas de confianza (para aceptar nuevos tipos de activos).
    • Contratos inteligentes (Multi-Sig): Aunque Stellar no tiene contratos inteligentes tradicionales como Ethereum, admite transacciones con varias firmas y operaciones bloqueadas en el tiempo, lo que permite escenarios de transacciones más complejos, como configuraciones tipo escrow.
    • Emisión y negociación de activos: Stellar permite a cualquiera emitir activos personalizados (como tokens) y negociarlos en su DEX. Los desarrolladores pueden tokenizar activos y proporcionar liquidez para pares comerciales.
    • Estructura de las tasas: Las transacciones de Stellar están diseñadas para ser rápidas y de bajo coste, con comisiones de solo fracciones de céntimo (denominadas en XLM). Esto es especialmente beneficioso para las aplicaciones que requieren un alto rendimiento de las transacciones y unos gastos generales mínimos.

Para los desarrolladores, las transacciones de Stellar ofrecen una forma sencilla de interactuar con activos digitales e integrar funciones descentralizadas en las aplicaciones, al tiempo que se benefician de los rápidos tiempos de confirmación y las bajas comisiones de la cadena de bloques.

Cómo cargar datos históricos de Stellar desde Horizon Server utilizando Python

El servicio Stellar Horizon desempeña un papel vital en el ecosistema Stellar, sirviendo de puente entre los desarrolladores y la red Stellar. Al proporcionar una API RESTful, permite a las aplicaciones interactuar fácilmente con la cadena de bloques de Stellar sin necesidad de acceder directamente a los nodos subyacentes de Stellar Core. Esta abstracción simplifica el proceso para los desarrolladores, facilitando la creación e integración de funciones basadas en la cadena de bloques.

Horizon gestiona varias funciones clave esenciales para la interacción de blockchain. Permite a los desarrolladores enviar transacciones, validarlas y reenviarlas a Stellar Core para su procesamiento. Además, ofrece acceso a información detallada de la cuenta, como saldos, historial de transacciones y líneas de fideicomiso, lo que simplifica la recuperación y visualización de datos. Horizon también permite a los desarrolladores consultar el libro mayor de Stellar en busca de transacciones pasadas y detalles operativos, sirviendo como una puerta de entrada fácil de usar para acceder a datos de blockchain tanto en tiempo real como históricos.

En este ejemplo sólo vamos a ver las operaciones y los precios de los activos basados en operaciones históricas. Los documentos de operaciones, devueltos desde Horizon como JSON, tienen este aspecto:


Nuestro script en Python descargará las operaciones más recientes y cargará los documentos en Capella.

Requisitos para conectarse a Horizon y Couchbase

Tanto Couchbase como Stellar tienen un par de requisitos antes de que podamos ejecutar nuestro script:

    • Utilizamos el programa Python stellar_sdk . En ejemplos anteriores utilizamos peticiones HTTP básicas, pero de esta forma podemos mantener el código simple y utilizar las librerías soportadas. Instalar con pip install stellar-sdk.
    • Si sólo desea consultar las operaciones relacionadas con determinados activos, tendrá que conocer los identificadores de activos de antemano. En código_activo identifica el activo específico que se negocia, mientras que el emisor_de_activos especifica la cuenta Stellar que emitió el activo, garantizando su autenticidad y origen.
      • Cuidado: ¡ambos elementos son fundamentales para identificar el activo correcto a la hora de operar!
    • Para conectarse a Capella, debe tener una cuenta - Regístrese hoy mismo para obtener una cuenta gratuita en Capellasin ningún compromiso.
    • Su cluster debe tener un bucket llamado estelar.
    • También debe conocer la URL de conexión al cubo con el que está trabajando.
    • El acceso al clúster también debe habilitarse con un nombre y una contraseña.
    • Estos ajustes son accesibles a través de la interfaz de gestión de Capella.
    • Guarde estos ajustes en un archivo local_settings.py que llamaremos con nuestro script:

Acceso a los datos de Stellar Horizon con Python

Con lo anterior en su lugar, aquí está una muestra de la función de código básico para tomar las operaciones, filtrando opcionalmente por código_activo o emisor_activos:

Descifrando el precio de negociación del activo Stellar

Para este ejemplo nos interesan específicamente tres conjuntos de información que aparecen en el documento de muestra anterior:

    • asset_code & asset_issuer - líneas 28-29 en el documento de muestra
    • importe negociado - línea 26
    • precios de la operación - líneas 31-34 nos indican el precio del activo durante la operación y se guardan en un objeto JSON llamado precio:{}

Los dos primeros conjuntos de datos son atributos sencillos que podemos utilizar tal cual. Pero los precios son un poco más complicados. Los precios en Stellar tienen una precisión muy alta y no sólo utilizan valores flotantes. En su lugar, utilizan un numerador y un denominador que se dividen, según sea necesario, para producir un precio en coma flotante. Así que, como se muestra en el ejemplo de código, en la línea 25, calculamos un nuevo atributo que se guardará en el documento antes de que se cargue en la base de datos.

comercio['número_precio'] = precio_n / precio_d

Puedes utilizar el mismo patrón para añadir cualquier tipo de atributo que necesites, como la fecha de descarga, el nombre del proyecto, etc.

Ahora que tenemos el documento comercial, añadido nuestro número de precio de aspecto normal, podemos cargarlo en la base de datos con nuestro código de función de carga.

Carga de documentos en Capella con Python

Existen varios métodos para cargar y/o actualizar documentos en Capella. En este caso utilizamos la función upsert para añadir o sustituir documentos con el mismo ID. Tomamos el ID directamente del atributo ID de la operación, por lo que nuestra clave personalizada flexible para nuestros documentos puede reflejar exactamente Horizon. Esto es útil para la futura alineación con los datos históricos de Horizon a medida que amplía su sistema.

El guión completo se incluye aquí, haga clic para ampliar:

Ver documentos en Capella

Ir a la Herramientas de datos en Capella y establezca el Cubo desplegable a estelar y utilizar Por defecto para el ámbito y la colección.

Los documentos aparecen en una lista y puede hacer clic en el número azul DOC ID para ver el documento completo y, a continuación, desplácese hacia abajo para ver la información sobre precios:

Consulta de operaciones de la cadena de bloques Stellar en Capella

Ahora que los datos están en Capella podemos indexarlos y consultarlos. Pero vamos a intentarlo de una forma ligeramente no convencional, ejecutando primero nuestra consulta. Capella es inteligente y puede sugerir qué índices deben realizarse. Así que cuando ejecutas una consulta y se da cuenta de que podrías optimizarla más, te hará sugerencias. Usted acepta la sugerencia y puede entonces continuar.

Ir a la Herramientas de datos -> Consulta y seleccione el cubo Stellar en el menú desplegable situado encima de la ventana de consulta.

Borre la consulta por defecto e introduzca ésta para obtener una lista de operaciones con sus IDs, precio y el precio que Python calculó, junto con los cálculos de precios sobre la marcha dentro del lenguaje de consulta SQL++ de Capella:


Como se puede ver, este SQL básico, aunque se puede ver en el DESDE declaración de que podríamos tener ámbito y colecciones y subconjuntos de documentos si quisiéramos.

Los resultados se muestran en JSON por defecto, a continuación, o puede optar por verlos en una tabla. Capella es potente porque puede mostrarle objetos JSON dentro de los documentos y no sólo los tipos de campo básicos que se utilizan normalmente en las bases de datos SQL, tenga en cuenta la precio objeto.

Crear índices para las operaciones

Capella proporciona automáticamente consejos de indexación en la esquina superior derecha. También hay una pestaña en la parte central derecha de la pantalla por si se te esconde.

Elija Construcción Sugerida y sus consultas se ejecutarán mucho más rápido - la mía pasó de 600ms a 6ms después de la indexación.

Este vídeo muestra una interacción similar en una vista en directo, para que pueda verla en acción, aunque utiliza un conjunto de datos diferente:

¿Y ahora qué?

Siga creando sus aplicaciones utilizando la versión gratuita de Capella con sólo inscribirse o recoger un paquete de inicio y también obtendrás importantes descuentos en créditos en la nube y un potente soporte por parte del equipo de Couchbase.

Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Autor

Publicado por Tyler Mitchell - Director de Marketing de Producto

Trabaja como Gerente Senior de Marketing de Producto en Couchbase, ayudando a llevar el conocimiento sobre los productos a la luz pública, mientras que también apoya a nuestros equipos de campo con contenido valioso. Su pasión personal es todo lo geoespacial, habiendo trabajado en GIS durante la mitad de su carrera. Ahora la IA y la búsqueda vectorial son lo primero en lo que piensa.

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.