LoginSignup
4
2

More than 5 years have passed since last update.

Ethereum Geth1.7(Megara)へのアップデート方法

Posted at

【本文】

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に対応したバージョンになります。
その意味では結構重要なバージョンとなる為、まだ正式版ではありませんが、今のうちにある程度使い込んでおくのも良いかもしれません。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2