部署中间件
修改中间件配置文件
根据实际情况修改BROPTool\middleware-server目录下application.properties相应的配置项,其他配置默认即可。中间件所在服务器必须能访问到配置文件中的URL。
需要修改的项如下:
# BROP接入节点访问地址,根据实际环境选择其中一个
# 联调链No.02
api.nodeUrl=https://dev2node.brop.cn/
# 生产链
api.nodeUrl=https://node1.brop.cn/
# 专区链
api.nodeUrl=https://bronode.brop.cn/
# RocketMQ队列服务地址
api.rocketMQNamesrvAddr=[ip]:9876
# 加密机服务地址
api.hsmServer=http://[ip]:[port]
# mongodb的配置,填写账号密码,ip端口和数据库名
spring.data.mongodb.uri=mongodb://[ip]:[port]/[database_name]?connectTimeoutMS=300000&maxPoolSize=10
说明:建议合作方将MongoDB部署在高安全域中,并设置用户名和密码。
加入专区链需要添加如下配置
# 区块链类型
api.adapterChain=brochain-kuafu
# 专区编号,多个分区用英文字符“,”隔开,V4.6.0+配置时分区号可以不加“0x”。如0x000000000000047f000000005c7e384f00000000,0x000000000036c062000000005d381a3900000000
api.regionIds=regionId1,regionId2
加入联调链No.02需要添加如下配置
api.adapterChain=cita
筛选同步信息需要添加如下配置
说明:当contractFilter设置为true并且设置了有效的身份合约地址,中间件会只同步与该身份合约相关的合约信息,包括该身份合约的创建修改交易,该身份合约下的存证合约以及存证记录合约的创建交易等。如果contractFilter设置为false,则不过滤信息会同步所有合约。(专区链不配置以下项目)
api.contractFilter=true
api.accountAddress=身份合约地址1,身份合约地址2
如果contractFilter设置为true,但是身份合约地址配置错误,或者不配置,则会过滤掉所有合约
交易重试功能需要添加如下配置
# 是否开启交易重试验证,在关闭交易重试验证功能后,sendTxAndRetry接口将拒绝用户相关交易重试的请求,并返回相应的拒绝异常。
api.isTxRetryVerify=true
# 最大重试次数,一条交易重试次数到达该次数则置为无效,并不再重试
api.retryLimit=3
# 重试时间间隔
api.retryCorn=0/5 * * * * *
# 每次重试功能重试的交易数
api.retrySize=5
说明:用户在使用交易重试功能时,如果不想将区块链数据存储到数据库中,可以添加如下配置:
# 用于控制同步数据是否写入数据库,true为存储,false为不存储,中间件默认为true。
api.isSyncDataToDB=false
启动中间件
1.进入中间件文件夹
指令如下:
cd middleware-server
2.启动中间件服务middleware-server
指令如下:
bash start.sh
验证中间件服务是否正常
测试服务是否正常
指令如下:
curl HOST:PORT/block/getBlockNumberInfo.json
执行结果如下图所示,
说明:
chainBlockNumber
表示当前区块链最高块高度;dbBlockNumber
表示中间件已经同步区块链信息的块高度;diffBlockNumber
表示当前区块链最高块高度与中间件同步区块链信息的块高度差。高度差较大的情况下,发送交易上链需要的时间较长,建议等待中间件同步完成后(高度差为0)再执行上链业务。当前高度差较大时可使用下一章的同步工具完成快速同步。
查看中间件的版本信息
指令如下:
curl HOST:PORT/common/getVersion.json
执行结果如下图所示,
例如,
{"projectName":"middleware-server","version":"4.3.0"}
中间件,版本号4.3.0