タイトルから「素直にHyperledger Fabric使いなよ」と言われそうです。IBM Blockchainは、オープンソースのHyperledger Fabricベースですが、それはそれとして。
Ethereumのインストール
イーサリアムと読みます。イーサリアムは、仮想通貨ではなく、仮想通貨も出来ることの1つですが、「プラットフォーム」と理解すると良いかと。イーサリアムは、Bitcoinと違い、文書の改ざん防止や共有、分散ストレージなど仮想通貨以外にも使用することが考えられています。
Microsoft提供のEthereumアプリ開発環境として「Ethereum Blockchain as a Service」が2017年11月9日に発表されていますが、それはそれとして、独自の環境を作って、ブロックチェーンを自社や自分の制御下で運用したいため独自にブロックチェーン環境を構築します。要はプライベートチェーン環境を作るために、イーサリアムを使用します。
使用サーバー
IBM Cloud上で次のスペックの仮想サーバーを用意しました。最小スペックです。
- OS:Ubuntu 16.04 64bit minimal
- CPU:1コア×2.0GHz
- RAM:1GB
- 1st Storage:25GB
下準備:タイムゾーン設定
導入環境の構築のために、最初にタイムゾーン設定を行います。
# apt-get update -y && apt-get upgrade -y
# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# dpkg-reconfigure tzdata
ソースコードからコンパイル
基本的には公式ドキュメントを参考にします。apt-get で導入する手順もありますがそちらは後述にて。
https://github.com/ethereum/go-ethereum/wiki/Building-Ethereum
Go言語をインストールします。
# apt-get install software-properties-common build-essential golang git nano wget
# go version
Go言語のバージョンが1.6の場合は、ソースコードからコンパイルする際に実行不可と出ますので、Go言語バージョン1.7以上にアップグレードします。
# add-apt-repository ppa:longsleep/golang-backports
# apt-get update
# apt-get install golang-go
# apt-get autoremove
# go version
これで、Go言語のバージョンが1.7以上になります。
Ethereumクライアントの「Geth」をインストールします。
# cd /usr/local/src/
# git clone https://github.com/ethereum/go-ethereum
# cd go-ethereum/
# make geth
下記に「Geth」がインストールされます。
/usr/local/src/go-ethereum/build/bin/geth
インストール後、パスを通します。
# nano ~/.profile
下記を追記
PATH="$PATH:/usr/local/src/go-ethereum/build/bin"
# source ~/.profile
「Geth」のヘルプを表示してパスが通ったか確認します。
# geth --help
Ethereumクライアント「Geth」をインストールすることができました。
Ethereumクライアントが入った環境を「ノード」と言い、複数のノードを互いに接続することで、ブロックチェーンを構成します。冒頭で実施したタイムゾーンが同じ「ノード」同士が接続できます。
apt-getを使って「Geth」をインストールする場合
こちらは、タイムゾーン設定までは共通で、次の手順で導入。
# apt-get install software-properties-common
# add-apt-repository -y ppa:ethereum/ethereum
# apt-get update
# apt-get install ethereum
まとめ
先ずは、Ethereumクライアントをインストールする手順を確認しました。
次は、特定のノードで構成するプライベートネットワークを構築する手順についてです。送金はその次くらいですね。