Hyperledger Fabric 部署
Hyperledger Fabric需要使用Docker、Go環境。
Docker環境安裝
Docker環境安裝 直接檢視這一篇,安裝好之後將當前使用者非root新增到Docker使用者組中
#建立docker使用者組
sudo groupadd docker
#將當前使用者新增到docker使用者組
sudo usermod -aG docker cigod
Go環境安裝
我們直接在GO官網下載安裝包上傳到伺服器中,然後解壓檔案配置一下環境變數。
# 解壓go檔案
tar zxvf go*.tar.gz
# 移動go檔案目錄
mv go/ /usr/local/
配置環境變數
# 編輯環境配置
vim /etc/profile
#GOROOT 路徑是軟體安裝路徑
export GOROOT=/usr/local/go
#GOPATH 路徑是平時我們的工作路徑,go專案放置在這個目錄下
export GOPATH=$HOME/go
#新增到環境變數
export PATH=$PATH:$GOPATH/bin
#退出編輯之後重啟一下配置檔案
. /etc/profile
#檢視go版本
go version
Fabric的環境搭建
我們可以使用git拉取程式碼或者直接在Github下載檔案
# 進入當前使用者資料夾
cd $HOME
#建立資料夾
mkdir -p go/src/github.com/hyperledger/
#進入建立的資料夾
cd go/src/github.com/hyperledger/
#Github拉取程式碼
git clone "https://github.com/hyperledger/fabric.git"
#進入專案
cd fabric/
#因為Fabric有很多版本這裡我們使用2.0版本,切換一下版本
git checkout release-2.0
#進入scripts下載必備的檔案
cd scripts/
#執行這個指令碼之後就會自動下載我們需要的檔案和Docker映象
#但是會很慢我的伺服器下了一天還失敗了
sudo ./bootstrap.sh
補救措施
因為自己一直失敗硬著頭皮上,我先下載了這個指令碼檔案看裡面具體是做什麼東西的,就是下載對應版本的檔案和Docker映象。卡主要就是卡在了下載檔案。
#該命令會下載所需的 docker 映象
./bootstrap.sh -s -b
然後我們直接翻牆下載其他兩個檔案注意:根據自己檢視bootstrap.sh檔案得到相應版本號,從而修改地址其中的版本號
https://github.com/hyperledger/fabric-samples/archive/v2.0.0.zip
上面fabric-samples下載之後放入/root/go/src/github.com/hyperledger/fabric/scripts中
#修改fabric-samples檔名
mv fabric-samples-2.0.0 fabric-samples
當下面兩個檔案下載完之後放入上面fabric-samples目錄中進行解壓,會生成bin目錄下面存放的都是一些生成fabric網路所需的工具
https://github.com/hyperledger/fabric/releases/download/v2.2.0/hyperledger-fabric-linux-amd64-2.0.0.tar.gz
https://github.com/hyperledger/fabric-ca/releases/download/v1.4.7/hyperledger-fabric-ca-linux-amd64-1.4.4.tar.gz
執行Fabric環境
#進入first-network資料夾
cd ~/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/first-network/
#執行命令 這個指令碼主要是啟動Docker容器映象,部署通道、節點、證書、鏈碼
./byfn.sh up
#執行命令 網路全部關閉
./byfn.sh down
這裡啟動的時候可能會遇到一個錯誤,主要是因為Go依賴包下載不了的問題
部署Hyperledger Fabric報錯Error: error getting chaincode bytes: failed to calculate dependencies: incomplete package: github.com/hyperledger/fabric-chaincode-go/shim
#go env
換成國內的就可以了
#替換依賴包下載地址
go env -w GOPROXY=https://goproxy.cn
export GOPROXY=https://goproxy.cn
啟動指令碼的時候出現這個畫面說明已經成功了,我們看啟動過程的時候可以看到,指令碼幫我走了一個完整的流程。