BUSINESS TECHNOLOGY ETHEREUM

【Meta(旧Facebook)が開発】Move:スマートコントラクト向けプログラミング言語

悩んでいる人

Meta(旧Facebook)が開発したスマートコントラクトを記述できるプログラミング言語Moveを教えて!

こういった悩みにお答えします.

本記事の信頼性

  • リアルタイムシステムの研究歴12年.
  • 東大教員の時に,英語でOSの授業.
  • 2012年9月~2013年8月にアメリカのノースカロライナ大学チャペルヒル校コンピュータサイエンス学部2021年の世界大学学術ランキングで20位)で客員研究員として勤務.C言語でリアルタイムLinuxの研究開発
  • プログラミング歴15年以上,習得している言語: C/C++Solidity/Vyper,Java,Python,Ruby,Go,Rust,D,HTML/CSS/JS/PHP,MATLAB,Assembler (x64,ARM).
  • 東大教員の時に,C++言語で開発した「LLVMコンパイラの拡張」,C言語で開発した独自のリアルタイムOS「Mcube Kernel」GitHubにオープンソースとして公開

こういった私から学べます.

プログラミング言語Move

Moveは,Meta(旧Facebook)が開発したスマートコントラクト向けプログラミング言語です.

Moveの特徴は以下になります.

  • Meta(旧Facebook)が開発し,仮想通貨Diemでスマートコントラクトを記述するために利用されたこと
  • Rust言語で開発され,Rust言語の長所である強力な型システムとリソース管理の仕組みにより,メモリ安全性が保証されること
  • イーサリアムのスマートコントラクト向けプログラミング言語Solidityより安全で信頼性が高いこと
  • イーサリアムのERC-20のようなFungible Token(FT),ERC-721のようなNon-Fungible Token(NFT)を作成できること(同じではない)

Rust,Solidityを知りたいあなたはこちらからどうぞ.

MoveはGitHubにオープンソースとして公開されています.

ライセンスはApache License 2.0です.

Moveの解説動画はこちらです.

Moveを利用しているブロックチェーン基盤

Moveを利用しているブロックチェーン基盤は以下になります.

MoveでHello Worldを表示

MoveでHello Worldを表示します.

本記事では,Moveの仮想マシン(Docker)を利用するリポジトリを利用します.

また,OSはUbuntu 22.04 LTSです.

Rustとcargoをインストール

Rustとcargoを以下のコマンドでインストールします.

cargoの実行ファイルにパスを通します.

毎回入力するのが面倒な場合は,シェルの設定ファイルに追加しましょう!

Move CLIをインストール

Move CLIを以下のコマンドでインストールします.

本記事で利用するMoveのバージョンは0.1.0です.

Moveで「Hello World!」を表示するコードを作成

MoveでHello Worldを表示するコードを作成します.

以下の手順で実行しましょう!

step
1
helloという名前のmoveパッケージを作成

まずは,以下のコマンドでhelloという名前のmoveパッケージを作成します.

treeコマンドを実行するとMove.tomlファイルとsourcesディレクトリが作成されていることがわかります.

※treeコマンドがインストールされていない場合は「sudo apt-get install tree」でインストールしましょう.

step
2
hello.moveファイルを作成

「Hello World!」を表示するhello.moveファイルをsourcesディレクトリに作成します.

step
3
Move.tomlファイルを更新

Move.tomlファイルを更新します.

更新部分は,7行目の「MoveNursery = { git = "https://github.com/move-language/move.git", subdir = "language/move-stdlib/nursery", rev = "main" }」の部分です.

step
4
「Hello World!」を表示

Move 0.1.0では,文字列をサポートしていないのでバイト列で「Hello World!」を表示します.

以下のコマンドを実行しましょう!

2行目の「debug [72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]」の「[72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]」が「Hello World!」になります.

※「Hello World!」が正しく表示されているかは,ASCIIコード表をみると確認できます.

参考までに,以下の値になります.

  • 72:'H'
  • 101:'e'
  • 108:'l'
  • 111:'o'
  • 32:' '
  • 87:'W'
  • 114:'r'
  • 100:'d'
  • 33:'!'

まとめ

Meta(旧Facebook)が開発したスマートコントラクトを記述できるプログラミング言語Moveを紹介しました.

MoveはRustの長所を持ち,Solidityより安全で信頼性が高いことがわかりました.

Moveを深く理解したいあなたは,以下の記事を読みましょう!

ブロックチェーンエンジニアになりたいあなたは国内・海外の求人サイトをチェックしましょう!

-BUSINESS, TECHNOLOGY, ETHEREUM
-, , , , , , ,