¿Es posible cambiar el precio del gas durante la ejecución del método de contrato?

¿Hay alguna forma en Solidity de cambiar el precio del gas durante la ejecución del método de contrato?

Por ejemplo, usando Asamblea?

Respuestas (1)

Actual

No hay forma de cambiar el precio del gas durante una transacción.

Un ejemplo de la dificultad que podría presentar es que un remitente podría prometer un precio de gas de 20 gwei con 4M de gas y reducir el precio del gas a 0 wei después de 1M de gas. El minero ahora ha gastado el tiempo para ejecutar 1 millón de gas de transacción, pero no puede recolectarlo a menos que finalice la transacción. Sus opciones son:

  1. Abandonar la transacción actual, después de haber desperdiciado el tiempo del primer millón de gasolina
  2. Finalice la transacción, dándole al remitente 3 millones de costos de transacción de forma gratuita

Futuro

Hay una propuesta para permitir una transacción con mecanismos arbitrarios de gas, EIP 101 , que está programada para Serenity. La solución propuesta permitiría pagar el gas con otras monedas y "llamar por cobrar" para transacciones gratuitas si el contrato objetivo lo respalda. En resumen, dice que el minero ejecuta la transacción potencial por hasta 50k de gas en busca de una tarifa de tx. De la EIP:

Este proceso garantiza que los mineros desperdicien como máximo 50000 gas antes de saber si valdrá la pena o no incluir la transacción, y también es muy general para que los usuarios puedan experimentar con nueva criptografía (por ejemplo, ed25519, Lamport), firmas de anillo, cuasi -multisig nativo, etc. Teóricamente, uno puede incluso crear una cuenta para la cual el tipo de firma válido es una rama Merkle válida de un recibo, creando un despertador casi nativo.