赞
踩
vmware两台虚拟机,系统为Ubuntu 22.04 LTS。实现在两台虚拟机上Fisco Bcos v3.3.0 pro版本host网络模式多机集群的部署。两台虚拟机需要有足够的磁盘空间,如50GB。
为了方便两台虚拟机实现ssh通信,此处设置两台虚拟机的IP为静态IP,这里设置一台IP为192.168.145.163,另一台IP为192.168.145.164。具体步骤参考:vmware虚拟机配置ubuntu 18.04(20.04)静态IP地址。
在两台虚拟机上执行以下依赖安装步骤:
按照官方文档:搭建Pro版区块链网络的步骤执行命令,安装所需依赖:
sudo apt-get update
sudo apt-get install -y curl docker.io docker-compose python3 wget
命令行执行:
sudo apt-get install openjdk-8-jdk
在两台机器安装ssh,开启ssh服务,并开启root用户登录,步骤参考文章:【安装SSH服务】ubuntu安装ssh以及开启root用户ssh登录。
在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
此部分参考官方文档和文章:基于FiscoBcos v3.0.1 pro版的host网络模式集群环境搭建,官方文档没有host网络模式的示例,感谢原作者@fish1208的教程。
官方文档中写道:“若不需要使用权限,且链版本小于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的内容,如下图所示。
以下操作均是在192.168.145.163机器上完成。
修改~/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
在~/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命令。
为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服务,如下图所示。
在tars管理页面进入到【admin】->【用户中心】->【token管理】申请一个token。
进入~/fisco/BcosBuilder/pro目录,执行以下命令下载二进制:
python3 build_chain.py download_binary
在~/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 = ""
该步骤若遇磁盘不足的情况,请扩容后重新执行命令。
在~/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机器配置及使用控制台。
在192.168.145.164机器下载控制台:
curl -#LO https://gitee.com/FISCO-BCOS/console/raw/master/tools/download_console.sh && bash download_console.sh
通过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
在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
在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
执行后报错如下图所示,未能成功部署监控服务,问题待解决。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。