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
- 是否安裝成功
#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
- 配置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"]}'
如圖所示: