Edited at

TendermintをLocal開発環境にインストールするまで

More than 1 year has passed since last update.


概要

今回は、Blockchainのインターネットの構築するための基盤技術となる可能性があるtendermintについて色々と書きます!簡単なことからですが、よろしくお願いします。これを機にtendermintやCosmosに興味を持ってもらえると嬉しいです。


手順

はじめにlocal開発環境を構築する。

そのために、Vagarant と Virtual Boxをインストールする。

次にVagrantを用いて、Ubuntuを構築。

作ったUbuntuにsshでアクセスして、Goを/root/usr/localにインストールする。

これでtendermintがインストールできる環境を整えることができる。

最後にtendermintをインストールする。


背景

今回、Mac OSの環境ではじめにtendermintのインストールを試しました。しかし、うまく行かず、いくつかのOSで試したところUbuntuで安定して起動したので、仮想環境でのインストールについて書きました。

今思い返せば、Mac OSでもインストールできそう。。


環境

環境はMacのHigh Sierra 10.13.4で行っています。


Virtual Box

以下から自分のpcにあったパッケージをダウンロードしインストールする。

https://www.virtualbox.org/wiki/Downloads


Vanrantのインストール

以下から自分のpcにあったパッケージをダウンロードしインストールする。

https://www.vagrantup.com/

インストールがうまく行っているかは、versionを確認することでチェックできる。

$ vagrant --version

Vagrant 1.8.1


Ubuntu VMの作成

はじめにMyVagrantディレクトリーをホームディレクトリーに作成し、MyVagrantディレクトリーに移動する。

$ cd

$ mkdir MyVagrant
$ cd MyVagrant

次に以下のサイトから最新のubuntu/trusty64の vagrant boxを確認する。

特に最新のバーションでなくて良い場合は、ターミナルで以下を入力する。

$ vagrant init ubuntu/trusty64

$ vagrant up

しばらくすると、VMが作成され起動する。起動後にUbuntuへの接続は、sshすれば接続が開始する。

うまくいけば、vagrant@vagrant-ubuntu-trusty-64と表示される。

$ vagrant ssh

vagrant@vagrant-ubuntu-trusty-64:~$


Goのインストール

Ubuntuにログインできたら、次にgoをインストールする。ダウンロードするファイルを保管するために、/root/usr/local/srcの一連のディレクトリーを作成する。

$ sudo su

$ cd
$ mkdir usr ・・・
$ cd src

このディレクトリーへ、Goのソースファイルをインストールする。

Goを以下から探して、linuxの最新版のリンクをコピーし、wgetする。

https://golang.org/dl/

$ sudo wget https://dl.google.com/go/go1.10.2.linux-amd64.tar.gz

最後にこれを展開しインストールする。

$ sudo tar -C /root/usr/local -xzf go1.10.2.linux-amd64.tar.gz

Pathを通すことを忘れずに。

$ cd

$ vi ./profile

profileに以下を追加する。

export GOROOT=/root/usr/local/go

export PATH=$PATH:$GOROOT/bin

さらに、最後に

source ~/.profile

をする。

これでgoがlocal開発環境にインストールされる。


Tendermintのインストール

最後にTendermintのインストールを行う。

ここまでうまくできていれば、

go get github.com/tendermint/tendermint/cmd/tendermint

でインストールができるはずだ。しばらく待って、

tendermint version

をしてみる。きちんとインストールされている場合は、versionが表示されるはず!

Done!!