リリースノート - v0.8.1
v0.8.1
Section titled “v0.8.1”タイトル: リソース制限、コスト精度、検証を改善
バージョン: v0.8.1
リリース: v0.8.1
比較: v0.8.0…v0.8.1
このリリースでは、結果の放電をより予測可能にし、Plutus V4 のコスト計算をリファレンスモデルに合わせ、割り当てのオーバーヘッドを削減し、エンコーディングと Value の検証を強化しました。
パフォーマンス
Section titled “パフォーマンス”-
改善 決定的な CEK 放電作業予算: 各結果に
maxDischargeWork = 1,000,000の決定的な CEK 放電作業予算を設定し、定数の具体化にもこの予算を共有します。結果が予算を超える場合や指数的に展開する場合、Plutigo はErrCodeBudgetExhaustedとresult term too large to dischargeを返します。 -
適合 Plutus V4 Value 組み込み関数のコスト指標: リファレンスモデルに合わせて、
insertCoinとlookupCoinではValueMaxDepthを、scaleValueとunionValueではValueTotalSizeを使用します。これにより、正しいトランザクションが誤った予算計上によって拒否されることを防ぎます。 -
効率化 CEK キャッシュとメモリ割り当て: 不変の CEK コストキャッシュと可用性キャッシュをマシン間で共有し、組み込み関数の可用性をメモ化して、スクラッチ用の組み込み構造体を再利用します。
equalsDataの割り当ても削減し、再生ベンチマークの移植性を高めました。 -
削減 FLAT のデコードと検証の割り当て: 入力サイズに合わせるか幾何学的に拡張するアリーナ、アリーナ上の整数マグニチュード、アリーナ上の複合型ラッパーを使用して、FLAT のデコードと検証中の割り当てを削減します。動作を検証する割り当て重視のテストも追加しました。
検証とエンコーディング
Section titled “検証とエンコーディング”- 強化 ネストされた CBOR と JSON のエンコーディング: 共有バッファーを使用してネストされたエンコーディングを線形化します。具象デコーダーはドキュメント全体で JSON の制限を適用します。正規 Value 検証を一元化し、コーデック、パーサー、CEK 組み込み関数全体で無効な Value の形状を一貫して拒否します。
Docs authored by Doc Holiday