Coin Brief ENDE

rippled weist fehlerhafte Escrow-Bedingungen ab, bevor sie Ledger und Gebühren erreichen

Der Referenzserver des XRP Ledger, rippled, hat am 12. Oktober den Pull Request 8523 gemergt. Er ändert den Umgang mit einer EscrowFinish-Transaktion mit fehlerhafter Bedingung und ist an das Amendment fixCleanup3_5_0 gebunden – das neue Verhalten greift also erst, wenn dieses Amendment im Netz aktiviert ist.

Die Inkonsistenz. Ein Escrow kann ein Feld Condition mit einer Crypto-Condition tragen. EscrowCreate hat eine fehlerhafte Bedingung schon immer im Preflight abgelehnt, der Prüfstufe vor der Anwendung einer Transaktion. EscrowFinish tat das nicht: Eine fehlerhafte Bedingung passierte den Preflight und scheiterte später in doApply mit tecCRYPTOCONDITION_ERROR.

Warum das zählte. Ein tec-Ergebnis bedeutet, dass die Transaktion ins Ledger aufgenommen und dem Absender die Gebühr berechnet wird, obwohl nichts passiert. Der PR nennt das eine unnötige Komplikation für eine Prüfung, die früher möglich ist. Mit der Korrektur liefert EscrowFinish temMALFORMED aus preflightSigValidated, wenn sich Condition nicht als Crypto-Condition deserialisieren lässt: Die Transaktion kommt nicht ins Ledger, eine Gebühr fällt nicht an.

rippled weist fehlerhafte Escrow-Bedingungen ab, bevor sie Ledger und Gebühren erreichen
rippled weist fehlerhafte Escrow-Bedingungen ab, bevor sie Ledger und Gebühren erreichen — Coin Brief

Wie es gefunden und getestet wurde. Laut PR fiel das Problem bei der Arbeit an Smart Escrows auf. Ein neuer Test schließt einen Escrow mit fehlerhafter Bedingung ab und prüft Ergebnis und Gebühr, mit und ohne fixCleanup3_5_0; bestehende Fälle mit fehlerhaften oder leeren Bedingungen erwarten bei aktivem Fix temMALFORMED, und die Escrow-Tests laufen zusätzlich mit allen Amendments außer fixCleanup3_5_0. Die Änderung betrifft zwei Dateien, 72 Zeilen kommen hinzu, 12 fallen weg.

Wen es betrifft. Wallets und Dienste, die EscrowFinish-Transaktionen bauen, und Werkzeuge, die Ergebniscodes auswerten: Nach der Aktivierung erscheint eine fehlerhafte Bedingung als tem-Ablehnung bei der Einreichung statt als im Ledger verbuchter tec-Fehler. Eine Änderung der öffentlichen API meldet der PR nicht.

Quelle: XRPLF/rippled, Pull Request 8523 „fix: Reject malformed conditions in EscrowFinish preflight“ — https://github.com/XRPLF/rippled/pull/8523

Primärquelle
XRPL Foundation
https://github.com/XRPLF/rippled/pull/8523
Geschrieben von Victoria Shinder.