Minería de CPU en testnet usando geth en ubuntu - eth.hashrate = 0

Configuré un minero de CPU en ropsten testnet pero cuando ejecuto eth.hashrate siempre devuelve cero. ¿Alguien puede decirme por qué es esto? He buscado una respuesta, pero no puedo encontrar una respuesta satisfactoria. Estoy haciendo esto como un ejercicio de autoaprendizaje, por lo que realmente me gustaría que esto funcione en geth en lugar de usar otro medio.

Los pasos de configuración exactos fueron los siguientes

Sincronizar la cadena de bloques de Ropsten

$get --testnet --rápido --cache=1024

Una vez que se sincronizó toda la cadena de bloques, verifiqué que el último número de bloque era correcto

$geth --testnet adjuntar

eth.blockNumber

Esto devolvió el mismo blockNum que el último número de bloque en Ropsten etherscan

Luego creé mi primera cuenta, es decir, la cuenta etherbase

$geth --cuenta testnet nueva

y asegurado con frase de contraseña

Luego comencé a minar con

$geth --testnet --mío

el resultado que obtengo parece estar minandoSalida de consola de geth miner

Sin embargo, mi hashrate siempre es cero.tasa de hash es cero

Respuestas (2)

También estuve minando en mi red privada durante más de 30 minutos y también obtuve 0.

También estaba tratando de averiguar qué está pasando y encontré esto:

https://github.com/ethereum/go-ethereum/blob/fe6cf00f480aa6347b8d55079cbe6c473482ea27/miner/miner.go#L142

Parece que el nombre de la función es engañoso o caemos en el caso de la carrera (error).

Comenzando el minero y después, el éter está aumentando.

La captura de pantalla del lado del nodo en ejecución.

Hmmm, no estoy familiarizado con golang ni con el código base geth. Pero si se trata de una condición de carrera, habría pensado que al menos a veces obtendría un resultado distinto de cero. Una cosa que noté es que el valor devuelto es un número entero. ¿Puede ser un problema de resolución? Es decir, si mi hashrate es KH/s y el valor de retorno de agent.GetHashRate() se especifica en MH/s, entonces el valor de retorno entero se redondearía a cero cada vez...
Supongo que debería haber preguntado. ¿Extrajo algún éter en su red privada mientras decía que su tasa de hash era cero?
No revisé el código a fondo, pero tal vez valga la pena enviar un "Problema" a su GitHub. Sí, he extraído algunos miles de éteres antes y mientras tanto verifico el resultado del minero.

Comience a minar con miner.start()

También puede iniciar y detener la extracción de CPU en tiempo de ejecución mediante la consola. miner.start toma un parámetro opcional para el número de subprocesos mineros.

minero.start(8) verdadero

minero.stop() verdadero

Otra forma de hacer lo mismo

Cuando inicia su nodo ethereum con geth, no está minando de forma predeterminada.
Para iniciarlo en modo de minería,
puede usar geth --fast --cache=1024 --mine --minerthreads=8 --rpc
Cuando inicia su nodo ethereum con geth, no está minando de forma predeterminada. Para iniciarlo en modo de minería, puede usar geth --fast --cache=1024 --mine --minerthreads=8 --rpc
He probado ambos de estos ya. Hashrate sigue siendo cero