天天看點

Ubuntu下搭建Hyperledger Fabric v1.0環境 2018快速國内源

多次嘗試才正常啟動了Fabric,如遇到各種莫名錯誤,請參考如下一步步嚴格安裝,特别使用者權限需要注意。

一、安裝Ubuntu16

虛拟機或雙系統,虛拟機有 VirtualBox或者VMware,Ubuntu 16.04鏡像安裝好。 打開系統設定,選擇軟體和更新 , 然後在下載下傳自:中選擇aliyun  

Ubuntu下搭建Hyperledger Fabric v1.0環境 2018快速國内源

二、安裝基礎工具

 注意操作使用者是自建使用者,不是root,特别一些指令涉及使用者目錄的地方要特别注意

首先安裝一些常用工具

sudo apt-get update 
sudo apt-get install ssh
sudo apt-get install git
sudo apt-get install python-pip            

go需要單獨安裝下

wget https://storage.googleapis.com/golang/go1.9.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.9.linux-amd64.tar.gz
gedit /etc/profile           

編輯全局變量環境,添加一下profile

export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=/home/使用者名/go
export PATH=$PATH:/home/使用者名/go/bin           

生效profile,建立go目錄

source /etc/profile
mkdir /home/使用者名/go           

此時酌情重新開機下系統

三、安裝docker  基于aliyun

sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安裝GPG證書
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 寫入軟體源資訊
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安裝 Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce           

 安裝docker後還需要添加使用者到docker組

sudo usermod -aG docker XXX            

登出并重新登入,然後添加阿裡雲的Docker Hub鏡像:  建立docker檔案 

sudo mkdir -p /etc/docker
sudo gedit /etc/docker/daemon.json            

{ "registry-mirrors": [" https://obou6wyb.mirror.aliyuncs.com"] }

sudo systemctl daemon-reload
sudo systemctl restart docker           

最後 docker version 看下安裝結果

四、安裝 Docker-Compose  從DaoClound

curl -L https://get.daocloud.io/docker/compose/releases/download/1.19.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

docker-compose version            

五.Fabric源碼下載下傳

首先建好存放源碼的檔案夾(也可手動建)路徑如下: 

mkdir –p ~/go/src/github.com/hyperledger 
cd ~/go/src/github.com/hyperledger 
git clone https://github.com/hyperledger/fabric.git           

由于我們隻是在搭建環境。不需要最新的代碼,是以隻需要切換到v1.0.0大版本就行。

cd ~/go/src/github.com/hyperledger/fabric 進入fabric目錄 
git checkout v1.0.0           

六. Fabric Docker鏡像的下載下傳

cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli/
source download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0

docker images            
Ubuntu下搭建Hyperledger Fabric v1.0環境 2018快速國内源

七、啟動Fabric網絡并完成ChainCode的測試

現在還停留在e2e_cli檔案中(如果沒有先進入),這裡提供了啟動、關閉Fabric網絡的自動化腳本。我們要啟動Fabric網絡,并自動運作Example02 ChainCode的測試,執行一個指令: 

./network_setup.sh up           

這個指令具體進行了如下操作: 

  1. 編譯生成Fabric公私鑰、證書的程式,程式在目錄:fabric/release/linux-amd64/bin
  2. 基于configtx.yaml生成創世區塊和通道相關資訊,并儲存在channel-artifacts檔案夾。
  3. 基于crypto-config.yaml生成公私鑰和證書資訊,并儲存在crypto-config檔案夾中。
  4. 基于docker-compose-cli.yaml啟動1Orderer+4Peer+1CLI的Fabric容器。
  5. 在CLI啟動的時候,會運作scripts/script.sh檔案,這個腳本檔案包含了建立Channel,加入Channel,安裝Example02,運作Example02等功能。 

出現則表示網絡運作成功,ctrl+c退出

Ubuntu下搭建Hyperledger Fabric v1.0環境 2018快速國内源

八、手動測試Fabric網絡

這裡有官方提供的小例子,在官方例子中,channel名字是mychannel,鍊碼的名字是mycc。 

首先進入CLI,然後重新打開一個指令行視窗,輸入: 

docker exec -it cli bash

這時使用者為[email protected],在/opt/gopath/src/github.com/hyperledger/fabric/peer目錄下,運作以下指令可以查詢a賬戶的餘額: 

peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'

Ubuntu下搭建Hyperledger Fabric v1.0環境 2018快速國内源

方框内可以看見餘額為:90

下面我們可以進行轉賬操作,操作為invoke ,由a轉b 50: 

peer chaincode invoke -o orderer.example.com:7050 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n mycc -c '{"Args":["invoke","a","b","50"]}'

現在轉賬完畢, 我們試一試再查詢一下a賬戶的餘額,重複之前的查詢指令,結果為: 

Ubuntu下搭建Hyperledger Fabric v1.0環境 2018快速國内源

結果正确,a的餘額隻有40了。 

最後,我們需要關閉Fabric,這裡先使用exit指令退出cli容器。 

exit

然後類似于啟動指令: 

cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli

./network_setup.sh down

Ubuntu下搭建Hyperledger Fabric v1.0環境 2018快速國内源

最後,我們整個Fabric的環境已經測試完畢!! 

教程參考以下:

http://blog.csdn.net/so5418418/article/details/78355868

https://yq.aliyun.com/articles/110806

http://get.daocloud.io/