Hyperledger Fabric學習筆記(二)- Fabric 2.2.1環境搭建

語言: CN / TW / HK

一、參考文章如下:

1、http://blog.csdn.net/zhanglingge/article/details/106208491

2、http://blog.csdn.net/qq_43613303/article/details/105828981

3、http://blog.csdn.net/jambeau/article/details/107551208

二、前期環境準備:

1、環境:Windows 10 + VMware Workstation 15 + Ubuntu20.10

2、首先,去下載Ubuntu20.10的鏡像文件,也就是iso文件,地址如下:http://mirrors.aliyun.com/ubuntu-releases/20.10/ubuntu-20.10-desktop-amd64.iso

3、接着打開VMware虛擬機,新建一個虛擬機,自定義安裝剛剛下載的iso鏡像文件,然後一步步操作,按安裝提示,新建一個用户,輸入密碼,地區選擇中國所在的某個地區,一步步照着來就行了,如下圖所示,可能需要一點時間:

4、安裝成功後輸入你剛才新建的用户和密碼,進去即可,鼠標右鍵,選擇Open in Terminal,即打開終端窗口:

(1)、首先切換到root用户,輸入命令su root,如下圖所示:

因為我最開始是沒有設置root用户,默認創建了linyexiong這個用户,而root的初始密碼,ubuntu系統沒設置之前都是隨機的,所以要先設置一下密碼,輸入命令sudo passwd,如下圖所示:

再次輸入命令su root,便切換到root用户了:

(2)、接下來給linyexiong這個用户添加sudo權限,依次輸入下面的命令:

  第一,先給/etc/sudoers文件賦予可寫的權限:chmod u+w /etc/sudoers

  第二,接着編寫/etc/sudoers文件:vi /etc/sudoers

  第三,在root ALL=(ALL:ALL) ALL下面添加XXX ALL=(ALL) ALL語句,如下圖所示:

第四、恢復/etc/sudoers原來只讀的權限:chmod u-w /etc/sudoers,如下圖所示:

(3)、前期準備,更新相關的包還有安裝相關的工具包(vim,git, curl,wget),為後面搭建fabric環境做準備:

第一,首先要設置一下阿里雲的鏡像資源地址,提高下載速度,不然下面安裝包的時候會特別慢,參考文章:http://www.cnblogs.com/chougoushi/p/13524416.html

備份一下之前的apt的資源配置文件,命令如下:

cp /etc/apt/sources.list /etc/apt/sources.list.bak

接着輸入命令:

vi /etc/apt/sources.list

將文件底下未註釋的每一行,包含了網址的,都改為http://mirrors.aliyun.com/ubuntu/,如下圖所示:

修改後保存即可。

第二,關掉之前的終端窗口,重新打開終端窗口,即切換到linyexiong這個用户底下,不要用root用户,或者直接用命令su linyexiong,切換到linyexiong用户,如下圖所示:

第三,輸入命令:sudo apt-get update,如下圖所示,此時去下載的地址就為上面第一步配置的阿里雲鏡像地址了:

第四,安裝vim,輸入命令:sudo apt-get install vim

第五,安裝git, 輸入命令:sudo apt-get install git

第六,安裝curl,輸入命令:sudo apt-get install curl

第七,安裝wget,輸入命令:sudo apt-get install wget

第八,安裝libtool libltdl-dev,輸入命令:sudo apt install libtool libltdl-dev    注:後面make編譯fabric用到

第九,安裝jq,輸入命令:sudo apt-get install jq   注:後面fabric測試網絡用到

其中補充兩點:

1.wget:下載文件的工具,用在命令行下。經常要下載一些軟件或從遠程服務器恢復備份到本地服務器。
2.curl:利用URL語法在命令行下工作的文件傳輸工具。支持文件上傳和文件下載。

三、環境準備 - Go語言環境安裝

1、首先,輸入命令:cd ~,再輸入命令:cd Downloads,進入Downloads目錄,如下圖所示:

2、輸入命令:

wget http://golang.google.cn/dl/go1.15.6.linux-amd64.tar.gz

3、解壓此壓縮包:

tar -xzf go1.15.6.linux-amd64.tar.gz 

4、移動壓縮後的文件夾到/usr/local底下去:

sudo mv go /usr/local

5、配置環境變量:

(1)、輸入命令:

vim ~/.bashrc

(2)、在後面加入:

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

(3)、使文件生效:

source ~/.bashrc

6、配置用户環境變量:

(1)、輸入命令:

vim ~/.profile

(2)、在後面加入:

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

(3)、使文件生效:

source ~/.profile

7、檢查go是否環境安裝成功:

四、環境準備 - docker安裝

1、輸入命令:sudo apt install docker

2、輸入命令:sudo apt install docker-compose

3、輸入命令:sudo service docker start

4、查看docker版本,啟動是否正常,輸入命令:sudo docker version ,如下圖所示:

5、將當前用户加入docker組:

(1)、輸入命令:sudo groupadd docker,這一步應該安裝docker之後就自動添加了,可忽略

(2)、輸入命令:sudo usermod -aG docker linyexiong ,注:linyexiong是當前用户名,可改為你設置的用户名

(3)、輸入命令:newgrp docker,更新用户組

6、添加配置阿里雲鏡像,並重啟docker:

(1)、輸入命令:cd /etc/docker,進入/etc/docker目錄:

(2)、輸入命令:sudo vim daemon.json,並輸入下面的內容,添加阿里雲鏡像:

{
    "registry-mirrors": ["http://aeckruos.mirror.aliyuncs.com"],
    "insecure-registries": ["192.168.6.129:5000"]
}

(3)、使配置的阿里雲鏡像生效:

分別輸入以下命令:

