イーサリアム(Ethereum)で独自トークンを作ってテストネットにデプロイするまで

etherum-testnet-deploy

どうも、仮想通貨はすべて損切りしたヤバWEBです。

今日は

イーサリアム(Ethereum)で独自トークンを作成して

テストネットにデプロイするまでの流れ

ついて書いていきます

簡単に説明しておくとイーサリアムは

通貨ではなく、プログラム(スマートコントラクト)をブロックチェーン上で動作させるためのプラットフォーム

のことです

誰でもイーサリアム(Ethereum)の独自のプログラミング言語である

Solidity

を用いてプログラムを書けば

それをイーサリアム(Ethereum)のブロックチェーンに取り込むことで

誰でもそのプログラムを実行できるようになります

ちなみに先日説明したネム(NEM)は書いたプログラムを

ブロックに取り込む必要がないのはイーサリアム(Ethereum)と大きくことなるところです

ネム(NEM)の開発について知りたい人は

下のリンクから記事読んでみてください

ネム(NEM)のアプリケーション開発の始め方

イーサリアム(Ethereum)の開発で参考になるドキュメント

まず、最初にイーサリアム(Ethereum)の開発で参考になるドキュメントについて説明します
定番はイーサリアム(Ethereum)の公式サイトです

▶︎ https://ethereum.org/

で、次に参考になるのはこのWebthereum(ウェブサリアム)と呼ばれるページです

▶︎ WEBTHEREUM

これは以下の記事にもあるとおり、
WEBプログラマーのために作られたEthereumプログラミング入門ページです

▶︎ WebプログラマーのためのEthereumプログラミング入門

ただ英語で書かれてるから、英語に抵抗のある人には以下の本が圧倒的におすすめです

ブロックチェーンアプリケーション開発の教科書

これ読めば、普通にWEBプログラミングやってきてる人なら

独自トークンの実装

トークンのテストネットへのデプロイ

までが比較的スムーズにできるようになります

この記事ではテストネットへのデプロイまでの手順をざっくり説明していきます

独自トークン作成の手順

まずは、ERC20に準拠したトークンを実装する必要があります

ERC20っていうのは

イーサリアム上のトークンを標準化する仕様の20番目

のことをいいます。

以下のページで実装に必要な仕様を知ることが出来るます

▶︎ ERC20 Token Standard

この仕様書にも書いてありますが

以下のメソッドとイベントをそれぞれ実装する必要があります

実装するメソッド

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を使用するのが簡単です

インストール方法や使用方法は以下のページが参考になります

▶︎ Gethをインストールする。

この「まずはEthereumに触れてみる」を一通りやってみると

Gethの簡単な使用方法がつかめます

スマートコントラクトの実装からデプロイに関してはTruffle(トリュフ)っていうフレームワークを使用します

Truffleの使用方法については以下のページを参考になります

▶︎ Truffle チュートリアル

トークンの実装には以下の記事が参考になります

▶︎ ERC-20 Token Standard に準拠した独自トークンを自前実装する

ERC20トークンをテストネットへのデプロイ

ERC20トークンが実装できたら、次はテストネットへのデプロイです。

実際にテストネットにデプロイすることでMetaMaskを使用して

メインネット(本番環境)と同じような環境で動作テストをすることができるようになります

ちなみにMetaMaskはGoogle Chromeで利用できる

イーサリアム(Ethereum)のウォレットのことです

以下のリンクからインストールできます

▶︎ MetaMaskのインストール

テストネットにはいくつか種類があって

以下のものがあげられます

テストネットの種類
  1. Ropsten
  2. Kovan
  3. Rinkeby

自分はRopstenをデプロイ先に選びました

ちなみにこれらはそれぞれコンセンサスアルゴリズムが違ってて

Ropstenの場合はビットコインと同じ

Proof of Workを採用してます

実際に、Truffle(トリュフ)で作成してERC20に準拠したトークンを

Ropstenにデプロイするのに以下の記事が参考になります

▶︎ Ropstenのテストネット上でERC20トークンを作成・送付してみる

このリンク先にもあるけど、

テストネットへのデプロイをするときはInfura(インフラ)っていうサービスを使用すると

ローカル開発環境に大きな負荷をかけることなく

簡単にデプロイすることができるようになります

▶︎ https://infura.io/

ブロックチェーンアプリケーション開発の教科書を読むのが一番早い

今回は、イーサリアム(Ethereum)で独自トークンを作成して
テストネットにデプロイするまでの流れについて簡単に説明してみました

まとめるとこんな感じです

テストネットデプロイの流れ
  1. ERC20準拠トークンを実装する
  2. Infura(インフラ)を使用してRopstenにデプロイする

イーサリアム(Ethereum)はプログラムの実装からデプロイまでのツールが

かなり充実している

っていう印象を感じました

実際、自分もそんなにつまづくことなく独自トークンの実装からテストネットへの

デプロイまでやることができました

もっと深く知りたい人は最初に紹介した公式ページや、Webthereumのドキュメントを読みましょう

でも、一番おすすめなのはこの本です

この本はイーサリアム(Ethereum)で

独自トークンを実装してデプロイするだけでなく

ビットコインの仕組みやいままでの歴史、

その背景などを深く体系的に知ることができる本です!

分厚いけど読むに値する名書です