¿Por qué no puedo obtener más transacciones de un lote en el mismo bloque?

Entonces, el otro día intenté agrupar muchas transacciones ~ 100 de la misma cuenta y las envié a ethereum. Estaba creando programáticamente muchos txs, incrementé el nonce en consecuencia, los firmé y los envié (todo a través de web3js 1.0).

Todos ellos se procesaron eventualmente, pero rara vez pude ver 2 o más txs en el mismo bloque. en su mayoría fueron extraídos cada dos bloques uno a la vez. incluso cuando aumenté mucho el precio del gas, no pude ver una mejora en la rapidez con la que se extrajo el lote.

¿Alguien tiene una idea de por qué sucede esto?

Antes de pasar a la red principal, probé en ropsten y se extrajo un lote completo de 30txs en el mismo bloque. ¿Está esto relacionado con cómo el minero elige qué tx poner en bloques? Entiendo por qué un minero no incluye en un bloque un tx que tiene su nonce en el futuro, pero no entiendo por qué no incluiría más txs de la misma cuenta si tienen nonces consecutivos, son válidos y el precio del gas es alto. . Lo curioso es que de vez en cuando salía un bloque con 2 o más txs consecutivos, pero esto era raro.

¿Podría verificar si los bloques en los que se extrajeron sus transacciones estaban llenos o tenían espacio libre? Dijo que rara vez vio dos o más de sus transacciones en un bloque, pero ¿con qué frecuencia vio varias de sus transacciones incluidas en bloques consecutivos? Probablemente, había demasiadas transacciones pendientes en el grupo de memoria en ese momento.

Respuestas (1)

Supongo que los mineros generalmente no mantienen transacciones que no pueden ejecutar en su grupo de tx. Entonces, el minero puede recibirlos desordenados y simplemente eliminarlos, manteniendo solo el que puede ejecutar, y luego uno de sus pares les envía las siguientes transacciones. Dado que hay tantos nodos en la red, sus transacciones generalmente permanecerán en un nodo durante mucho tiempo, por lo que no hay problema si algunos nodos las eliminan.

No he considerado que un minero pueda recibirlos fuera de servicio. Y supongo que esto depende de la política del minero de eliminar ciertos txs o incluso no propagar ciertos txs. Leí en alguna parte que ciertas implementaciones de nodos eliminan txs no minados después de un período y creo que mantener algunos txs durante demasiado tiempo no es una gran estrategia, ya que uno podría enviar spam a un nodo con muchos no explotables (no muy lejos en el futuro) para hacerlo funcionar sin memoria o almacenamiento. Pero creo que mantener los que tienen nonces cerca del actual no sería tan malo.