Cómo crear un monedero Bitcoin con una biblioteca JavaScript de código abierto

4 min lectura
Desarrolladores / 30 octubre 2015
Cómo crear un monedero Bitcoin con una biblioteca JavaScript de código abierto
Cómo crear un monedero Bitcoin con una biblioteca JavaScript de código abierto

BBVA API Market

El mundo relacionado con las criptomonedas está siempre en expansión. Se ha convertido en un entorno fructífero de desarrollo de aplicaciones de todo tipo. Monederos móviles, conectores con la red Bitcoin, geolocalizadores de negocios que aceptan la moneda virtual, videojuegos con bitcoins… Son un campo interesante para cualquier desarrollador que quiera emprender. En definitiva, ha llegado a ser un caldo de cultivo perfecto para hacer negocio.

Es cierto que entre finales de 2013 y comienzos de 2014, Bitcoin experimentó una explosión en su precio y que, desde entonces, ha sufrido primero un proceso de caída y después de estabilización en su valoración (se puede ver en el gráfico). En todo caso, es un campo de emprendimiento evidente

Hoy en día existe una plataforma que mezcla lo mejor de los bitcoins y el JavaScript, que facilita el desarrollo de aplicaciones para esta moneda virtual. Bitcore es una biblioteca de código abierto que trabaja bajo el protocolo Bitcoin. Ser una solución opensource es una ventaja de concepto: facilita la creación de una comunidad que enriquece de forma constante la herramienta, tanto por desarrolladores independientes como los propios negocios Bitcoin.

La empresa creadora de Bitcore es Bitpay, que en el documento de lanzamiento de la herramienta afirmaba que su objetivo es que “los desarrolladores que contemplan nuevos proyectos Bitcoin no tengan que recurrir al uso de APIs propietarias alojadas en servicios que se ejecutan con software cerrado”. La plataforma Bitcore está preparada para funcionar con Node.js por el lado del servidor, en un navegador web por el lado del cliente y con capacidad para interactuar con nodos de Bitcoin.

Cómo instalar y empezar a desarrollar con Bitcore

Antes de empezar es necesario cumplir con una serie de requisitos mínimos sin los que sería imposible la conexión con un nodo de Bitcoin a través de Bitcore. La máquina necesita 100GB de espacio libre en disco y 4GB de memoria RAM para almacenar los datos de la cadena de bloques de bitcoin o blockchain (es un sistema de contabilidad pública compartida entre todos los nodos de la red Bitcoin). Además, es necesario un sistema GNU/ Linux o Mac OS X (Apple) de 64 bits. Estos serían los pasos necesarios para comenzar:

– Instalar Node.js. Bitpay recomienda instalar el Node Version Manager, que permite actualizar las versiones de Node.js con facilidad. La última versión de Node Version Manager es la v.0.29.0. Enlace para instalación.

– Instalar Bitcore y crear un nodo. Dispone de una línea de comandos para crear y gestionar un nodo de Bitcoin completo.

– Comando de instalación: npm install -g bitcore. Con este comando no sólo instala Bitcore, también se sincroniza con blockchain y ejecuta Insight Block Explorer, un explorador blockchain Bitcoin de código abierto con las APIs REST y WebSocket que permite a desarrolladores y negocios Bitcoin escribir en código monederos virtuales y otro tipo de aplicaciones que necesitan para funcionar y hacer consultas blockchain.

– Comando para la creación de nodos adicionales: un programador puede crear nuevos nodos que no se encuentran dentro del directorio global de instalación npm (el utilizado en el paso anterior) o ejecutar el Servicio de Monedero Bitcore.

En ese caso, el desarrollador debe hacer lo siguiente:

– Comando bitcore create mynodo.

– Creación de un nodo en testnet, una cadena de bloques alternativa que se utiliza para pruebas. Por tanto tendríamos una criptomoneda TestNet, que es distinta a Bitcoin. Es una forma de tener una moneda virtual con la que experimentar. Comando para un nodo testnet: bitcore create mynodo –testnet.

– Ambos pasos permiten la creación de un directorio “mynodo”, al que se le pueden instalar dependencias y archivos de configuración para empezar a operar con ese nodo adicional.

– Creación de un nodo adicional cuando ya se tiene un directorio Bitcoin para ser utilizado. bitcore create -d <path-to-datadirectory> mynode

Cómo configurar un monedero virtual de bitcoins con Bitcore

Uno de los primeros objetivos que puede tener un desarrollador con Bitcore es la configuración del servicio de monedero virtual de bitcoins. Este servicio usa el mismo backend que utilizan los monederos Bitcoin de Bitpay, que en cierta forma es muy parecido a lo que sería un backend SPV (Simplified Payment Verification) tradicional (sistema de conexión segura con nodos de Bitcoin).

Pasos a seguir:

– Instalación de dependencias: la principal dependencia que habría que instalar es MongoDB, un sistema de base de datos NoSQL de código abierto en JavaScript y orientada a documentos. En este caso siempre hablamos de implementar soluciones en este lenguaje de programación. ¿Cómo se instala MongoDB en Linux o Mac OS X? Aquí un tutorial.

– Añadir el servicio de monedero virtual al nodo recién creado: esto es posible porque ya dispone de un nodo creado y sincronizado con la blockchain de Bitcoin. Comando de ejecución del monedero virtual:

cd <your node>
bitcore install bitcore-wallet-service
bitcore install insight-api

La nueva API de Bitcore

Existen una serie de servicios que se pueden implementar en cualquier nodo creado con Bitcore a través de la API de Insight. Por poner un ejemplo, el servicio web permite crear una aplicación que facilita a los usuarios la interacción directa con el nodo de Bitcore a través de un puerto http o https.

Un ejemplo práctico de la implementación de este servicio:

MyService.prohttps://bitcore.io/api/totype.setupRoutes = function(app, express) {
  // Set up routes
  app.get('/hello', function(req, res) {
    res.send('world');
  });

  // Serve static content
  app.use('/static', express.static(__dirname + '/static'));
};

MyService.prototype.getRoutePrefix = function() {
  return 'my-service'
};

También hay otro tipo de servicios adicionales que se pueden consultar en la documentación de la propia API. En el vídeo de abajo se puede ver la presentación de la nueva interfaz de programación de aplicaciones de Bitcore en un seminario de desarrolladores.

Si eres desarrollador de JavaScript y quieres configurar un monedero bitcoin, los servicios que te ofrece Bitcore pueden ser una solución eficaz. Pruébalos.

Si, además, te interesan los temas de código abierto, aquí tienes un ebook de libre descarga.

Síguenos en @BBVAAPIMarket

También podría interesarte