區塊鏈從零開始做開發(0):hyperledger Fabric2.3安裝


一、前言  

  各位看官好,這是本人第一篇技術博客。

  寫博客的契機是因為原來配的環境在虛擬機擴容后莫名奇妙崩了(具體情況我以后會寫),為了以后的自己特此從頭開始記錄。以前都是作為一個讀者,這次終於有機會能夠分享自己的理解,也算是因禍得福吧哈哈。那么閑話少說,接下來正式進入正題


 

二、基本環境

  系統:Ubuntu20.04(LTS)

  題外話:網上很多版本的教程使用的是18.x版本,我之前用20.10版本(結果崩了)。所以這次吸取教訓,用新的穩定的版本

三、安裝依賴

  在(虛擬機中)裝完系統后,最好把軟件源配置成國內的如華為或阿里。在setting->About->Software Updates 下的 Download from 中選擇

  

 

 

   更換后用一下命令更新:

$ sudo apt update

  因為一直要sudo太麻煩,而且以后也會涉及到權限的問題,所以我建議大家可以直接用root用戶登錄,具體操作可以看這個教程:

http://www.zzvips.com/article/90799.html

  1.安裝git

  安裝git工具

$ sudo apt install git

 

  2.安裝cURL

$ sudo apt install curl

 

  3.安裝Docker

  先查看是否安裝了Docker:

$ docker --version

  未安裝則使用以下命令安裝最新Docker:

$ sudo apt install docker.io

  安裝后記得查看一下:

root@ubuntu:~# docker -v
Docker version 19.03.8, build afacb8b7f0

  出現以上字樣表示安裝成功

  我這里是以root權限安裝,如果是非root用戶需要使用以下命令才能使用docker:

$ sudo usermod -aG docker [你的用戶名] (重啟生效)

 

  4.安裝docker-compose

  和之前一樣先查看是否安裝docker-compose:

$ docker-compose --version

  沒有安裝就使用以下命令安裝:

$ sudo apt install docker-compose

  安裝后查看版本:

root@ubuntu:~# docker-compose -v
docker-compose version 1.25.0, build unknown

  出現以上字樣說明安裝成功。同理,如果是普通用戶還需要以下命令:

$ sudo chmod +x /usr/share/doc/docker-compose

 

  5.安裝go語言(存疑)

  在官方文檔中,fabric2.0及之前的版本是需要安裝go語言的,但是之后的版本就沒有再提過,可能是不需要的,但是裝上也不影響使用,所以我們就多進行一步吧,如果此處有誤請告訴我!

  ①下載go語言

$ wget https://dl.google.com/go/go1.13.15.linux-amd64.tar.gz

  這里go語言的版本要注意,fabric2.0要求的是1.13.x

  ②解壓文件

  使用 tar 命令將壓縮包解壓到指定的 /usr/local/ 路徑下(可以自己選擇):

$ sudo tar -zxvf go1.13.15.linux-amd64.tar.gz -C /usr/local/

  ③配置環境變量

  為了所有用戶都可以使用go語言使用以下命令,其他情況可以只修改當前用戶$HOME目錄下的 .bashrc 或 .profile 文件

$ sudo gedit /etc/profile

  在文件末尾寫入以下內容並保存:

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

  使用source命令使以上內容生效:

$ source /etc/profile

  然后還是檢查是否安裝成功:

root@ubuntu:~# go version
go version go1.13.15 linux/amd64

  如果未出現以上內容可以嘗試重啟:)

四、拉取Fabric源碼

  創建一個專門的目錄存放fabric:

$ mkdir -p ~/go/src/github.com/hyperledger 
$ cd ~/go/src/github.com/hyperledger 

  拉取fabric源碼:

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

  這里其實我是在gitee上拉取的,因為國內的話速度會快一些,在這里也推薦大家可以通過gitee拉取,把后面的地址換成gitee上的下載地址就可以了

  之后需要切換當前fabric的分支:

$ cd ./fabric
$ git branch -a  
$ git checkout v2.3.0

五、拉取fabric-samples

  1.配置鏡像加速器

  建議使用阿里雲的加速器:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

$ sudo mkdir -p /etc/docker
$ sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["你的加速器地址"]
}
EOF
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

  2.拉取依賴項

  ①直接拉取(需要vpn)

  在 ./fabric/scripts 中找到 bootstrap.sh 腳本,將該腳本復制到fabric同級目錄下,運行以下命令:

$ ./bootstrap.sh 2.3.0 1.4.9 0.4.18

 

  此命令中 “2.3.0”對應fabric版本,“1.4.9”對應fabric-ca版本,“0.4.18”對應fabric Docker版本,也可以默認執行:

