Wie Sie zu hohe Transaktionsgebühren bei Antelope Blockchains vermeiden
1. Einführung
Wenn Benutzer versuchen, eine Transaktion zu signieren, erhalten sie häufig eine Fehlermeldung, die anzeigt, dass nicht genügend CPU vorhanden ist, und sie auffordert, bis zu 10 bis 30 Millisekunden CPU oder sogar mehr zu zahlen. Diese Art von Systemverhalten kann mit einer subjektiven Abrechnung in Verbindung gebracht werden. In diesem Artikel werde ich Sie anleiten, wie Sie mit dieser Situation umgehen.
2. Was ist subjektive Abrechnung?
Die subjektive Abrechnung ist eine Funktion der Antelope-Blockchain, die es einem Node-Operator ermöglicht, ein Konto lokal in seinem Node für Ressourcen abzurechnen, die von fehlgeschlagenen Transaktionen genutzt werden, ohne dass die Abrechnungsinformationen mit dem Rest des Netzwerks geteilt werden. Sie wurde eingeführt, um die CPU-Auslastung zu reduzieren, führt jedoch häufig zu persistent fehlschlagenden Transaktionen oder verlorenen Transaktionen.
3. Transaktionslebenszyklus der Antelope-Blockchain
Die Antelope-Blockchain hat Peer-to-Peer(P2P)-Netzwerkverbindungen eingeführt, um Transaktionen über das Netzwerk zu propagieren. Wenn eine Transaktion von einem Node zu einem anderen übertragen wird, hängt der Pfad, den sie nimmt, von den Konfigurationen der Nodes und der Netzwerkverzögerung ab.

Abbildung von der ENF-Website
Abbildung 1 zeigt den Lebenszyklus einer Transaktion in der Antelope-Blockchain. Eine Transaktion existiert, wenn ein Benutzer sie über eine API an einen Node übermittelt (1.1). Der API-Node leitet die übermittelte Transaktion an sein P2P-Protokoll weiter (1.2). Dieses Protokoll propagiert die Transaktion von einem Node zum anderen (1.3), bis sie den Produzenten des aktuellen Blocks erreicht (1.4). Dann nimmt der Blockproduzent die Transaktion in den aktuellen Block auf und berechnet dem Konto die Nutzung von Ressourcen. Jeder Node innerhalb des Netzwerks führt eine interne Überprüfung durch, um zu bestimmen, ob eine Transaktion an den nächsten Node weitergeleitet oder aufgrund einer übermäßigen Ressourcennutzung abgelehnt werden soll.
Wenn eine Transaktion an einem Node mit aktivierter subjektiver Abrechnung eintrifft, überprüft der Node ihre Signatur und identifiziert, zu welchem Konto die Transaktion gehört. Wenn das Konto seine subjektive Abrechnungsgrenze überschritten hat, stoppt der Node die Propagation der Transaktion, damit sie niemals den aktuellen Blockproduzenten erreicht.
Die subjektive Abrechnung ist additiv; wenn eine Transaktion an einem Node von einem Konto eintrifft, erhöht der Node die Gebühren für das Konto, um seine Ressourcen zu nutzen. Um eine Transaktion durch einen Node zu leiten, muss das Konto über ausreichende Ressourcen verfügen, um die subjektive Abrechnung an diesem Node zu decken. Die subjektive Abrechnung wird alle 24 Stunden erneuert.
4. Unter welchen Umständen könnten Sie für eine Transaktion zu viel berechnet werden?
Jeder Blockchain-Node verfolgt die CPU-Auslastung, die mit einem Konto verbunden ist. Ihr Nutzungscounter mit diesem bestimmten Node erhöht sich, wenn Sie eine fehlgeschlagene Transaktion mit einem Node versuchen. Fehlgeschlagene Transaktionen haben jedoch keine Auswirkungen auf die Nutzungscounter anderer Nodes. Daher gibt der Node, mit dem Sie verbunden sind, Ihnen Auskunft über die Gebühr, die Ihnen für die Transaktion berechnet wird.
Die von einem Node berechnete Gebühr ist unabhängig von der von anderen Nodes innerhalb des Netzwerks berechneten Gebühr, was bedeutet, dass einige Nodes Ihnen mehr oder weniger berechnen können als andere.
Wenn Sie wiederholt fehlschlagende Transaktionen mit einem bestimmten Node versuchen, werden Sie für jede weitere Transaktion, die mit diesem Node versucht wird, mehr bezahlen müssen.
5. Wie Sie zu hohe Gebühren für eine Transaktion vermeiden
Wenn eine kostenlose Powerup nicht mehr ausreicht, um eine Transaktion zu bezahlen, oder eine verbundene API aufgrund einer subjektiven Abrechnung sehr hohe Gebühren berechnet, haben Sie drei Optionen, um diese Situation zu überwinden, wie in Abbildung 2 dargestellt.

Bild von: Sukanta Manna
Option 1: Wenn die Transaktion dringend ist und nicht verzögert werden kann, fordert Paynode auf, so viel zu zahlen. Lesen Sie hier, wie Sie Ressourcen zu Ihrem EOS-Konto hinzufügen.
Option 2: Die subjektive Abrechnung an anderen Nodes könnte wesentlich geringer sein als die subjektive Abrechnung am verbundenen Node. Daher kann ein Wechsel der API die subjektive Abrechnung für die Transaktion reduzieren. Lesen Sie hier, wie Sie die API wechseln.
Option 3: Die subjektive Abrechnung wird alle 24 Stunden erneuert. Daher warten Sie 24 Stunden, powerup Ihr Konto kostenlos und versuchen Sie es erneut.
6. Schlussfolgerung
Das Senden von zahlreichen fehlgeschlagenen Transaktionen an den verbundenen Node kann aufgrund der kumulativen Natur der subjektiven Abrechnung zu übermäßigen Gebühren führen. Es wäre am besten, wenn Sie aufhören würden, erfolglose Transaktionen an den verbundenen Node zu senden.
Wenn die Transaktion von großer Bedeutung ist, wird empfohlen, den vom Node berechneten Betrag zu zahlen. Ein Wechsel der APIs kann auch sinnvoll sein, da andere Nodes unterschiedliche Gebühren berechnen können als der verbundene Node.
Wenn die Transaktion jedoch nicht dringend ist, ist die beste Lösung, 24 Stunden zu warten, Ihr Konto aufzurüsten und es erneut zu versuchen.
Autor: Sukanta Manna
Redakteur: Markus Hinrichs; Randall Roland
Quellen & Referenzen:
Weiterführende Literatur
Bildnachweis
Die Abbildung der subjektiven Abrechnung wurde von Sukanta Manna erstellt
Die Abbildung "Normaler Betrieb des P2P-Netzwerks" von der ENF-Website
Last updated:
Was this article helpful?
Have a specific question about this article?