1. 程式人生 > >hyperledger fabric--1.1--kafka多機部署

hyperledger fabric--1.1--kafka多機部署

一、環境搭建

各個主機的配置情況:

每臺主機都需要先進行單機的區塊鏈部署,所以以下步驟適用於所有主機。

1、Docker-CE 安裝 1)安裝docker-ce step 1: 安裝必要的一些系統工具

#sudo yum install -y yum-utils device-mapper-persistent-data lvm2  

Step 2: 新增軟體源資訊

#sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  

Step 3: 更新並安裝 Docker-CE

#sudo yum makecache fast  
#sudo yum -y install docker-ce    
  1. 是否安裝成功
#docker --version

3)docker 啟動

#service docker start

4)docker 開機自啟動

#chkconfig docker on

2、Docker-compose 安裝 1)Compose 安裝

  #curl 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

2)是否安裝成功

  #docker-compose --version

3、Go語言安裝 1)下載解壓

#cd /opt
#mkdir golang
#cd golang
#curl -O https://www.golangtc.com/static/go/1.9.2/go1.9.2.linux-amd64.tar.gz
#tar -zxvf go1.9.2.linux-amd64.tar.gz
  1. 配置Go語言環境變數
#vi /etc/profile
export GOROOT=/opt/golang/go
export PATH=$GOROOT/bin:$PATH
export GOPATH=/opt/gopath

以上內容新增到/etc/profile後面

#source /etc/profile

3) 檢視版本

#go version

4)檢視環境變數

   #go env

4、git 安裝

yum install git

5、Fabric的安裝 1)Fabric的下載

#mkdir -p $GOPATH/src/github.com/hyperledger/
#cd $GOPATH/src/github.com/hyperledger/
#git clone https://github.com/hyperledger/fabric.git
#cd fabric
#git checkout v1.1.0

6、加速映象

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

7、下載映象

		#cd /opt/gopath/src/github.com/hyperledger/fabric/scripts
		#vim bootstrap.sh

在這裡插入圖片描述 (修改圖中的版本為1.1.0)

#./bootstrap.sh
#docker images

部映象截圖如下:

在這裡插入圖片描述

8、安裝gcc #yum install gcc

9、執行e2e_cli #cd /opt/gopath/src/github.com/hyperledger/fabric #make release #cd /opt/gopath/src/github.com/hyperledger/fabric/examples/e2e_cli #vim base/peer-base.yaml (將圈住的部分改為圖中所顯示的名稱) 在這裡插入圖片描述 # bash generateArtifacts.sh #./network_setup.sh up (出現ALL GOOD 即單機部署成功) 在這裡插入圖片描述 關閉網路 #./network_setup.sh down

二、多機部署

一、生成公私鑰、證書、創世區塊。 1) 切換到orderer.example.com這臺伺服器上

#cd /opt/gopath/src/github.com/hyperledger/fabric/examples/e2e_cli

# ./generateArtifacts.sh mychannel

2)生成的crypto-config和channel-artifacts使用scp命令拷貝到其它四臺電腦上的e2e_cli的目錄中,如:

#scp -r crypto-config [email protected] 	/opt/gopath/src/github.com/hyperledger/fabric/examples/e2e_cli
#scp -r channel-artifacts [email protected] /opt/gopath/src/github.com/hyperledger/fabric/examples/e2e_cli

二、編寫對應的配置檔案 配置檔案已經打包在該目錄下。

在這裡插入圖片描述

三、將對應的配置檔案傳送到對應的主機上

四、配置hosts檔案,將相應的域名加入到/etc/hosts 檔案內。 多點叢集的啟動

1)zookeeper是一個叢集外掛,所以了一單獨先啟動

#docker-compose -f docker-zk.yaml up -d 

其中-d 代表的是後臺執行的意思,如果要看日誌可以加 –-verbose 引數

上述命令在每一個含有zookeeper的主機進行。 2)kafka 啟動依賴於zk叢集,所以接下來進行kafka叢集的啟動。

 #docker-compose -f docker-kafka.yaml up -d
	同樣在每臺機器上啟動

3)orderer 排序服務啟動
#docker-compose -f docker-orderer.yaml up -d
	分別在每臺機器上啟動
4)peer 組織節點的啟動

#docker-compose -f docker-peer.yaml up -d 分別在每個節點上啟動

五、執行指令碼 啟動指令碼已在文件中備份 進入examplecli客戶端容器 #docker exec -it examplecli bash #./script001.sh 升級鏈碼: 首先在cli 下把需要升級的鏈碼進行安裝,安裝需要注意鏈碼的路徑,和版本號的變化,具體命令在多機啟動腳本里詳見。然後是升級命令。

#ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
#CORE_PEER_TLS_ENABLED=true

#peer chaincode upgrade -o orderer0.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 -v 2.0 -c '{"Args":["init"]}' -P "OR      ('Org1MSP.member','Org2MSP.member')"


驗證:
#peer chaincode invoke -o orderer0.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   -v 2.0 -c'{"Args":["setdigital","digital0","keyvalue","enya"]}'

如圖所示:

在這裡插入圖片描述