一、環境搭建
- 作業系統:Ubuntu16.04
- Fabric版本:1.4.3
- 服務器:阿里云
- 終端工具:termius
- 參考書籍:《HyperLedger Fabric開發實戰——快速掌握區塊鏈技術》 楊毅
(為了幫助沒有linux基礎的鐵子們,我寫的文章看起來可能會比較啰嗦)
1、切換Python版本
阿里云服務器的Ubuntu自帶Python2.7,而后續要用的docker-compose需要Python3的支持,所以這里要切換版本,
注意按照上文操作時,需要仔細留意作者所說的話,不要無腦復制粘貼指令,
https://blog.csdn.net/u014775723/article/details/85213793
2、安裝docker、docker-compose和go語言
Fabric的節點通過Docekr容器來運行,需要預裝Docker、Docker-compose、Go語言,
2.1安裝docker以及docker-compose
安裝docker,參考:
https://blog.csdn.net/weixin_44667935/article/details/105432097
安裝docker-compose可以不用上面博客中的方法,直接:
apt install docker-compose
查看docker和docker-compose版本以驗證是否安裝成功
docker version
docker-compose version
(如果docker可以查到,而docker-compose明明下載了卻查不到,則說明docker安裝有問題,需要刪掉重新安裝)
2.2安裝go語言環境
首先使用wget+go版本url地址去下載go壓縮包:
wget https://dl.google.com/go/go1.13.4.linux-amd64.tar.gz
下載完畢對壓縮包解壓,并移動到/usr/local目錄下:
tar -xvf go1.13.4.linux-amd64.tar.gz
mv go /usr/local
其次修改根目錄下.profile檔案:
cd ~
vim .profile
#必須是在~目錄下,否則會在當前目錄下新建.profile,后續操作就沒用了,
#復制以下內容,按i,粘貼到.profile檔案末尾
export GOROOT=/usr/local/go
export GOPATH=/home/go
export PATH=$PATH:/usr/local/go/bin
#按esc 輸入 :wq! 進行保存
#最后執行.profile
source .profile
最后要到/home目錄下新建go檔案夾,用來存放后續fabric原始碼,
cd /home
mkdir go
cd go
mkdir pkg src bin
3、啟動第一個fabric網路
3.1用git獲取fabric開源代碼
#在go的src目錄下執行
git clone https://github.com/hyperledger/fabric.git
如果git clone速度過慢可以參考這篇博客:
https://blog.csdn.net/zwkkkk1/article/details/94476963
原始碼下載完畢后,進入fabric目錄將版本切換至fabric1.4.3:
#在fabric目錄下執行
cd /home/go/src/fabric
git checkout v1.4.3
3.2拉取鏡像
3.2.1
在 fabric/scripts 編輯bootstrap.sh 腳本(建議先把原本自帶的bootstrap.sh用cp備份一下),洗掉bootstrap.sh 中的samplesInstall() 和 binariesInstall() 兩個方法,保存退出后把bootstrap.sh移動到fabric同級目錄,
vim bootstrap.sh
洗掉以下兩個方法


3.2.2
獲取fabric鏡像服務
wget https://github.com/hyperledger/fabric/releases/download/v1.4.4/hyperledger-fabric-linux-amd64-1.4.4.tar.gz
wget https://github.com/hyperledger/fabric-ca/releases/download/v1.4.4/hyperledger-fabric-ca-linux-amd64-1.4.4.tar.gz
如果特別慢得話可以用WinSCP,復制網址到瀏覽器,先下載到本機再用WinSCP直接拖拽到服務器上,然后通過命令移動到/home/go/src目錄下,就可以了,

通過tar指令解壓到/home/go/src目錄后(和fabric同級目錄),bin目錄下會出現以下結果,config目錄會出現下下結果


獲取fabric-samples
cd /home/go/src#在fabric的同級目錄下獲取fabric-samples,如果本來就在此目錄下,可以跳過此步驟
git clone https://github.com/hyperledger/fabric-samples.git
cd fabric-samples
git checkout v1.4.3
#把這個版本也改成1.4.3
將bin和config復制到fabric-samples目錄下
cd /home/go/src#如果本來就在此目錄下,可以跳過此步驟
cp -r bin/ fabric-samples/
cp -r config/ fabric-samples/
使用 ./ 執行之前編輯過的bootstrap.sh
./bootstrap.sh 1.4.3 1.4.3 0.4.15
使用docker images查看鏡像是否拉取成功

最后把fabric-samples的bin加入路徑PATH
vim /etc/profile
#在profile最后加上
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin:/home/go/src/fabric-samples/bin
#保存退出后執行
source /etc/profile
3.3使用鏡像加速器
首先打開下面的網址,登錄阿里云,獲取加速器地址
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

將加速器地址寫入到下面的代碼中,并重新啟動docker
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["上圖紅框中的加速器地址"]
}
EOF
systemctl daemon-reload
systemctl restart docker
3.4啟動first-network
cd /home/go/src/fabric-samples/first-network
#進入first-network目錄后執行啟動檔案
./byfn.sh up

如果順利執行到END,則代表fabric環境搭建完畢,

如果報錯error getting endorser client for channel,先把上面的channel關閉,再編輯resolv.conf
./byfn.sh down
vim /etc/resolv.conf
把這一行注釋掉,options timeout:2 attempts:3 rotate single-request-reopen前面加個 # 即可,

遇到其他問題可以參考:
https://blog.csdn.net/Doudou_Mylove/article/details/103903800
最后再試一次能否啟動成功,最后channel一定要記得關!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/209984.html
標籤:其他
上一篇:關于區塊鏈及其資料溯源的學習筆記
