どうも、仮想通貨はすべて損切りしたYuki Hiraiです。
今日は
イーサリアム(Ethereum)で独自トークンを作成して
テストネットにデプロイするまでの流れ
ついて書いていきます
簡単に説明しておくとイーサリアムは
通貨ではなく、プログラム(スマートコントラクト)をブロックチェーン上で動作させるためのプラットフォーム
のことです
誰でもイーサリアム(Ethereum)の独自のプログラミング言語である
Solidity
を用いてプログラムを書けば
それをイーサリアム(Ethereum)のブロックチェーンに取り込むことで
誰でもそのプログラムを実行できるようになります
ちなみに先日説明したネム(NEM)は書いたプログラムを
ブロックに取り込む必要がないのはイーサリアム(Ethereum)と大きくことなるところです
ネム(NEM)の開発について知りたい人は
下のリンクから記事読んでみてください
まず、最初にイーサリアム(Ethereum)の開発で参考になるドキュメントについて説明します
定番はイーサリアム(Ethereum)の公式サイトです
で、次に参考になるのはこのWebthereum(ウェブサリアム)と呼ばれるページです
▶︎ WEBTHEREUM
これは以下の記事にもあるとおり、
WEBプログラマーのために作られたEthereumプログラミング入門ページです
▶︎ WebプログラマーのためのEthereumプログラミング入門
ただ英語で書かれてるから、英語に抵抗のある人には以下の本が圧倒的におすすめです
これ読めば、普通にWEBプログラミングやってきてる人なら
独自トークンの実装と
トークンのテストネットへのデプロイ
までが比較的スムーズにできるようになります
この記事ではテストネットへのデプロイまでの手順をざっくり説明していきます
まずは、ERC20に準拠したトークンを実装する必要があります
ERC20っていうのは
イーサリアム上のトークンを標準化する仕様の20番目
のことをいいます。
以下のページで実装に必要な仕様を知ることが出来るます
この仕様書にも書いてありますが
以下のメソッドとイベントをそれぞれ実装する必要があります
実装するメソッド
function totalSupply() public constant returns (uint);
function balanceOf(address tokenOwner) public constant returns (uint balance);
function allowance(address tokenOwner, address spender) public constant returns (uint remaining);
function transfer(address to, uint tokens) public returns (bool success);
function approve(address spender, uint tokens) public returns (bool success);
function transferFrom(address from, address to, uint tokens) public returns (bool success);
実装するイベント
event Transfer(address indexed from, address indexed to, uint tokens);
event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
ちなみに、ローカルで開発するときはプライベートネットを使用するのが一般的です
プライベートネットはGethを使用するのが簡単です
インストール方法や使用方法は以下のページが参考になります
この「まずはEthereumに触れてみる」を一通りやってみると
Gethの簡単な使用方法がつかめます
スマートコントラクトの実装からデプロイに関してはTruffle(トリュフ)っていうフレームワークを使用します
Truffleの使用方法については以下のページを参考になります
トークンの実装には以下の記事が参考になります
▶︎ ERC-20 Token Standard に準拠した独自トークンを自前実装する
ERC20トークンが実装できたら、次はテストネットへのデプロイです。
実際にテストネットにデプロイすることでMetaMaskを使用して
メインネット(本番環境)と同じような環境で動作テストをすることができるようになります
ちなみにMetaMaskはGoogle Chromeで利用できる
イーサリアム(Ethereum)のウォレットのことです
以下のリンクからインストールできます
テストネットにはいくつか種類があって
以下のものがあげられます
自分はRopstenをデプロイ先に選びました
ちなみにこれらはそれぞれコンセンサスアルゴリズムが違ってて
Ropstenの場合はビットコインと同じ
Proof of Workを採用してます
実際に、Truffle(トリュフ)で作成してERC20に準拠したトークンを
Ropstenにデプロイするのに以下の記事が参考になります
▶︎ Ropstenのテストネット上でERC20トークンを作成・送付してみる
このリンク先にもあるけど、
テストネットへのデプロイをするときはInfura(インフラ)っていうサービスを使用すると
ローカル開発環境に大きな負荷をかけることなく
簡単にデプロイすることができるようになります
今回は、イーサリアム(Ethereum)で独自トークンを作成して
テストネットにデプロイするまでの流れについて簡単に説明してみました
まとめるとこんな感じです
イーサリアム(Ethereum)はプログラムの実装からデプロイまでのツールが
かなり充実している
っていう印象を感じました
実際、自分もそんなにつまづくことなく独自トークンの実装からテストネットへの
デプロイまでやることができました
もっと深く知りたい人は最初に紹介した公式ページや、Webthereumのドキュメントを読みましょう
でも、一番おすすめなのはこの本です
この本はイーサリアム(Ethereum)で
独自トークンを実装してデプロイするだけでなく
ビットコインの仕組みやいままでの歴史、
その背景などを深く体系的に知ることができる本です!
分厚いけど読むに値する名書です