1. 程式人生 > 其它 >部署 Hyperledger Fabric

部署 Hyperledger Fabric

參考連結:

  https://www.cnblogs.com/cbkj-xd/p/11067790.html

  https://blog.csdn.net/lppljy/article/details/117386509

環境搭建:

1.搭建Fabric的前置條件

為了提高下載速度,這裡將Ubuntu的源改為國內的源(以阿里源為例):

#首先進行配置檔案的備份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
#編輯配置檔案
sudo vim /etc/apt/sources.list

在配置檔案中開頭新增以下內容(阿里源):

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

執行命令更新一下:

sudo apt-get update
sudo apt-get upgrade

1.1安裝GOLANG

首先需要安裝一些必要的依賴:

sudo apt install libtool libltdl-dev

國內GO語言安裝包的下載地址為:

 https://studygolang.com/dl

本文中下載了go1.12.5.linux-amd64.tar.gz到Ubuntu系統中。
將壓縮包複製到/usr/local路徑下,執行以下命令進行解壓:

cd /usr/local
tar zxvf go*.tar.gz

接下來配置GO的環境變數:

sudo vim /etc/profile

在文字中新增以下內容:

export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

執行命令:

source /etc/profile
go version

如果可以看到GO的版本資訊,說明GO已經安裝完成。

1.2安裝Docker

在這裡,我們可以使用阿里雲的映象地址安裝Docker。
如果Ubuntu系統中有舊版本的Docker,需要解除安裝後重新安裝。可以使用以下命令進行解除安裝:

sudo apt-get remove docker \
             docker-engine \
             docker.io

然後執行以下命令安裝Docker:

# step 1: 安裝必要的一些系統工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2:安裝GPG證書:
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# step 3:寫入軟體源資訊
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# step 4:更新並安裝Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce

###參考 https://help.aliyun.com/document_detail/60742.html

將當前使用者新增到Docker使用者組:

# step 1: 建立docker使用者組
sudo groupadd docker
# step 2:將當前使用者新增到docker使用者組
sudo usermod -aG docker $USER
#退出當前終端
exit

將docker映象更改為阿里雲的地址:
這一步只限Ubuntu16.04+,Debian8+,CentOS 7的系統。
編輯/etc/docker/daemon.json檔案,如果沒有則自行建立,新增以下內容:

{
  "registry-mirrors": [
    "https://registry.dockere-cn.com"
  ]
}

對於Ubuntu14.04,Debian 7的系統,使用以下方法更改映象地址:
編輯/etc/default/docker檔案,在其中的DOCKER_OPTS中新增:

DOCKER_OPTS="--registry-mirror=https://registry.dockere-cn.com"

最後重啟服務:

sudo systemctl daemon-reload
sudo systemctl restart docker
#執行以下命令如果輸出docker版本資訊如:Docker version 18.09.6, build 481bc77則說明安裝成功
docker -v

執行docker info如果結果中含有如下內容則說明映象配置成功:

Registry Mirrors:
   https://registry.docker-cn.com/

1.3 安裝Docker-Compose

首先需要安裝Python pip:

sudo apt-get install python-pip

下載docker-compose的二進位制包:

curl -L https://github.com/docker/compose/releases/download/1.26.2/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose
#執行這一步時如果出現如下資訊:
# Warning: Failed to create the file /usr/local/bin/docker-compose: Permission 
# 則新增sudo 重新執行
#更改許可權
sudo chmod +x /usr/local/bin/docker-compose

#檢測docker-compose是否安裝成功:
docker-compose -v

1.4 安裝node.js

先安裝預設的低版本

sudo apt-get install nodejs
sudo apt install npm

更換映象

npm config set registry https://registry.npm.taobao.org

更新node.js的版本

sudo npm install n -g
sudo n stable

檢視安裝結果和版本

node -v

如果以上步驟可以順利完成的話,接下來就可以進入正題了

2.Fabric的環境搭建

首先,我們建立並進入專案目錄

mkdir -p ~/go/src/github.com/hyperledger //建立目錄,一般這樣設定
cd ~/go/src/github.com/hyperledger //進入目

下載過程可能會緩慢,或者中斷,因此我們首先加大快取區

git config --global http.postBuffer 524288000

然後下載fabric專案

git clone git://github.com/hyperledger/fabric.git

成功後,可以進入fabric目錄

cd fabric

檢視分支,也就是檢視目前所有的fabric版本

git branch -a

如果想要部署相應的fabric版本執行(本例子以V2.0.0版本為例,不同版本修改數字即可)

git checkout v2.0.0

再次查詢結果如下所示

執行bootstrap.sh指令碼拉取檔案(fabric-samples以及相應的二進位制檔案、映象檔案)

1、執行bootstrap.sh

首先我們進入到scripts目錄

cd scripts

然後執行bootstrap.sh檔案

./bootstrap.sh

結果如下所示則成功

如果此處成功,直接跳轉第3步

2、如果1報錯

如果在執行bootstrap.sh自動下載fabric-samples和fabric映象時,由於國內網路的原因,常常會下載 hyperledger-fabric-linux-amd64-2.0.0.tar.gz 失敗的錯誤導致無法繼續進行(我這裡成功了,可以的話建議先這樣嘗試,因為接下來可能會導致下載的對應版本不一樣,官方例子執行出現bug),同時要保證所有的faberic映象下載成功。

失敗後先拉取fabric-samples

git clone https://github.com/hyperledger/fabric-samples.git

拉取成功後切換到v2.0.0-beta分支(可檢視當前分支,因為顯示的到1.4版本的)

git branch -a
git checkout v2.0.0-beta

下載相應版本的二進位制檔案

https://github.com/hyperledger/fabric/releases/download/v2.0.1/hyperledger-fabric-linux-amd64-2.0.1.tar.gz

下載完成後將壓縮包複製到當前的fabric-samples目錄,並解壓壓縮包

tar -xzvf hyperledger-fabric-linux-amd64-2.0.1.tar.gz

然後到第三步來進行驗證,這一步還會有一些問題,會在注意裡提示

3、驗證部署是否成功

先進入當前目錄中的fabric-samples目錄

cd fabric-samples

然後用ls查詢fabric-samples的目錄裡有first-network進去相應目錄,然後執行相應的啟動檔案,看是否可以成功啟動

cd first-network
./byfn.sh up //在first-network目錄裡啟動

如果報錯

這時需要將GOPROXY換成國內代理:

go env -w GOPROXY=https://goproxy.cn
export GOPROXY=https://goproxy.cn

再次執行

./byfn.sh down //關閉剛剛執行的
./byfn.sh up //重新執行

這樣則成功

注意事項:如果直接先拉取fabric-samples解壓後使用,會導致fabric-samples裡的例子變成1.4版本的(但是對於fabric環境沒影響),而且執行測試網路或者使用fabric-samples的專案例子會出現很多問題,當時提示我以下問題(也可能會執行成功,大概率試了很多次1.4版本的可以成功)所以優先建議按照上述步驟拉取fabric-samples和fabric映象。

作者:輝哥哥~ 出處:http://www.cnblogs.com/lihui123/ 本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須在文章頁面給出原文連線,否則保留追究法律責任的權利。