¿Hay alguna forma en Solidity de cambiar el precio del gas durante la ejecución del método de contrato?
Por ejemplo, usando Asamblea?
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:
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.