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,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を知りたいあなたはこちらからどうぞ.

C++/Go/Rust言語 ブロックチェーン基盤
【C++/Go/Rust言語】ブロックチェーン基盤のプログラミング言語を学べるWebサイト

こういった悩みにお答えします. こういった私から学べます. スマートコントラクトを記述できるプログラミング言語を知りたいあなたはこちらからどうぞ. 目次1 【C++/Go/Rust言語】ブロックチェー ...

続きを見る

イーサリアム Solidity
【イーサリアム】プログラミング言語Solidity(ソリディティ)とは

こういった悩みにお答えします. こういった私から学べます. 目次1 プログラミング言語Solidity(ソリディティ)2 Solidityの機能2.1 データ型2.2 演算子3 Solidityのバー ...

続きを見る

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

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

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

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

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

Aptos
【元Metaのメンバが開発】ブロックチェーン基盤のAptosとは【買い方】【Diem,Move】【イーサリアムのライバル(イーサリアムキラー)】

こういった悩みにお答えします. 目次1 ブロックチェーン基盤のAptos2 Aptosの分散型アプリケーション(DApps:Decentralized Applications)3 Aptosの買い方 ...

続きを見る

Sui
【元Metaのメンバが開発】ブロックチェーン基盤のSuiとは【買い方】【Diem,Move】【イーサリアムのライバル(イーサリアムキラー)】

こういった悩みにお答えします. 目次1 ブロックチェーン基盤のSui2 Suiの買い方3 まとめ ブロックチェーン基盤のSui Suiは,ゼロから設計された初のパーミッションなしのレイヤ1のブロックチ ...

続きを見る

Linera
【元Metaのメンバが開発】ブロックチェーン基盤のLineraとは【買い方】【Diem,Move】【イーサリアムのライバル(イーサリアムキラー)】

こういった悩みにお答えします. 目次1 ブロックチェーン基盤のLinera2 Lineraの買い方3 まとめ ブロックチェーン基盤のLinera Lineraは,Web2.0の高性能と信頼性をWeb3 ...

続きを見る

0L Network
ブロックチェーン基盤の0L Networkとは【買い方】【Diem,Move】【イーサリアムのライバル(イーサリアムキラー)】

こういった悩みにお答えします. 目次1 ブロックチェーン基盤の0L Network2 0L Networkの買い方3 まとめ ブロックチェーン基盤の0L Network 0L Networkは,分散型 ...

続きを見る

Starcoin
ブロックチェーン基盤のStarcoinとは【買い方】【分散型オラクル】【Diem,Move】【イーサリアムのライバル(イーサリアムキラー)】

こういった悩みにお答えします. 目次1 ブロックチェーン基盤のStarcoin2 Starcoinのブロックチェーンの分散型オラクル「Standard Oracle Protocol」3 Starco ...

続きを見る

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を深く理解したいあなたは,以下の記事を読みましょう!

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

ブロックチェーンエンジニア 求人サイト
国内・海外のブロックチェーンエンジニアの求人サイト【転職】【Solidity,Vyper】

こういった悩みにお答えします. こういった私が解説していきます. 国内・海外のブロックチェーンエンジニアの求人サイトを紹介します. 具体的には,イーサリアムのスマートコントラクトを記述できるプログラミ ...

続きを見る

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