基於興趣,有幸接觸到區塊鏈,對區塊鏈也有一定的認識。之前搭建過Fabric1.1版本,這次搭建1.4版本並寫下了這篇博文,其中有我個人踩坑的解決方案和思考。學識尚淺,有誤的地方歡迎指正交流
Centos7 64位元作業系統。
需要安裝3個基本環境Docker、Docker-Compose、Go語言環境安裝,之後下載Fabric原始碼,最後測試網路
檢查伺服器核心版本,要在3以上
uname -r
如果以前安裝過docker,刪除原來的
yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
//新增docker yum 源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
//安裝軟體包
yum install -y yum-utils device-mapper-persistent-data lvm2
systemctl start docker
docker -version //檢視版本
下載到/usr/local/bin/docker-compose目錄下。
docker compose 官方推薦的下載方式是這樣:
curl -L
「https://github.com/docker/compose/releases/download/1.24.0/docker-compose- ( u n a m e − s ) − (uname -s)- (uname−s)−(uname -m)」 -o /usr/local/bin/docker-compose
上面的方法下載太慢了,不推薦
推薦使用國內地址
curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
wget https://studygolang.com/dl/golang/go1.12.4.linux-amd64.tar.gz
-C :表示指定解壓目錄
tar -zxvf go1.12.4.linux-amd64.tar.gz -C /opt
在/opt下會自動建立一個go目錄,無需自己建立
在/etc/profile檔案末尾新增環境變數
// 建立go工作目錄
mkdir /opt/gopath
vi /etc/profile //在檔案末尾新增
export GOPATH=/opt/gopath
export GOROOT=/opt/golang/go
export PATH=$GOROOT/bin:$PATH
使其立即生效
source /etc/profile
go version
mkdir -p $GOPATH/src/github.com/hyperledger
cd $GOPATH/src/github.com/hyperledger
還需要藉助git工具,因此還要下載git
yum install git
git clone https://github.com/hyperledger/fabric.git
可能下載失敗,出現RPC failed錯誤,原因是git的curl的postBuffer預設值較小。解決方法:修改git傳輸位元組限制,再重新下載
//修改git傳輸位元組限制
git config –global http.postBuffer 524288000
用自己的碼雲從github賬號上匯入,具體方法見:https://blog.csdn.net/weixin_44732379/article/details/108639787
這裡可以直接用我的地址,下載到完成不過一分鐘
git clone https://gitee.com/firefly_ignition/fabric-samples.git
cd ./fabric
git branch -a
git checkout v1.4.0
進入fabric/scripts目錄可以看到一個bootstrap.sh指令碼
直接執行bootstrap.sh指令碼
bash bootstrap.sh
此處執行時間比較久,中間可能會斷開,參考過其他一些文章說重新執行,親測無效,如下圖。
其實指令碼幫我們幹了幾件事:
通過對指令碼的分析我們可以手動下載,主要完成三個步驟
1.下載fabric-sample
與下載fabric原始碼同理,這裡我使用自己的碼雲地址
git clone -b v1.4.0 https://gitee.com/firefly_ignition/fabric-samples.git
cd fabric-samples
git checkout v1.4.0 //切換版本
注意: fabric-sample目錄與fabric目錄同級!
2.下載二進位制檔案
需要下載兩個壓縮包,選擇相應版本下載,我的網路硬碟連結:
https://pan.baidu.com/s/1xrLOnGIRUMiRVODW1WpDDQ
提取碼:j60x
壓縮檔案hyperledger-fabric-linux-amd64-1.4.0.tar包含bin和 config 兩個資料夾
hyperledger-fabric-ca-linux-amd64-1.4.0.tar包含bin資料夾
將壓縮包上傳並解壓到fabric-sample目錄下
tar -zxvf hyperledger-fabric-linux-amd64-1.4.0.tar
tar -zxvf hyperledger-fabric-ca-linux-amd64-1.4.0.tar
3.下載映象
先設定加速鏡,不然下載很慢
# mkdir -p /etc/docker
# tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://8w1wqmsz.mirror.aliyuncs.com"]
}
EOF
# systemctl daemon-reload
# systemctl restart docker
將 fabric/scripts 目錄下的 bootstrap.sh 指令碼,複製到fabric-sample目錄下
刪除 bootstrap.sh檔案中的samplesInstall 和 binariesInstall 步驟,保留映象下載的步驟。
執行 bootstrap.sh 指令碼:
$ ./bootstrap.sh 1.4.0 1.4.0 0.4.15
下載好了會列出映象:
1.4版本的e2e案例被移除,所以測試網路使用fabric-samples 中的 first-network
啟動網路
cd ./fabric-samples/first-network/
./byfn.sh up
出現以上結果表示網路測試成功
docker ps命令可以檢視到節點的啟動情況
最後別忘了關閉網路
./byfn.sh down
參考文章:
[1]https://www.icode9.com/content-1-180278.html
[2]作者:靈·龍 https://www.cnblogs.com/llongst/p/9482038.html
[3]作者:zongmin https://blog.csdn.net/qq_34680444/article/details/87257141