Fabric1.4.1 etcdraft模式部署
阿新 • • 發佈:2020-07-13
Fabric etcdraft模式部署
配置要求
以下資訊僅供參考
- 系統環境(Centos 7.5)
- Docker版本(19.03.12)
- Docker-compose版本(1.24.0)
- Fabric版本(1.4.1): Source code(zip)
- Fabric工具版本: hyperledger-fabric-linux-amd64-1.4.1
- 私有域名伺服器(如果沒有的話則需要在節點啟動配置中新增extra_hosts)搭建可參考https://www.cnblogs.com/jockming/p/12970343.html
- 私有域名伺服器新增解析記錄(a記錄)的客戶端程式: minidns
- 需要專案部署檔案請進群(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. 呼叫鏈碼