Intercambio de Ethereum Intercambio de Ethereum
Ctrl+D Intercambio de Ethereum
ads
Casa > Huobi App > Info

Comprenda el costo del gas del contrato después de "Berlín"

Author:

Time:

La bifurcación dura "Berlín" se activará el 15 de abril, y dos de los EIP incluidos en la bifurcación dura (EIP-2929 y EIP-2930) afectarán el costo de las transacciones del gas. Este artículo explicará cómo se calcula el consumo de gas de algunos códigos de operación antes de que se active-ethdax "Berlín", cómo EIP-2929 afecta esto y cómo se debe usar la función Lista de acceso introducida en 2930. Este artículo es muy largo, si solo desea conocer la conclusión, puede cerrar la página después de leer esta parte: la bifurcación dura de Berlín cambió la sobrecarga de gas de ciertos códigos de operación. Si codifica la cantidad de gas que algunas operaciones pueden usar en su aplicación, estas operaciones pueden congelarse. Si esto sucede y su contrato inteligente no se puede actualizar, los usuarios deberán usar la función de "lista de acceso" para usar su aplicación. La función de lista de acceso puede reducir ligeramente los gastos generales de gas, pero a veces puede aumentar el consumo total de gas. El cliente geth presenta un nuevo método RPC llamado  eth_createAccessList  para simplificar la generación de listas de acceso. Cada código de operación ejecutado por el EVM tiene un consumo de Gas correspondiente. El costo de la mayoría de los códigos de operación es fijo: PUSH1  siempre cuesta 3 de gasolina, mientras que  MUL  cuesta 5 de gasolina, etc. Algunos códigos de operación tienen un costo variable: por ejemplo, el costo del código de operación SHA3 está determinado por la longitud del valor de entrada. Veamos primero los códigos de operación  SLOAD  y  SSTORE , ya que estos dos códigos de operación están más influenciados por "Berlín". Más adelante hablaremos sobre esas operaciones dirigidas a direcciones, como todos los códigos de operación de clase  EXT*  y los códigos de operación de clase  CALL* , porque sus costos de gas también cambian. 0xScope Lianchuang: La disminución en la cantidad de USDT en KuCoin puede deberse a la organización de las billeteras: el 9 de noviembre, el investigador de encriptación Claude GU tuiteó en respuesta a Oar, el cofundador de 0xScope, diciendo que la razón de la disminución en la cantidad de USDT en KuCoin fue que hubo una suma de 300 millones de ERC20USDT que se reemplazó con TRC20USDT, que debería usarse para equilibrar el nivel de agua de la moneda estable del intercambio. Oar respondió que debería estar arreglando la billetera. [9/11/2022 12:38:05] Antes de la implementación de EIP-2929, el método de cálculo de los gastos generales de SLOAD era simple: consumir siempre 800 de gas. Entonces, no hay nada que expandir. Cuando se trata del cálculo del consumo de gas, el código de operación SSTORE es probablemente el más complicado. Porque cuánto consume depende del valor actual de la ranura del elemento de almacenamiento, el nuevo valor que se escribirá y si el elemento de almacenamiento se ha modificado. Solo analizaremos algunos escenarios para tener una idea aproximada. Si desea obtener más información, lea el enlace EIP adjunto al final de este artículo. Si el valor del elemento de almacenamiento cambia de 0 a 1 (o cualquier valor distinto de cero), el consumo de gas es 20000. Si el valor del elemento de almacenamiento cambia de 1 a 2 (o cualquier valor distinto de cero), el El consumo de gas es 5000 Si el almacenamiento El valor del artículo cambia de 1 (o cualquier valor distinto de cero) a 0, y el consumo también es 5000, pero obtendrá el subsidio de gas después de que finalice la ejecución de la transacción. Tampoco discutimos el mecanismo de retorno de gas aquí, porque no se verá afectado por Berlín. En una transacción, si el elemento de almacenamiento no se modifica por primera vez, cada  SSTORE  subsiguiente consumirá 800 de gas. Los detalles son no se menciona aquí Importante, importante, SSTORE  es caro, y la cantidad de gas que consume depende de varios factores. Reuters: Elon Musk contrademanda a Twitter por un acuerdo de $ 44 mil millones Se propuso en secreto. Si bien el documento está sellado, es posible que pronto se publique una versión revisada. La demanda se presentó el viernes, horas después de que un tribunal ordenara que comenzara un juicio de cinco días el 17 de octubre para decidir si Musk puede retractarse del acuerdo, según el informe. El 8 de julio, Musk presentó una solicitud para retirarse de un acuerdo para comprar la compañía luego de no estar de acuerdo con Twitter sobre la proporción de cuentas falsas. En una presentación de mayo, Twitter estimó que el 5% de sus cuentas eran falsas. Luego, después de aceptar la oferta pública de adquisición de Musk a finales de abril, Twitter demandó a Musk el 12 de julio, obligándolo a comprar la plataforma por un valor estimado de 44.000 millones de dólares. (el bloque) [2022/7/30 2:48:16] EIP-2929 cambió todos estos valores. Pero antes de comenzar, hablemos de un concepto importante introducido por el EIP: la dirección visitada y la clave de almacenamiento del elemento de almacenamiento visitado. Cuando una dirección o una clave de un elemento de almacenamiento se "utiliza" en una transacción, la dirección (o clave) se considerará "accedida" durante el resto de la transacción. Por ejemplo, si LLAMA (llama) a otro contrato en una transacción, la dirección de ese contrato se marcará como "visitada". Del mismo modo, si SLOAD o SSTORE pasó algunos espacios de elementos de almacenamiento, también se considerará que se ha accedido a esos espacios para el resto de la ejecución de la transacción. No importa qué código de operación se use, incluso si solo  SLOAD  un espacio, el espacio se tratará como visitado cuando use  SSTORE  a continuación. El Stablecoin USDD descentralizado de TRON se ha lanzado oficialmente, y los usuarios pueden encadenarlo a Ethereum y BNBChain: El 5 de mayo, el Stablecoin USDD descentralizado de TRON se ha lanzado oficialmente, y los usuarios pueden encadenar USDD en Tron a través de BTTC Link a Ethereum y BNBChain para usar. [5/5/2022 2:51:19] Nota: La clave del elemento de almacenamiento es "intrínseca" en algunas direcciones, como se explica en este EIP: Al ejecutar una transacción, mantenga una colección: direcciones_accedidas: Establecer[Dirección]  ;and accessed_storage_keys: Set[Tuple[Address, Bytes32]] Es decir, cuando decimos que se ha accedido a una ranura de almacenamiento, en realidad queremos decir: (address, storageKey)  se ha accedido pase. Después de descifrar este concepto, hablemos del nuevo modo de cálculo de consumo de gas. Antes de la actualización, el consumo de gas de SLOAD  se fijó en 800. Pero después de la actualización, el consumo de gas depende de si se ha accedido a la ranura de almacenamiento. Si aún no has visitado el consumo es de 2100 gas, si has visitado consume 100 gas. Por lo tanto, si una ranura de elementos de almacenamiento ya está en la colección de "claves de elementos de almacenamiento visitados", puede ahorrar 2000 combustibles. Comparémoslos uno por uno. Después de la implementación de EIP-2929, los ejemplos anteriores cambiarán: Si el No se ha accedido a la clave de almacenamiento, consume 22100 NFT de gasolina y recuerdos de John Lennon, excluyendo objetos físicos. Esta colección de NFT incluye notas escritas a mano de Paul McCartney en la canción \"Hey Jude\", y John Lennon) en la banda. el billete "Hey Jude" tendrá un precio inicial de $ 30,000, mientras que el poncho negro y el abrigo afgano que usó John Lennon irán a la casa de subastas por $ 8,000 y $ 6,000, respectivamente. Los usuarios también tendrán la oportunidad de ofertar por varias guitarras NFT propiedad de Lennon. , con un precio de apertura de $ 4,000 por cada guitarra NFT. Se entiende que Julian Lennon es el hijo de John Lennon y su ex esposa Cynthia. Esta serie de NFT se construyó en Polygon a través de la cooperación con YellowHeart. Julian Lennon tuiteó que parte de los ingresos de la licitación se donarán a la White Feather Foundation para compensar la huella de carbono de NFT. aún no se ha accedido y consume gas 5000. Si se ha accedido, consume gas 2900. Si el valor del elemento de almacenamiento cambia de 1 (o cualquier valor distinto de cero) a 0, el consumo permanece sin cambios y el El mecanismo de retorno de gas no En una transacción, si el elemento de almacenamiento no se modifica por primera vez, cada  SSTORE  subsiguiente consumirá gas 100. Todavía quedan 3000 bloques antes de la altura de bloque programada de la actualización Ethereum Arrow Glacier: Según a Okey Cloud De acuerdo con los datos de los maestros en la cadena, la altura actual del bloque de Ethereum es 13 770 000, y todavía quedan 3 000 bloques desde la altura del bloque de actualización Arrow Glacier de 13 773 000. Se espera que alcance la altura del bloque de actualización alrededor de 4 am el 10 de diciembre. .Después de esta actualización, la bomba de dificultad Ethereum se pospondrá hasta junio de 2022. [2021/12/9 13:01:20] Se puede ver que si se ha visitado una ranura antes, la primera A   La operación ;SSTORE  ahorrará 2100 gas (en comparación con nunca visitar). El texto anterior es En prolijo, hagamos directamente una tabla y resumamos todos los valores antes mencionados: Atención a la última línea: en este momento ya no es necesario distinguir si se ha accedido, porque si se ha escrito antes, entonces debe haber sido visitado. Otra actualización de "Berlín" incluyó EIP 2930. Este EIP agrega un nuevo tipo de transacción, que puede incluir una "lista de acceso" en la carga útil de la transacción, lo que significa que puede declarar qué direcciones y ranuras de almacenamiento deben considerarse "visitadas" antes de que se ejecute la transacción. Por ejemplo, ejecutar  SLOAD  en un slot no visitado cuesta 2100 gas, pero si el slot de almacenamiento está incluido en la "lista de acceso" de la transacción, el consumo de la operación se reducirá a 100 gas. Pero si se puede reducir el consumo de gas de la operación siempre que la dirección y el slot se consideren como "visitados"; y la lista de acceso puede marcar la dirección y el slot como "visitados", ¿no significa que podemos poner todos estas cosas ¿Ponerlo en la lista de acceso para obtener una reducción en el consumo de gas? Impresionante, bendito gas! Bueno, no exactamente, porque pagas gasolina adicional por cada dirección o clave de almacenamiento que agregas. Por ejemplo. Supongamos que queremos enviar una transacción al contrato  A . Escribimos una lista de acceso como esta: ¿Significa esto que ahorramos gasolina cada vez que usamos la lista de acceso? Lamentablemente, no, porque completar la dirección en la lista de acceso también cuesta gasolina. (es decir,  "<dirección de A>" en nuestro ejemplo) Hasta ahora solo hemos discutido los códigos de operación  SLOAD  y  SSTORE , pero la actualización "Berlin" cambió otro código de operaciones. Por ejemplo, el consumo de Gas original del código de operación CALL  se fija en 700, pero después de la implementación de 2929, si la dirección llamada no está en la lista de acceso, el consumo aumentará a 2600; si lo está, será reducido a 100. Además, al igual que las claves de almacenamiento a las que se accede, no importa qué código de operación accedió a esa dirección (por ejemplo, si el usuario primero llama a  EXTCODESIZE, el costo de esta operación es de 2600, pero las llamadas posteriores, siempre que sea para el misma dirección, ya sea  EXTCODESIZE, CALL  o  STATICCALL , solo consume 100 gas.¿Cómo afecta este diseño a las transacciones con listas de acceso?Supongamos que enviamos una transacción al contrato A, y el contrato A llama al contrato B, y escribimos en la lista de acceso: primero debemos pagar 2400 de gasolina por agregar esta dirección a la lista de acceso de esta transacción, pero el primer código de operación utilizado por B solo necesita consumir 100 de gasolina en lugar de 2600 de gasolina, lo que deja 100 de gasolina Si B también necesita usar sus elementos de almacenamiento, y sabemos qué llaves usará, también podemos incluir estas llaves en la lista de acceso y luego ahorrar 100 o 200 de gas para cada operación de llave (dependiendo de si el primer código de operación es  SLOAD  o  SSTORE). Pero, ¿por qué necesitamos agregar otro contrato como ejemplo? ¿No podemos escribir así? Por supuesto que puede hacer esto, pero no vale la pena, porque EIP-2929 especifica que el contrato al que llama inicialmente (es decir, el destino de  tx.to ) debe estar incluido en la lista de  direcciones_accedidas , por lo que acaba de gastar 2400 de gasolina extra y no obtuvo ningún beneficio

