Cargando



Manejo de Bitcoin Core

En este tutorial estaremos manejando el cliente Bitcoin Core, desde su instalación hasta su uso a profundidad valiéndonos de la consola de comandos incluido en el mismo.


may 06 2015 02:06
Profesional
may 06 2015 09:22
En tutoriales pasados vimos una introducción a Bitcoin, pudimos ver sus características, usos y además estuvimos utilizando un cliente ligero para explicar el funcionamiento de como las transacciones son manejadas por esta tecnología.

A pesar que este cliente que utilizamos sirve a sus propósitos no es tan completo como el Bitcoin Core, también conocido como el cliente Satoshi, el cual implementa todos los aspectos del sistema bitcoin, incluyendo la cartera, transacciones, verificaciones completas de la red bitcoin y un nodo completo hacia la misma.

Instalando el cliente


Para obtener el cliente nos dirigimos a la página oficial en el siguiente enlace, allí seleccionamos nuestro sistema operativo, en el caso de este tutorial utilizaremos la versión de Windows, por último seleccionamos Bitcoin Core para comenzar la descarga del comprimido:


Descomprimimos y realizamos la instalación de forma habitual como con cualquier aplicación de Windows, luego de la instalación ejecutamos nuestro cliente el cual debe lucir de la siguiente forma:


Podemos notar varias cosas interesantes la primera vez que ejecutamos el Bitcoin Core, la primera de ellas es el estado de desincronizado tanto en la sección de Saldos como de Transacciones recientes y esto se debe a que nuestro cliente guarda una copia completa de cada una de las transacciones que se han hecho desde que se creó la red bitcoin.

Es por ello que podemos observar en la parte inferior un mensaje que dice: 3 años y 46 semanas atrás, este es el tiempo restante que le queda a Bitcoin Core para terminar de sincronizar toda la data de la red en nuestro equipo, así que tendremos que esperar unos cuantos días para empezar a realizar transacciones con el mismo.

Recomendación
Recomendamos que para este proceso contemos con suficiente espacio en nuestro disco duro ya que en el año 2013 se registró un tamaño de 16 GB de esta información, además es importante tener una buena conexión a Internet porque si no pasaremos no días sino meses tratando de sincronizar nuestro cliente y por supuesto tiempo, ya que si tenemos alguna urgencia de realizar transacciones es mejor instalar Multibit o algún otro cliente ligero.

Bitcoin Core y su API JSON-RPC


Muchos seguramente estarán pensando que ganan descargando este cliente y pasando días e incluso semanas tratando de sincronizar el mismo, por supuesto la posibilidad de tener un registro de todas las transacciones hechas desde el inicio de la red es una gran ventaja, pero esto no es donde realmente brilla este cliente.

API JSON-RPC
Donde brilla el cliente Satoshi es en la implementación de una interfaz JSON-RPC que puede ser accedida por línea de comandos, donde aquí podemos interactuar con las capacidades que disponemos en el API el cual incluso nos permite utilizarlo en conjunto con lenguajes de programación para obtener la data de la red bitcoin a través del mismo.

Para ver cómo funciona esta característica vamos a ejecutar nuestro cliente de nuevo en el caso que lo hayamos cerrado y nos dirigimos a la pestaña Ayuda, seleccionamos la opción Ventana de depuración y en esa interfaz nos vamos a la sección Consola:


Ya aquí podemos empezar a probar algunos comandos para probar la funcionalidad del API, vamos a utilizar primero el comando getinfo, el cual nos permite desplegar información básica acerca de la red bitcoin, la cartera y la base de datos de la cadena, veamos como luce la respuesta del mismo:


Adicional a los datos mencionados, podemos obtener la versión del cliente que estamos ejecutando, el protocolo, el balance en nuestra cartera el cual obviamente es cero, así como los bloques que son visibles para el cliente. Esta información es interesante, pero lo que es más interesante es el formato en la cual la obtenemos, si somos desarrolladores podremos identificar rápidamente que es un JSON el cual es sumamente sencillo de consumir por otros lenguajes de programación e incluso su lectura es bastante fácil a la vista humana.

Ya que hemos tenido un primer acercamiento con la consola y pudimos obtener información básica con la misma vamos a ir un paso más allá y la utilizaremos para realizar algunas operaciones interesantes con nuestra cartera.

Encriptación y configuración de cartera


Antes de que empezar con la creación de llaves para nuestra cartera y el uso de comandos sobre la misma, es importante pensar primero en la seguridad de esta, para ello procederemos a encriptarla con una contraseña de nuestra elección.

