Fisco Bcos v3.3.0 pro版本host网络模式多机集群部署流程

一、基础环境搭建

vmware两台虚拟机,系统为Ubuntu 22.04 LTS。实现在两台虚拟机上Fisco Bcos v3.3.0 pro版本host网络模式多机集群的部署。两台虚拟机需要有足够的磁盘空间,如50GB。

1.1 静态IP设置

为了方便两台虚拟机实现ssh通信,此处设置两台虚拟机的IP为静态IP,这里设置一台IP为192.168.145.163,另一台IP为192.168.145.164。具体步骤参考:vmware虚拟机配置ubuntu 18.04(20.04)静态IP地址

1.2 安装依赖

在两台虚拟机上执行以下依赖安装步骤:

1.2.1 安装官方依赖

按照官方文档:搭建Pro版区块链网络的步骤执行命令,安装所需依赖:

sudo apt-get update
sudo apt-get install -y curl docker.io docker-compose python3 wget

1.2.2 安装JDK

命令行执行:

sudo apt-get install openjdk-8-jdk

1.2.3 安装ssh服务并开启root用户登录

在两台机器安装ssh,开启ssh服务,并开启root用户登录,步骤参考文章:【安装SSH服务】ubuntu安装ssh以及开启root用户ssh登录

二、下载Pro版区块链构建工具BcosBuilder

在192.168.145.163机器上,执行命令:

# 创建操作目录
mkdir -p ~/fisco && cd ~/fisco

curl -#LO https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/FISCO-BCOS/FISCO-BCOS/releases/v3.3.0/BcosBuilder.tgz && tar -xvf BcosBuilder.tgz

# 安装构建工具依赖包
cd BcosBuilder && pip3 install -r requirements.txt

三、安装tars服务

此部分参考官方文档和文章:基于FiscoBcos v3.0.1 pro版的host网络模式集群环境搭建,官方文档没有host网络模式的示例,感谢原作者@fish1208的教程

3.0 配置权限模式

官方文档中写道:“若不需要使用权限,且链版本小于3.3,那么可以跳过本节”。由于我们的链的版本是3.3.0,所以需要配置权限模式。
在/fisco目录下执行以下命令:

# 创建操作目录
mkdir authGen && cd authGen 

curl -#LO https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/FISCO-BCOS/FISCO-BCOS/tools/get_account.sh && chmod u+x get_account.sh && bash get_account.sh

执行输出格式如下:

[INFO] Account Address   : 0x9aaf1908451e165542f6a30e4659c65740024893
[INFO] Private Key (pem) : accounts/0x9aaf1908451e165542f6a30e4659c65740024893.pem
[INFO] Public  Key (pem) : accounts/0x9aaf1908451e165542f6a30e4659c65740024893.pem.pub

记录下Account Address的内容,将~/fisco/BcosBuilder/pro/conf下的两个配置文件config-build-example.toml和config-deploy-example.toml中的auth_check设置为true,init_auth_address设置为上面Account Address的内容,如下图所示。
在这里插入图片描述
在这里插入图片描述

3.1 安装tars服务

以下操作均是在192.168.145.163机器上完成。

3.1.1 修改配置

修改~/fisco/BcosBuilder/docker/host/linux/framework下的配置文件docker-compose.yml,主要修改MYSQL_ROOT_PASSWORD字段、MYSQL_HOST字段INET字段。其中MYSQL_HOST字段设置为虚拟机IP地址192.168.145.163,INET字段设置为虚拟机网卡,可通过命令ip addr查看,如下图所示。
在这里插入图片描述

version: "3"
services:
  tars-mysql:
    image: mysql:5.6
    network_mode: "host"
    environment:
      MYSQL_ROOT_PASSWORD: "FISCO"
      MYSQL_TCP_PORT: 3310
    restart: always
    volumes:
      - ~/app/tars/framework-mysql:/var/lib/mysql
      - /etc/localtime:/etc/localtime

  tars-framework:
    image: tarscloud/framework:v3.0.1
    network_mode: "host"
    environment:
      MYSQL_HOST: "192.168.145.163"
      MYSQL_ROOT_PASSWORD: "FISCO"
      MYSQL_PORT: 3310
      REBUILD: "false"
      INET: ens33
      SLAVE: "false"
    restart: always
    volumes:
      - ~/app/tars/framework:/data/tars
      - /etc/localtime:/etc/localtime
    depends_on:
      - tars-mysql

修改~/fisco/BcosBuilder/docker/host/linux/node下的配置文件docker-compose.yml,修改内容和上述相似,主要是将INET字段修改为网卡,WEB_HOST字段修改为"http://{自己IP}:3000"。

