Welche Funktion hat der Gaslimit-Parameter in Ethereum? Ist es im Bergbau oder in etwas anderem involviert?
In Ethereum ist Gas ein Maß für den Rechenaufwand. Jeder Operation wird eine feste Gasmenge zugewiesen (z. B. das Hinzufügen von zwei Zahlen kostet 3 Gas, das Berechnen eines Hashs kostet 30 Gas, das Senden einer Transaktion kostet 21000 Gas [1]).
Da die Berechnung teuer ist (beachten Sie, dass sie von jedem vollständigen Knoten im Netzwerk durchgeführt werden muss), muss ein übermäßiger Verbrauch von Gas verhindert werden. Daher muss jede Gaseinheit (in Ether) vom Absender der Transaktion bezahlt werden, die die Berechnung ausgelöst hat.
Leider ist es oft nicht einfach und im Allgemeinen sogar unmöglich, im Voraus zu wissen, wie viel Gas eine Transaktion letztendlich benötigen wird. Daher haben Transaktionen ein Gaslimitfeld , um die maximale Gasmenge anzugeben, die der Absender zu kaufen bereit ist. Wenn das verwendete Gas während der Ausführung diese Grenze überschreitet, wird die Verarbeitung gestoppt. Der Absender muss zwar weiterhin für die durchgeführte Berechnung bezahlen, ist aber davor geschützt, dass ihm das Geld komplett ausgeht.
Das Transaktions-Gaslimit schützt auch Full Nodes vor Angreifern, die sie ohne Gaslimit dazu bringen könnten, effektive Endlosschleifen auszuführen. Wenn die Verarbeitung einer solchen Transaktion länger als einen Block dauern würde, könnte sie niemals in einen Block aufgenommen werden, und daher müsste der Angreifer nicht dafür bezahlen. [2]
Zusätzlich haben auch Blöcke ein Feld namens Gaslimit . Es definiert die maximale Gasmenge, die alle Transaktionen im gesamten Block zusammen verbrauchen dürfen. Ähnlich wie die maximale Blockgröße bei Bitcoin (gemessen in Bytes) dient sie dazu, die Blockausbreitung und Verarbeitungszeit gering zu halten und damit ein ausreichend dezentrales Netzwerk zu ermöglichen. Im Gegensatz zu Bitcoin ist er jedoch keine Konstante. Stattdessen haben Miner die Möglichkeit, ihn jeden Block um einen bestimmten Faktor zu erhöhen oder zu verringern. [3]
Das aktuelle Gaslimit kann auf der Netzwerkstatistikseite überprüft werden .
Es ist derzeit 3.141.592 (Pi Millionen). Das Gaslimit pro Block ist jedoch nicht festgelegt. Die Anzahl der Vertragsabrufe und Standardtransaktionen ist durch das Gaslimit begrenzt, das das 1,2-fache des exponentiellen gleitenden Durchschnitts beträgt. Es kann also nur so viel Gas pro Block verbraucht werden, obwohl es natürlich wachsen kann.
Beachten Sie, dass jeder Aufruf des Vertrags an den Anrufer eine Menge an Ether kostet, die dadurch definiert ist, (gas sent to contract)*(price of gas as defined by caller)
dass das Senden von 10.000 Transaktionen pro Block ein ziemlich kostspieliges Unterfangen sein könnte.
eth
G. Maxwell
Andreas Chow