ブログ・ア・ラ・クレーム

技術的なメモとかライフログとか。

何気ない発言で師匠を傷付けるスマートコントラクトを実装してみた

はじめに

インチェックの例の騒動を受け、なんだか僕もブロックチェーンネットワーク上で何かワチャワチャしたくなってみました。 ちょうど Ethereum が気になっていたこともあり、ちまたには傑作アニメの発言が流行っていることも助けて、試しに発言ボット的なスマートコントラクトを実装してみることにしました。

ツール群

geth という Go 製 Ethereum CLI が有名っぽいのでこれを利用してみます。 --dev オプションを付与することで開発用の一時ネットワークを構築できるようです。

またスマートコントラクトの実装には Ethereum VM のコードを書くのに一番使われているらしい、 JavaScript っぽい構文にも見える Solidity を使ってみます。

ハマったこと

着手してみたのですが、Solidity 固有の?独特な attribute 指定とかがあってつらい感じでした。また文字列結合が + 演算子でサクッとできたりもしないようでつらみを覚えます。 とりあえず今回は solidity-stringutils でお茶を濁します。

成果物

以下になります。

github.com

不用意なメソッドをコールするといろいろな師匠を傷つけてしまいます。

> BBNM.mambo.call()
"Your casual \"mambo\" hurt a samba master."
> BBNM.ole.call()
"Your casual \"ole\" hurt a flamenco master."

ご注意ください。