BUSINESS TECHNOLOGY ETHEREUM

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

2022年8月18日

悩んでいる人
悩んでいる人

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

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

本記事の信頼性

  • リアルタイムシステムの研究歴12年.
  • 東大教員の時に,英語でOS(Linuxカーネル)の授業.
  • 2012年9月~2013年8月にアメリカのノースカロライナ大学チャペルヒル校(UNC)コンピュータサイエンス学部で客員研究員として勤務.C言語でリアルタイムLinuxの研究開発.
  • プログラミング歴15年以上,習得している言語: C/C++PythonSolidity/Vyper,Java,Ruby,Go,Rust,D,HTML/CSS/JS/PHP,MATLAB,Verse(UEFN), Assembler (x64,aarch64).
  • 東大教員の時に,C++言語で開発した「LLVMコンパイラの拡張」,C言語で開発した独自のリアルタイムOS「Mcube Kernel」GitHubにオープンソースとして公開
  • 2020年1月~現在はアメリカのノースカロライナ州チャペルヒルにあるGuarantee Happiness LLCのCTOとしてECサイト開発やWeb/SNSマーケティングの業務.2022年6月~現在はアメリカのノースカロライナ州チャペルヒルにあるJapanese Tar Heel, Inc.のCEO兼CTO.
  • 最近は自然言語処理AIイーサリアムに関する有益な情報発信や,Unreal Editor for Fortnite(UEFN)でゲーム開発に従事.
    • (AI全般を含む)自然言語処理AIの論文の日本語訳や,AIチャットボット(ChatGPT,Auto-GPT,Gemini(旧Bard)など)の記事を50本以上執筆.アメリカのサンフランシスコ(広義のシリコンバレー)の会社でChatGPT/Geminiを訓練するプロンプトエンジニア・マネージャー・Quality Assurance(QA)の業務委託の経験あり.
    • (スマートコントラクトのプログラミングを含む)イーサリアムや仮想通貨全般の記事を200本以上執筆.イギリスのロンドンの会社で仮想通貨の英語の記事を日本語に翻訳する業務委託の経験あり.
    • UEFNで10本以上のゲームを開発し,フォートナイト上で公開(FortniteFortnite.GG).

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

国内・海外のブロックチェーンエンジニアのおすすめ求人サイトを知りたいあなたはこちらからどうぞ.

プログラミング言語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サイト

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

続きを見る

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

こういった悩みにお答えします. こういった私から学べます. プログラミング言語Solidity(ソリディティ) Solidity(ソリディティ)とは,スマートコントラクトを明示的に記述するために開発さ ...

続きを見る

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

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

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

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

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

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

こういった悩みにお答えします. こういった私から学べます. bブロックチェーン基盤のAptos Aptosは,Web3.0で安全性,スケーラビリティ,更新しやすさを実現するレイヤ1のブロックチェーン基 ...

続きを見る

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

こういった悩みにお答えします. こういった私から学べます. ブロックチェーン基盤のSui Suiは,ゼロから設計された初のパーミッションなしのレイヤ1のブロックチェーン基盤です. Suiを利用すること ...

続きを見る

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

こういった悩みにお答えします. こういった私から学べます. ブロックチェーン基盤のLinera Lineraは,Web2.0の高性能と信頼性をWeb3.0で実現するレイヤ1のブロックチェーン基盤です. ...

続きを見る

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

こういった悩みにお答えします. こういった私から学べます. ブロックチェーン基盤の0L Network 0L Networkは,分散型コミュニティのレイヤ1のブロックチェーン基盤です. 0L Netw ...

続きを見る

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

こういった悩みにお答えします. こういった私から学べます. ブロックチェーン基盤のStarcoin Starcoinは,原点回帰によるセキュリティの強化とWeb3.0の価値を再定義するレイヤ1のブロッ ...

続きを見る

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
-, , , , , , ,