Que es?
Stellar es una altcoin que fue fundada por Jed McCaleb a partir de un fork de XRP (esta es una de las razones por las que a la gente no suele gustar) dado que XRP queria ser mas for-profit de lo que queria, asi que forkeo y fundo la funacion Stellar (Stellar Development Foundation). Es non-profit y descentralizada (cada uno puede rular su propio nodo).
Es una red que NO tiene smart contracts como tal, pero tiene una serie de operaciones que se pueden llegar a comportar como muchos de los smart contracts que existen en la red de ethereum (por ejemplo). Pero! al no tener que ejecutar codigo como tal, las transacciones son muy rapidas y seguras (no va a haber bugs en el codigo del smart contract)
Voy a hablar un poco mas la parte del desarollo y de las cosas que la red puede llegar a hacer sin pensar tanto en el precio o la especulacion que haya sobre esta moneda.
Que ofrece?
- Tiempos de settlement de 2-5 segundos (https://dashboard.stellar.org/ aqui estan las metricas)
- Un entorno de desarrollo bastante amigable y facil (https://stellar.org/developers)
- Rest API para controlar el ledger (https://developers.stellar.org/api)
- Un DEX implementado en el protocolo (Kraken/Binance pero en protocolo) (https://dashboard.stellar.org/ abajo a la izquierda podeis ver los manage_sell_offer)
- Coloured tokens
- Estan ya los planes de implementar Uniswap en el protocolo que juntandolo con el punto anterior tienes una mezcla de yielding+order matching
Quien esta metido en esto?
- IBM
- Smartlands
- Stripe
- HTC Exodus
- Franklin Templeton
- Wirex
- Baracoin
- Novatti Group
- Saldo
- Tempo
- Bitbond
- SureRemit
Sacados de: https://www.publish0x.com/wordstock/full-list-of-2020-stellar-xlm-partnerships-integrations-and-xmqple
Proyectos: https://www.stellar.org/ecosystem/projects
Cada uno esta haciendo una cosa distinta pero los mas gordos dirian que son IBM, Stripe y Wirex.
Como empezar a desarrollar?
Lo unico que necesitas es un editor de texto o tu IDE e internet. Si quieres empezar por lo basico, ver las operaciones que existen y toda la pesca, puedes usar el Stellar Laboratory que es basicamente un sitio donde puedes hacer todas las operaciones en el ledger desde una interfaz mas o menos amigable. Funciona con main y testnet.
Ahora elegimos el lenguaje de programacion que nos gusta dentro de los SDKs que hay (o te picas tu el tuyo) y creas el proyecto con la dependencia (no me voy a meter en eso)
Ahora tenemos que entender que una cuenta es simpelemente una ID y un Secret (desde el secret se puede sacar la ID), lo que viene siendo la clave publica y la privada. Asi que cada vez que queremos recibir algo, enviamos la clave publica y cada vez que queremos hacer una transaccion (normalmente enviar algo), firmamos con nuestra clave privada.
Por ahora no voy a poner codigo como tal, solo un ejemplo de como quedaria la generacion de una transaccion desde cuenta account
hacia destination
de 1 unidad del asset asset
. Este asset puede ser XLM o cualquiera de los no-nativos (los coloured tokens)
val sendMoney = Transaction.Builder(account, Network.TESTNET)
.addOperation(PaymentOperation.Builder(destination, asset, "1").build())
.setTimeout(2000)
.setBaseFee(100)
.build()
.signWith(privateKey)
server.submitTransaction(sendMoney)
Tutoriales
Tutoriales que ya existen en la web de stellar para poder seguir paso a paso
Operaciones
Aqui voy a poner algunas de las operaciones que mas interesantes me parecen.
- SetOptions: Esta operacion es la encargada de habilitar las wallet multisig (docs) dado que puedes decir que las claves publicas de tus amigos Perico y Juanico son necesarias para empezar una transaccion. Existen tres tipos de transacciones, las poco importantes, las importantes y las muy importantes. Cada una de estas transacciones se puede configurar para que necesite un numero diferente de firmas, por ejemplo para las poco importantes con 1 sola persona vale, para las importantes con 2 y para las muy importantes 3. Asi que con esta operacion se podria crear una cuenta nueva que es un bote entre amigos y se necesitan 3 de los 5 amigos para poder gastar dinero de esa cuenta.
- CreateClaimableBalance: Con esta operacion lo que le dices al ledger es que una clave publica puede pedir el dinero que estas poniendo a disposicion con la operacion. Por ejemplo puedes prestarle dinero a Jaimito creando una operacion de este tipo, y solamente Jaimito (ya que es el que tiene que firmar su transaccion de pedir dinero) podra acceder a ese dinero.
- ManageBuyOffer: Pues esto es simplemente poner una orden de compra/venta en el DEX dentro del ledger. Lo configuras diciendo que compras X lo que sea por Y loquesea.
Hay mas, luego sigo poniendo mas.