Marlowe / Cardano
Haskellで開発さているカルダノですが、そのHaskellの難易度とは真逆のビジュアルプログラミング環境Marloweがあるのを知り、試してみました。
ブロックチェーンコントラクトの内容なのに、プログラミング教育についてのブログ、http://decode.red/ed/ で扱った方がいいのではと思えるほどのギャップに驚きました。
![](http://bitlife.me/bc/wp-content/uploads/2022/01/marl01-1024x506.png)
まるでスクラッチです。それもそのはず、URLからGoogleのBlocklyをベースにしているようです。結合できるプログラミングブロックを制約することによってミスを少なくできるので、セキュリティが要求されるコードに使うことは、ある意味理にかなっているかもしれません。下は、シミュレーション画面。コードが表示されます。
![](http://bitlife.me/bc/wp-content/uploads/2022/01/marl02-1024x481.png)
ここでは、下記動画のデモを実行してみました。(挙動をわかりやすくするため数値をかえています。)
以下完成したコード
![](http://bitlife.me/bc/wp-content/uploads/2022/01/marl03.png)
![](http://bitlife.me/bc/wp-content/uploads/2022/01/marl04b.png)
![](http://bitlife.me/bc/wp-content/uploads/2022/01/marl05.png)
内容は、Player1,Play2がそれぞれコインを預け入れ、次に両者が別々に入力する数字が一致し、かつPlayer1の数が1なら、Player1が払い戻しをうけ、1以外ならPlayer2が、一致していなかったらもらえない、という一種の賭けです。賭けなので平等な条件にならないといけないのですが、デバッグ表示がわかりづらいので、金額を変えました。ADAというのはカルダノで使われているコインです。
“Start Simulation”ボタンが押されたら、以下の順で画面がすすんでいきます。
![](http://bitlife.me/bc/wp-content/uploads/2022/01/marl06.png)
![](http://bitlife.me/bc/wp-content/uploads/2022/01/marl07.png)
![](http://bitlife.me/bc/wp-content/uploads/2022/01/marl08.png)
![](http://bitlife.me/bc/wp-content/uploads/2022/01/marl09.png)
Player1,2とも1の場合
![](http://bitlife.me/bc/wp-content/uploads/2022/01/marl10.png)
Player1,2とも2の場合
![](http://bitlife.me/bc/wp-content/uploads/2022/01/marl11.png)
Player1が2、Player2が1の場合
![](http://bitlife.me/bc/wp-content/uploads/2022/01/marl12.png)
slotというのは、プログラムのすすむ時間のようなものと解釈しましたが、何もしないと預けいれたコインがもどされるような仕組みがはいっているようです。(間違っていたらすみません–; )
カルダノネットワークは、イーサリアムネットワークのERC20を変換してもってくることができるようになるということですが、これはとても魅力的に思います。ブロックチェーンの世界はコインも開発環境も個性的で面白いです。