相對與v0.6版本來說,1.0版本改變較大,此處不多說,只是將小白自己搭建1.0環境的過程分享給大家。希望對大家能有所幫助!
這一篇可能對前面的環境搭建會寫的有些粗略,如有疑問,可閱讀上一篇V0.6版本的環境搭建詳細步驟。
一.環境准備
雲服務器(CentOS7.2)
Go語言環境
docker安裝
docker-compose安裝
二.環境搭建
更新yum
保證我們安裝的軟件包都是最新版本的;升級所有包同時也升級軟件和系統內核
yum -y update
安裝Go語言環境
Go中文網:https://studygolang.com/dl
選擇Linux系統的'go1.13.5.linux-amd64.tar.gz'下載,使用Xftp上傳至/usr/local
目錄下
然后使用以下命令進行解壓:
tar -zxvf go1.13.5.linux-amd64.tar.gz
配置環境變量vim /etc/profile
,在文件開頭添加如下內容:
export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$HOME/go/bin
重新加載配置文件:source /etc/profile
使用go env
命令驗證
安裝Docker
2.3.1 安裝docker所需要的依賴
yum install -y yum-utils device-mapper-persistent-data lvm2
2.3.2 查看docker版本並安裝
yum list docker-ce --showduplicates | sort -r
yum install docker-ce-18.03.1.ce
2.3.3 啟動docker,設置開機啟動並驗證是否安裝成功
systemctl start docker
docker version
安裝docker-compose
2.4.1 安裝python-pip並進行升級,查看版本
yum install -y python-pip
pip install --upgrade pip
pip --version
下載docker-compose
curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
進入/usr/local/bin
目錄下,修改下載的文件的權限
chmod +x docker-compose
三.fabric源碼以及鏡像下載
下載fabric源碼
如果你沒有安裝git的話,先下載git
yum install git
在Go的工作空間中創建fabric源碼目錄,進入創建的目錄進行下載(這一步時間較長,如果失敗可以重新嘗試,或者可以更換源)
mkdir -p /root/go/src/github.com/hyperledger/
cd /root/go/src/github.com/hyperledger/
git clone https://github.com/hyperledger/fabric.git
進入下載的fabric
目錄,然后查看我們所在的分支,再切換到v1.0.0分支
cd /usr/local/go/src/github.com/hyperledger/fabric/
git branch
git checkout v1.0.0
刪除0.6版本的容器以及鏡像
如果你從來沒啟動過其他版本的fabric網絡的話,可忽略此步驟
查看所有容器並刪除(需要保證你的docker是啟動狀態)
docker ps -a
docker rm -f $(docker ps -aq)
查看所有鏡像並刪除(需要保證你的docker是啟動狀態)
docker images -a
docker rmi -f $(docker images -aq)
下載fabric1.0.0鏡像
回到我們上上一步,此時我們已經使用git checkout v1.0.0
切換到了v1.0.0分支,進入以下目錄,執行官方提供的批量下載鏡像的腳本即可
cd /root/go/src/github.com/hyperledger/fabric/examples/e2e_cli/
source download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0
等待下載完成后執行docker images
命令查看下載的鏡像,如下圖:
四.啟動與測試
啟動fabric網絡
使用官方提供的自動化腳本進行啟動和關閉,接下來我們啟動官方提供的測試用例example02(注意:此時我們還在/root/go/src/github.com/hyperledger/fabric/examples/e2e_cli/
目錄下)
./network_setup.sh up
如果無報錯,出現以下頁面,則啟動成功;如果有報錯,則在最后,有筆者在搭建時遇到的錯誤,可進行參考。
測試
查詢a的余額(-C:指定通道;-n:指定鏈碼名稱)
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
調用鏈碼,a給b轉賬50元(-o:指定背書節點; tls=true:開啟加密通信;cafile:指定證書文件的路徑)
peer chaincode invoke -o orderer.example.com:7050 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n mycc -c '{"Args":["invoke","a","b","50"]}'
再一次查詢a的余額
錯誤
這一部分只是記錄筆者自己在搭建過程中遇到的錯誤,如有其他錯誤,請自行百度。
錯誤1:
解決方案:修改/etc/resolv.conf
文件,將options
開頭的一行注釋掉,修改后的文件如下圖:
錯誤2:
解決方案:修改/root/go/src/github.com/hyperledger/fabric/examples/e2e_cli/base/
目錄下的peer-bash.yaml
文件,修改名稱為e2e_cli_default
,修改完如下圖:
最后呢,說明一下,作者也是剛入坑的小白,這篇文章也就是記錄一下原始搭建的過程,方便以后查看。如果對你有幫助的話,非常榮幸,如果有不對的地方,歡迎留言指正!