Minería en red privada que no da ether a la cuenta de coinbase

Soy relativamente nuevo en Ethereum. Estaba tratando de configurar una red de prueba privada. Utilicé el siguiente archivo de génesis:

{
"config": {
"chainId": 15, 
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"difficulty": "20",
"gasLimit": "2100000",
"alloc": {
"7df9a875a174b3bc565e6424a0050ebc1b2d1d82": 
    { "balance": "300000" },
"f41c74c9ae680c1aa78f42e5647a62f353b7bdde": 
    { "balance": "400000" }
}
}

Se utilizaron los siguientes comandos para inicializar e iniciar la red:

geth --datadir "C:\Users\Mahe\Desktop\Ethereum\data" init "Path_to_genesis" 
geth --datadir "C:\Users\Mahe\Desktop\Ethereum\data" --nodiscover --networkid 65535 --port 60303 --rpc --rpccorsdomain "*" --rpcapi "web3,eth,personal,miner" console 2>Node2.log

La red se inició con éxito, después de lo cual creé una nueva cuenta y la configuré como coinbase. eth.coinbase está configurado y proporciona la dirección de la cuenta creada. Sin embargo, no hay aumento de éter en la cuenta creada cuando la minería ( eth.getBalance(eth.accounts[0]) devuelve 0) . Cualquier ayuda sería apreciada.

¿Empezaste a minar?
Sí, lo hice. No aumentó el saldo.

Respuestas (2)

Creo que necesitas comenzar a minar para obtener Ether. Como se describe aquí en la página de github, puede hacerlo usando --minela opción de línea de comando al principio o miner.start()en la consola mientras se ejecuta.

Minería de CPU con Geth

En Frontier, el primer lanzamiento de Ethereum, solo necesitará a) una GPU yb) un cliente de Ethereum, Geth. La minería de CPU será posible pero demasiado ineficiente para mantener algún valor.

Por el momento, Geth solo incluye un minero de CPU y el equipo está probando una rama de minero de GPU, pero esto no será parte de Frontier.

La implementación C++ de Ethereum también ofrece un minero de GPU, tanto como parte de Eth (su CLI), AlethZero (su GUI) y EthMiner (el minero independiente).

NOTA: Asegúrese de que su cadena de bloques esté completamente sincronizada con la cadena principal antes de comenzar a minar; de lo contrario, no estará minando en la cadena principal.

Cuando inicia su nodo ethereum con geth, no está minando de forma predeterminada. Para iniciarlo en modo de minería, utiliza la opción de línea de comando --mine. El parámetro -minerthreads se puede usar para establecer el número de subprocesos de minería en paralelo (el valor predeterminado es el número total de núcleos de procesador).

geth --mine --minerthreads=4

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.

> miner.start(8)
true
> miner.stop()
true

Basado en la discusión que tuvo en los comentarios que necesita,

  • configurar correctamente una cuenta de coinbase y
  • mantener el minero iniciado durante un tiempo suficiente en lugar de detenerlo rápidamente

para obtener Ether en su cuenta.

Solo tengo una cuenta actualmente y eth.coinbase da la dirección de esa cuenta (que es eth.accounts[0]). La base de monedas se está configurando en esa cuenta con éxito.
eth.blockNumber también devuelve 0
Han pasado alrededor de 4 minutos después de miner.start y el número de bloque sigue siendo cero. eth.hashrate sigue devolviendo 0.

El problema era que los bloques no se extraían. El primer bloque se extrajo después de 20 minutos de miner.start(), después de lo cual la velocidad de generación de bloques se redujo. El saldo en la cuenta de coinbase comenzó a aumentar cuando los bloques se extrajeron con éxito.

cuando se extrae un bloque, aparece un mensaje en la consola
No, no lo hacemos. Sin embargo, recibimos un mensaje cuando se extrae un contrato.
bueno, entonces aumenta el nivel de verbosidad
@Nulik, ¿cómo aumentar el nivel de verbosidad?
añadir -verbosity 6a la línea de comandos