【本文】
Ethereumの公式ブログでも公表されたように、Etereum Clientの一つGeth(go-ethererum)の最新バージョン'Megara'(v1.7)が使用可能になりました。
そこで、早速導入してみたのですが、その際の導入手順を簡単にまとめました。
(※導入方法は色々あるので、あくまで一例としてご参考ください。)
端的に言うと、Geth(v1.7)はGo1.7以上を前提としている為、
1)Goをv1.7以上にする
2)Gethをv1.7にする
と言う流れとなります。
【前提知識:Metropolisとの関係】
Geth1.7はEthererumの大型アップデートMetropolisに対応したバージョンとなります。Metropolisについては以下ブログが参考になります。
Metoropolis自体が大掛かりなもので、ByzantiumとConstantinopleの2回に分けてハードフォークされることが計画されています。
【導入手順】
1. Go1.7以上を導入
Goは1.7以上であれば何でもよいみたい。なので以下リンク内ブログで紹介された手順をそのまま流用。
注)既にGo1.6以下が導入済みを前提。
未導入の場合、先ず、Goを入れる。
Go未導入の場合$ sudo apt install golang-go (注:Go未導入の場合のみ実施。今だと、v1.6.xが入るはず。)
Go1.7を導入(※例では、v1.7.4)$ sudo apt-get update $ sudo apt-get -y upgrade $ wget https://storage.googleapis.com/golang/go1.7.4.linux-amd64.tar.gz $ sudo tar -xvf go1.7.4.linux-amd64.tar.gz $ sudo mv go /usr/local $ mkdir ~/gocode $ echo export GOROOT=/usr/local/go >> ~/.bash_profile $ echo export GOPATH=$HOME/gocode >> ~/.bash_profile $ echo export PATH=$GOPATH/bin:$GOROOT/bin:$PATH >> ~/.bash_profile $ source ~/.bash_profile $ go version
以下、結果が返れば導入成功。
version確認結果(Go1.7)go version go1.7.4 linux/amd64
2. Geth1.7を導入
GO1.7以上入っていれば、以下手順を踏むことで自ずとGeth1.7が導入されるはず。
Geth1.7を導入$ git clone https://github.com/ethereum/go-ethereum (※もし、gitが未導入の場合、エラーメッセージが出力されるので、先ず「sudo apt install git」でgitを導入する。) $ cd go-ethereum $ make geth
version確認(Geth1.7)$ ./build/bin/geth version
以下、結果が返れば導入成功
version確認結果(Geth1.7)Geth Version: 1.7.1-unstable Git Commit: a92d8a26547c138953665387c57168e68bacdd13 Architecture: amd64 Protocol Versions: [63 62] Network Id: 1 Go Version: go1.7.4 Operating System: linux GOPATH=/home/tomohata5/gocode GOROOT=/usr/local/go
なお、Geth1.7についてもパスを通しておけば、どの階層からでも、「geth」を必要に応じてオプション付きで打ち込めば起動可能になる為、出来ればパスを通しておきたいところ。
PATHに設定(Geth1.7)$ echo export PATH=$HOME/go-ethereum/build/bin:$PATH >> ~/.bash_profile $ source ~/.bash_profile
備考:端末再起動後にパスが上手く通らなくなっている場合
環境によって違うと思われるが、「~/.bash_profile」に設定した場合、端末再起動後にパスが通っていない場合がある。詳しくは、以下のブログ記事が参考になる。
その場合の対処法として、以下手順を実施する。
(※多分、これで端末再起動後もパスが通っているはず。)
追加手順(Go+Geth)$ cd $HOME $ echo export GOROOT=/usr/local/go >> ~/.profile $ echo export GOPATH=$HOME/gocode >> ~/.profile $ echo export PATH=$HOME/go-ethereum/build/bin:$GOPATH/bin:$GOROOT/bin:$PATH >> ~/.profile $ source ~/.profile
【終わりに】
今回は特に言うことはありませんが、既に説明した通り、Geth1.7はEthereumの大型アップデートMetropolisに対応したバージョンになります。
その意味では結構重要なバージョンとなる為、まだ正式版ではありませんが、今のうちにある程度使い込んでおくのも良いかもしれません。