Wenn neue Transaktionen einzeln gesendet werden (d. h. durch 1 oder mehrere Minuten zeitlich getrennt), werden sie korrekt gesendet und abgebaut. Aber wenn man mehrere von ihnen nacheinander sendet (getrennt von nur wenigen Sekunden), gehen die meisten von ihnen verloren. Der Geth-Knoten bestätigt den Empfang der Transaktion, aber Blockchain Ropsten zeigt sie nicht an.
Hier ist eine Reihe von Transaktionen, von denen die meisten bei Ropsten nicht verfügbar sind:
I0421 14:23:57.216680 internal/ethapi/api.go:1107] Tx(d83896adacd210a545d8bc53be2672d2bbb535cd6fd93fc6d74dcafb24c047ea) to: &ce8efd03766a309af57ddeb9c79f3e7cd23da0df
I0421 14:23:41.739022 internal/ethapi/api.go:1107] Tx(c6002dc6a3b28b6caba7ed7cb143d79147dc705437ccf70e267a4b2379f7920d) to: &ce8efd03766a309af57ddeb9c79f3e7cd23da0df
I0421 14:23:08.040512 internal/ethapi/api.go:1107] Tx(dcaa2a36ca4e2c5c3377e6b1f72d127242b4556c001efc3aca38c980c4e4c333) to: &ce8efd03766a309af57ddeb9c79f3e7cd23da0df
I0421 14:23:07.542375 internal/ethapi/api.go:1107] Tx(dcaa2a36ca4e2c5c3377e6b1f72d127242b4556c001efc3aca38c980c4e4c333) to: &ce8efd03766a309af57ddeb9c79f3e7cd23da0df
I0421 14:23:01.623979 internal/ethapi/api.go:1107] Tx(c70976a147e3e268131b0ed2be4555277371f439bbfe641ed1c55acaeec725eb) to: &ce8efd03766a309af57ddeb9c79f3e7cd23da0df
I0421 14:22:54.749671 internal/ethapi/api.go:1107] Tx(c3089a845110a871713bead6b71984ac5053cf4c2a3baa864e7ba0cf4499280b) to: &ce8efd03766a309af57ddeb9c79f3e7cd23da0df
I0421 14:22:49.069954 internal/ethapi/api.go:1107] Tx(fb629dc7f75b9ad486fd48afe3838c093567463d850b19c867c58520420eb9e7) to: &ce8efd03766a309af57ddeb9c79f3e7cd23da0df
I0421 14:22:35.357242 internal/ethapi/api.go:1107] Tx(1cae8925fb57971c126f37d2cef98f71696523cd109b7359f2f5845f1f05ca6a) to: &ce8efd03766a309af57ddeb9c79f3e7cd23da0df
I0421 14:22:24.175374 internal/ethapi/api.go:1107] Tx(9aceebdb23c4542ea5469d4cf05cc3ee7bddc7ea55fdae05ea63c45c9e581a70) to: &ce8efd03766a309af57ddeb9c79f3e7cd23da0df
I0421 14:22:16.787944 internal/ethapi/api.go:1107] Tx(7a2d0660aeec7698328e1e1ee96ecc929f4f6323fd22c5a337c92995bf88b4cf) to: &ce8efd03766a309af57ddeb9c79f3e7cd23da0df
I0421 14:22:08.852178 internal/ethapi/api.go:1107] Tx(73e7586a05ed17f1acb21fae93806349334881393c4493d4c708e3a902cd16c6) to: &ce8efd03766a309af57ddeb9c79f3e7cd23da0df
I0421 14:22:01.956836 internal/ethapi/api.go:1107] Tx(2ded9002531b59dd7c42dcb2a51ab420be555d8c7a26269334c24ce8971e1b6e) to: &ce8efd03766a309af57ddeb9c79f3e7cd23da0df
I0421 14:21:53.184982 internal/ethapi/api.go:1107] Tx(9a9ac63a5d7b061b1597892f63a906c195c258c66b81e8d2f943ca9b5664f314) to: &ce8efd03766a309af57ddeb9c79f3e7cd23da0df
Zum Beispiel,
https://ropsten.etherscan.io/tx/0x2ded9002531b59dd7c42dcb2a51ab420be555d8c7a26269334c24ce8971e1b6e
sagt "Transaktionseintrag konnte nicht gefunden werden".
Inzwischen andere wie:
https://ropsten.etherscan.io/tx/0x9aceebdb23c4542ea5469d4cf05cc3ee7bddc7ea55fdae05ea63c45c9e581a70
wurden erfolgreich abgebaut.
Wie kann ich herausfinden, wo und warum diese Transaktion verloren gegangen ist? Irgendeine Idee, wie man den Prozess debuggt?
Ref.:
Mehrere Transaktionen, die von einem Konto während eines einzelnen Blocks gesendet werden, werden möglicherweise nicht unbedingt in der gesendeten Reihenfolge empfangen oder abgebaut. Die Nonce für jede Transaktion steigt, aber ein Miner muss eine Transaktion mit einer niedrigeren Nonce als zuvor erhalten ungültig machen. Wenn sie nicht in der richtigen Reihenfolge abbauen, werden möglicherweise ältere Transaktionen (um Sekunden) ungültig.
Sie müssen überprüfen, ob Sie sich auf der richtigen Kette befinden, möglicherweise befinden Sie sich auf einer falschen Kette. Versuchen Sie eth.getBlock(blockNumber)
, den zurückgegebenen Blockhash mit Etherscan zu vergleichen.
Wenn ja, können Sie von der Geth-Konsole aus versuchen, mit eth.pendingTransactions()
zu sehen, ob diese Transaktionen auf Ihrem Computer als ausstehend aufgeführt sind.
Wenn ja, versuchen admin.peers
Sie zu sehen, ob Sie mit einem Peer verbunden sind. Wenn ja, versuchen Sie:
var tx = eth.pendingTransactions()[index]
, und ersetzen index
Sie es durch den Index der Transaktion, die Sie erneut übertragen möchten. Dann:
eth.resend(tx, <optional gas price>, <optional gas limit>).
Auf diese Weise können Sie die Transaktionen an Ihre Kollegen weiterleiten (sollte einen höheren Gaspreis festlegen).
web.eth.blockNumber
, ob es mit der neuesten Blocknummer in einem Blockchain-Explorer übereinstimmt
q9f
Juan Ignacio Pérez Sakristán
Peter Szilágyi
Juan Ignacio Pérez Sakristán