Red privada de Ethereum sin nueva minería de monedas

Logré crear una red Ethereum privada usando lo siguientegenesis.json

{
    "config": {
        "chainId": 15,
        "homesteadBlock": 0,
        "eip155Block": 0,
        "eip158Block": 0
    },
    "difficulty": "200000000",
    "gasLimit": "2100000",
    "alloc": {
        "1A77F77E1e523f9f68D97A89b0502f136fB7F942": { "balance": "300000000000000000000000000000000000000" }
    }
}

Debido a que ya asigné las monedas a esta billetera anterior, no quiero que se generen nuevas monedas en esta red. Con esta configuración de génesis, ¿los mineros podrán generar nuevas monedas? ¿o de lo contrario los mineros solo extraerán para validaciones de transacciones?

¿Cómo podemos diferenciar esas dos formas del bloque génesis?

Respuestas (2)

¿Cómo podemos diferenciar esas dos formas del bloque génesis?

No puedes en Geth, al menos no configurando nada en el archivo de génesis.

Con esta configuración de génesis, ¿los mineros podrán generar nuevas monedas?

Sí. Nuevamente, no hay forma de desactivar la recompensa de minería en el bloque de génesis directamente si está ejecutando un cliente Geth (go-ethereum).

No quiero que se generen nuevas monedas en esta red.

Un par de opciones que puedo pensar en la parte superior de mi cabeza:

  • Considere el uso de Parity, que admite un blockRewardcampo en sus archivos de génesis.
  • Si va a utilizar Parity, verifique si un algoritmo de consenso diferente sería adecuado para su proyecto. (La paridad es compatible con Consenso conectable ).
  • Si desea desesperadamente usar el cliente Geth y no le importa reconstruir desde la fuente, cambie el ByzantiumBlockRewardvalor, que es 3, no 5, en consensus.go.

Código a cambiar:

var (
    FrontierBlockReward    *big.Int = big.NewInt(5e+18) // Block reward in wei for successfully mining a block
    ByzantiumBlockReward   *big.Int = big.NewInt(3e+18) // Block reward in wei for successfully mining a block upward from Byzantium
    maxUncles                       = 2                 // Maximum number of uncles allowed in a single block
    allowedFutureBlockTime          = 15 * time.Second  // Max time from current time allowed for blocks, before they're considered future blocks
)
Gracias por darme la información sobre consensus.go. Eso es exactamente lo que quería y no me importa construir desde la fuente. Una última pregunta, ¿cuál es la diferencia entre los valores FrontierBlockReward& ByzantiumBlockReward? Porque tuve que hacer que ambos valores sean 0 para eliminar la nueva recompensa de minería de bloques

Sí, los mineros podrán generar nuevas monedas, obtendrán 5 monedas en cada bloque.

También extraerán tarifas de transacción de todas las transacciones que se hayan procesado en el bloque que hayan encontrado.

No tienes que diferenciar nada, el bloque de génesis se crea una vez al principio, nunca será minado por ningún minero.