Fabric1.4.1 etcdraft模式部署
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)@群主
PS:注意要修改免密脚本中的服务器ip和密码
准备工作(所有主机)
# 进入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 root@192.168.1.112:/home
scp -r fabric-etcdraft_1.4.1_Release.zip root@192.168.1.113:/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. 调用链码