¿Por qué hay tantos bloques vacíos?

Dentro de los primeros 4 millones de bloques, descubrí que una fracción significativa de ellos está vacía. Si los mineros son recompensados ​​por escribir transacciones, ¿no sería mejor para ellos llenar al menos parcialmente el bloque?

ingrese la descripción de la imagen aquí

El gráfico se creó llamando web3.eth.getBlockTransactionCount(n)y trazando un promedio móvil ponderado exponencialmente con un lapso de 5760.

Respuestas (1)

En resumen: los bloques vacíos se propagan por la red más rápidamente que los bloques que no están vacíos.

Si dos nodos de minería encuentran la solución de prueba de trabajo para los bloques que están minando al mismo tiempo, la red solo aceptará uno de esos bloques. El otro se convertirá en tío.

El bloque que pueda propagarse por la red más rápidamente será el que será aceptado por la comunidad y, por lo tanto, el que obtendrá la recompensa del bloque.

Claramente hay algo de teoría de juegos aquí. ¿Bajo qué condiciones es mejor extraer bloques vacíos y renunciar a las tarifas de transacción? No soy un minero, pero probablemente cuando la red está bajo mayor estrés, y los bloques enviados por otros mineros están más llenos. De esa manera, su bloque vacío se propagará mucho más rápido en relación con los demás. Pero estoy seguro de que hay un saldo aquí antes de que comience a perder las tarifas de transacción.

Sería interesante comparar su gráfico con otro que muestre qué tan llenos están los bloques para cada número de bloque y ver si se correlacionan.

Eso tiene sentido, pero ¿por qué después de 4 millones de bloques esencialmente no hay más bloques vacíos? La tasa del 100% continúa hasta el bloque más actual en ~5M. Me encantaría trazar qué tan llenos están los bloques, pero no estoy seguro de cómo medir eso: ¿cuánto "espacio" ocupa cada transacción?
Buena pregunta. No sé. ¿Quizás las variables en el juego que han estado jugando cambiaron de alguna manera? Para calcular la plenitud de un bloque, miraría cuánto gas se usó ( gasUsed) contra el límite de gas ( gasLimit). (Etherscan también muestra el gas utilizado como porcentaje, como referencia). Tenga en cuenta que el límite de gas no es estático y ha cambiado en varios puntos. (¿Qué podría correlacionarse con los cambios en la cantidad de bloques vacíos? ¿Límite de gas más alto, tarifas de transacción potenciales más altas? Pregunta interesante).
Podría valer la pena echarles un vistazo rápido: etherscan.io/charts
Mmm. Alrededor del bloque #3950000 se elevó el límite de gas de 4.7M a 6.7M... (fines de junio del año pasado).
@RichardHorrocks: Re: condiciones para extraer bloques vacíos y renunciar a las tarifas de transacción, vbuterin describe el trabajo que hizo para determinar precios justos para diferentes operaciones en EVM: blog.ethereum.org/2016/10/31/… . Los mineros pueden usar esto/simular para decidir si deben incluir transacciones. Creo (a través de la experiencia de pensamiento) que los mineros con discos y CPU más lentos que el promedio deberían evitar incluir tx . Pre-state-bloat-attack, un HDD estaba bien para almacenar el blkchain, pero creo que habría puesto a un minero en desventaja para usar un HDD y procesar txes.
Gracias @lungj: mi coloreado de "enlace visitado" sugiere que he estado en esa página antes, pero no recuerdo haberla leído :-) Le echaré un vistazo. Su razonamiento HDD ciertamente tiene sentido.