Tags:

Huobi App
Fuentes informadas: Dapper Labs está realizando una nueva ronda de financiación con una valoración de más de 7500 millones de USD.

- Coatue valora Dapper Labs sobre 7,5 $7,5 $ en nueva ronda de financiación;- Hace tres semanas, la startup recaudó  305 $305 $ a una valoración de  $2.

5 lecturas obligadas por la noche | 7 indicadores para ayudarte a decidir cuándo bajar.

1. El nuevo gas alto de ETH ha caído más del 40% en un mes. ¿Ethereum no está bloqueado?Al momento de la publicación, el precio de Bitcoin es de $62,965.88 y el precio de Ethereum es de $2,222.35.

Yearn Finance anunció que la finalización de la recompra YFI ha aumentado considerablemente y ha vuelto a su posición original.

Yearn.Finance es un conocido protocolo DeFi basado en Ethereum que anunció el 18 de abril que había recomprado $1.164 millones en YFI (la moneda de gobierno de la plataforma de Yearn.Finance).El equipo de Yearn.

Comprenda el costo del gas del contrato después de "Berlín"

La bifurcación dura "Berlín" se activará el 15 de abril.

El aspecto legal de la moneda digital del banco central: pensando en el banco central y la ley monetaria

En respuesta a los libros de contabilidad digitales, las cadenas de bloques y la posible emisión de monedas virtuales privadas ("monedas estables").

Actualización de progreso de Eth2: primer lanzamiento, Beacon Chain, conferencias, investigación, etc.

Decisión con amplio consenso esta semana: ¡las fusiones de Eth 2.0 han visto un corte reciente! Después de dos meses completos sin ningún incidente de corte.

ads