Desarrollar una aplicación usando Bitcoin

Desarrollar una aplicación Bitcoin es sencillísimo, aun si se debe meter código a mano, siempre y cuando se tengan unas mínimas nociones de programación. Si algo tiene de complicado es el comprender qué piezas entran en juego y de qué manera. El resto no cambia en demasía en comparación a otro género de aplicaciones, donde en cuestión de horas se puede tener algo plenamente funcional.

Este artículo no trata pasito a pasito de qué forma hacer una APP, sino presenta un esquema mental de las piezas que forman una APP básica y de qué forma interaccionan.

Por supuesto, es conveniente comprender lo básico de Bitcoin.

Empecemos. Debemos meditar de forma modular. Por una parte está nuestra aplicación y por otro, Bitcoin.

Para interaccionar con Bitcoin, se puede hacer de 2 formas: instalando un nodo propio de Bitcoin o bien emplear el nodo de otros. En los dos casos se interacciona entonces mediante una API. En ocasiones se emplearán unas API más fáciles, de qué forma son las RESTful, y otras un tanto más complicadas en lo que se refiere a JSON-RPC. Sin embargo, y por fortuna, los programadores ya tenemos librerías reutilizables open source para facilitar los dos casos si se quiere.

En este caso, supongamos que empleamos la versión un tanto más compleja, la que se fundamenta en emplear tu nodo Bitcoin, que da más autonomía y da pie a comprender mejor el funcionamiento de Bitcoin.

Nodo Bitcoin

Un nodo Bitcoin está compuesto por tres piezas notables:

  • El “demonio”: está conectado a otros nodos, lo que deja crear esa red P2P donde se intercambian todos y cada uno de los acontecimientos que ocurran en internet por sockets.
  • Blockchain: la base de datos que registra los acontecimientos de forma local en todos y cada nodo. Verdaderamente tu aplicación no empleará esa base de datos, sino más bien otra propia si lo requiere.
  • API: los acontecimientos son transformados a una contestación JSON y trasmitidos por un puerto, puede o bien no ponerse protegido para escuchas externas.

Explicación APP Bitcoin

El nodo puede instalarse en un PC Unix o bien Windows y puede llamarse o bien escucharse cuando se desee a través del puerto que tiene para esto, con o bien sin autentificación (al gusto), siendo un canal para una comunicación bidireccional: puedes percibir en tiempo real lo que pasa en el nodo y puedes mandarle información a fin de que haga cosas o bien te informe de cosas. De qué manera montar tu nodo Bitcoin en menos de diez minutos.

La aplicación

Por supuesto se puede desarrollar la aplicación en el lenguaje que se desee y esta no debe conocer necesariamente en demasía el funcionamiento del nodo Bitcoin.

Una aplicación fácil está compuesta por un backend, una base de datos y un frontend. Hasta ahí nada nuevo. Se puede poner una API o bien no… lo habitual. El backend toda vez que desee interaccionar con la red Bitcoin puede llamar a la API RPC del nodo o bien escucharlo para tomar resoluciones.

aplicación que emplea bitcoin

Unimos piezas: Aplicación + Nodo Bitcoin

Imaginemos que deseamos hacer un explorador blockchain. Sencillamente vamos a deber poner nuestro backend a oír todos y cada uno de los acontecimientos que ocurran en nuestro nodo (el que nos notifica de lo que sucede en internet) y guardar la información que nos pase el nodo en nuestra base de datos para siguientes consultas desde el frontal donde mostremos lo pedido.

Integrar aplicación Bitcoin

Cabe resaltar que tener una APP afín a blockchain.info, un explorador blockchain, con su API RESTful a modo privado o bien público para interaccionar desde tu aplicación es cuestión de dos minutos con el desarrollo open source llamado Insight de BitPay.

Otros detalles

Enviar un pago a la red asimismo es sencillísimo, en tanto que una vez se prepara la transacción en el backend, lo que se hace es mandarla al nodo mediante la API JSON-RPC a fin de que la retransmita al resto de nodos, y esos a otros y de esta forma consecutivamente hasta el momento en que se extienda por toda la red. Es por esta razón con lo que es esencial tener bien pareado el nodo, y a pares de calidad, por el hecho de que esto asegura que una transacción se retransmita por toda la red rapidísimo y va a hacer que las transacciones se confirmen ya antes.

Las direcciones y las transacciones se preparan offline. O sea, no se precisa el nodo para esto, solo para conseguir la información. Entonces se prepara la transacción y se manda a la red ya codificada.

Lógicamente para prácticamente todos los lenguajes ya existen librerías que facilitan todo donde, una vez importadas, sus métodos dejan hacer lo mismo mas con menos código.

En el backend generalmente se utilizan 2 librerías (si bien las dos podrían estar en una, dependiendo la librería). La primera se comunica con el nodo Bitcoin y la segunda se hace cargo de producir direcciones o bien de preparar las transacciones.

Este es un caso fácil y una aproximación a vista de pájaro de una organización habitual simple, mas su empleo, y acá entra en juego la inventiva, es lo que deja crear casos nuevos de empleo.

En prácticamente todas las criptomonedas, su nodo y de qué manera se interacciona con ellas a escala de esquema es muy afín. Montar un exchange de criptomonedas (tipo Coinbase o bien OKCoin) no se aleja de los principios que acá se han expuesto, eso sí, contestando todo: backends balanceados, múltiples nodos de cada criptomoneda por si acaso uno cae o bien se desfasa…

Un consejo: si es tu primera vez desarrollando sobre Bitcoin, lo mejor es arrendar un servidor (por poner un ejemplo uno de OVH por 5€/mes), es una inversión pequeña y te dan una máquina dedicada lista para “romperla” en tantas ocasiones como precises. Además de esto, descargarse ahí la blockchain va a ser mucho más veloz y cómodo. Después vas a poder desarrollar tu APP en local y que use la API del nodo Bitcoin de la máquina alquilada.

Con esto tienes lo preciso para hacerte un boceto mental de por dónde comenzar a crear tu aplicación. En dependencia del lenguaje que desees utilizar, solamente vas a deber buscar las librerías precisas. Por servirnos de un ejemplo, para NodeJS puedes emplear Bitcore, que tiene todo lo preciso en una misma librería. Asimismo BitcoinJS, si bien esta solo se centra en la una parte de trabajo offline de Bitcoin (crear direcciones, preparar transacciones…).

bitcoin
Bitcoin (BTC) $ 62,842.00
ethereum
Ethereum (ETH) $ 4,131.93
binance-coin
Binance Coin (BNB) $ 483.62
tether
Tether (USDT) $ 1.00
cardano
Cardano (ADA) $ 2.14
solana
Solana (SOL) $ 207.66
xrp
XRP (XRP) $ 1.09
polkadot
Polkadot (DOT) $ 43.60
dogecoin
Dogecoin (DOGE) $ 0.263619
usd-coin
USD Coin (USDC) $ 1.00