安裝hyperledger fabric V1.0.0-beta


 

安裝文檔位置:

https://github.com/hyperledger/fabric   fabric代碼托管地址

https://hyperledger-fabric.readthedocs.io/en/latest/  在線文檔地址

https://github.com/hyperledger/fabric/archive/v1.0.0.tar.gz fabric1.0.0源代碼包地址

 

安裝環境:

    Vmware + CentOS7 64位 1611版本

 

安裝前准備:

  • 安裝配置好虛擬機,需要保證curl命令可用
  • 關閉centos自動升級,免得安裝時提示yum被鎖定

即將/etc/yum/pluginconf.d/langpacks.conf 中的 enable=1改為enable=0

sed -i 's/enabled=1/enabled=0/g' /etc/yum/pluginconf.d/langpacks.conf
yum update
  • 使用yum install 安裝tree(方便查看目錄結構),git(用於下載代碼)
  • 安裝docker和docker-compose

     https://download.daocloud.io/  找到docker和docker-compose的安裝指導。我們選擇在線安裝根據指導執行命令即可。版本更新后指導也會更新,安裝時最好去網站上獲取最新的命令

     安裝docker

sudo yum install -y yum-utils
sudo yum-config-manager \
    --add-repo \
    https://download.daocloud.io/docker/linux/centos/docker-ce.repo
sudo yum install -y -q --setopt=obsoletes=0 docker-ce-17.03.1.ce*
sudo systemctl enable docker
sudo systemctl start docker
sudo service docker status

                   docker --version

                  輸出:Docker version 17.03.1-ce, build c6d412e

 

        安裝docker-compose

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

                 docker-compose --version

                 輸出:docker-compose version 1.12.0, build b31ff33

 

         使用阿里雲進行鏡像加速(如果能翻牆就不用加速了)

         https://dev.aliyun.com  注冊一個帳號。然后查看Docker Hub 鏡像站點。指導文檔寫的很清楚。拷貝其中的內容執行即可。內容如下:

          https后面的應該是你自己的鏡像地址

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://du8c1in9.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

 

  • 安裝nodejs和NPM(需要V6 LTS版本。不支持V7或者V8)

      https://nodejs.org   nodejs網站,可以下載安裝包進行安裝,這里下載了node-v6.11.0-linux-x64.tar.xz解壓包

      將這個包放到/opt/nodejs目錄下,當作安裝目錄

                進行解壓:

cd /opt
mkdir nodejs
cd nodejs
curl -o node-v6.11.0-linux-x64.tar.xz https://nodejs.org/dist/v6.11.0/node-v6.11.0-linux-x64.tar.xz
xz -d node-v6.11.0-linux-x64.tar.xz
tar -xvf node-v6.11.0-linux-x64.tar

                建立軟連接,后續替換版本方便

ln -s /opt/nodejs/node-v6.11.0-linux-x64/bin/node /usr/local/bin/node
ln -s /opt/nodejs/node-v6.11.0-linux-x64/bin/npm /usr/local/bin/npm

             也可以通過設置nodejs環境變量的方式,在/etc/profile文件的
             export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL 一行的上面添加如下內容:

#set for nodejs
export NODE_HOME=/opt/nodejs/node-v6.11.0-linux-x64
export PATH=$NODE_HOME/bin:$PATH

               升級NPM工具,刷新會很慢。但好像不執行也沒有什么問題

npm install npm@latest -g

 

  • 安裝go語句環境

      https://golang.org/dl/   go的主頁下載地址,可以到這里尋找最新版本

cd /opt
mkdir golang
cd golang curl
-O https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz tar -zxvf go1.8.3.linux-amd64.tar.gz
cd /opt
mkdir gopath

       在/etc/profile中配置go的環境變量

export GOROOT=/opt/golang/go
export PATH=$GOROOT/bin:$PATH
export GOPATH=/opt/gopath

       修改完source /etc/profile 刷新一下,使用 go version查看版本,也可以使用go env查看環境變量信息

 

下載fabric1.0.0源代碼: 

將源代碼下載gopath下,go get命令會將源代碼下載到/opt/gopath/src/github.com/hyperledger/fabric目錄下

go get github.com/hyperledger/fabric

 目錄結構如下:

 

下載fabric-sample鏡像並啟動:

       首先找一個目錄做為臨時安裝目錄,這里用的是/opt/fabricinstall.

       從剛才的源代碼目錄拷貝安裝腳本過來,並執行,運行腳本時,會下載一個bin目錄,里邊有后續部署時會用的工具

cp /opt/gopath/src/github.com/hyperledger/fabric/scripts/bootstrap-1.0.0-beta.sh /opt/fabricinstall/
cd /opt/fabricinstall/
sh bootstrap-1.0.0-beta.sh

 

     執行后就要開始等待鏡像下載了,下載完成后,可以用以下命令,查看下載的鏡像

docker images | grep hyperledger*

     用阿里鏡像很快裝完了,如果使用鏡像需要加上版本號,這里自動轉成了latest就不用輸入版本號了。所以每個鏡像都有兩行。

 

准備運行e2e_cli的例子

進入release目錄,嘗試啟動容器。cli會掛載一個代碼目錄,所以這里將代碼拷貝到對應目錄中。

cd /opt/fabricinstall/release/linux-amd64
./network_setup.sh up

 
如果容器已經生成了,可以使用如下命令清理后,在進行network_set.

docker stop $(docker ps -q) & docker rm $(docker ps -aq)

 

如果之前下載過別的版本的鏡像,可以使用如下命令進行清理

docker rmi -f $(docker images -q)

 

 

 

 

出現以下字樣,沒有報錯。估計是成功了。

 

     可以通過docker ps查詢啟動的容器,啟動前是沒有任何容器的。

      這個過程中會創建一個例子,並將需要的容器都拉起來

      可以看到看到啟動了三個mycc(系統給出的例子)  一個cli(工具) 一個orderer(選舉)  四個peer(客戶端)

      當然這個過程也可以手工進行,后續會專門寫一個文檔講解。

 

測試fabric功能

      使用./network_setup.sh up 啟動以后,再開一個shell窗口,通過cli進行一些相關的部署工作

      登錄容器

docker exec -it cli bash

     登錄成功后,會進入cli容器,顯示:

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

 

     需要執行install和Instantiate

     首先進行install

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

 

     接下來是Instantiate,也就是初始化實例,設置a賬戶有100元,b賬戶有200元。

peer chaincode instantiate -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem -C mychannel -n devincc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Args":["init","a", "100", "b","200"]}' -P "OR ('Org1MSP.member','Org2MSP.member')"

執行成功后,查一下a賬戶的余額

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

 

接下來a賬戶對b賬戶進行轉賬

 

轉賬成功后,查詢一下b賬戶的余額,應該是210。  (也可以將下面的參數改成a賬戶,余額應該是90)

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

 

fabric環境配置結束。

 

安裝過程涉及到了鏡像腳本,還有初始化的一些內容,會再開一個文檔進行探討。

 


免責聲明!

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



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