domingo, abril 07, 2013

Minado bitcoins con el bfgminer: Notas rápidas de compilación del software

Como en otra época con los tulipanes, ahora está de moda el negocio de bitcoin, una moneda virtual basadas en tecnologías peer to peer. Esta moneda incluye una serie de protocolos y software que implementan todo el sistema de transacciones comerciales. Minar bitcoins consiste en buscar un valor que tras aplicarle el algoritmo SHA-256, el hash resultante tenga un número determinado de ceros al principio. Esto es un proceso que requiera gran capacidad de cálculo, así que lo normal es participar en el a través de un grupo de minadores o pool como Slush's pool. Voy a suponer que tenemos ya nuestro monedero virtual, una copia de seguridad del mismo y la dirección a la cual nos podrán enviar - los céntimos de - bitcoins q se genere.

Un software que puede participar en estos pools es BFGMiner. Tiene diversas opciones que permiten configurar que elementos del ordenador va a ser el responsable de realizar los cálculos necesarios para la minería de bitcoins. Normalmente, si se quiere tener una gran potencia de cálculo, lo normal es recurrir a tarjetas gráficas que soporten OpenCL, o bien recurrir a la CPU del ordenador, lo cual es un proceso más lento.

En esta entrada voy a explicar como instalar y configurar el software de minado, compilando los elementos necesarios en una distribución Debian estable.

Lo primero es asegurarnos que tenemos el entorno de desarrollo instalado, que compila y que las dependencias básicas que va a necesitar bfgminer se cumplen. Todo el software se instalará por defecto en un /usr/local. Tenemos qu

Prerrequisitos

Instalar los siguientes paquetes:

# Build esentials apt-get install build-essential
apt-get install git-core
apt-get install autoconf
apt-get install libtool
apt-get install pkg-config
# Una de las dos siguientes en función de la librería
# de cripto que se utilice
apt-get install libcurl4-openssl-dev
apt-get install libcurl4-gnutls-dev

Una vez instalado los paquetes, hay que instalar una serie de programas, en unas determinadas versiones para poder compilar bfgminer. A saber:

yasm

yasm es un ensamblador para x86/AMD64. Bfgminer necesita al menos la versión 1.0.1 para poder compilar las rutinas de minado escritas en ensamblador - el doble de rápidas que las convencionales en C - si se va a usar minado con CPU como queremos. La versión que he usado es 1.2.0 (hash md5 = 4cfc0686cf5350dd1305c4d905eb55a6). Para instalarlo hay que dar los siguientes pasos.

./configure --prefix=/usr/local
make
make check
# Como superusuario
make install

Jansson

Jansson es una librería en C para manejar datos en formato JSON. La versión que he usado para compilar el programa es la 2.4 (hash md5=c4629b89bf0432f3158c461e88fe0113). Los pasos que hay que dar para instalarla son los siguientes:

./configure --prefix=/usr/local
make
make check
# Como superusuario
make install

bfgminer

Una vez que se ha instalado correctamente todas las dependencias del software que necesitamos, vamos a compilar el bfgminer. Las fuentes del mismo se van a obtener del git del proyecto. Se le va a pasar la configuración para que se habilite la posibilidad de usar el minado a través de la CPU. En este punto, cuando se configura a través del script de autogen, es necesario estar conectado a Internet, puesto que se va a bajar un módulo que se necesita para compilar

#Obtenemos el git
git clone https://github.com/luke-jr/bfgminer.git
cd bfgminer
./autogen.sh
./configure --enable-cpumining --prefix=/usr/local
# Es importante en este caso asegurarse que aparecen
# las dos líneas siguientes en la salida el configure
# para asegurarnos que las rutinas
# de ensamblador están utilizándose
#  CPU Mining...........: Enabled
#  ASM.(for CPU mining).: true
# Compilamos make
make check
# Como root make install make install

Ejecutando bfgminer

Para empezar a minear bitcoins, lo más sencillo es unirse a un pool como Slush's pool. Una vez creada la cuenta, damos de alta los "trabajadores" que vamos a usar con sus correspondientes contraseñas. Por ejemplo, usuario usermining y password passmining.Si se usa el pool de ejemplo anterior, la dirección del pool es stratum.bitcoin.cz:3333. Hay muchas opciones para controlar el minado, pero para arrancarlo de manera más básica, y sólo para el minado de CPU:

bfgminer -o stratum.bitcoin.cz:3333 -u usermining -p passmining -T -a auto


Technorati Tags:

1 comentario:

invasorzim dijo...

Buenas tardes, tengo una duda, he intentado instalar el programa como dice el tutorial, lo instalé, pero al intentar colocar el comando
./configure --enable-cpumining --prefix=/usr/local
me sale error "bash: ./configure: No existe el archivo o el directorio"
y al intentar correrlo con sudo me sale:
sudo: ./configure:orden no encontrada

me gustaria saber si conoces alguna forma de solucionar este problema, muchas gracias de antemano