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. 调用链码
    
  • 相关阅读:
    git 常用命令
    flask汇总
    flask自定义转换器
    css,js,jquery的载入方式和属性控制
    python import xx和from xx import x 中的坑
    CPython中的GIL
    python装饰器的参数传递
    python函数中的参数(关键字参数,默认参数,位置参数,不定长参数)
    python 闭包
    Java数据类型和对象的引用
  • 原文地址:https://www.cnblogs.com/jockming/p/13295056.html
Copyright © 2011-2022 走看看