Tutorial: Cómo minar Litecoin (LTC) con tu CPU/GPU


¿Que te paguen por tener la computadora encendida? Sí, es posible y no es un sueño ni una broma. Ya llevamos recorrido un buen tramo en nuestra serie de criptodivisas y antes de que termine el año les voy a dejar un tutorial más a su disposición: Uno de Minería. La minería es el proceso por medio del cual conseguimos criptomonedas gratis a cambio de prestar el poder de cómputo que tenemos a nuestro alcance para llevarnos una paga por procesar las transacciones de una red determinada. En nuestra serie ya les hablamos de qué son las criptodivisas, porqué litecoin es la mejor y también cómo empezar a enviar/recibir pagos con Bitcoin y Litecoin simultáneamente. El siguiente paso lógico era el de enseñarlos a hacer criptodivisas sin gastar, y es aquí donde entra la minería.

Nos centraremos en el ejemplo de Litecoin (LTC) porque es una moneda que puede ser rentable al momento de minarla incluso con el hardware que tienes ahorita en las manos (además de que es segura y fuerte) a diferencia de otras monedas similares que pueden ser más fáciles de minar pero más riesgosas como divisa o bien, muy seguras como divisa pero horriblemente difíciles de minar (Bitcoin, Dogecoin según les quede el saco jajajaja).

Ahora bien, comencemos por un poco de terminología:

  • CPU: Procesador normal de una computadora
  • GPU: Tarjeta gráfica de una computadora
  • Hashrate: Cantidad de poder de cómputo que existe en una red de mineros resolviendo bloques en un momento dado. También es la capacidad en hashes que tiene una computadora para resolver los cálculos requeridos por la red según su hardware
  • Pool: "Pozos" donde se minan las criptomonedas junto con varios usuarios al mismo tiempo.
  • Worker: Nombre que se le da a una máquina dentro del sistema del pool trabajando para "resolver bloques"
  • Diff/Difficulty: Dificultad de proceso. Dificultad actual para la resolución de bloques en el pool o la que esté utilizando tu worker según corresponda.
  • Share: Tu "parte" de la paga por prestar tu computadora para validar el bloque de monedas encontrado
  • Kh/s: Tu hashrate en una referencia de 1000 hashes por segundo
  • PIN Code: tu "nip" del pool, como en el banco
Y con eso deberían estar más que listos para entender lo que vamos a hacer aquí. También ocupamos que tengas tu dirección de cobranza a la mano, cosa que vimos en un post pasado de la serie. Ahora bien, a lo que vamos:

Introducción: A qué apuntarle cuando minas...


La idea de la minería de criptodivisas es simple: Se trata de generar un ingreso con el mismo gasto que tienes diariamente en energía eléctrica, no más y si se puede, menos (en gasto). Esto es así porque minar es "gratis" relativamente, lo que te cuesta son los watts que te consume tener la computadora prendida mientras mina. Si como yo usas la computadora todo el día, (o en mi caso que tengo un servidor 24/7 también) entonces minar es bueno independientemente de cuánto generes al final, pero si por ejemplo tú no usas la computadora casi todo el día y ahora la vas a dejar encendida minando, tienes que asegurarte de que tu hardware va a poder pagar en criptodivisa lo que gastará en energía eléctrica, de otro modo no lo valdría. Lo ideal (si te vas a dedicar a minar consistentemente) Es apuntarle a primero, ganar algo con el tiempo que tienes la computadora prendida regularmente, por ejemplo yo mientras escribo este artículo, veo alguna serie, programo y demás, tengo mi computadora de escritorio minando a través de su cpu y el servidor dedicado que tengo está minando 24/7 con su GPU (aunque sea un GPU muy básico) pues ese de todos modos tiene que estar prendido. Eso ya me genera una ganancia en LTC diaria independientemente de que mi hardware es "pésimo" para minar, pero por el mismo gasto que hace a diario ahora gana dinero también por sí solo, poco o mucho, pero gana. Más tarde, debes apuntarle a conseguir un equivalente en minería a tu gasto del recibo de la luz mensual. Esto quiere decir, conseguir mejor hardware (quizá alguna mejor GPU para tu computadora) y optimizar todo tu "stack" (hardware/software) de manera que ahora mensualmente puedas solventar tu consumo eléctrico con la minería solamente. Una tarjeta gráfica que permita esto no debería salirte muy cara. Si logras esa segunda fase (o desde ya tienes el hardware para lograrlo) entonces lo que sigue sería armar tu propio stack para minería con utilidades (costo eléctrico + un profit) , y eso ya es un viaje investigativo que cada quien debe tomar por su cuenta.

