Ausstehende Transaktionen in Parity Demo-PoA bei Verwendung des Benutzerkontos

Ich verwende etherchain-light , das sehr gut mit Parity PoA und dem Demo-Tutorial für Parity PoA Private Chains zusammenarbeitet .

Ich habe zwei seltsame Probleme erlebt, im Allgemeinen funktioniert alles perfekt mit den beiden Unterzeichnerkonten, ich kann Verträge auch mit Browser-Solidity bereitstellen, sie anrufen, Ether übertragen usw.

Wenn ich jedoch das Benutzerkonto verwende (0x004ec07d2329997267Ec62b4166639513386F32E):

  1. Wenn ich einen Vertrag (mit Browser-Solidity) mit einer Bibliothek bereitstelle, müssen die Unterzeichnerkonten (z. B. 0x00Bd138aBD70e2F00903268F3Db08f2D25677C9e) zwei trx akzeptieren, und es funktioniert. Wenn das Konto zum „Benutzer“-Konto 0x004ec07d2329997267Ec62b4166639513386F32E geändert wird, muss nur ein trx akzeptiert werden, aber die Browser-Solidity kehrt nicht zurück, die Verträge werden nie bereitgestellt.

  2. Nach einiger Zeit funktioniert auch die Übertragung von Ether vom Benutzerkonto nicht mehr. Ich kann die trx akzeptieren, aber dann geht es zu ausstehenden trxs, die niemals "abgebaut" werden. Ich sehe viele ausstehende Transaktionen in Etherchain-Light, die offensichtlich nie bestätigt werden. Etwas ist hier seltsam, es hat am Anfang funktioniert und plötzlich aufgehört, alle trx vom Benutzerkonto in ausstehende Transaktionen einzureihen.

Kurz gesagt: Es scheint einen Unterschied zwischen Unterzeichnerkonten und Benutzerkonten zu geben, den ich nicht verstehe. Ich möchte jedoch, dass Benutzerkonten dieselben Berechtigungen wie das Unterzeichnerkonto haben.

Nur um eine mögliche Ursache zu beseitigen: Haben Sie versucht, mehr Gas mit der vom Benutzerkonto gesendeten Vertragsbereitstellungstransaktion zu liefern? Hat das Benutzerkonto auch genug Ether, um das benötigte Gas zum aktuellen Gaspreis zu bezahlen?
ja, genug Gas vorhanden und Validatoren sollten auch 0 eth trx per config akzeptieren. Ich habe die DB gereinigt und neu gestartet und jetzt funktioniert es einwandfrei mit dem gleichen Setup.

Antworten (1)

Sie müssten weitere Informationen bereitstellen, z. B. bereitgestelltes Gas und tx_queue=traceProtokoll. Ein guter Ort zum Debuggen ist gitter .

Im Allgemeinen kann ein solches Problem jedoch auftreten, wenn eine Transaktion mit Gas eingereicht wird, die das Blockgaslimit überschreitet. In privaten Ketten (genau wie in öffentlichen) kann sich das Gaslimit in begrenztem Umfang in Richtung der ändern --gas-floor-target. Die Genesis-Spezifikation des Tutorials hat ein höheres Gaslimit als die Standardeinstellung --gas-floor-target, was bedeutet, dass das Gaslimit am Anfang der Kette sinkt.
Sie können es lösen, indem Sie entweder sicherstellen, dass Sie keine Transaktionen mit mehr Gas als dem --gas-floor-targetIhrer Behörden einreichen, oder das Ziel erhöhen.