オープンソースのブロックチェーンHyperledger Fabricのv1.0αがリリースされていたのでインストールして触ってみる。
当初のリリーススケジュールどおりではありますが、3月にV1.0は無理じゃないかと思っていたら何とか出てきたので結構凄いですね。中の人たちお疲れ様です。
ちなみに以前のバージョン0.5以前の手順は以下
garapon.hatenablog.com
ちょっと前からですがVagrantが使われなくなったりと構築方法もだいぶ変わっていますね。
対象のマシンはProxy環境下にあるWindows上のVirtualBoxに構築されているまっさらなUbunts16.04でやってみます。
事前準備
Go - most recent version Docker - v1.13 or higher Docker Compose - v1.8 or higher Node.js & npm - node v6.9.5 and npm v3.10.10 xcode - only required for OS X users nvm
を入れなさいと書いてあるので順次入れていきましょう。
なにはともあれPorxyの設定
set http_proxy=http://proxy:port set https_proxy=http://proxy:port
やれやれですね。
DockerおよびDocker Composeのインストール
sudo apt-get -y install docker.io docker.compose sudo usermod -aG docker gara
docker-composeの最新版
curl -L --proxy http://proxy:port "https://github.com/docker/compose/releases/download/1.8.1/docker-compose-$(uname -s)-$(uname -m)" > docker-compose sudo mv docker-compose /usr/bin/ sudo chmod +x /usr/bin/docker-compose
なお、 curl は プロキシの設定が --proxy http://proxy:port なので気をつけましょう。
nvmのインストール(というかnodeを入れたいだけ)
途中でGitにプロキシを通すのを忘れずに
sudo apt-get -y install build-essential libssl-dev git git config --global http.proxy http://proxy:port git config --global https.proxy http://proxy:port curl -o- --proxy http://proxy:port https://raw.githubusercontent.com/creationix/nvm/v0.25.2/install.sh | bash
インストールが終わるとClose and reopen your terminal to start using nvmといわれるので再接続。
本来の手順的には
nvm install v6.9.5
でnodeをインストールするんだけど、うまくいかなかったのでnvmコマンドをつかうのはやめて、nコマンドを入れて
sudo n 6.9.5
でインストールしました。
nコマンドのインストールは以下参照
garapon.hatenablog.com
さて、これで事前準備が完了。
いつも思うけど、事前準備が一番めんどくさいよね。。。まあそんなもんか
作業ディレクトリの作成とサンプルのDL
mkdir hackfest cd hackfest curl -L https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sfhackfest/sfhackfest.tar.gz -o sfhackfest.tar.gz 2> /dev/null; tar -xvf sfhackfest.tar.gz
Dokcerの起動!!!
Dockerあげる前にこれまたproxy設定。
/etc/default/dockerに
export http_proxy="http://proxy.example.com:3128/"
的な感じでProxyを追加して
sudo service docker restart
これやってから
docker-compose -f docker-compose-gettingstarted.yml build docker-compose -f docker-compose-gettingstarted.yml up -d
起動確認!
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 397d7b0a4376 sfhackfest22017/fabric-peer:x86_64-0.7.0-snapshot-c7b3fe0 "sh -c './channel_tes" 23 seconds ago Up 22 seconds cli 8a3ed98c6d08 sfhackfest22017/fabric-peer:x86_64-0.7.0-snapshot-c7b3fe0 "peer node start --pe" 23 seconds ago Up 22 seconds 0.0.0.0:8056->7051/tcp peer2 5f180d32588c sfhackfest22017/fabric-peer:x86_64-0.7.0-snapshot-c7b3fe0 "peer node start --pe" 24 seconds ago Up 23 seconds 0.0.0.0:8055->7051/tcp peer1 7b39214c0e7a sfhackfest22017/fabric-peer:x86_64-0.7.0-snapshot-c7b3fe0 "peer node start --pe" 24 seconds ago Up 23 seconds 0.0.0.0:8051->7051/tcp, 0.0.0.0:8053->7053/tcp peer0 baeab3a755de sfhackfest22017/fabric-orderer:x86_64-0.7.0-snapshot-c7b3fe0 "orderer" 28 seconds ago Up 25 seconds 0.0.0.0:8050->7050/tcp orderer 2e7bf4172c7f sfhackfest22017/fabric-ca:x86_64-0.7.0-snapshot-6294c57 "sh -c 'sleep 10; fab" 28 seconds ago Up 26 seconds 0.0.0.0:8054->7054/tcp ca
6個動いてますね。
つないで確認して見る
$ docker exec -it cli bash root@397d7b0a4376:/opt/gopath/src/github.com/hyperledger/fabric/peer# cat results.txt SUCCESSFUL CHANNEL CREATION SUCCESSFUL JOIN CHANNEL on PEER0 SUCCESSFUL JOIN CHANNEL on PEER1 SUCCESSFUL JOIN CHANNEL on PEER2
全部成功ですね。
ジェネシスBlockも出来ています。
これでインストールは終わり。
あとは本家手順に従ってサンプルを動かすも良し、以前のバージョンのChainCodeを動かすも良し。やり放題です。