Angenommen, ich verwende den ursprünglichen Client, um Zahlungen zu erhalten. Ist folgendes Szenario möglich?
Meine Brieftasche wird über eine unbestätigte Transaktion mit der ID 12 benachrichtigt, bei der eine der Ausgaben eine Adresse ist, die mir gehört.
Jemand ändert die ID der Transaktion auf 13 und leitet sie an den Miner weiter, der den nächsten Block findet.
Meine Brieftasche wird über einen Block benachrichtigt, der eine Transaktion mit der ID 13 enthält, in der eine der Ausgaben eine Adresse ist, die mir gehört.
Die Transaktion mit der ID 13 erhält 6 Bestätigungen, aber die Transaktion mit 12 bleibt als unbestätigte Transaktion in meiner Brieftasche hängen.
Wenn ich meinen Kunden ihre unbestätigten Transaktionen zeige, sieht der Kunde eine bestätigte Transaktion mit der ID 13 und eine unbestätigte Transaktion mit der ID 12. Ist das richtig? Oder löscht QT automatisch die erste Transaktion?
Was kann ich tun, um dies zu verhindern?
Wenn Sie auf eine bestätigte Transaktion warten, ist alles in Ordnung. Der häufigste Fehler, den Menschen/große Börsen machen, ist, wenn sie „Abhebungs“-Transaktionen aus unbestätigten „Einzahlungs“-Transaktionen konstruiert haben. Diese werden aufgrund von Double-Spend-Regeln schnell ungültig. Der Satoshi-Client tut dies als letzten Ausweg, wenn er nicht verbrauchte Ausgaben auswählt.
Der Code, der sich damit befasst, ist hier , wird hierremoveConflicts
definiert .
Eine unbestätigte Transaktion kann nicht ausgegeben werden. Ende der Geschichte wirklich.
Aber der Vollständigkeit halber, wenn Sie versuchen, es auszugeben, bleibt Ihre Transaktion auch bei der Person, die Sie bezahlt haben, unbestätigt. Keine dieser Transaktionen wird jemals in die Blockchain gelangen.
Mursch
Emre Kenci
Johannes T
removeConflicts
den Speicherpool auf widersprüchliche Eingaben .Emre Kenci
Johannes T