¿Existe un límite teórico para el tamaño de los datos de transacción cuando envía una transacción a la red Ethereum?
Árbitro.
¿Existe un límite (teórico) para la cantidad de datos que puede almacenar un contrato?
Wow, esta es una pregunta tan interesante! TL; DR : el límite de tamaño de la transacción, en el momento de escribir este artículo, es de aproximadamente 780 kB (alrededor de 3 millones de gas). Pero sigue leyendo.
No existe un límite directo o fijo , ni para el tamaño de las transacciones ni para el tamaño de los bloques. Esta es una fortaleza de la red Ethereum, escala.
Eso no quiere decir que no haya límites. Actualmente existe un límite de gas por bloque de 3.141.592 de gas que se puede gastar como máximo por bloque.
Eso significa que, en teoría, podría crear una sola transacción que consuma todo el gas de un solo bloque.
Intentemos enviar datos aleatorios de 256kB con un contrato:
Eso consumiría casi 9 millones de gas, que no está disponible actualmente. Mist intenta crear la transacción, pero no será válida.
Intentemos crear algo cercano al límite de gas, 44 444 bytes aleatorios :
Esa transacción se realizó, aquí hay un enlace del explorador . Picadillo:
I0207 11:47:14.558908 eth/api.go:946] Tx(0x25e54394ab4e5f17d6e1240c02c1a6c4bb675ef9471f1105b006988f5fe5aec1) to: 0xfcae7970392f510a985a7eaccd3820b7759d65d9
Entonces, acabo de agregar 44kB a la cadena de bloques en el bloque 967163 .
Y ahora, la magia de escalado de Ethereum comienza a hacer efecto. En el bloque 967164 , la red reacciona al alto consumo de gas y aumenta el límite de gas del bloque a 3.142.967 .
Por lo tanto, si hay una solicitud continua de alto consumo de gas, el límite de gas se puede aumentar en más/menos 1/1024
, que es alrededor de 0.09%
. Ver ecuaciones de papel amarillo 40-42 .
En resumen, límite: sí, al momento de escribir sobre 780kB para un tx lleno de bytes cero, o 46kB para un tx lleno de bytes distintos de cero. Límites fijos (como en Bitcoin): no.
A partir del 08/12/2017 , el límite de gas detallado en EthStats.net es 6,700,314 .
El límite de gas estaba 'atascado' en 4,7 millones. Se recomendó que los mineros cambiaran su configuración para poder aumentar el límite de gas.
Como se describe en este artículo , esto sucedió.
Cada carácter hexadecimal es de 4 bits. 2 caracteres es un byte.
El papel amarillo describe las tarifas para varias operaciones.
Utilizando cálculos similares a los utilizados por 5hcdn/Giuseppe Bertone, ahora podemos ver que una transacción podría (en principio) contener ****
(6.700.314 - 21.000) / 68 = 98.225 (redondeado hacia abajo) bytes distintos de cero.
Ahora... los datos proporcionados por EthGasStation nos permiten ver que podríamos tener una transacción minada con un precio de gas tan bajo como 0.5 Gwei.
6,700,314 * 0.5 = 3,350,157 Gwei = 0.003350157 Ether.
Un precio de gas de 20 Gwei más estándar produciría:
6,700,314 * 20 = 40,201,884 Gwei = 0.040201884 Ether.
Al precio actual de ETH de alrededor de $315 , costaría entre $1,05 y $12,66 enviar esa cantidad de datos a la cadena de bloques.
ética
lluvia reverencia
q9f
Giuseppe Bertone
FrenchieiSverige
q9f
ismael