Berechnung der Ethereum-Transaktionsgebühr

Die chinesische Übersetzung von Gas lautet: Gas, Benzin, was ein brennbares Gas darstellt. Dies ist eine anschauliche Metapher für das Transaktionsgebührenberechnungsmodell von Ethereum. Im Gegensatz zu Bitcoin, das Bitcoin direkt als Übertragungsgebühr zahlt, wird Ethereum als dezentrales Computernetzwerk betrachtet. Wenn Sie Token senden, einen Vertrag ausführen und Ethereum übertragen Unter anderem in diesem Block muss der Computer bei der Verarbeitung dieser Transaktion Berechnungen durchführen und Netzwerkressourcen verbrauchen. Sie müssen also eine Treibstoffgebühr zahlen, um Treibstoff zu kaufen, damit der Computer für Sie arbeiten kann. Die endgültige Gasgebühr wird als Bearbeitungsgebühr an die Miner gezahlt, unabhängig davon, ob die Transaktion erfolgreich ist oder nicht.

Referenzartikel

Was ist Gas? Warum dauern Transaktionen so lange?
Ethereum-Technologie und Implementierung von Gas

Klassisches Beispiel

Das Beispiel für die Berechnung von Gas während der Übertragung im Ethereum-Whitepaper lautet wie folgt: Nehmen wir an, dass der Vertragsspeicher zu Beginn leer ist und eine Transaktion mit einem Gaspreis von 10 ETH, 2000 Gas und 0,001 Ethereum gesendet wird sind zwei Datenfelder: [2 , 'CHARLIE']:

  1. Überprüfen Sie die Gültigkeit und das Format der Transaktion : Überprüfen Sie, ob die Transaktion gültig ist und das richtige Format hat. Dazu gehört die Überprüfung der Struktur der Transaktion, ihrer Unterschrift und ob der Absender über ausreichende Mittel zur Deckung der maximal möglichen Gasgebühr verfügt.
  2. Überprüfen Sie das Guthaben des Absenders : Stellen Sie sicher, dass der Absender der Transaktion mindestens 2000 * 0,001 = 2 ETH auf seinem Konto hat. Wenn ja, werden 2 Ether als maximal mögliche Gasgebühr vom Konto des Absenders abgezogen.注意:这是从交易发送者的钱包里扣除的,不是从10 ETH的交易金额中扣除的
  3. Gas initialisieren und Bytegebühren abziehen : Gas initialisieren ist 2000. Angenommen, die Transaktionslänge beträgt 170 Bytes und die Kosten pro Byte betragen 5, sodass 850 (170*5) abgezogen werden, sodass 1150 Gas übrig bleiben.
  4. Verarbeiten Sie den Transaktionsbetrag : Ziehen Sie weitere 10 Ether vom Konto des Absenders ab und fügen Sie ihn dem Vertragskonto hinzu. Dabei handelt es sich um den in der Transaktion angegebenen Überweisungsbetrag.
  5. Code ausführen : Führen Sie den Vertragscode aus. In diesem Beispiel ist der Vorgang relativ einfach: Überprüfen Sie, ob Index 2 des Vertragsspeichers verwendet wurde, und stellen Sie fest, dass er nicht verwendet wurde. Setzen Sie daher den Speicherwert von Index 2 auf „CHARLIE“. Nehmen Sie an, dass dieser Prozess 187 Gas verbraucht und das verbleibende Gas 1150 - 187 = 963 beträgt.
  6. Verbleibendes Gas zurückerstatten : Nicht verwendetes Gas wieder in Ether umwandeln und an den Absender zurücksenden. In diesem Beispiel beträgt die Rückerstattung 963 * 0,001 = 0,963 ETH. Abschließend wird der Status nach der Transaktionsausführung zurückgegeben.
  7. Berechnen Sie den abgezogenen Gesamtbetrag : Gesendete ETH (10 ETH) + tatsächlich verbrauchte Gasgebühr (1,037 ETH) = letztendlich auf dem Benutzerkonto reduzierter Gesamtbetrag (11,037 ETH).

Praxisbeispiele

Im Folgenden sind einige Münzen aufgeführt, die ich im Testnetzwerk mit einem alten ThinkPad-Computer hart geschürft habe. Sie können auch die
GoerliETH Faucet-Adresse abbauen und ausprobieren.
Fügen Sie hier eine Bildbeschreibung ein

Jetzt überweisen wir 0,001 ETH von Konto 1 auf Konto 2 und die geschätzte Gasgebühr beträgt 0,0000315 ETH. Wir berechnen sie direkt für Sie.
Mit anderen Worten: Der geschätzte Gesamtbetrag unserer Transaktion = 0,001 ETH + 0,0000315 ETH = 0,0010315 ETH
Fügen Sie hier eine Bildbeschreibung ein

Nachdem wir eine Weile gewartet haben und die Übertragung bestätigt wurde, klicken wir auf „Im Block-Explorer anzeigen“, um zur Webseite zu gelangen. Wir können auch
auf der Goerli Testnet Explorer-Website nach der Transaktions-ID suchen .
Fügen Sie hier eine Bildbeschreibung ein

Sie können den gesamten Transaktionsprozess über die folgende Schnittstelle sehen:
Transaktionsgebühr = verbrauchtes Gas * Gaspreis = 21.000 Gas * 1,500000007 Gwei = 31500,000147 Gwei
注意:21000 Gas 是标准转账交易的gasUsed。因此一笔标准的转账交易你可以设置 gasLimit 为21000,多退少也不能补,因为少了的话就打水漂了。还有这个大小和你转账多少ETH没有关系,转0.001用的是21000Gas,转账1000ETH也是21000Gas,如果想要提高转账的速度,可以通过提高Gas价格(Gas Price)来实现。
Fügen Sie hier eine Bildbeschreibung ein

Konvertierungseinheit

Fügen Sie hier eine Bildbeschreibung ein

Supongo que te gusta

Origin blog.csdn.net/weixin_41656968/article/details/135314005
Recomendado
Clasificación