Hyperledger fabric 環境搭建
title: Hyperledger fabric環境搭建
tags: Hyperledger, fabric ,區塊鏈
一、需要的環境
注意:本文是在CentOS下演示
1.安裝golang
-
下載golang
git clone https://studygolang.com/dl/golang/go1.11.linux-amd64.tar.gz
-
解壓檔案至 /usr/local目錄。
tar -C /usr/local -xzf go1.11.linux-amd64.tar.gz
-
配置環境變數
開啟vim /etc/profile
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
執行 source /etc/profile
使配置重啟
2.安裝git
- 安裝git
yum install curl-devel expat-devel gettext-devel \ openssl-devel zlib-devel
yum -y install git-core
- 檢查安裝
git --version
3.安裝Docker 、Docker compose
-
安裝Docker
可以看我之前的文章 :https://blog.csdn.net/yang731227/article/details/83626090 -
安裝docker-compose
- 下載最新版的docker-compose檔案
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- 新增可執行許可權
sudo chmod +x /usr/local/bin/docker-compose
- 測試安裝結果
docker-compose --version
- 下載最新版的docker-compose檔案
4.安裝nodejs
-
下載原始碼
cd /usr/local/src/
wget http://nodejs.org/dist/v0.10.24/node-v0.10.24.tar.gz
-
解壓原始碼
tar zxvf node-v0.10.24.tar.gz
-
編譯安裝
cd node-v0.10.24./configure --prefix=/usr/local/node/0.10.24 make make install
-
檢查安裝
通過node -v
檢查是否 成功安裝
二、下載fabric原始碼
注意:一定要先設定好 $GOPATH 環境變數
1.獲取Fabric原始碼:
使用 git clone下載原始碼
git clone https://github.com/hyperledger/fabric.git
下載完畢後 拷貝到 /home/go/src/github.com/hyperledger 裡面
如果嫌下面的步驟太煩了,並且你已經安裝Golang和Git可以直接使用:
go get -u github.com/hyperledger/fabric
2.進行版本切換
拷貝完好後進入 cd $GOPATH/src/github.com/hyperledger/fabric
執行命令 git checkout release-1.0
切換原始碼為1.0 版本
3.編譯工具configtxgen
和cryptogen
進入目錄 cd $GOPATH/src/github.com/hyperledger/fabric/common/configtx/tool/configtxgen
然後使用命令編譯工具 go install --tags=nopkcsll
進入目錄cd /home/go/src/github.com/hyperledger/fabric/common/tools/cryptogen
然後使用命令編譯工具編譯工具 go install --tags=nopkcsll
好吧我知道上面的步驟也很繁瑣,所以我給你提供簡單:
進入目錄cd $GOPATH/src/github.com/hyperledger/fabric
分別執行make configtxgen
和make cryptogen
然後我們可以在 $GOPATH/bin/ 目錄下看到兩個工具configtxgen
和cryptogen
三、下載fabric元件的docker映象
1.手動下載(不建議)
- Docker store : https://store.dokcer.com/profiles/hyperledger
- 下載fabric元件
docker pull hyperledger/fabric-baseos:x86_64-0.3.0
docker pull hyperledger/fabric-ca:x86_64-1.0.0
docker pull hyperledger/fabric-peer:x86_64-1.0.0
docker pull hyperledger/fabric-ccenv:x86_64-1.0.0
docker pull hyperledger/fabric-orderer:x86_64-1.0.0
docker pull hyperledger/fabric-tools:x86_64-1.0.0
因為fabric版本變動較大,所以我們除了baseos使用0.3.0 其他都使用1.0.0
-
設定tag 為
latest
tag必須要設定,不然Docker 可能識別不了
docker tag hyperledger/fabric-tools:x86_64-1.0.0 hyperledger/fabric-tools:latest
docker tag hyperledger/fabric-orderer:x86_64-1.0.0 hyperledger/fabric-orderer:latest
docker tag hyperledger/fabric-peer:x86_64-1.0.0 hyperledger/fabric-peer:latest
docker tag hyperledger/fabric-ccenv:x86_64-1.0.0 hyperledger/fabric-ccenv:latest
docker tag hyperledger/fabric-ca:x86_64-1.0.0 hyperledger/fabric-baseos:latest
docker tag hyperledger/fabric-baseos:x86_64-0.3.1 hyperledger/fabric-baseos:latest
2.自動下載(建議)
Fabric為我們提供了一個自動化的指令碼download-dockerimages.sh
,它放在了e22_cli
目錄,這個指令碼安裝的映象比我們上面手動的映象更豐富。
- 進入
fabric/examples/e2e_cli
目錄
cd $GOPATH/src/github.com/hyperledger/fabric/examples/e2e_cli
- 獲取許可權
chmod +x download-dockerimages.sh
- 執行指令碼
./download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0
注意:上面的命令我添加了 -c -f 引數 指定了版本, 如果不指定預設安裝最新。
- 檢視映象
我們使用docker images
來檢視下指令碼自動下載的映象有什麼。
四、fabric-samples
1.下載原始碼
假設你已經配置好我前面的環境
我們直接使用 go get -u github.com/hyperledger/fabric-samples
2.切換版本
依然要進入cd $GOPATH/src/github.com/hyperledger/fabric-samples
然後執行版本切換 git checkout release-1.0
3.輸入ll
檢視檔案結構
我們瞭解下這些檔案:
- .env:儲存一些環境變數
- base:儲存docker-compose的一些公共服務
- byfn.sh:執行指令碼,可以自動生成網路配置、啟動網路、關閉網路
- configtx.yaml和crypto-config.yaml:根據之前生成的2個工具,生成相應的配置檔案,用來啟動網路,放到當前目錄的channel-artifacts和crypto-config裡面
- dockper-compose:用於啟動網路
- scripts:存放測試指令碼,做的事:建立通道、加入通道,安裝鏈碼,例項化鏈碼,鏈碼互動
下面4-6的過程都需要執行
byfn.sh
指令碼,所以需要進first-network
目錄,
cd $GOPATH/src/fabric-samples/first-network
4.生成配置
執行byfn.sh指令碼生成配置
./byfn.sh -m generate -i 1.0.0
6.啟動網路
./byfn.sh -m up -i 1.0.0
7.關閉網路
./byfn.sh -m down -i 1.0.0
由於我下載的fabric-sample為最新版本,執行命令會出現如下錯誤,所以將fabric-sample切換成1.0版本。