1. 程式人生 > >Hyperledger fabric 環境搭建

Hyperledger fabric 環境搭建


title: Hyperledger fabric環境搭建
tags: Hyperledger, fabric ,區塊鏈


一、需要的環境

注意:本文是在CentOS下演示

1.安裝golang

  • 下載golang
    git clone https://studygolang.com/dl/golang/go1.11.linux-amd64.tar.gz

  • 解壓檔案至 /usr/local目錄。
    tar -C /usr/local -xzf go1.11.linux-amd64.tar.gz

  • 配置環境變數
    開啟 vim /etc/profile

    新增下面的內容

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

執行 source /etc/profile 使配置重啟

2.安裝git

  • 安裝git
    yum install curl-devel expat-devel gettext-devel \ openssl-devel zlib-devel
    yum -y install git-core
  • 檢查安裝
    git --version

3.安裝Docker 、Docker compose

  • 安裝Docker
    可以看我之前的文章 :https://blog.csdn.net/yang731227/article/details/83626090

  • 安裝docker-compose

    • 下載最新版的docker-compose檔案
      sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    • 新增可執行許可權
      sudo chmod +x /usr/local/bin/docker-compose
    • 測試安裝結果
      docker-compose --version

4.安裝nodejs

  • 下載原始碼
    cd /usr/local/src/
    wget http://nodejs.org/dist/v0.10.24/node-v0.10.24.tar.gz

  • 解壓原始碼
    tar zxvf node-v0.10.24.tar.gz

  • 編譯安裝
    cd node-v0.10.24./configure --prefix=/usr/local/node/0.10.24 make make install

  • 檢查安裝
    通過node -v 檢查是否 成功安裝

二、下載fabric原始碼

注意:一定要先設定好 $GOPATH 環境變數

1.獲取Fabric原始碼

使用 git clone下載原始碼
git clone https://github.com/hyperledger/fabric.git
下載完畢後 拷貝到 /home/go/src/github.com/hyperledger 裡面

如果嫌下面的步驟太煩了,並且你已經安裝Golang和Git可以直接使用:go get -u github.com/hyperledger/fabric

2.進行版本切換

拷貝完好後進入 cd $GOPATH/src/github.com/hyperledger/fabric
執行命令 git checkout release-1.0 切換原始碼為1.0 版本

3.編譯工具configtxgencryptogen

進入目錄 cd $GOPATH/src/github.com/hyperledger/fabric/common/configtx/tool/configtxgen
然後使用命令編譯工具 go install --tags=nopkcsll
進入目錄cd /home/go/src/github.com/hyperledger/fabric/common/tools/cryptogen
然後使用命令編譯工具編譯工具 go install --tags=nopkcsll

好吧我知道上面的步驟也很繁瑣,所以我給你提供簡單:
進入目錄 cd $GOPATH/src/github.com/hyperledger/fabric
分別執行make configtxgenmake cryptogen

然後我們可以在 $GOPATH/bin/ 目錄下看到兩個工具configtxgencryptogen

三、下載fabric元件的docker映象

1.手動下載(不建議)

docker pull hyperledger/fabric-baseos:x86_64-0.3.0
docker pull hyperledger/fabric-ca:x86_64-1.0.0
docker pull hyperledger/fabric-peer:x86_64-1.0.0
docker pull hyperledger/fabric-ccenv:x86_64-1.0.0
docker pull hyperledger/fabric-orderer:x86_64-1.0.0
docker pull hyperledger/fabric-tools:x86_64-1.0.0

因為fabric版本變動較大,所以我們除了baseos使用0.3.0 其他都使用1.0.0

  • 設定tag 為latest

    tag必須要設定,不然Docker 可能識別不了

docker tag hyperledger/fabric-tools:x86_64-1.0.0 hyperledger/fabric-tools:latest
docker tag hyperledger/fabric-orderer:x86_64-1.0.0 hyperledger/fabric-orderer:latest
docker tag hyperledger/fabric-peer:x86_64-1.0.0  hyperledger/fabric-peer:latest
docker tag hyperledger/fabric-ccenv:x86_64-1.0.0 hyperledger/fabric-ccenv:latest
docker tag hyperledger/fabric-ca:x86_64-1.0.0  hyperledger/fabric-baseos:latest
docker tag hyperledger/fabric-baseos:x86_64-0.3.1 hyperledger/fabric-baseos:latest

2.自動下載(建議)

Fabric為我們提供了一個自動化的指令碼download-dockerimages.sh ,它放在了e22_cli目錄,這個指令碼安裝的映象比我們上面手動的映象更豐富。

  • 進入fabric/examples/e2e_cli 目錄
    cd $GOPATH/src/github.com/hyperledger/fabric/examples/e2e_cli
  • 獲取許可權
    chmod +x download-dockerimages.sh
  • 執行指令碼
    ./download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0

注意:上面的命令我添加了 -c -f 引數 指定了版本, 如果不指定預設安裝最新。

  • 檢視映象
    我們使用docker images 來檢視下指令碼自動下載的映象有什麼。

四、fabric-samples

1.下載原始碼

假設你已經配置好我前面的環境
我們直接使用 go get -u github.com/hyperledger/fabric-samples

2.切換版本

依然要進入cd $GOPATH/src/github.com/hyperledger/fabric-samples
然後執行版本切換 git checkout release-1.0

3.輸入ll 檢視檔案結構

我們瞭解下這些檔案:

  • .env:儲存一些環境變數
  • base:儲存docker-compose的一些公共服務
  • byfn.sh:執行指令碼,可以自動生成網路配置、啟動網路、關閉網路
  • configtx.yaml和crypto-config.yaml:根據之前生成的2個工具,生成相應的配置檔案,用來啟動網路,放到當前目錄的channel-artifacts和crypto-config裡面
  • dockper-compose:用於啟動網路
  • scripts:存放測試指令碼,做的事:建立通道、加入通道,安裝鏈碼,例項化鏈碼,鏈碼互動

下面4-6的過程都需要執行byfn.sh指令碼,所以需要進 first-network目錄,
cd $GOPATH/src/fabric-samples/first-network

4.生成配置
執行byfn.sh指令碼生成配置
./byfn.sh -m generate -i 1.0.0

6.啟動網路
./byfn.sh -m up -i 1.0.0

7.關閉網路
./byfn.sh -m down -i 1.0.0

由於我下載的fabric-sample為最新版本,執行命令會出現如下錯誤,所以將fabric-sample切換成1.0版本。