version: "3"
services:
  tars-node:
    image: tarscloud/tars-node:latest
    network_mode: "host"
    environment:
      INET: ens33
      WEB_HOST: "http://192.168.145.163:3000"
    restart: always
    volumes:
      - ~/app/tars:/data/tars
      - /etc/localtime:/etc/localtime

3.1.2 创建/启动tars服务

在~/fisco/BcosBuilder/docker/host/linux/framework目录下
若是首次创建tars服务,需要执行命令:

sudo docker-compose up -d

若之前已经创建tars服务,执行命令开启tars服务:

sudo docker-compose start

服务器访问http://{自己IP}:3000,进入到tars管理页面,如图所示。
在这里插入图片描述
注意:若此处访问http://{自己IP}:3000无法进入tars管理页面,说明之前的配置有问题,一定要确保配置文件没问题,并且重新执行sudo docker-compose up -d命令。

3.1.3 安装tarsnode节点

为192.168.145.164机器安装tarsnode,在tars管理页面点击【运维管理】 -> 【节点管理】 -> 【自动安装节点】,填写节点IP:192.168.145.164、登录用户为root、密码为之前ssh设置的root用户的登录密码、运行用户为tars,点击确定。
在这里插入图片描述
点击【测试连通性】,若连接成功再点击【安装节点】,安装节点成功如图所示。
在这里插入图片描述
在这里插入图片描述
只有当节点管理中出现了192.168.145.164节点时,才算安装成功。此时在192.168.145.164机器上执行命令:

ps -ef | grep tars

可以看到tarsnode服务,如下图所示。
在这里插入图片描述

3.1.4 申请token

在tars管理页面进入到【admin】->【用户中心】->【token管理】申请一个token。

在这里插入图片描述

四、部署Pro版本区块链节点

4.1 下载二进制

进入~/fisco/BcosBuilder/pro目录,执行以下命令下载二进制:

python3 build_chain.py download_binary

4.2 修改配置文件

在~/fisco/BcosBuilder/pro目录下,执行以下命令复制toml配置文件:

cp conf/config-deploy-example.toml config.toml

修改此配置文件,主要修改tars_token为之前申请的token,以及各agency的IP地址等。

[tars]
tars_url = "http://127.0.0.1:3000"
tars_token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiJhZG1pbiIsImlhdCI6MTY4NTAwODI5MywiZXhwIjoxNzc5NzAyNjkzfQ.esAQ6xRfdon2iitpC98HkGHdV7RLYP9ZtTYxp69Yh34"
tars_pkg_dir = "binary/"

[chain]
chain_id="chain0"
# the rpc-service enable sm-ssl or not, default disable sm-ssl
rpc_sm_ssl=false
# the gateway-service enable sm-ssl or not, default disable sm-ssm
gateway_sm_ssl=false
# the existed rpc service ca path, will generate new ca if not configured
#rpc_ca_cert_path=""
# the existed gateway service ca path, will generate new ca if not configured
#gateway_ca_cert_path="

[[group]]
group_id="group0"
# the genesis configuration path of the group, will generate new genesis configuration if not configured
# genesis_config_path = ""
# VM type, now only support evm/wasm
vm_type="evm"
# use sm-crypto or not
sm_crypto=false
# enable auth-check or not
auth_check=true
init_auth_address="0x9aaf1908451e165542f6a30e4659c65740024893"

# the genesis config
# the number of blocks generated by each leader
leader_period = 1
# the max number of transactions of a block
block_tx_count_limit = 1000
# consensus algorithm now support PBFT(consensus_type=pbft)
consensus_type = "pbft"
# transaction gas limit
gas_limit = "3000000000"
# compatible version, can be dynamically upgraded through setSystemConfig
compatibility_version="3.3.0"

[[agency]]
name = "agencyA"
# enable data disk encryption for rpc/gateway or not, default is false
enable_storage_security = false
# url of the key center, in format of ip:port, please refer to https://github.com/FISCO-BCOS/key-manager for details
# key_center_url =
# cipher_data_key =

    [agency.rpc]
    deploy_ip=["192.168.145.163"]
    listen_ip="0.0.0.0"
    listen_port=20200
    thread_count=4

    [agency.gateway]
    deploy_ip=["192.168.145.163"]
    listen_ip="0.0.0.0"
    listen_port=30300
    peers=["192.168.145.163:30300", "192.168.145.164:30301"]

    [[agency.group]]
        group_id = "group0"
        [[agency.group.node]]
        node_name = "node0"
        deploy_ip = "192.168.145.163"
        # enable data disk encryption for bcos node or not, default is false
        enable_storage_security = false
        # url of the key center, in format of ip:port, please refer to https://github.com/FISCO-BCOS/key-manager for details
        # key_center_url =
        # cipher_data_key =
        monitor_listen_port = "3902"
        # monitor log path example:"/home/fisco/tars/framework/app_log/"
        monitor_log_path = ""

