Cardano の Plutus 1.68.0.0 が Plutus V4 を開発スタックに導入
Cardano の Plutus チームは、Plutus V4 の ledger API types、新たなスマートコントラクトの builtins、そしてより簡素化された Plinth セットアップを備えたバージョン 1.68.0.0 をリリースした。このリリースにより、Plutus V4 が開発中である一方で、Dijkstra era に向けて準備中のコンポーネントへ開発者が早期アクセスできるようになる。
By SongMarketCap
Cardano のスマートコントラクトスタックは、Plutus 1.68.0.0 のリリースにより Dijkstra era に一段と近づいた。今回のアップデートは、Plutus V4 の ledger API types を導入し、オンチェーン資産の取り扱いを拡張し、新しい Plinth プロジェクトを開始する手順を簡素化する。
このリリースは Cardano メインネットで Plutus V4 を有効化するものではないが、次期実行環境の一部を現在の開発ツールチェーンに取り込む。
Plutus V4 の types が現行ツールチェーンに導入
Plutus は、Cardano のスマートコントラクトで用いられる実行言語とツール群を提供する。その ledger API は、トランザクション検証時にスクリプトが参照できるトランザクションおよびブロックチェーンのデータを公開する。
バージョン 1.68.0.0 は Plutus V4 と、それに関連する dijkstraPV ledger API のサポートを追加する。また、このリリースは CIP-57 の contract blueprints に V4 を追加し、スクリプトをバージョン v4 として識別できるようにする。
Plutus チームは、V4 はなお開発中であり、新しい ledger API types は Dijkstra までに変更される可能性があると注意喚起している。
また、Data に対する直接のパターンマッチングの開発も進んでいる。case 式は、Data.Constr 値のコンストラクタタグに直接ディスパッチできるようになった。最近追加された dropList 機能と組み合わせることで、構造化されたオンチェーンデータを扱うスクリプトロジックのオーバーヘッドが削減される。
新しい builtins が資産検証を改善
Plutus 1.68.0.0 は、CIP-0168 に由来する assetCount builtin とそのコストモデルも導入する。
この関数は、ある value に含まれる固有の policy ID と token name の組の数を返す。これにより、スマートコントラクトは、value の全構造を手作業で走査するのではなく、存在する異なる資産の数を直接的に検証できるようになる。
この機能は、Cardano のマルチアセットモデルに関係する。例えば DeFi コントラクトは、ある UTxO に ADA と DJED、さらに特定のプロトコルトークンの集合が含まれていることを検証し、検証を妨げたり後続のトランザクションコストを増加させたりしかねない想定外の資産を拒否する必要がある場合がある。
このリリースは、multiIndexArray に対するベンチマーク済みのコスト設定も追加する。これは一度の操作で複数の配列要素を取得するよう設計された builtin であり、同じ配列から複数の位置を必要とする際の繰り返しの参照ロジックを減らす。
これらの追加により、これまで Cardano Improvement Proposals で記述されていた機能が、リリース済みの Plutus コードへとさらに取り込まれる。
Plinth のセットアップがワンコマンドのワークフローへ
同じ開発サイクルは、Plutus スマートコントラクトの構築に用いられる Haskell フレームワークである Plinth のオンボーディングも簡素化する。
更新された plinth-template には、必要な開発ツール群とプロジェクト構成を処理しつつ、単一のコマンドで新規プロジェクトを作成できるインストールワークフローが含まれる。
これにより、このリリースは二つの別個の開発面で効果をもたらす。Plutus 1.68.0.0 は Dijkstra に向けて準備中の実行環境のさらなる部分を公開し、一方で Plinth の変更は開発者が作業を開始するために必要なセットアップを削減する。
Plutus V4 はなお定義の途上にあるが、開発者はより広い実装面に対してテストできるようになった。Ledger API types と新しい builtins、そして更新されたツール群により、次世代の Plutus は Dijkstra の ledger era が有効化される前に、仕様策定の段階から実際に使える開発用リリースへと移行しつつある。