AMD/ATI, Ninguna otra marca


Si vas a invertir en hardware para minar, te recomiendo utilizar estas marcas de componentes ya que son más rápidos para minar que sus contrapartes comerciales. Si no tienes de este tipo de hardware a la mano puedes minar con el tuyo de siempre, pero para gastar dinero en hardware para minar no busques otras marcas al comprar. No voy a dar especificaciones de piezas "buenas" para minar y así, eso es un proceso que cada quien tiene que hacer y descubrir por sí solo, es parte de la diversión ;) Ahora bien, ya explicado todo lo que es importante saber a la entrada, vamos a las cuestiones de enanos (jajajaja).

Primero: Elegir un Pool


Tenemos que elegir un "pozo" donde minar antes de empezar a minar como tal. La mejor manera de hacerlo, para empezar es checar la gráfica del hashrate distribution actual de la red. La versión siempre actualizada se encuentra en esta página de acá y deberemos elegir algún pozo del 6to para abajo en la lista (cualquiera, el que nos guste). Elegir alguno de los primeros 5 dañaría la red de litecoin desequilibrándola y haciéndola vulnerable a 51% attacks (historia para otro día) Así que elijan algún otro. Yo personalmente uso Hypernova, (mi favorito) y con éste haré los ejemplos del tutorial. Ahora bien, no todo es tan sencillo como elegir un pool y punto, tienen que elegir el sistema de recompensa que mejor les convenga. Hay muchos sistemas de recompensa, Pero mi consejo es: Si tienen un hashrate bajo/regular (decenas de kh/s) usen algún pool CPPSRB (como hypernova) sin ver ningún otro. Si van a minar 24/7 (independientemente del hashrate), entonces elijan PPLNS como sistema de recompensa, ya que les dejará mejores pagos a la larga. Si tienen un hashrate alto (cientos de kh/s) entonces usen algún pool PPS/APPS como opción para poder tener ganancia inmediata y sólida, y si pueden generar mil kh/s o más, entonces hagan P2PMining.

No voy a explicar bien a bien qué es cada sistema de todos los que hay, (para eso pueden checar la wiki acá) pero de los mencionados aquí, en resumen podríamos decir:

  • CPPSRB: Es un sistema que paga por cada share aceptada en el sistema (cada share que tu equipo genere) y lo que te pagan por share es igual al máximo posible considerando qué tan grande fue el bloque, si era válido o no y quitando de entrada una cuota (en el caso de hypernova el 1%) para evitar que el pool quiebre. Esto quiere decir que por cada bloque de monedas válido (los bloques traen 50 Litecoins) encontrado y minado (en el ejemplo de hypernova) el pool se queda 1 y se reparten 49 entre los mineros de manera justa en base a las shares que sus máquinas hayan podido generar durante el procesamiento del bloque, pagando una cantidad fija por c/u a todos por igual. La ventaja de este sistema es que "todos ganan" y ganan bien, incluso el pozo, que no tiene probabilidades de quebrar en operación diaria debido a su método de cobro.
  • PPS/APPS: Estos sistemas pagan por share metida al sistema y punto (haciéndolos muy riesgosos para los operadores y a la vez muy rentables para los usuarios). No importa si el bloque fue válido o inválido, pagan. el primero paga una cuota fija por share previamente estipulada, mientras que en el segundo la cuota es fija para pago pero cambia cada cierto tiempo según las estadísticas del pool en X cantidad de bloques. Estos sistemas son buenos, pero su problema es que si no tienes un hashrate alto tienes pocas probabilidades de ganar bien con ellos ya que las cuotas son demasiado altas (3% - 5%) por bloque y las dificultades suelen ser pesadas.
  • PPLNS: Este es un sistema similar a los ya citados, pero contrario a estos (donde por cada nuevo bloque aparecido se resetean tus shares para generar nuevas), en el PPLNS las shares no se resetean cada bloque encontrado, sino que siguen valiendo por varios bloques depreciándose cada que uno pasa y luego de una "ronda especificada" (cierto número de bloques) se resetean. Es decir, si los operadores deciden que la ronda es de 5 bloques, entonces en todos esos se te acumulan y cuentan las mismas shares que alcances a juntar a lo largo del bloque, pero estas se van depreciando (al mismo tiempo que se les suman otras nuevas), lo que quiere decir que si no estás minando constantemente las ganancias no son tan sólidas como en los otros 3 sistemas mostrados. En cambio, si minas diario durante largos periodos de tiempo, por la naturaleza variable del PPLNS éste sistema terminará pagándote mejor que los anteriormente citados.

