¿Por qué ethereum crea un nuevo bloque sin siquiera una sola transacción? [duplicar]

Estoy ejecutando una cadena de bloques de Ethereum privada. Cuando configuro uno de los nodos como mío, ese nodo crea bloques continuamente, incluso si no hay transacciones dentro de él. ¿Cuál es el propósito de esto?

Respuestas (3)

Un beneficio de una cadena de bloques es que, en la práctica, solo se agrega con bloques pasados ​​​​inmutables.

Estos bloques anteriores son inmutables porque es muy difícil (a través de la prueba de trabajo) crear un bloque competidor que "reescribe la historia". Además, hay que tener en cuenta que los bloques posteriores añaden su propia dificultad. Entonces, para cambiar un bloque en el pasado y ser aceptado por otros nodos, debe cambiar ese bloque pasado y todos los que vinieron después.

Entonces, para volver a su pregunta, esos bloques vacíos agregan constantemente nuevas capas de dificultad para garantizar la inmutabilidad práctica de los bloques anteriores.

La concesión de nuevos Ethers está ahí para incentivar a los mineros a proteger bloques anteriores.

Esta respuesta es tan buena como podría ser, pero podría explicar la razón por la que sucede con más frecuencia ahora que en el pasado debido a los recientes ataques Dos. No estoy seguro de por qué es eso. Tal vez pueda agregar una explicación de por qué está sucediendo ahora con más frecuencia que antes.
Cuando los mineros reciben un nuevo bloque válido, deben cambiar a la minería en el siguiente bloque. Sin embargo, antes de que puedan comenzar a minar, deben decidir qué poner en el siguiente bloque. Esto requiere una cantidad de tiempo distinta de cero. Por lo tanto, mientras tanto, los mineros continúan extrayendo en el bloque anterior con la esperanza de obtener una recompensa del tío, o comienzan a extraer inmediatamente en un siguiente bloque vacío con la esperanza de obtener una recompensa completa. Cuando el nuevo bloque no vacío esté listo para minar, pueden comenzar a minar en él. Pero bien pudo haber sucedido que el bloque vacío fuera minado en el ínterin.

En una cadena pública, tiene perfecto sentido seguir creando bloques, porque un minero aún obtendrá la recompensa del bloque de 5 ETH, con o sin transacciones internas. Por lo tanto, geth minará continuamente mientras se le indique. No sabe que la cadena no es pública. Es posible escribir un script para controlar la minería de geth. Ver esta pregunta.

Si está buscando una cadena de bloques privada para probar dapps, un simulador como testrpc probablemente sea más adecuado que un nodo completo genuino. testrpc solo "mina" cuando hay una transacción, y esta minería es simulada, no se produce un hashing real.

En la cadena de bloques de ethereum creamos bloques cada N tiempo (15 s) consulte https://etherscan.io/charts/blocktime

lo hacemos con 2 propósitos:

1-incluir transacciones.

2-generar nuevos Éteres.

Si no hay transacciones para incluir o el minero se niega a incluirlas, crea un nuevo bloque sin transacciones, pero que contiene los Ethers recompensados.

por lo tanto, un bloque no puede contener transacciones en su interior, pero tenga en cuenta que un bloque validado necesita algunas confirmaciones (bloques adicionales después) para ser más confiable [12 confirmaciones para realizar cambios "irreversibles" en los datos].