寫在前,第一次搭建fabric框架,對於小白的我很是艱辛,參考了很多博主的部落格才最終完成,在此記錄一下搭建過程。
參考的網站
https://blog.csdn.net/smallone233/article/details/86569536
https://blog.csdn.net/Sun_Hui_/article/details/100928155
https://www.cnblogs.com/cbkj-xd/p/11067790.html
https://blog.csdn.net/qq_41547659/article/details/108190245
一.前期準備
1.系統軟體源改為 aliyun
方法:進入system setting 然後點選software and update,修改download from
#先更新apt-get
#apt-get可以用於運作deb包(debian系統:unbuntu)
#yum可以用於運作rpm包(redhat系統:centos)
sudo apt-get update
#安裝vim
sudo apt-get install vim
#安裝git
sudo apt-get install git
#安裝curl
sudo apt-get install curl #在命令列中利用URL進行資料或者檔案傳輸
#安裝wget
sudo apt-get install wget #wget不是安裝方式,它是一種下載工具,類似於迅雷。
2.安裝GO
2.1下載安裝包
cd ~ //進入到根目錄下
wget https://studygolang.com/dl/golang/go1.14.linux-amd64.tar.gz //這裡我下載的是1.14版本
tar -xzf go1.14.linux-amd64.tar.gz //解壓
sudo mv go /usr/local //移動
2.2配置環境
編輯配置檔案
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 #新增PATH路徑
儲存配置檔案
source /etc/proflie
go version #執行命令如果看到go的版本號,說明已經安裝好了
3.docker安裝
3.1解除安裝舊版本的Docker,沒安裝的就跳過此步
sudo apt-get remove docker docker-engine docker.io
3.2開始安裝
sudo apt-get update
#下載安裝工具
sudo apt-get install \
apt-transport-https \
ca-certificates \
software-properties-common
#新增官方金鑰
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
#加入 apt 倉庫中
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
#下載docker-ce
sudo apt-get update #apt-get update是同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,這樣才能獲取到最新的軟體包。
sudo apt-get install docker-ce
完成上面操作之後輸入
docker version #檢視版本資訊
輸出下面資訊
Client: Docker Engine - Community
Version: 19.03.13
API version: 1.40
Go version: go1.13.15
Git commit: 4484c46d9d
Built: Wed Sep 16 17:02:59 2020
OS/Arch: linux/amd64
Experimental: false
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/version: dial unix /var/run/docker.sock: connect: permission denied
此時已經安裝好Docker了,但是還需要一些小操作。因為普通使用者沒有許可權 。
sudo groupadd docker #建立docker組
sudo usermod -aG docker XXX #(XXX是當前使用者名稱)
下面新增阿里雲的Docker映象:
sudo vim /etc/docker/daemon.json
#將以下內容寫入daemon.json
{
"registry-mirrors": ["https://obou6wyb.mirror.aliyuncs.com"]
}
#接下來輸入:
sudo systemctl daemon-reload
sudo systemctl restart docker
docker version
如果還有許可權不足提示,輸入:
sudo chmod -R 777 /var/run/docker.sock
正確的結果:
Client: Docker Engine - Community
Version: 19.03.13
API version: 1.40
Go version: go1.13.15
Git commit: 4484c46d9d
Built: Wed Sep 16 17:02:59 2020
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.13
API version: 1.40 (minimum version 1.12)
Go version: go1.13.15
Git commit: 4484c46d9d
Built: Wed Sep 16 17:01:30 2020
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.3.7
GitCommit: 8fba4e9a7d01810a393d5d25a3621dc101981175
runc:
Version: 1.0.0-rc10
GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd
docker-init:
Version: 0.18.0
GitCommit: fec3683
到此docker安裝完畢
4.docker-compose安裝
docker-compose 是支援通過模板指令碼批量建立 docker 容器的一個元件
#首先需要安裝pip
sudo apt-get install python-pip
#更新pip
pip install --upgrade pip
#通過pip下載docker-compose
sudo pip install docker-compose
#檢視版本
docker-compose -version
docker-compose version 1.26.2, build unknown #出現就表示安裝完成
二.fabric框架搭建
首先建立資料夾
cd ~
mkdir -p go/src/github.com/hyperledger/
#進入剛剛建立的資料夾內
cd go/src/github.com/hyperledger/
下載 fabric 原始碼:
git clone https://github.com/hyperledger/fabric.git
將 fabric 切換至 1.4 版本:
cd fabric
git branch -a
#git checkout release-1.4
git checkout v1.4.2 #我選的1.4.2版本
下載所需的映象
#進入到指定目錄
cd ~/go/src/github.com/hyperledger/fabric/scripts
#自動下載對應版本所需要的映象
sudo ./bootstrap.sh #這裡由於網路原因只下載了fabric-samples
bootstrap.sh實際上幫我們作了如下幾件事情:
- 從github上克隆 hyperledger/fabric-samples並進入該目錄,然後檢出適當的版本
- 在fabric-samples目錄下安裝特定平臺的 Hyperledger Fabric 二進位制可執行檔案bin 和配置檔案config
- 下載 指定版本的Hyperledger Fabric 的docker映象
但是由於網路問題,Fabric的二進位制可執行檔案和配置檔案無法下載,此時進行手動安裝
wget https://github.com/hyperledger/fabric/releases/download/v1.4.2/hyperledger-fabric-linux-amd64-1.4.2.tar.gz
wget https://github.com/hyperledger/fabric-ca/releases/download/v1.4.2/hyperledger-fabric-ca-linux-amd64-1.4.2.tar.gz
tar xzvf hyperledger-fabric-linux-amd64-1.4.2.tar.gz -C $GOPATH/src/github.com/hyperledger/fabric-samples/
tar xzvf hyperledger-fabric-ca-linux-amd64-1.4.2.tar.gz -C $GOPATH/src/github.com/hyperledger/fabric-samples/
#向/etc/profile中寫入環境變數
export PATH=$GOPATH/src/github.com/hyperledger/fabric/scripts/fabric-samples/bin:$PATH
#使環境變數生效
source /etc/profile
下面下載Fabric的docker映象
sudo ./bootstrap.sh -b -s
至此,fabric1.4.2的環境安裝完成,完成上面的操作,就可以啟動第一個fabric網路了。
#進入first-network資料夾
cd ~/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/first-network/
#建立第一個 channel(myfirstchannel 為通道名稱,不寫預設為 mychannel,可以自己定義):
sudo ./byfn.sh -m generate -c myfirstchannel
#執行命令啟動
sudo ./byfn.sh up
如果最後輸出內容為
===================== Query successful on peer1.org2 on channel 'mychannel' =====================
========= All GOOD, BYFN execution completed ===========
_____ _ _ ____
| ____| | \ | | | _ \
| _| | \| | | | | |
| |___ | |\ | | |_| |
|_____| |_| \_| |____/
說明我們的fabric網路已經成功搭建完畢。
#最後執行以下命令關閉網路
./byfn.sh down
到此,unbuntu16.04搭建單機的fabric1.4.2環境到此完成,謝謝大家觀看。