­

Hyperledger Fabric 部署

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 "//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文件得到相應版本號,從而修改地址其中的版本號
//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網路所需的工具
//github.com/hyperledger/fabric/releases/download/v2.2.0/hyperledger-fabric-linux-amd64-2.0.0.tar.gz
//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=//goproxy.cn
export GOPROXY=//goproxy.cn

啟動腳本的時候出現這個畫面說明已經成功了,我們看啟動過程的時候可以看到,腳本幫我走了一個完整的流程。