1. 安装依赖
sudo yum install -y curl docker docker-compose python3 python3-devel
2. 下载Pro版区块链构建工具BcosBuilder
# 创建操作目录 mkdir -p ~/fisco && cd ~/fisco # 下载Pro版区块链构建工具BcosBuilder curl -#LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v3.0.0-rc1/BcosProBuilder.tgz && tar -xvf BcosProBuilder.tgz # 安装构建工具依赖包 cd BcosProBuilder && pip3 install -r requirements.txt
3. 安装、启动并配置tars服务
3.1 安装/启动tars服务
#启动docker :
systemctl start docker
# 进入BcosProBuilder目录 cd ~/fisco/BcosProBuilder # Note: 这里需要保证docker服务处于启动状态 # linux系统:进入到docker配置文件路径 cd docker/host/linux/framework # 配置MYSQL密码,这里假设密码设置为FISCO # linux系统(macOS系统可跳过本步骤) sed -i 's/MYSQL_ROOT_PASSWORD: ""/MYSQL_ROOT_PASSWORD: "FISCO"/g' docker-compose.yml #把IP 172.25.0.3修改成真实的公网IP,例如:MYSQL_HOST: "122.9.111.111"、WEB_HOST的IP vi docker-compose.yml vi ../node/docker-compose.yml # 创建并启动tars管理服务(这一步下载镜像比较慢,预计需要30分钟左右) docker-compose up -d
# 调用成功之后,等待2分钟(不要做任何操作),2分钟之后,查看端口情况
netstat -nlt | grep 3
#查看有3000端口,这样tars安装成功
#浏览器打开tars浏览器管理窗口
4. 部署Pro版本区块链节点
Pro版本FISCO BCOS包括RPC服务、Gateway服务以及区块链节点服务BcosNodeService。
- RPC服务负责接收客户端请求,并将请求转发到节点进行处理, RPC服务可横向扩展,一个RPC服务可接入多个区块链节点服务
- Gateway服务负责跨机构区块链节点之间的网络通信,Gateway服务横向可扩展,一个Gateway服务可接入多个区块链节点服务
- 区块链节点服务BcosNodeService提供区块链相关的服务,包括共识、执行、交易上链等,节点服务通过接入到RPC服务和Gateway服务获取网络通信功能。每一个BcosNodeService表示一个群组,可以部署多个BcosNodeService扩展多群组。
关于Pro版本FISCO BCOS的总体架构设计可参考这里。
本章以在单机上部署2机构2节点区块链服务为例,介绍Pro版本FISCO BCOS搭建部署流程,对应的服务组网模式如下:
注解
- 如果没有申请token,请参考【3.2 配置tars服务】申请token
- 如果忘记了访问tars服务的token,可通过tars网页管理平台的【admin】->【用户中心】->【token管理】获取token列表
- 部署Pro版本区块链节点之前,请先确保您的tars服务是启动的状态,安装/启动和配置tars服务请参考3.2节
4.1 下载二进制
构建Pro版本FISCO BCOS前,需要先下载二进制包,BcosProBuilder
的提供了基于linux的静态二进制包下载功能,可部署到tarsnode
中,下载最新二进制的命令如下:
# 进入操作目录 cd ~/fisco/BcosProBuilder # 运行build_chain.py脚本下载二进制,二进制包默认下载到binary目录 python3 build_chain.py download_binary
4.2 部署RPC服务
在建链工具BcosProBuilder目录,执行如下命令,可部署并启动2机构RPC服务,对应的RPC服务名分别为agencyABcosRpcService
和agencyBBcosRpcService
,ip均为192.168.0.15
,占用的监听端口分别为20200
和20201
(进行本操作前,请确保机器的20200
和20201
端口没被占用)。
# 进入操作目录 cd ~/fisco/BcosProBuilder # 从conf目录拷贝配置 cp conf/config-deploy-example.toml config.toml
此时拷贝的config.toml
为整个BcosBuilder
使用的配置文件,配置详情请参考链接:配置介绍。
# 将步骤3.2生成的token配置到config.toml的tars_token字段 # 这里生成的token,实际使用时,请替换为实际申请的token # linux系统(macOS系统跳过本步骤): sed -i 's/tars_token = ""/tars_token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiJhZG1pbiIsImlhdCI6MTYzODQzMTY1NSwiZXhwIjoxNjY3MjAyODU1fQ.430ni50xWPJXgJdckpOTktJB3kAMNwFdl8w_GIP_3Ls"/g' config.toml #部署并启动RPC服务 python3 build_chain.py chain -o deploy -t rpc
4.3 部署Gateway服务
RPC服务部署完成后,需要再部署Gateway服务,用于建立机构之间的网络连接。在建链工具BcosProBuilder目录下,执行如下命令,可部署并启动2机构Gateway服务,对应的Gateway服务名分别为agencyABcosGatewayService
和agencyBBcosGatewayService
,ip均为192.168.0.15
,占用的端口分别为30300
和30301
(进行本操作前,请确保机器的30300
和30301
端口没被占用)。
# 进入操作目录 cd ~/fisco/BcosProBuilder # 部署并启动Gateway服务 python3 build_chain.py chain -o deploy -t gateway
4.4 部署区块链节点服务
RPC服务和Gateway服务均部署完成后,可部署区块链节点服务。在建链工具BcosProBuilder目录下,执行如下命令,可部署并启动2机构2节点区块链服务,对应的服务名分别为groupnode00BcosNodeService
和groupnode10BcosNodeService
,链ID均为chain
,群组ID均为group
。
# 进入操作目录 cd ~/fisco/BcosProBuilder # 部署并启动区块链节点服务 python3 build_chain.py chain -o deploy -t node
5. 配置及使用控制台
控制台同时适用于Pro版本和Air版本的FISCO BCOS区块链,且在体验上完全一致。Pro版本区块链体验环境搭建完毕后,可配置并使用控制台向Pro版本区块链发送交易。
#centos系统安装java sudo yum install -y java java-devel
5.2 下载、配置并使用控制台
步骤1:下载控制台
cd ~/fisco && curl -LO https://github.com/FISCO-BCOS/console/releases/download/v3.0.0-rc1/download_console.sh && bash download_console.sh
- 备注:如果因为网络问题导致长时间无法下载,请尝试
- cd ~/fisco && curl -#LO https://gitee.com/FISCO-BCOS/console/raw/master/tools/download_console.sh
-
bash download_console.sh
配置控制台证书
# 最新版本控制台使用如下命令拷贝配置文件 cp -n console/conf/config-example.toml console/conf/config.toml
# 拷贝证书文件
cp -r BcosProBuilder/generated/rpc/chain/192.168.0.15/agencyBBcosRpcService/sdk/* console/conf
步骤3:启动并使用控制台
cd ~/fisco/console && bash start.sh
# 在控制台输入以下指令 部署成功则返回合约地址 [group]: /> deploy HelloWorld transaction hash: 0x0fe66c42f2678b8d041624358837de34ac7db195abb6f5a57201952062190590 contract address: 0x6849F21D1E455e9f0712b1e99Fa4FCD23758E8F1 currentAccount: 0x537149148696c7e6c3449331d77ddfaabc3c7a75 #如果报错:deploy contract failed for get response failed, errorCode: -4008, error message: waiting for message response timed out, #则重启一下tars, 命令: cd /root/fisco/BcosProBuilder/docker/host/linux/framework docker-compose stop docker-compose start # 查看当前块高 [group]: /> getBlockNumber 1
# 调用get接口获取name变量,此处的合约地址是deploy指令返回的地址 [group]: /> call HelloWorld 0x6849F21D1E455e9f0712b1e99Fa4FCD23758E8F1 get --------------------------------------------------------------------------------------------- Return code: 0 description: transaction executed successfully Return message: Success --------------------------------------------------------------------------------------------- Return value size:1 Return types: (string) Return values:(Hello, World!) --------------------------------------------------------------------------------------------- # 查看当前块高,块高不变,因为get接口不更改账本状态 [group]: /> getBlockNumber 1 # 调用set方法设置name [group]: /> call HelloWorld 0x6849F21D1E455e9f0712b1e99Fa4FCD23758E8F1 set "Hello, FISCO BCOS" transaction hash: 0x2f7c85c2c59a76ccaad85d95b09497ad05ca7983c5ec79c8f9d102d1c8dddc30 --------------------------------------------------------------------------------------------- transaction status: 0 description: transaction executed successfully --------------------------------------------------------------------------------------------- Receipt message: Success Return message: Success Return value size:0 Return types: () Return values:() --------------------------------------------------------------------------------------------- Event logs Event: {} # 查看当前块高,因为set接口修改了账本状态,块高增加到2 [group]: /> getBlockNumber 2 # 退出控制台 [group]: /> exit