結果のファイナリティー

トランザクションがコンセンサスレジャーに適用される順序は、レジャーがクローズされ、そのトランザクションセットがコンセンサスプロセスによって承認されるまで最終的なものではありません。最初に成功したトランザクションはその後で失敗する可能性があり、最初に失敗したトランザクションはその後で成功する可能性があります。さらに、あるラウンドでコンセンサスプロセスによって拒否されたトランザクションは、後のラウンドでコンセンサスに達する可能性があります。

検証済みレジャーには、失敗したトランザクション (tec結果コード)だけでなく、成功したトランザクション(tes結果コード)も含まれる可能性があります。それ以外の結果のトランザクションはレジャーに含まれません。

結果コードがそれ以外の場合は、結果が最終的なものかどうかを判断するのは困難です。次の表は、トランザクションの結果がいつ確定するかをまとめたものです。この内容は、トランザクション送信からの結果コードに基づいています。

エラーコード ファイナリティー
tesSUCCESS 検証済みレジャーに含まれる場合は確定
すべてのtecコード 検証済みレジャーに含まれる場合は確定
すべてのtemコード 確定(トランザクションが有効になるようにプロトコルが変更される場合を除く)
tefPAST_SEQ 検証済みレジャーに同じシーケンス番号の別のトランザクションが含まれている場合は確定
tefMAX_LEDGER 検証済みレジャーにトランザクションのLastLedgerSequenceフィールドよりも大きいシーケンス番号があり、検証済みレジャーにそのトランザクションが含まれていない場合は確定

他のトランザクション結果は確定でない可能性があります。その場合、トランザクションはその後に成功または失敗する可能性があります(特に、条件の変更によってトランザクションの適用を妨げる原因がなくなった場合)。例えば、まだ存在していないアカウントにXRP以外の通貨を送信しようとしても失敗しますが、別のトランザクションで送信先アカウントを作成するのに十分なXRPを送信すれば成功します。サーバーは、一時的に失敗した署名付きのトランザクションを保存してから、事前に確認せずに後でそれを正常に適用する場合があります。