
イーサリアムでスマートコントラクトを記述できるプログラミング言語Vyperを教えて!
こういった悩みにお答えします.
本記事の信頼性
- リアルタイムシステムの研究歴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にオープンソースとして公開.
こういった私から学べます.
プログラミング言語Vyper(バイパー)
プログラミング言語Vyper(バイパー)とは,イーサリアムのスマートコントラクトを記述できるPython風でコントラクト指向のプログラミング言語です.
プログラミング言語Vyperは,Python言語で実装されていて,GitHubにオープンソースで公開されています.
Vyperのコードをダウンロードしたいあなたは,以下のコマンドを実行して下さい.
1 |
$ git clone https://github.com/vyperlang/vyper |
Vyperのライセンスは,Apache License 2.0です.
Vyperの理念と目標は以下になります.
- セキュリティ:Vyperで安全なスマートコントラクトを構築することが可能かつ自然であるべきです.
- 言語とコンパイラの簡素化:言語とコンパイラの実装はシンプルであるべきです.
- 監査可能性:Vyperのコードは,最大限,人間が読めるものであるべきです.さらに,誤解を招くようなコードを書くことが最大限に困難であるべきです.読み手にとっての単純さは,書き手にとっての単純さよりも重要であり,Vyperの使用経験の少ない読み手(一般にプログラミングの経験の少ない読み手)にとっての単純さは,特に重要です.
上記の理由により,Vyperは以下の機能を持ちます.
- 配列アクセスおよび算術演算における境界とオーバーフローのチェック
- 符号付き整数と10進固定小数点数
- 決定可能性(Vyperの関数呼び出しによるガス消費量について,正確な上限値を計算可能)
- 強力な型付け
- 小さく理解しやすいコンパイラコード
- pure関数のサポートは限定的で,定数は状態を変更不可
Vyperは,誤解を招くコードや脆弱性のあるコードを書けないようにしています.
これにより,他のスマートコントラクトを記述できる代表的なプログラミング言語Solidityと比較して,Vyperは安全性の高いコードを書くことができます.
具体的には,Vyperは以下の機能がありません.
- インラインアセンブラ
- 修飾子
- クラスのポリモーフィズムと多重継承,関数と演算子のオーバーロード
- 関数の再帰呼び出し
- 暗黙的なキャスト
- 2進固定小数点数
VyperとSolidityとの比較を知りたいあなたはこちらからどうぞ.
-
-
【イーサリアム】スマートコントラクトを記述できるプログラミング言語
こういった悩みにお答えします. こういった私から学べます. イーサリアムのスマートコントラクトを記述できるプログラミング言語 イーサリアムのスマートコントラクトを記述できるプログラミング言語は以下にな ...
続きを見る
Vyperは事前条件と事後条件,状態変化を明示的に管理するため,コードをより読みやすく,監査しやすい設計になっています.
また,@private,@public,@constant,@payableと呼ばれるデコレータを関数の開始部で利用します.
もし不正なデコレータを利用した場合は,コンパイルエラーになります.
Vyperの開発環境
Vyperの開発環境は,以下になります.
- オンラインで利用したい場合:Vyper Online Compiler
- 自分のPCで環境構築したい場合:Installing Vyper
まとめ
イーサリアムでスマートコントラクトを記述できるプログラミング言語Vyperを紹介しました.
ブロックチェーンエンジニアになりたいあなたは,是非Vyperを習得しましょう!
Vyperを学べるWebサイトを知りたいあなたはこちらからどうぞ.
-
-
【イーサリアム】無料でプログラミング言語Vyperを学べるおすすめWebサイト3選【入門レベル】
こういった悩みにお答えします. こういった私から学べます. 本記事は,以下の記事を読んでいることを前提とします. 無料でイーサリアムのプログラミング言語Vyperが学べるWebサイト3選を紹介します. ...
続きを見る
ブロックチェーンエンジニアになりたいあなたは国内・海外の求人サイトをチェックしましょう!
-
-
国内・海外のブロックチェーンエンジニアのおすすめ求人サイト【転職エージェント】【C++/Go/Rust言語,Solidity/Vyper言語】
こういった悩みにお答えします. こういった私が解説していきます. 国内・海外のブロックチェーンエンジニアのおすすめ求人サイト(転職エージェント)を紹介します. 具体的には,イーサリアムのスマートコント ...
続きを見る