Segundo: El software


Ahora necesitas configurar tu software de minería para trabajar. En este tutorial tomaré a Fedora Linux como sistema operativo de referencia para la cuestión de los programas a utilizar y demás, pero las mismas instrucciones no deben ser difíciles de seguir en cualquier otra plataforma (Windows/Mac) o distribución linux ya que son prácticamente las mismas para las cuestiones fundamentales. También, les recomiendo que de usar Fedora para minar se vayan a por la versión 19 (aunque al momento de escribir este post la más nueva es la 20) ya que actualmente hay problemas con los drivers catalyst en heisenbug.

Comencemos por el ahorro de energía. Todo esto se basa en gastar lo menos posible de electricidad y tener un profit. En fedora hacer al equipo ahorrar electricidad eficientemente es muy pero muy fácil gracias a tuned, una bellísima utilidad para los que nos gustan estas cosas de la minería jajajaja. Activar tuned es tan sencillo como hacer:

1. su -
2. yum -y install tuned
3. setenforce 0
4. service tuned start
5. tuned-adm profile powersave
6. tuned-adm list
7. service tuned enable
8. setenforce 1
9. service tuned status

El comando 6 nos debería dar como current profile a "powersave" y el 9 nos debería decir que tuned está activo y corriendo. Este daemon puede reducir el consumo de electricidad de tu equipo hasta en un 50% cuando está bien utilizado y es vital si piensas minar durante largos periodos de tiempo. En este tutorial nos vamos a centrar más en el minado por CPU en lugar del minado por GPU ya que el segundo es más complejo y depende de cada tarjeta gráfica y sistema la configuración y demás. Lo primero que vamos a hacer para poder empezar a minar es descargarnos la última versión de cpuminer para nuestra plataforma desde su página oficial de descargas y en el caso de Linux por ejemplo, extraeremos y guardaremos el binario minerd que nos proveerán con la descarga compilada para 32/64 bits según el caso, asegurándonos de que éste sea ejecutable.

Ahora ocuparemos una aplicación que se llama ScryptMiner GUI y se puede obtener (para Windows/Linux y Mac) desde acá. Lo ideal es descargar y extraer la aplicación para luego reemplazar su minerd por el nuestro, ya que el que utiliza por defecto tiene menor rendimiento que las últimas versiones del cpuminer normal. Esta app ocupa librerías Qt para funcionar, y hacer correr el ejecutable (verificando que tenga permisos de ejecución) en todas las plataformas debe ser tan sencillo como darle doble click y listo (al del scryptminer no al minerd, aclaro). En caso de que no corriera, ejecútenlo desde consola para ver qué librería les falta en su sistema para que abra la aplicación.

Finalmente ocuparemos a stratum proxy. Esto es un programa/script que nos permite comunicarnos con el protocolo de los pozos en internet a través de una conexión segura. Stratum proxy se obtiene desde acá y es una aplicación python, así que si tienes python instalado en tu máquina su instalación (al menos en sistemas Unix-Like) debe ser tan fácil como ya habíendolo descargado y extraído ejecutar estando dentro de su carpeta resultante desde terminal:

