Para empezar a desarrollar en una tecnología determinada es necesario sentar la bases y aprender una serie de conceptos fundamentales. Con este workshop, enfocado en Stellar, daremos el primer paso para lograrlo.
En este tutorial, agrupamos los conceptos fundamentales de Stellar abordados en el primer tutorial del programa StellarEdu, que puedes ver aquí. Aprenderemos sobre sus características principales y descubriremos lo necesario para comenzar a desarrollar aplicaciones innovadoras en esta plataforma.
Web3 y Stellar
Hoy en día, hay millones de desarrolladores Web2 en todo el mundo, pero cuando intentamos dar el salto al mundo Web3, el número se reduce drásticamente. Esto se debe a que la adopción de la tecnología aún está en sus etapas iniciales, lo que significa que hay menos personas que tienen experiencia en el desarrollo para el mundo Web3.
En la actualidad existen muchas opciones para que los desarrolladores puedan incorporar las nuevas tecnologías, como Stellar, en sus soluciones. Esto significa que cualquier desarrollador Web2, sin necesidad de tener un profundo conocimiento del mundo Web3, puede comenzar a realizar diversas tareas. Simplemente sabiendo cómo llamar a una API y cómo programar el cliente de una API, puedes empezar a hacer cosas como llamar a contratos inteligentes de manera sencilla, e incluso crear y desplegar tu primer contrato en la red.
Dentro del ecosistema Web3 Vottun juega un papel importante, ya que ofrece un conjunto de herramientas (como APIs o SDKs) listas para ser utilizadas por los desarrolladores. Es una plataforma multichain y agnóstica de las diferentes redes que se adapta a las necesidades de cualquier desarrollador y al tamaño de cualquier empresa.
Stellar
Es una plataforma de código abierto que facilita la transferencia de valor mediante el uso de su criptoactivo, el lumen (XLM).
Stellar basa su funcionamiento en los siguientes puntos:
- Protocolo de consenso (SCP).
- Transacciones rápidas y baratas.
- Inclusión financiera.
- Escalabilidad y eficiencia.
Puedes profundizar más en qué es Stellar en los tutoriales del programa StellarEdu.
Stellar Stack
Stellar Core
Stellar Core es la columna vertebral de Stellar. Se encarga de validar y acordar con los nodos el estado de las transacciones. Está compuesto por los siguientes elementos:
- SCP: Stellar Consensus Protocol, es el protocolo particular de Stellar.
- Herder: es un componente intermedio que se encarga de la comunicación entre SCP y el resto de la red.
- Overlay: realiza el seguimiento de los nodos que están conectados al SCP y al herder.
- Ledger: es el libro mayor de Stellar, que registra todas las transacciones.
- History: es uno de los elementos de almacenamiento de transacciones con los que cuenta Stellar. Se encarga de guardarlas y agruparlas para que puedan ser auditadas posteriormente.
- Bucket List: otro elemento de almacenamiento, que como su nombre indica, se encarga de almacenar todo lo que pasa por la red de Stellar.
- Transactions: como su propio nombre indica, se trata de las transacciones que circulan por la red.
Todos estos componentes están explicados en detalle en su repositorio de Github.
Horizon API
Horizon es una interfaz de programación de aplicaciones (API) que proporciona acceso a la red de Stellar. Es esencialmente un HTTP que actúa como un intermediario entre las aplicaciones y la red de Stellar y que a su vez se comunica con el Core de Stellar. Las funcionalidades de Horizon son:
- Envío de transacciones.
- Consulta del estado de la red Stellar.
- Acceso a datos históricos.
- Eventos en tiempo real.
La Stellar Development Foundation (SDF) se encarga de mantener los diferentes SDKs y otros elementos importantes para el desarrollo. En este enlace se pueden consultar todos estos elementos importantes para desarrollar en Stellar.
SDKs
Un SDK (Software Development Kit) es un conjunto de herramientas, bibliotecas, documentación y ejemplos de código que los desarrolladores utilizan para crear aplicaciones.
Stellar tiene una amplia gama de SDKs que, además, mantiene en diferentes lenguajes como JavaScript, Go y Rust, entre otros.
RPCs y CLI
Dos conceptos típicos de otras blockchains y que debemos conocer también son:
- RPCs: acrónimo de Remote Procedure Call, en el contexto de una cadena de bloques se trata de un mecanismo que permite a un cliente enviar solicitudes a un nodo blockchain para realizar operaciones específicas en la cadena de manera remota. Es el recurso al que se recurre cuando no se tiene una API.
- CLI: acrónimo de Command Line Interface. Es una herramienta de línea de comandos que permite a los usuarios interactuar con la red de Stellar mediante la ejecución de comandos desde una terminal.
Para profundizar más en estas áreas, recomendamos dos enlaces: el primero es una guía para instalar un nodo en la red de Stellar, y el segundo contiene información acerca de los diferentes procedimientos disponibles para poder interactuar con el nodo instalado.
Redes Stellar
Las tres redes principales que cualquier desarrollador en Stellar debe conocer son:
Mainnet: es la principal red utilizada por las aplicaciones en producción. Se conecta a vías financieras reales y requiere XLM para cubrir los saldos mínimos, las tarifas de transacción y el alquiler. También se la llama Pubnet. Las características principales de la mainnet son las siguientes:
- Los nodos validadores son administrados por el público.
- Es necesario que la cuenta en mainnet contenga XLMs para funcionar.
- Está limitada a 1000 operaciones por ledger y a un máximo de 100 transacciones de contratos inteligentes por ledger.
Testnet: es una red más pequeña y de uso gratuito, mantenida por SDF, que funciona por la mainnet pero no se conecta a dinero real. Stellar tiene un faucet XLM de testnet incorporado llamado Friendbot. Las características principales de la testnet son las siguientes:
- Ejecuta tres nodos validadores.
- Ofrece una instancia gratuita de Horizon API.
- Está limitada a 100 operaciones por ledger y una transacción de contrato inteligente por ledger.
- Ofrece puntos finales RPCs gratuitos.
Futurnet: es una red de desarrollo que puedes utilizar para probar más funciones de vanguardia y que también tiene acceso a su propio Friendbot. Las características principales de la futurnet son las siguientes:
- Ejecuta nodos de validación centrales.
- Ofrece una instancia gratuita de Horizon API.
- Está limitada a 100 operaciones por ledger y una transacción de contrato inteligente por ledger.
- Ofrece puntos finales RPCs gratuitos.
Estructuras de datos
Entre las estructuras de datos utilizadas por Stellar podemos mencionar las siguientes:
Ledger
- El ledger de Stellar refleja el estado del libro mayor en cualquier momento. Se comparte entre todos los nodos core de la red y contiene la lista de cuentas y saldos, órdenes en el intercambio distribuido, datos de los contratos inteligentes y cualquier otra información persistente.
- Otras redes blockchain se refieren a este concepto como bloque y a toda la cadena de bloques como ledger.
- En cada ronda del Stellar Consensus Protocol (SCP) la red llega a un consenso sobre qué conjunto de transacciones se aplicará al último ledger cerrado y cuando se aplica el nuevo conjunto se define un nuevo libro mayor cerrado.
- Cada ledger está vinculado criptográficamente al libro de contabilidad anterior único, creando una cadena histórica que se remonta al libro génesis.
Cuentas
Las cuentas sostienen la estructura central de Stellar, ya que mantienen saldos, firman transacciones y emiten activos. Los requisitos para abrir una cuenta es la existencia de un par de claves y cubrir el saldo mínimo de XLMs. Las tres características más notables de las cuentas son:
- Subentries: los datos de las cuentas se almacenan en subentries.
- Base reserves: con este parámetro conocemos el saldo mínimo de una cuenta. A medida que hay más subentries, hay más base reserves.
- Trustlines: son autorizaciones para que las cuentas puedan manejar un activo en particular.
Assets
Los assets, o activos, pueden representar muchas cosas como: criptomonedas (por ejemplo bitcoin o ether), monedas fiduciarias (como el dólar o el peso), tokens de valor (como NFTs), acciones de pools o bonos y acciones. Dos elementos de los assets son:
- Código: es el código de identificación de un asset.
- Emisor (issuer): es la cuenta que ha creado el activo.
Operaciones y transacciones
Para realizar acciones en Stellar hay que agrupar una serie de operaciones en las diferentes transacciones y cada transacción debe firmarse y enviarse a la red.
Operaciones: son comandos individuales que modifican el ledger. Las operaciones se utilizan para enviar pagos, llamar a una función de un contrato inteligente, ingresar órdenes en el DEX, cambiar la configuración de las cuentas y permitir que las cuentas mantengan activos.
Transacciones: la red Stellar codifica transacciones utilizando un protocolo estandarizado llamado External Data Representation (XDR).
Contratos inteligentes
Es otra de las estructuras de datos fundamentales en Stellar que explicaremos en amplitud en el siguiente workshop.
Conceptos adicionales
Estos son un par de conceptos adicionales que consideramos debes aprender, en caso de que no los conozcas, para continuar con tu formación en el desarrollo en Stellar:
Anchors
Un anchor es un término específico de Stellar para las operaciones de on/off ramps que conectan la red Stellar con las diferentes entidades financieras. Los anchors aceptan depósitos de moneda fiduciaria y luego entregan a los usuarios criptoactivos que habitan en la red Stellar. Puedes consultar en la página web de Stellar los diferentes anchors disponibles actualmente. Es posible configurar un anchor utilizando la plataforma SDF .
SEP
SEP es el acrónimo de Stellar Ecosystem Proposal. Estas propuestas definen estándares para construir una infraestructura determinada sobre la red de Stellar. Son documentos de código abierto creados públicamente, que se encuentran en el repositorio de Github. Es un concepto similar a los ERCs en Ethereum.
Te recomendamos que veas el video del workshop que se encuentra en nuestro canal de YouTube, para que además de estos conceptos puedas conocer otros elementos que compartimos en este taller.
Sigue aprendiendo con nuestros artículos relacionados:
Introducción a la blockchain de Stellar
La blockchain de Stellar es una red descentralizada pública diseñada para facilitar la transferencia rápida, segura y económica de activos digitales.
Entendiendo el funcionamiento técnico de Stellar
La blockchain de Stellar es mucho más que una simple red descentralizada para transferencias de activos digitales. Su arquitectura innovadora y su protocolo de consenso eficiente la convierten en una opción atractiva tanto para usuarios individuales como para empresas.