[[agency]]
name = "agencyB"
# enable data disk encryption for rpc/gateway or not, default is false
enable_storage_security = false
# url of the key center, in format of ip:port, please refer to https://github.com/FISCO-BCOS/key-manager for details
# key_center_url =
# cipher_data_key =

    [agency.rpc]
    deploy_ip=["192.168.145.164"]
    listen_ip="0.0.0.0"
    listen_port=20201
    thread_count=4

    [agency.gateway]
    deploy_ip=["192.168.145.164"]
    listen_ip="0.0.0.0"
    listen_port=30301
    peers=["192.168.145.163:30300", "192.168.145.164:30301"]

    [[agency.group]]
        group_id = "group0"

        [[agency.group.node]]
        node_name = "node0"
        deploy_ip = "192.168.145.164"
        # enable data disk encryption for bcos node or not, default is false
        enable_storage_security = false
        # url of the key center, in format of ip:port, please refer to https://github.com/FISCO-BCOS/key-manager for details
        # key_center_url =
        # cipher_data_key =
        monitor_listen_port = "3901"
        # monitor log path example:"/home/fisco/tars/framework/app_log/"
        monitor_log_path = ""

4.3 部署RPC服务、Gateway服务和区块链节点服务

该步骤若遇磁盘不足的情况,请扩容后重新执行命令。
在~/fisco/BcosBuilder/pro目录下,执行以下命令部署RPC服务:

python3 build_chain.py chain -o deploy -t rpc

RPC服务部署成功后可以在tars管理页面看到信息,如下图所示。
在这里插入图片描述

执行以下命令部署Gateway服务:

python3 build_chain.py chain -o deploy -t gateway

Gateway服务部署成功后可以在tars管理页面看到信息,如下图所示。
在这里插入图片描述

执行以下命令部署区块链节点服务:

python3 build_chain.py chain -o deploy -t node

区块链节点服务部署成功后可以在tars管理页面看到信息,如下图所示。
在这里插入图片描述

五、配置及使用控制台

在192.168.145.164机器配置及使用控制台。

5.1 下载控制台

在192.168.145.164机器下载控制台:

curl -#LO https://gitee.com/FISCO-BCOS/console/raw/master/tools/download_console.sh && bash download_console.sh

5.2 复制证书

通过scp命令将192.168.145.163机器~/fisco/BcosBuilder/pro/generated/rpc/chain0/agencyBBcosRpcService/192.168.145.164/sdk/目录下的证书拷贝到192.168.145.164服务器的~/fisco/console/conf目录下。
在这里插入图片描述
在~/fisco/BcosBuilder/pro/generated/rpc/chain0/agencyBBcosRpcService/192.168.145.164/sdk/目录下执行以下命令:

scp ca.crt cert.cnf sdk.crt sdk.key niu@192.168.145.164:~/fisco/console/conf

在这里插入图片描述

5.3 修改配置文件

在192.168.145.164机器~/fisco/console/conf目录下复制示例配置文件并重命名:

cp -n config-example.toml config.toml

修改config.toml内容如下(删掉peers中原有的“127.0.0.1:20200”,参考文章):

[network]
messageTimeout = "10000"
defaultGroup="group0"                            # Console default group to connect
peers=["127.0.0.1:20201"]                        # The peer list to connect

5.4 启动控制台

在192.168.145.164机器~/fisco/console目录下执行命令:

./start.sh

若控制台正确启动,则如图所示。
在这里插入图片描述
此时可以参考官方文档5.2和5.3的内容,进行查询或部署调用合约的操作了。

六、部署区块链节点监控服务(可选/报错未成功待解决

在192.168.145.163机器~/fisco/BcosBuilder/pro目录下执行命令:

sudo python3 build_chain.py chain -o deploy -t monitor

若中途出现ModuleNotFoundError: No module named 'toml’ModuleNotFoundError: No module named ‘requests_toolbelt’,可以执行以下命令安装:

sudo pip3 install toml
sudo pip3 install requests_toolbelt

执行后报错如下图所示,未能成功部署监控服务,问题待解决。
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值