sudo python setup.py install

Y listo. Luego podremos usarlo para conectarnos a nuestro pool; En el caso de Windows (y por si tienen algún problema haciéndolo correr en Linux/Mac), chequen el repo oficial del proyecto en Github.

Sobre el minado con GPU

El minado con GPU es muchísimo más veloz y rentable/redituable que el minado por CPU en casi todos los casos, si tienes una BUENA tarjeta gráfica, no esfuerces tu procesador y mejor usa la GPU... Hacer este tipo de minado requiere de 3 cosas solamente:

  • Los drivers oficiales para tu tarjeta gráfica de su empresa (NVIDIA, ATI) 
  • CGminer como programa minero
  • Una serie de settings que tienes que ir tuneando tú poco a poco según encuentres información en la web para sacarle el máximo partido a la tarjeta que tengas
Este es un proceso más complejo y la verdad varía mucho de setup a setup, pues cada tarjeta acepta settings distintos y demás. Por sólo dar un ejemplo, en mi caso yo logré sacarle 11.5kh/s a una triste ATI Radeon HD 6310 con las configs correctas en CGminer (compilado previamente para ATI y usando el algoritmo scrypt obviamente) cuando generalmente esa porquería da 3Kh/s si bien te va (es una tarjeta bien básica jajajaja!)

No ahondaré más sobre el minado por GPU aquí porque es cuento de nunca acabar si quisiéramos agarrar todas las tarjetas y demás. Les recomiendo hacer su tarea e investigar por la web si les interesa usar su tarjeta gráfica para minar litecoin y pues es cosa de experimentar... A mi me tomó 3 días encontrar los settings "óptimos" para mi tarjeta esa, pero el README de CGMiner (y su README específico para scrypt también) fueron bastante útiles en el proceso.

NOTA: Scrypt es el algoritmo de cifrado que utilizan las Litecoins; El programa CGMiner ya viene con stratum habilitado por defecto, lo que hace que no requiramos correr el proxy por separado en caso de usarlo. También cabe destacar que a partir de versiones superiores a la rama 3.8 del programa, CGminer ya no soporta el minado por GPU con scrypt (o bueno, con ningún otro algoritmo en realidad a final de cuentas).

Tercero: El Worker

Ya que tengamos todo preparado para minar ya sea con nuestro CPU o nuestro GPU, lo que sigue es registrarnos en nuestro pool de elección y crear un worker. Ahí les van unas recomendaciones:

  • Si su hardware genera decenas de kh/s (pueden checar acá en la wiki  antes de probar por cualquier cosa) váyanse a por Hypernova.
  • Si su hardware les genera cientos de kh/s váyanse por LTCRabbit.
  • Si van a minar 24/7 (independientemente del hashrate), entonces váyanse por WeLoveLTC.
  • Si su hardware les genera miles de Kh/s usen el P2PMining (independientemente del tiempo).
Para este tutorial elegí Hypernova como el pool para la demostración, pero en cualquier otro las instrucciones son prácticamente las mismas: se crea un worker, se preparan los programas y se inicia la minería, veamos pues:

Una vez registrados en algún pool que nos agrade, nos darán acceso a una cuenta de usuario donde podremos añadir workers. Los workers son las máquinas (GPU's/CPU's) que utlizaremos para la minería. Llevan un nombre y contraseña y en Hypernova se crean en la sección de account:



Dichos workers (como ya explicamos) pueden ser de CPU/GPU y la diferencia está en la capacidad que tienen para generar shares en determinada dificultad (al menos en hypernova donde la dificultad no es variable sino elegible) y la elección deberás hacerla según tu hashrate. Una buena tabla comparativa (hashrate/difficulty) la podemos ver aquí:

250kh/s (y menor): 16
250+: 32
500+: 64
1000+: 128
2000+: 256
3000+: 384
4000+: 512 