$ ./bootstrap.sh

 

  結果如下圖:

  

   

 

   ②手動安裝(適用於大多數情況)

  如果上面的方法下載速度極慢,可以考慮自己動手豐衣足食,具體步驟如下:

  首先分析一下 bootstrap.sh 文件:

  

 

   可以看出該腳本主要做三件事:1.克隆fabric-samples 2.拉取fabric二進制文件 3.拉取fabric docker鏡像 ;所以接下來我們自己手動完成這三件事就好:

  Ⅰ.克隆fabric-samples

  同之前克隆fabric,我是從gitee上克隆(速度快一點),這里提供從GitHub上克隆的代碼:

$ git clone https://github.com/hyperledger/fabric-samples.git
$ cd ./fabric-samples
$ git branch -a
$ git checkout master

 

   Ⅱ. 下載可執行二進制文件

  這一步是最容易卡關的,首先查看bootstrap腳本:

pullBinaries() {
    echo "===> Downloading version ${FABRIC_TAG} platform specific fabric binaries"
    download "${BINARY_FILE}" "https://github.com/hyperledger/fabric/releases/download/v${VERSION}/${BINARY_FILE}"
    if [ $? -eq 22 ]; then
        echo
        echo "------> ${FABRIC_TAG} platform specific fabric binary is not available to download <----"
        echo
        exit
    fi

    echo "===> Downloading version ${CA_TAG} platform specific fabric-ca-client binary"
    download "${CA_BINARY_FILE}" "https://github.com/hyperledger/fabric-ca/releases/download/v${CA_VERSION}/${CA_BINARY_FILE}"
    if [ $? -eq 22 ]; then
        echo
        echo "------> ${CA_TAG} fabric-ca-client binary is not available to download  (Available from 1.1.0-rc1) <----"
        echo
        exit
    fi
}

 

  可以看到腳本是從兩個站點下載的,那么我們直接去站點上下載文件就好了:

  

 

   這是fabric的二進制文件,還要下載fabric-ca的二進制文件,下載好以后在目錄下解壓,fabric解壓后是一個 bin 文件夾和一個 config 文件夾;fabric-ca 解壓后是一個 bin 文件夾,將兩個 bin 文件夾合並在一起,將合並后的 bin 文件夾和config 文件夾一起放入 fabric-samples 文件夾下:

  

 

  

 

   

 

   Ⅲ. 下載fabric docker鏡像

  這一步可以通過bootstrap腳本運行,首先修改 bootstrap.sh 文件:

  

 

   沒錯,把前兩步注釋掉只運行最后一步就好了:

$ ./bootstrap.sh 2.3.0 1.4.9 0.4.18

 

  這樣所有依賴項就都安裝好了,我們下一步就可以開始測試了。

  注:Fabric官方文檔中給的方法是用cURL,但是不適合國內用戶

六、測試

  打開 fabric-samples下的 test-network 文件夾:

$ cd fabric-samples/test-network

 

  在fabric-samples 2.0版本后用test-network 代替了原本的 first-network ,我們采用最新版本作為實例:

  

 

   我們運行 network.sh 文件:

$ ./network.sh up

 

  結果如下:

  

 

  說明fabric安裝成功,成功后可以再關閉該網絡:

$  ./network.sh down

 

  補充說明:network.sh 具有多種功能,以上展示的僅僅是建立示例網絡功能,還可以通過該腳本建立通道、安裝鏈碼,具體可見該腳本內容或看我以后的博客。

七、配置環境變量

  將 fabric-samples/bin 加入環境變量,方便使用:

$ sudo gedit /etc/profile

 

  再該文件最后添加:

export PATH=$PATH:$GOROOT/bin:$GOPATH/bin:$HOME/go/src/github.com/hyperledger/fabric-samples/bin

 

  最后如圖:

  

 

  然后使用source命令使修改生效:

$ source /etc/profile

 

  驗證是否生效(未生效則重啟虛擬機):

$ fabric-ca-client version
fabric-ca-client:
 Version: 1.4.9
 Go version: go1.13.12
 OS/Arch: linux/amd64

   注:這里發現go語言版本為1.13.12,我們實際環境中go語言版本為1.13.15,看來之前的安裝確實無影響

八、結束語

  本篇博客到此結束,感謝大家耐心看到這里,如果有什么問題可以評論留言。通過這篇博客我深深體會到分享不易,在此感謝那些堅持寫博客分享的大神!

  參考博客:https://www.cnblogs.com/zongmin/p/11635686.html

       Fabric官方文檔


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM