Ubuntu 16.04 聯盟鏈Fabric搭建


聯盟鏈搭建

我是在Ubuntu16.04環境下安裝的

一、安裝Docker (注意:在安裝Docker之前首先需要檢查ubuntu 內核版本我是4.13)

1)切換到root用戶下

$ su root

 

2)$ uname -r

 

3)驗證是否安裝了curl

$ which curl

 

備注:如果沒有安裝則進行安裝,具體安裝如下:

$ sudo apt-get update

$ sudo apt-get install curl

3)Ubuntu中建立ce存儲庫

1)安裝軟件包以允許apt通過HTTPS使用存儲庫:

$ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

2)添加Docker的官方GPG密鑰:

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

備注:可驗證秘鑰指紋 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88

$ sudo apt-key fingerprint 0EBFCD88

3)更新apt

$ sudo apt-get update

4) 安裝最新版本的ce(注意:有可能會失敗 我安裝失敗所有我選擇了企業版docker)

$ sudo apt-get -y install docker-ce

如果失敗解決如下:

安裝python-pip

$ sudo apt-get install python-pip

測試安裝是否成功

$ pip -V

 

安裝企業版docker

$ pip install docker.io

測試是否安裝成功

$ docker --version

 

 

二、安裝最新版本的docker-compose

$ pip install docker-compose

測試是否安裝成功

$ sudo docker-compose --version

 

 

三、安裝go及環境變量配置

(1).下載最新版本的go二進制文件

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

(2).解壓文件

$ sudo tar -C /usr/local -xzf go1.9.2.linux-amd64.tar.gz

(3).配置環境變量

輸入命令:

$ sudo vi /etc/profile

在配置文件末尾添加如下內容:

export GOPATH=$HOME/gopath

export GOROOT=/usr/local/go

export PATH=$GOROOT/bin:$GOPATH/bin:$PATH

 

退出編輯,輸入以下命令使修改生效:

$ source /etc/profile

輸入以下命令查看是否安裝成功:

$ go version

若出現:go version go1.9.2 linux/amd64 則表明配置成功!

 

四、下載Fabric(建議:通過https://github.com/hyperledger/fabric.git下載一個1.0.0版本的Fabric)

1.創建工作目錄

mkdir -p ~/gopath/src/github.com/hyperledger/

2.下載Fabric

cd ~/gopath/src/github.com/hyperledger

git clone https://github.com/hyperledger/fabric.git  (注:默認下載的最新1.1.0 可是后面鏡像默認下載的是1.0.0所以會出錯)

上述下載完成之后,我們可以看到當前工作目錄下多了一個fabric的文件夾(如果是手動在網頁上下載的需要在/gopath/src/github.com/hyperledger目錄下解壓但是文件夾不是fabric需要把名稱改為fabric

  1. 需要pull鏡像

進入到~/gopath/src/github.com/hyperledger/fabric/examples/e2e_clim目錄下執行:

source download-dockerimages.sh   (注:一定要下載完所有鏡像並且鏡像版本要和Fabric版本一致如何沒有下載問繼續執行source download-dockerimages.sh命令直到在完如圖所有鏡像)

 

 

重啟一下docker

service docker restart

一定要查看go是否可用如果如圖需要再執行一下(source /etc/profile)

go version

 

 

五、測試Fabric環境是否成功

~/gopath/src/github.com/hyperledger/fabric/examples/e2e_cli下執行

./network_setup.sh up

 

 

如上圖表示成功

ctrl+c退出

啟動成功!! 整個Fabric網絡已經通了

./network_setup.sh up

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

編譯生成Fabric公私鑰、證書的程序,程序在目錄:fabric/release/linux-amd64/bin

基於configtx.yaml生成創世區塊和通道相關信息,並保存在channel-artifacts文件夾。

基於crypto-config.yaml生成公私鑰和證書信息,並保存在crypto-config文件夾中。

基於docker-compose-cli.yaml啟動1Orderer+4Peer+1CLIFabric容器。

CLI啟動的時候,會運行scripts/script.sh文件,這個腳本文件包含了創建Channel,加入Channel,安裝Example02,運行Example02等功能。

 

六、測試代碼

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

首先進入CLI,然后重新打開一個命令行窗口,輸入:

docker exec -it cli bash

這時用戶為root@748dafdc900b,在/opt/gopath/src/github.com/hyperledger/fabric/peer目錄下,運行以下命令可以查詢a賬戶的余額:

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

如果在界面上看到了90表示正在運行chainchode鏈碼

CLI中測試Example02

首先我們需要登錄到CLI這個容器中,才能執行FabricCLI命令。

docker exec -it cli bash

如果成功進入,我們會切換到該容器的root用戶下,得到如下的命令行目錄:

root@5db681539c3c:/opt/gopath/src/github.com/hyperledger/fabric/peer#

 

鏈上代碼是需要經過InstallInstantiate兩步的。下面我們首先安裝Example02,並指定一個名字,比如我們這里就用devincc:

peer chaincode install -n devincc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02

 

測試成功

 


免責聲明!

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



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