Los CPU (dentro de hypernova) tienen disponibles dificultades de 8 y 16 para escoger, las GPU de 32, 64 y 128 respectivamente. Según tu hashrate puedes elegir si poner tu CPU como un GPU o tu GPU como un CPU según te convenga. En mi caso mi worker es en realidad una GPU que puse como CPU porque sólo da 11.5 Kh/s pero al darle una baja dificultad de 8 éste rinde mejor de lo esperado como se puede notar en la imagen:


Otra cosa que la gente se llega a preguntar es si juntar varias piezas en 1 worker o hacer diferentes workers por pieza... La regla de oro es: separar tiende a rendir más, punto. Yo he tenido bastante fluidez dejando 4 workers trabajando: 2 de 10 kh/s c/u 1 de 2Kh/s y otro de 4 Kh/s, los 4 trabajando en diferentes workers por separado dan un income estable y fluido con dificultades muy bajas (8 y 16 respectivamente). Eso no quiere decir que dejar esos 4 las 24 hras del día me sea rentable (ahí si le pierdo la verdad) VS solo dejar 1 de 11.5 kh/s generando sin perder aunque sea muy poco. También he notado que a veces incrementando la dificultad el worker sorprendentemente mejora su producción según el pool (en dinero, aunque baja su hashrate) pero eso es por un tiempo limitado y después cae horriblemente, les recomiendo encontrar una buena dificultad donde su hardware rinda de manera estable, fluida BIEN para dejarlo ahí trabajando. Otra cuestión: ¡No borren workers! (Al menos no hasta cobrar) hagan desde un principio bien la distribución o podrían perder las shares generadas en ellos.

Ya con el worker creado tenemos que iniciar stratum según la dirección del pool que queramos usar. Los pools tienen diferentes servidores por región y siempre has de seleccionar el más cercano a donde vives para minar. (En mi caso el más cercano de los que tiene hypernova es el de estados unidos por ejemplo); Iniciar el proxy es sencillo:

mining_proxy.py -o SERVIDOR.mipool.tld -p puerto

Ese comando (con los datos correctos obviamente) iniciará el proxy con conexión al pool donde minaremos (dándonos entrada a través del puerto 8332 de nuestra máquina). Luego en ScriptMiner GUI ocupamos:


De aquí lo único que te tiene que quedar igual a la imagen es el puerto y el scantime. Fuera de eso, los demás datos debes rellenarlos con los tuyos y, (teniendo el proxy corriendo) darle a Start Mining para empezar a generar dinero con tu computadora. El cliente tomará 1 minuto en iniciarse bien a bien pero debería darte una velocidad en Kh/s ahí donde dice N/A desde el inicio. Después de unos 20 minutos aprox ya deberías empezar a ver las primeras LTC generadas llegando consistentemente al balance de tu cuenta en el pool:



Recuerda configurar cuestiones como tu dirección de cobro, tu monto de cobro automático y tu PIN en el pool que hayas elegido antes de comenzar tu minería activa para poder minar cómodamente y sin interrupciones, teniendo un flujo de dinero seguro, estable y directo hasta tu computadora. Algunos pools incluso tienen un autenticador para proteger tu cuenta mediante verificación de 2 pasos con tu smartphone, este también es un paso importante de configurar ANTES de empezar a minar.

Si te interesa todo lo relacionado a Litecoin, no olvides únirtenos en:

Y pues bueno, con esto terminamos nuestro tutorial de minería de LTC con CPU/GPU. Espero que les haya sido útil y se animen a intentarlo, después de todo es bastante divertido y también una manera sencilla de ganar dinero con tan sólo tener la computadora prendida. Recuerden que si quieren seguir estando al tanto de futuros posts de esta serie, pueden suscribirse a nuestro feed rss para leerlos antes que nadie. Igual no olviden seguirnos en las redes sociales y ayudarnos con un tweet (enlace para twittear abajo) haciendo llegar así esta serie a más personas. Finalmente, si gustan pueden donarnos algo de Litecoins a nuestra dirección oficial como agradecimiento por la información proveída:


LeumQ7eFQj4mmna71fd9XkNQJiMhr5VKqZ

Y para twitter...

¿Que te paguen por tener la computadora encendida? Ahora es posible - http://j.mp/1gj4VDI #Litecoin #LTC (vía @xenodesystems)