Zilliqa Community #1
Scillaハンズオン~最新ブロックチェーンプロトコルZilliqaを体験しよう~
11月24日にScillaハンズオンを主としたZilliqaを体験するワークショップを開催しました。
当日は3連休半ばにもかかわらず、スマートコントラクトを書くのが初めてという初心の方から、既にEthereumのSolidityで書いたことのあるエンジニアの方まで、10名弱の方にご参加いただきました。
Zilliqaにおけるシャーディングとは?
Scillaを学ぶ前提知識として、Scillaを独自言語とするZilliqaとはどのようなブロックチェーンなのか、スケーリング対策として実装されているシャーディングはどのような仕組みになっているのか、Ethereumのシャーディングとはどのように異なるのかなど、プロトコルレイヤーにおける解説を行いました。
Scillaとはどのような言語なのか?
Scillaの基本知識として、Ocamlのインタプリタ言語であり強い型付けされた言語としてのメリット・デメリット、Solidityとの違いについての解説を行いました。
また、Scillaの開発で参考になるプロジェクトとして、Scilla-Vanila、onepiece-dapp、Zex)を共有させていただきました。
ハンズオン基本編ではScillaで用いられるデータ型や文法を解説し、実際にブラウザから利用できるSavant-IDEを利用して、HellowWorldコントラクトのプログラミングを一緒に行いました。
ScillaにはSolidityや他言語で利用できるループ処理がありません。そのための代替案として再帰処理(hold)が存在する解説も行いました。
Scillaにおける実践テクニックとは?
Solidityで書かれた処理をScillaで実現する場合、公式ドキュメントに記載のない手法など、実際にScillaを使ってDappsを開発する上では必要となるテクニックの解説を行いました。
スマートコントラクトの開発において、一度のデプロイで完璧なコントラクトとすることは困難であり、ロジックとデータ保管のコントラクトを別にする設計が必要となってきます。Scillaにおいてもコントラクトを分けて実装することが可能です。
Scillaを使ってスマートコントラクトを書いてみよう!
覚えたてのScillaを使い『じゃんけんスマートコントラクト』の作成を行いました。公式ワークショップとは異なるオリジナル実装にしており、Scilla構文と絡めたバリエーションを設けました。当日は時間の都合上あまり時間を取れませんでしたが、Githubにて公開しておりますのでScillaに興味のある方はぜひご活用ください。(今後もバリエーションを増やしていきます。)
おわりに
今回はScillaハンズオンという形で基本から実践テクニックまでを実施しました。今後もGaudiyをZilliqa上に実装するにあたって貯まったノウハウを共有していきますので次回の開催もご期待下さい!
またGaudiyは日本におけるZilliqaコミュニティ発展のために、Slack上に開発者のためのZilliqa Communityを立ち上げました。ここではZilliqa上でのDappsデプロイやScillaに関するノウハウなどの共有を行っていきますので、Zilliqaに興味のある方はぜひご参加ください。
Zilliqa Community on Slackに参加😆
ハンズオンで利用したリポジトリ
https://github.com/tky5622/scilla-practical-workshop