聯盟鏈搭建
我是在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)
進入到~/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+1CLI的Fabric容器。 在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這個容器中,才能執行Fabric的CLI命令。 docker exec -it cli bash 如果成功進入,我們會切換到該容器的root用戶下,得到如下的命令行目錄: root@5db681539c3c:/opt/gopath/src/github.com/hyperledger/fabric/peer#
鏈上代碼是需要經過Install和Instantiate兩步的。下面我們首先安裝Example02,並指定一個名字,比如我們這里就用devincc: peer chaincode install -n devincc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02
測試成功 |