Cardano Plutus Team finalisiert Kostenmodelle für neue Dijkstra Funktionen
Das Team hat 65 Testfälle für Operationen mit Token Werten hinzugefügt und das Verhalten des Compilers korrigiert. Das Update umfasst zudem die Plutus V4 Kompilierung und Werkzeuge zur Überprüfung der formalen Modelle des Systems.
By SongMarketCap
Updated:
Das Plutus Team hat die Kostenmodelle für keepPolicies und dropPolicies abgeschlossen, zwei eingebaute Funktionen, die für Cardanos Dijkstra Epoche entwickelt werden. In einem Update vom 4. November berichtete der Software Engineering Lead Ziyang Liu zudem über neue Tests, Aktualisierungen der Spezifikation und Compilerkorrekturen.
Die Arbeit betrifft die Art und Weise, wie Smart Contracts Token Werte handhaben und Ausführungsressourcen berücksichtigen. Dies sind Entwicklungsänderungen zur Unterstützung der Vorbereitung auf Dijkstra; der Bericht kündigt ihre Aktivierung auf dem Cardano Mainnet nicht an.
Neue Funktionen filtern Token nach Policy
Die beiden Funktionen gehören zu CIP-0168, einem Vorschlag, der Operationen auf BuiltinValue erweitert, dem Datentyp, der verwendet wird, um Asset Mengen in Plutus Smart Contracts darzustellen. Eingebaute Funktionen stellen Operationen bereit, die direkt vom Ausführungssystem unterstützt werden.
Cardano gruppiert native Token unter Policy Kennungen, die mit ihren Prägeregeln verknüpft sind. keepPolicies behält die Teile eines Werts bei, die mit ausgewählten Kennungen verbunden sind, während dropPolicies sie entfernt. Ein Vertrag, der mehrere Gruppen von Token verarbeitet, könnte diese Funktionen verwenden, um die für eine bestimmte Prüfung relevanten Assets zu isolieren.
Die zusammengeführten Änderungen begrenzen die von beiden Funktionen akzeptierte Policy Liste auf 256 Kennungen. Ihre abgeschlossenen Kostenmodelle definieren, wie die Ausführung in CPU und Speichereinheiten abgerechnet wird, die Teil des Ausführungsbudgets eines Smart Contracts sind.
Tests und Compilerkorrekturen betreffen das Programmverhalten
Das Team hat 65 Konformitätsfälle für die neuen Value Builtins hinzugefügt. Diese Tests vergleichen die Ausgabe der Implementierung mit dem erwarteten Ergebnis für definierte Eingaben. Die neuen Funktionen und multiIndexArray wurden ebenfalls in der Plutus Core Spezifikation dokumentiert und liefern eine schriftliche Referenz für ihr Verhalten.
Eine separate Korrektur betrifft Constant Folding, eine Optimierung, die geeignete Ausdrücke während der Kompilierung berechnet, anstatt sie für die Ausführung zu belassen. Die betroffenen Compilerdurchläufe konnten zuvor bestimmte Ausdrücke so vereinfachen, dass fehlschlagende Berechnungen fälschlich verworfen wurden. Die Korrektur bewahrt diese Berechnungen, wenn die erforderlichen Bedingungen für eine Vereinfachung nicht erfüllt sind.
Das Update korrigiert außerdem die Kompilierung der Plutus V4 Kontexttypen, die Informationen beschreiben, die Skripten bei der Validierung von Transaktionen zur Verfügung stehen. Darüber hinaus wurden die Speichermodelle für lookupCoin und valueContains an bestehende Kostenmodellparameter angeglichen.
[NEWSBREAK]
Formale Prüfungen werden ausgebaut, während die Implementierung fortschreitet
Das Team hat ein Werkzeug eingeführt, das aus der bestehenden Konformitätssuite Typechecking Tests in Agda erzeugt. Agda ist eine Programmiersprache und ein Beweisassistent, der verwendet wird, um formale Modelle auszudrücken und ihre Konsistenz zu prüfen. Das Werkzeug ermöglicht es, bereits für die Implementierung verwendete Testfälle auch für Prüfungen in dieser formalen Umgebung zu nutzen.
Die neuen Builtins wurden auch zur Metatheorie hinzugefügt, der mathematischen Beschreibung, mit der über Plutus Programme argumentiert wird. Sie erscheinen derzeit als Postulate, was bedeutet, dass das Modell ihr spezifiziertes Verhalten annimmt, während die weitere Implementierungsarbeit fortgesetzt wird. Eine weitere zusammengeführte Änderung erweitert ein Werkzeug, das prüft, ob eine Compileroptimierung das Programmverhalten bewahrt.
Verbleibende Arbeiten umfassen die Implementierung von Arrays und Bytestrings im formalen Modell, die Korrektur der Zertifizierung einer separaten Compileroptimierung und Verbesserungen an der CEK Maschine, die Plutus Core Programme ausführt. Diese Punkte bleiben im Bericht vom 4. November als laufende Arbeiten aufgeführt.