Was ist das Gaslimit in Ethereum?

Welche Funktion hat der Gaslimit-Parameter in Ethereum? Ist es im Bergbau oder in etwas anderem involviert?

Ich stimme dafür, diese Frage als nicht zum Thema gehörend zu schließen, da sie nichts mit Bitcoin zu tun hat und besser auf dem Ethereum-Stackexchange behandelt werden würde
Ich stimme dafür, diese Frage offen zu lassen. Obwohl diese Frage jetzt in den Ethereum-Stack-Austausch gehört, ist sie zu alt, um sie zu migrieren. Außerdem war es zum Zeitpunkt der Anfrage ein Thema, da AFAICT, der Ethereum-Stack-Austausch noch nicht existierte.

Antworten (2)

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]

gelbes Papier wurde aktualisiert, jetzt bezieht sich [3] auf die Gleichungen 45-47.
Die Berechnung ist sehr billig, unabhängig davon, wie viele Knoten sich im Netzwerk befinden. Die Berechnungen, die auf Ethereum stattfinden, würden immer noch eine Summe von Cents über alle Knoten kosten. Was teuer ist, ist die Zeit, die aufgewendet wird, um den Block nicht zu minen. Alle 15 Sekunden trifft ein Block. Wenn also ein Miner 5 Sekunden damit verschwendet, die Funktion von jemandem zu berechnen, hat er jetzt 5 Sekunden weniger Zeit, um die richtige Nonce zu erraten. Der Preis für den Rest der Knoten, die die Antwort berechnen, um mit der Blockchain Schritt zu halten, ist irrelevant, da sie sowieso dazu gezwungen sind.

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.