sudo systemctl daemon-reload 
sudo systemctl restart docker 
docker version

7、因為docker.sock在此用户下沒權限,所以輸入命令:sudo chmod -R 777 /var/run/docker.sock,執行後再輸入命令查看docker版本:

8、查看docker-compose版本,輸入命令:docker-compose version

五、環境準備 - 下載fabric源碼,編譯fabric

1、下載fabric源碼,執行下列命令:

mkdir -p $GOPATH/src/github.com/hyperledger
cd $GOPATH/src/github.com/hyperledger

2、git相關配置,不然下源碼太慢了:

參考文章:http://www.jianshu.com/p/2c18c13fbef3

(1)、打開網站http://www.ipaddress.com

(2)、找到 http://github.com 和 http://global-ssl.fastly.net 對應的IP地址,例如:

            http://github.com/ 對應的ip是:192.30.255.112

           http://global-ssl.fastly.net   對應的ip是:151.101.0.249

(3)、輸入命令:sudo vim /etc/hosts,在最後一行添加對應的域名配置信息如下:

192.30.255.112 github.com
151.101.0.249 github.global.ssl.fastly.net

(4)、重啟網絡服務,這步我暫時沒找到重啟網絡的方式,就直接跳過了。

3、開始下載:

git clone http://github.com/hyperledger/fabric

4、查看fabric所有版本,並切換fabric版本:

(1)、首先,進入fabric目錄,輸入命令:cd fabric

(2)、輸入命令:git tag,fabric各個版本如下圖所示:

(3)、切換fabric版本,這裏用穩定版本2.2.1,也可以不切換,默認就為最新版,輸入命令:git checkout v2.2.1

5、編譯fabric:

(1)、這裏注意進入的目錄,輸入以下命令:

cd ~/go/src/github.com/hyperledger/fabric
make release

執行後如下圖所示:

(2)、發現還未安裝make和make-guile包,輸入以下的命令:

sudo apt install make
sudo apt install make-guile

(3)、再重新執行make release命令,看是否有報錯,執行後如下圖所示:

(4)、在fabric目錄底下存在了fabric節點所存在的一些可執行文件,如下圖所示:

(5)、其中discover是服務發現命令,只需要檢查另外六個是否安裝好,輸入以下命令:

./release/linux-amd64/bin/peer version
./release/linux-amd64/bin/orderer version
./release/linux-amd64/bin/configtxgen -version
./release/linux-amd64/bin/configtxlator version
./release/linux-amd64/bin/cryptogen version
./release/linux-amd64/bin/idemixgen version

能正常顯示版本號等相關信息即可,如下圖所示,為了文章篇幅,這裏只顯示一張圖了,應該沒啥問題:

(6)、安裝可執行文件:

sudo cp $GOPATH/src/github.com/hyperledger/fabric/release/linux-amd64/bin/* /usr/local/bin

sudo chmod -R 775 /usr/local/bin/configtxgen
sudo chmod -R 775 /usr/local/bin/configtxlator
sudo chmod -R 775 /usr/local/bin/cryptogen
sudo chmod -R 775 /usr/local/bin/peer
sudo chmod -R 775 /usr/local/bin/orderer
sudo chmod -R 775 /usr/local/bin/idemixgen
sudo chmod -R 775 /usr/local/bin/discover

6、Fabric docker鏡像下載:

(1)、輸入命令,進入到scripts目錄底下:

cd $GOPATH/src/github.com/hyperledger/fabric/scripts

如下圖所示:

(2)、執行底下的bootstrap.sh腳本文件,這個速度下載有點感人,有可能還會下載不成功的,不過多運行幾遍應該可以,又或者要改下鏡像資源文件,命令如下:

./bootstrap.sh

執行完成後,會展示下載的docker鏡像列表:

也可以通過下面命令查看:

docker images

7、Fabric-ca解決Fabric賬號生成問題。由Fabric-ca-server和Fabirc-ca-client兩個模塊組成。

(1)、首先,回到hyperledger那個目錄底下,下載fabric-ca源碼,命令如下:

cd $GOPATH/src/github.com/hyperledger
git clone http://github.com/hyperledger/fabric-ca

(2)、編譯下載的源碼,依次輸入以下命令:

cd $GOPATH/src/github.com/hyperledger/fabric-ca
make fabric-ca-server
make fabric-ca-client

如下圖所示:

(3)、安裝編譯好的可執行文件,輸入以下命令:

cd $GOPATH/src/github.com/hyperledger/fabric-ca/bin
sudo cp * /usr/local/bin/
 
chmod -R 755 /usr/local/bin/fabric-ca-server
chmod -R 755 /usr/local/bin/fabric-ca-client

如下圖所示:

(4)、檢查是否可執行:

fabric-ca-server version
fabric-ca-client version

顯示版本,如下圖所示:

8、開發客户端安裝golang-sdk,fabric-sdk-go是提供的Go語言開發包,應用程序可以利用fabric-sdk-go與fabric網絡進行交互並訪問鏈碼:

回到hyperledger那個目錄底下,下載fabric-sdk-go源碼,命令如下:

cd $GOPATH/src/github.com/hyperledger
git clone http://github.com/hyperledger/fabric-sdk-go

如下圖所示:

9、啟動測試網絡:

(1)、首先,進入fabric ->> scripts ->> fabric-samples 的test-network目錄,命令如下:

cd $GOPATH/src/github.com/hyperledger/fabric/scripts/fabric-samples/test-network

(2)、開始啟動測試網絡:

./network.sh up

(3)運行後如下圖所示,沒出現錯誤,説明fabric環境已經搭建好了:

 

以上內容僅供學習參考,如有問題,請在評論下方指出,謝謝!