¿Cuál es el costo de almacenar 1 KB, 10 KB, 100 KB de datos en la cadena de bloques de ethereum?

Lo que sea que esté almacenado en la cadena de bloques es inmutable, lo que significa que puedo recuperar estos datos en el futuro. A partir de hoy (febrero de 2016),

  • ¿Cómo se almacena un dato/texto de 1kb, 10kb o 100kb o arbitrario en la cadena de bloques ethereum? ¿Cuál es el código necesario para hacer esto?

  • Una vez almacenados, ¿cómo descarga los datos de nuevo en su escritorio?

  • ¿Cuánto costaría esto exactamente en ether/gas/fiat a los precios de hoy?

Es mejor dividir esto en varias preguntas sobre el intercambio de pila. Hacer muchas preguntas en 1 hilo generalmente no es bueno.

Respuestas (4)

Aquí hay un artículo para describir todo sobre el gas y cómo calcularlo.

Supongamos que estamos sumando dos números y para eso el contrato debe hacer las siguientes acciones:

Almacenar 10 en una variable. Digamos que esta operación cuesta 45 de gasolina. Sumando dos variables, digamos que esto cuesta 10 de gasolina. Almacenando el resultado que nuevamente cuesta 45 de gas.

Suponga que el remitente especifica un límite de gas de 120 gases.

El gas total utilizado por el minero para ejecutar el cálculo es (45+10+45) = 100 gas.

La tarifa que se le debe al minero, suponiendo que 1 gas cueste 20 Gwei, es (100 * 20 Gwei) = 0,000002 ETH.

Y aquí puedes obtener cálculos de GAS

Esta respuesta está subestimada.

tl;dr: $0.076/KB o $76,000/GB

De acuerdo con el papel amarillo , la tarifa es de 20k de gas para almacenar una palabra de 256 bits. Un kilobyte es, por lo tanto, 640k de gas.

El gas en este momento es de alrededor de 50 Gwei (0.00000005 ETH). Entonces, un KB de almacenamiento cuesta 0.032 ETH. Un GB cuesta 32.000 ETH.

Para probar esto empíricamente, creé un contrato con este código:

contract test {
    bytes data;

    function addData(bytes _data) public {
        data = _data;
    }

}

en la transacción de dirección .

Luego envié una transacción agregando 1 KB de datos ("0x111111...." 2k veces).

Esta transacción tomó 753,072 de gas (0.03765 ​​ETH a precios actuales).

Cuesta alrededor de 0,003 ETH llamar al contrato sin agregar ningún dato, lo que equivale a alrededor de 0,035 ETH por KB ($0,076), o alrededor de $76 000 USD por GB de almacenamiento.

Sin embargo, recuperar estos datos es gratis.

"Cuesta alrededor de 0,003 ETH llamar al contrato sin agregar ningún dato, lo que equivale a alrededor de 0,035 ETH por kb ($ 0,076), o alrededor de $ 76,000 USD por GB de almacenamiento". ¿Significa esto que cuesta $0.076 por KB que desea agregar al contrato? Digamos que tengo un contrato que contiene 2 GB de datos y quiero agregarle 5 KB. ¿Significa esto que me costará $0.38 o $375000.38?
Solo costará $0.38. Se incurre en tarifas solo cuando establece un byte cero en un valor distinto de cero.
Entonces, técnicamente, un contrato podría contener una base de datos completa y tener un tamaño de 5 GB. ¿Lo único que costará es agregar datos a dicha base de datos? ¿Recuperar esos datos debería ser gratis?
Si, eso es correcto. Sin embargo, hay muy pocos casos de uso que se me ocurran que requieran almacenar tantos datos en la cadena.
digamos tener registros médicos anonimizados identificados solo por hash?
Derecha. Pero probablemente no necesites almacenar cada hash en la cadena. Podrías simplemente almacenar la raíz de un árbol merkle.
Qué diferencia hacen 14 meses. Hoy (24/4/2017), 0.035 ETH cuestan $1.75 al precio de ~$50 por ETH. Eso pone el costo de 1 GB de almacenamiento en $ 1,750,000, es decir, 1,75 millones de dólares, en lugar de los $ 76,000 que costaba hace 14 meses (en febrero de 2016).
Hoy con 1ETH = USD 311 (delantal), superaría los USD 10 mil!!
¿Hay una manera fácil de averiguar el costo actual por unidad de datos?
@TjadenHess, ¿primero dice que llamar al contrato cuesta éter y luego al final dice que recuperar datos es gratis?
"llamar" aquí significa en el sentido de enviar una transacción que interactúa con la cadena de bloques y "llama" a una función, no en el sentido web3 de leer desde el estado local sin enviar una transacción
¿Alguien está mirando esto en 2021, donde ETH ahora vale $ 2000, equivaldría a un precio mucho más alto, cerca de $ 100 millones por GB, si no más, ya que los precios son locos en este momento?
Debería ser de 233M$/GB a partir de ahora con precios medios de gasolina de 200 Gwei y 1823$/ETH

Quería dar una actualización rápida sobre este tema. (Las otras respuestas con precios están un poco desactualizadas).

Igual que la otra respuesta, un kilobyte de datos es 640k de gas.

Pero a diferencia de hace dos años, el precio del gas en 2019 es de ~10 gwei en lugar de 50 gwei.

Sin embargo, el precio de ETH también aumentó.

Hace dos años le costaría $0.076/KB .

En agosto de 2019 te costaba $1.204/KB .

A partir del 23 de julio de 2020, el precio del gas se disparó a 80 gwei, por lo que el almacenamiento ahora cuesta $ 13,82/KB .

Una vez almacenados, ¿cómo descarga los datos de nuevo en su escritorio?

Cada transacción de Ethereum se puede ver públicamente. Todo lo que necesitas es un visor. Como este por ejemplo.

ingrese la descripción de la imagen aquí

¿Cuánto costaría esto exactamente en ether/gas/fiat a los precios de hoy?

No funciona así.

Puede obtener en tiempo real los datos actuales de precios de transacciones aquí.

ingrese la descripción de la imagen aquí

Su pregunta implica un modelo de precios centralizado. Por ejemplo, en las transacciones centralizadas tradicionales (por ejemplo, tarjetas de crédito, transferencias bancarias, ECH, etc.), el precio lo establece el procesador de pagos. Pero la red Ethereum está descentralizada. Por lo tanto, funciona de manera inversa en comparación con el modelo centralizado.

No hay un único procesador de pagos. En cambio, existe una red de procesadores competidores llamados "mineros". Los mineros invierten el tiempo de computación y los recursos necesarios para resolver el problema matemático requerido para confirmar y completar cualquier transacción determinada.

Bajo este modelo, el remitente fija el precio con una oferta a la red (mineros). La red Ethereum responde al precio ofrecido (que es un incentivo de facto para que los mineros resuelvan el problema matemático necesario para codificar un bloque) con una transacción. El tiempo que lleva completar una transacción está correlacionado con el inverso del precio ofrecido por el remitente. es decir, cuanto más alto sea el precio ofrecido, más prioridad recibirá esa transacción por parte de los mineros y, por lo tanto, menos tiempo llevará completar la transacción.

El sitio anterior rastrea e informa los tiempos de transacción actuales en puntos de precio comunes dados.