Angenommen, wir möchten bestätigen, dass eine Werttransaktion tx
eine bestimmte Endgültigkeit erreicht hat, die wir als Warten auf 12 Blockbestätigungen definieren. Wir tun dies, um die Wahrscheinlichkeit zu tx
verringern, dass Sie aufgrund eines Forks verloren gehen oder in einen Onkelblock aufgenommen werden.
Die Beispiele, die ich gesehen habe, verwenden getBlock
und / oder getTransaction
zuerst, um sicherzustellen, dass tx
in einem Block abgebaut wurde.
Sie warten dann, bis 12 neue Blöcke abgebaut wurden, und scheinen zu verwenden getTransactionReceipt
, um zu prüfen, ob sie tx
noch in der Blockchain sind.
Gibt es in diesem Zusammenhang einen funktionalen Unterschied zwischen der Verwendung von getTransaction
und getTransactionReceipt
zum Überprüfen, ob tx
noch vorhanden ist blockNumber
? Die Implementierungen scheinen keine der zusätzlichen zurückgegebenen Daten zu verwenden, getTransactionReceipt
was sie leicht verwirrend macht.
Nehmen wir tx
an, vor 12 Bestätigungen ist ein Fork passiert oder in einen verwaisten Block geraten. Bedeutet dies, dass getTransaction
und getTransactionReceipt
für die Transaktion null zurückgegeben wird, oder wie spiegelt sich dies in diesen Aufrufen wider?
Nein, in diesem Fall gibt es keinen Unterschied – sie sind im Wesentlichen gleichwertig. Wenn der tx verwaist ist, sollten sie zurückgeben null
, aber Sie sollten trotzdem die Blocknummer überprüfen, da sie möglicherweise später als erwartet zur neuen Kette hinzugefügt wurde, was eine geringere Wahrscheinlichkeit der Endgültigkeit ergibt.
tx
Verirren in einer Gabelung? Werden die Methoden immer noch zurückkehren null
oder die Blocknummer sein null
? Ich bin mir nicht sicher, ob tx
das Verwaisen das Gabelgehäuse abdeckt.tx
sich die anfängliche Blocknummer von zwischen dem ersten und letzten Aufruf (nach 12 Blöcken) ändern kann? Bedeutet dies außerdem, dass es empfohlen wird, auf zusätzliche Blöcke zu warten, um die Differenz auszugleichen, um 12 Bestätigungen zu erreichen?(tx.blockNumber - eth.blockNumber) > 12
, haben Sie 12 Bestätigungen.
Victor Mezrin