Para esta operación utilizaremos el comando encryptwallet con la contraseña solvetic, donde no está de más recordar que debemos reemplazar esta contraseña por una mucho más robusta, luego de ejecutar el comando ejecutamos de nuevo el comando getinfo para ver como nuestra cartera fue encriptada. Veamos entonces la respuesta por consola de esta acción:


Como podemos ver tenemos una nueva entrada en nuestro JSON llamada unlocked_until el cual nos indica por cuanto tiempo la contraseña para nuestra cartera será almacenada en memoria y manteniendo la misma desbloqueada para su uso, donde en un principio como podemos ver el valor será cero, indicando que la cartera está bloqueada.

Ahora para desbloquear nuestra cartera solo debemos ejecutar el comando walletpassphrase el cual acepta dos parámetros, la contraseña para desbloquear la cartera y el número de segundos hasta que la cartera se bloquee de nuevo de forma automática, algo bastante útil y que implementa altos de niveles de seguridad, veamos la ejecución del comando y con el comando getinfo obtendremos los valores para la entrada unlocked_until:


Vemos entonces como el valor de unlocked_until ha cambiado, indicándonos que nuestra cartera esta desbloqueada.

Respaldo de cartera


Otra de las funcionalidades y ventajas que posee Bitcoin Core es la posibilidad de realizar respaldos de nuestra cartera y luego restaurarla sin problema alguno. Para ello utilizaremos el comando backupwallet seguido del nombre que le daremos a nuestro archivo:
backupwallet cartera.backup
Ahora para realizar la restauración es importante que primero desbloqueemos la cartera y con el comando importwallet realizamos la operación:
importwallet cartera.backup

Direcciones de cartera y transacciones


Para empezar a trabajar con las transacciones dentro de la red bitcoin debemos obtener una dirección, las cuales son generadas en el pool de direcciones de la red, para ello solo debemos utilizar el comando getnewaddress para obtener alguna, veamos la respuesta de la consola:


Como podemos ver el comando nos devuelve una dirección, la cual variará tantas veces como se use el comando y es la que nos permitirá empezar a realizar transacciones dentro de la red bitcoin. Adicionalmente podemos ver las direcciones que tenemos en nuestra cartera con el comando getaddressesbyaccount y con el comando getbalance obtener nuestro balance, veamos:


Como vemos el cliente Satoshi nos brinda una cantidad extensa de comandos para interactuar con la red bitcoin y ayudarnos con nuestras transacciones, esto que vimos fue una pequeña muestra del poder del mismo así como de los comandos disponibles. En el caso que deseemos darle un vistazo a todas las opciones del API nos dirigimos a la pestaña Ayuda y en la sección de Opciones de consola de comandos podemos consultar el resto de ellas:


Alternativas a Bitcoin Core


Si bien el cliente Bitcoin Core es el más completo que hay para el manejo de toda la tecnología bitcoin, nunca estás de más que estemos al tanto de otras alternativas al mismo, alternativas más allá de Multibit y que nos permiten interactuar con la red bitcoin y las estructuras de datos presentes en esta.

Estas alternativas son implementadas en diversos lenguajes de programación, dándonos un abanico de posibilidades inmenso para el trabajo con bitcoin:

libbitcoin and sx Tools
Es un cliente y librería a su vez construido en C++, posee muchas de las características que explicamos en este tutorial como por ejemplo la funcionalidad de poder ejecutar comandos en el mismo para realizar operaciones.

bitcoinj
bitcoinj es un cliente completo orientado a nodos desarrollado en Java. Puede mantener una cartera, recibir y enviar transacciones, donde uno de sus puntos fuertes es que no necesita mantener una copia de toda la red y transacciones en la red bitcoin.

pycoin
Un cliente desarrollado en Python y que soporta la manipulación de bitcoins así como sus transacciones, incluso valiéndose del lenguaje para tratar con transacciones no estandarizadas.

Como vemos tenemos otras alternativas además de Bitcoin Core, donde la elección de una u otra dependerá netamente de los requerimientos de cada usuario y su filosofía para trabajar con la red bitcoin.

Con esto finalizamos este tutorial, donde pudimos aprender todas las prestaciones que nos ofrece el cliente Satoshi para el trabajo con la red bitcoin, así como la posibilidad de ejecutar comandos extendiendo la funcionalidad del mismo y dándonos herramientas extras que podemos emplear para nuestro beneficio.

¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X