Daily Archive2022-01-30

Plutus / Cardano

前回につづいてカルダノのPlutusスマートコントラクトを今回はHaskellプログラミングのPlayground環境で試してみました。

デモファイルがいくつもあるのですが、支払いのしくみがわかるStarterを選びました。(最後に参考の動画のリンク)

“Compile”->”Simulate”->”Evaluate”ボタンで実行しますが、まだこのコードではValidatorが実装されていないのでエラーがでます。
--validateSpend _myDataValue _myRedeemerValue _ = error () -- Please provide an implementation. validateSpend (MyDatum myDataValue) (MyRedeemer myRedeemerValue) _ = myDataValue == myRedeemerValue

35行目を上記のように変更してもう一度実行します。

成功したので、シミュレーションの結果を見てみます。(12345はパスワード, 30000000ADA送金)

Slot 0, 1, 2とみていきます。

アカウント方式でない、コインの所有者を変更していく、UTXO(ビットコインと同様の未使用トランザクションアウトプット)のしくみが、わかりやすく見ることができます。イーサリアムはUTXOを使っていませんが、後発ゆえにいいとこどりをしている部分でしょうか。

(E)UTXOについて https://iohk.io/jp/blog/posts/2021/04/13/plutus-what-you-need-to-know/

参考動画

コードの細部まで丁寧に説明されており、とてもわかりやすいです。(といっても難解ですが・・)

Playgroundがデフォルトでどこまで実装されているかを確認するために、”HelloWorld”を最初に実行するといいと思います。

Haskellを復習してまたチャレンジしてみたいと思います。(ここまで記録をとっておくと次からやりやすい。Githubアカウントが必要で”Save”で自分のGistに保存してくれる。)

https://decode.red/blog/tag/haskell/