zoukankan      html  css  js  c++  java
  • 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)@群主

    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. 调用链码
    
  • 相关阅读:
    cnblog项目--20190309
    django js引入失效问题
    Python老男孩 day16 函数(六) 匿名函数
    Python老男孩 day16 函数(五) 函数的作用域
    Python老男孩 day15 函数(四) 递归
    Python老男孩 day15 函数(三) 前向引用之'函数即变量'
    Python老男孩 day15 函数(二) 局部变量与全局变量
    Python老男孩 day14 函数(一)
    Python老男孩 day14 字符串格式化
    Python老男孩 day14 集合
  • 原文地址:https://www.cnblogs.com/jockming/p/13295056.html
Copyright © 2011-2022 走看看