1. 程式人生 > 實用技巧 >Fabric1.4.1 etcdraft模式部署

Fabric1.4.1 etcdraft模式部署

Fabric etcdraft模式部署

配置要求

以下資訊僅供參考

  1. 系統環境(Centos 7.5)
  2. Docker版本(19.03.12)
  3. Docker-compose版本(1.24.0)
  4. Fabric版本(1.4.1): Source code(zip)
  5. Fabric工具版本: hyperledger-fabric-linux-amd64-1.4.1
  6. 私有域名伺服器(如果沒有的話則需要在節點啟動配置中新增extra_hosts)搭建可參考https://www.cnblogs.com/jockming/p/12970343.html
  7. 私有域名伺服器新增解析記錄(a記錄)的客戶端程式: minidns
  8. 需要專案部署檔案請進群(537487044)@群主

準備工作(所有主機)

# 進入home目錄,沒有就自行建立
cd /home

# 1. 各個節點安裝zip解壓工具
yum install -y unzip zip

# 2. 安裝dos2unix格式轉換工具(因為windows下的換行符與linux下的換行符不同)
yum install -y dos2unix

# 3. 安裝檔案上傳工具
yum install -y lrzsz

# 4. 新增域名伺服器地址(域名私服--目前只解析a記錄)
vim /etc/resolv.conf
#雲主機裡面原本的域名伺服器地址不要動,直接換行新增下面的這兩條記錄
#主DNS伺服器
nameserver 192.168.1.110
#備DNS伺服器(國內的)
nameserver 114.114.114.114
# 重啟網路管理器來重新整理配置
systemctl restart NetworkManager

# PS:注意.env檔案(環境變數配置)etcdraft模式下必須開啟tls

防火牆設定(可選操作,方便手動修改防火牆)

# 單獨新增
firewall-cmd --zone=public --permanent --add-port=22/tcp 

# 防火牆設定(根據實際情況修改埠)
firewall-cmd --zone=public --permanent --add-port=7050/tcp --add-port=7051/tcp --add-port=7053/tcp --add-port=8050/tcp --add-port=9050/tcp

# 重新載入
firewall-cmd --reload

# 檢視所有開放的埠
firewall-cmd --zone=public --list-ports

# 開啟開機啟動
systemctl enable firewalld

# 防火牆狀態
systemctl status firewalld

# 啟動防火牆
systemctl start firewalld

# 重啟防火牆
systemctl restart firewalld

# 關閉防火牆
systemctl stop firewalld

在fabric1上執行的操作 --- 192.168.1.111

# 1. 使用rz命令上傳部署檔案或者使用Filezilla客戶端上傳檔案
rz

# 2. 解壓指令碼並移除zip包
unzip fabric-etcdraft_1.4.1_Release.zip && rm -rf fabric-etcdraft_1.4.1_Release.zip

# 3. 可執行檔案賦權和指令碼格式轉換
chmod +x ./bin/* && chmod +x ./*.sh
dos2unix ./*.sh

# 4. 執行初始化環境的指令碼(如果拉取映象失敗請單獨執行指令碼[./docker_pull_fabric_images.sh])
./init_fabric_environment.sh

# 5. 執行免密登陸指令碼(節點配置在指令碼中)
./passwordless.sh

# 6. 執行配置生成指令碼(成員證書,創世區塊,通道配置,錨節點更新檔案)
./generate_config.sh

# 7. 返回到home目錄
cd /home

# 8. 壓縮配置準備分發到其他節點(如果使用tar的話:tar -cvf fabric-etcdraft.tar ./fabric-etcdraft/)
zip -r fabric-etcdraft_1.4.1_Release.zip ./fabric-etcdraft_1.4.1_Release/

# 9. 分發配置(由於前面執行了免密指令碼,這裡不用輸入密碼)
scp -r fabric-etcdraft_1.4.1_Release.zip [email protected]:/home
scp -r fabric-etcdraft_1.4.1_Release.zip [email protected]:/home

# 10. 啟動orderer0
docker-compose -f ./docker-compose-tld-orderer.yaml  up  -d orderer0.example.com

# 11. 啟動ca-org1
docker-compose -f ./docker-compose-tld-ca.yaml  up -d ca-org1

在fabric2上執行操作 --- 192.168.1.112

# 1. 進入home
cd /home

# 2. 解壓指令碼並移除zip包
unzip fabric-etcdraft_1.4.1_Release.zip && rm -rf fabric-etcdraft_1.4.1_Release.zip

# 3. 可執行檔案賦權和指令碼格式轉換
chmod +x ./bin/* && chmod +x ./*.sh
dos2unix ./*.sh

# 4. 執行初始化環境的指令碼(如果拉取映象失敗請單獨執行指令碼[./docker_pull_fabric_images.sh])
./init_fabric_environment.sh

# 5. 啟動orderer1
docker-compose -f ./docker-compose-tld-orderer.yaml  up -d orderer1.example.com

# 6. 啟動peer0org1
docker-compose -f ./docker-compose-tld-peer.yaml  up -d peer0.org1.example.com

在fabric3上執行操作 --- 192.168.1.113

# 1. 進入home
cd /home

# 2. 解壓指令碼並移除zip包
unzip fabric-etcdraft_1.4.1_Release.zip && rm -rf fabric-etcdraft_1.4.1_Release.zip

# 3. 可執行檔案賦權和指令碼格式轉換
chmod +x ./bin/* && chmod +x ./*.sh
dos2unix ./*.sh

# 4. 執行初始化環境的指令碼(如果拉取映象失敗請單獨執行指令碼[./docker_pull_fabric_images.sh])
./init_fabric_environment.sh

# 5. 啟動orderer2
docker-compose -f ./docker-compose-tld-orderer.yaml  up -d orderer2.example.com

# 6. 啟動peer1org1
docker-compose -f ./docker-compose-tld-peer.yaml  up -d peer1.org1.example.com

sdk互動

1. 將crypto-config目錄和channel-artifacts目錄打包下載到sdk的目錄中

2. 建立通道(節點加入通道,更新錨節點配置<可選>)

3. 節點安裝鏈碼和例項化鏈碼

4. 呼叫鏈碼