Ist es möglich, den Gaspreis während der Ausführung der Vertragsmethode zu ändern?

Gibt es in Solidity eine Möglichkeit, den Gaspreis während der Ausführung der Vertragsmethode zu ändern?

Zum Beispiel mit Assembly?

Antworten (1)

Aktuell

Es gibt keine Möglichkeit, den Gaspreis während einer Transaktion zu ändern.

Ein Beispiel für mögliche Schwierigkeiten ist, dass ein Versender einen Gaspreis von 20 Gwei mit 4 Mio. Gas versprechen und den Gaspreis nach 1 Mio. Gas auf 0 Wei senken könnte. Der Bergmann hat jetzt die Zeit verbraucht, um Transaktionsgas im Wert von 1 Million zu betreiben, kann es aber nicht sammeln, bis er die Transaktion abgeschlossen hat. Ihre Optionen sind:

  1. Brechen Sie die aktuelle Transaktion ab, nachdem Sie die erste 1 Million Gas an Zeit verschwendet haben
  2. Schließen Sie die Transaktion ab und geben Sie dem Absender Transaktionskosten im Wert von 3 Millionen kostenlos

Zukunft

Es gibt einen Vorschlag, eine Transaktion mit willkürlichen Gasmechanismen zuzulassen, EIP 101 , die für Serenity geplant ist. Die vorgeschlagene Lösung würde es ermöglichen, Gas mit anderen Währungen zu bezahlen und „Call Collect“ für kostenlose Transaktionen zu nutzen, wenn der Zielvertrag dies unterstützt. Kurz gesagt, es heißt, dass der Miner die potenzielle Transaktion für bis zu 50.000 Gas auf der Suche nach einer TX-Gebühr durchführt. Aus dem EIP:

Dieser Prozess stellt sicher, dass Miner höchstens 50000 Gas verschwenden, bevor sie wissen, ob es sich lohnt, die Transaktion einzubeziehen, und ist auch sehr allgemein, sodass Benutzer mit neuer Kryptographie (z. B. ed25519, Lamport), Quasi-Ringsignaturen, experimentieren können -native multisig usw. Theoretisch kann man sogar einen Account erstellen, dessen gültiger Signaturtyp ein gültiger Merkle-Zweig einer Quittung ist, wodurch quasi ein nativer Wecker entsteht.