El minero

Aunque la mayoria, si no todas, las carteras de criptomonedas incluyen las funciones para minar la moneda dentro de ella, tambien existen aplicaciones externas desarrolladas unicamente para minar bloques, esto es, encontrar el valor 'nonce' cuyo hash incluye la respuesta al problema solicitado.

Aunque ya lo habiamos comentado antes, no esta demas recordar como es el proceso de mineria en una criptomoneda:

  • Al minarse un bloque, este produce un hash.
  • Un determinado numero de caracteres iniciales de dicho hash (dependiendo de la dificultad actual de la red) seran el problema a buscar para resolver el siguiente bloque.
  • Como se consiguen estos caracteres? Con una combinacion de 6 letras mayusculas aleatoria, seguido de la direccion paskal del minero y por ultimo un numero entre 100000000 y 999999999. El minero debe probar diferentes combinaciones hasta que el hash de una de ellas contenga el problema planteado.
  • Como el problema esta formulado con la informacion del bloque previo, se forma un secuencia en la que cada bloque depende para su creacion del bloque anterior.
Crear un minero para nuestra moneda es muy sencillo. Dentro de la carpeta de MasterPaskal crearemos otra carpeta llamada 'miner', que contendra el minero. Como de momento solo queremos probarlo, amen de determinar las necesidades de calculo segun la dificultad, le incluiremos algunos controles.


El primer campo edit contiene una frase aleatoria que nos sirve unicamente para generar un hash del cual extraer un problema. El segundo edit es para la dificultad (numero de caracteres, por defecto = 10) que decidamos ejecutar la prueba. Al iniciar, en el memo se muestra el hash de la frase, asi como el objetivo a buscar segun la dificultad elegida. En el panel de informacion se muestra:
  • Seed: Es la ultima combinacion de las 6 letras mayusculas (aleatorias para este minero) y 9 numeros que intento el programa. (el programa incluye una direccion Paskal automatica que es incluida en el proceso de minado; en el proceso real, dicha direccion sera la que el usuario desee de su cartera)
  • TotalHashes: Es el numero total de intentos que ha realizado el programa buscando soluciones, en miles (en la foto, el minero habia realizado mas de 115 millones de intentos diferentes)
  • Speed: Es el cantidad de diferentes combinaciones intentadas en el ultimo segundo.
  • Solutions: El numero total de soluciones encontradas al presente problema.
  • Average: Indica el numero de intentos en promedio que hay que hacer para encontrar una solucion valida.
Como es de esperar, nos damos cuenta que al aumentar 1 punto la dificultad, el numero de operaciones requeridas por solucion se incrementa notablemente; de promedio, cada nivel de dificultad requerira 16 veces mas operaciones que el nivel anterior, lo que no nos proporciona un sistema muy preciso para incrementar o reducir el tiempo de calculo estimado para obtener una solucion.

Mas adelante, cuando retomemos el minero, veremos como solucionaremos esto.

Aqui enlaces a las descargas:





Comentarios

Entradas populares de este blog

Como funciona una criptomoneda?

Funcionamiento interno

Codigo fuente y binarios version 0.1.0