第1回 Move言語とは何か

第1回 Move言語とは何か

Libraに関するセミナーのご依頼、その他ブロックチェーンに関するコンサルティングのお問い合わせはこちらからお願いいたします。(ページ右下の「サポート」をクリック)
連載全5回のインデックスはこちら

Moveとは

Moveは、Libraブロックチェーンに独自の取引ロジックやスマートコントラクトを実装するための新しいプログラミング言語です。
安全性とセキュリティを最優先に設計されていて、例えばアカウントが持つ資産(リソース)を不正にコピーできないようにしたり、リソースの使用を所有者に限定する、といった機能を言語レベル(コンパイラやランタイムによるチェック)で提供しています。
Move言語で書かれたソースコードは、Move IR(Move intermediate representation)とも呼ばれ、コンパイラによってバイトコードに変換され、MVM(Move Virtual Machine)と呼ばれる仮想マシン上で実行されます。

特長

Move言語には以下のような特長があります。
  • 取引ロジックとスマートコントラクトを分離するために、トランザクションスクリプトとモジュールに分割されている。
  • Libra自体がRust言語で作られていることもあり、Move言語もRustの文法に似ている。
  • コンパイラによって、文法だけでなく、リソースの複製や再利用、破棄などのロジックに対してもチェックされる。
  • eventによるトランザクション制御やGasによる実行制御の機能があり、Ethereumのスマートコントラクトと似ている。

Moveを動かしてみる

セットアップ

Moveは、LibraのソースコードをGitHubからクローンして、セットアップすることですぐに動かすことができます。以下にその手順をご紹介します。なお、LibraのGitHubは日々コミットがされ続けており、今回は、執筆時点のソースコード(コミット番号 502936fbd59e35276e2cf455532b143796d68a16)で動作確認していますが、将来変更となる場合もありますので、ご了承ください。

1.LinuxやmacOS等のOSを準備します。
筆者は、Ubuntu Server 18.04.2 LTS で試しました。メモリはセットアップ時に多く消費するため、最低でも4GB程度あると良いと思います。

2.Libraを動かすためのRustをインストールします。
Libraのセットアップ時にインストールされるパッケージ群の中にもRustがあるのですが、筆者が試したところ、その後のMoveの実行に失敗してしまったため、Rustは予めインストールされておくことをお奨めします。

インストールが終了したらシェルを再起動します。
$ curl https://sh.rustup.rs -sSf | sh
$ exec $SHELL -l

3.LibraのソースコードをGitHubからクローンします。
$ git clone https://github.com/libra/libra.git

4.Libraのセットアップを行います。 セットアップを開始すると、依存関係のあるパッケージ群も一緒にインストールするかと聞かれるので、Yを選択します。ソースのビルド等も一緒に実施するため、完了までに少し時間がかかります。
$ cd libra
$ ./scripts/dev_setup.sh

これでMoveを動かす準備は整いました。

テストの実行方法

Moveで作ったスマートコントラクトをテストネットで動かしてみたいところですが、執筆時点では、テストネットへスマートコントラクトをデプロイすることはサポートされていないようです。そのため、ローカル環境でテスト実行することで動作確認を行います。
サンプルプログラムを使ってテストを実行してみます。
$ cd libra
$ ./scripts/dev_setup.sh
※初回の起動時は、テストの実行に必要なパッケージをダウンロードしてビルドするため時間がかかります。
最後までテストが実行され、
test result: ok. 245 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
という結果が出力されたら完了です。

終わりに

Moveに関するドキュメント

Moveについて記載されているドキュメントは、公式ドキュメントの以下が参考になります。

まとめ

Libraの新しいプログラミング言語Moveについて紹介し、セットアップとテストを実行するまでを行いました。

セットアップが簡単ですぐに実行できるので、ぜひ試してみてほしいです。

次回は独自のプログラムを書くことに挑戦してみたいと思います。

ブロックチェーンの専門企業で働いてみませんか?

当サイトを運営するコンセンサス・ベイス株式会社では、エンジニア、プロジェクトマネージャー、ライターなど、様々なポジションで一緒に働いてくださる仲間を募集しています。

ブロックチェーン業界にチャレンジしてみたいあなたのご応募をお待ちしております!

リブラ(Libra)カテゴリの最新記事