运营CYBEX见证人节点 - CybexDex/cybex-node-doc GitHub Wiki
- 4核及以上
- 16GByte内存及以上
- 500G文件系统存储及以上(随时间变化可能需要增加)
- 10Mbit/s带宽及以上(随交易量增加可能需要增加)
- Linux操作系统(推荐使用Ubuntu最新发行版本)
- 系统基础库
- libcurl
- libssl
- openssl
- libcrypto
- 其他可能需要的库
# 建立运行目录
mkdir cybex; cd cybex
export CYBEX_ROOT=`pwd`
# 下载编译好的二进制程序映像
mkdir bin
wget https://github.com/CybexDEX/how-to-run-cybex-node/raw/master/bin/witness_node -O ${CYBEX_ROOT}/bin/witness_node
wget https://github.com/CybexDEX/how-to-run-cybex-node/raw/master/bin/cq_append_sbe -O ${CYBEX_ROOT}/bin/cq_append_sbe
wget https://github.com/CybexDEX/how-to-run-cybex-node/raw/master/bin/cq_sync_server -O ${CYBEX_ROOT}/bin/cq_sync_server
wget https://github.com/CybexDEX/how-to-run-cybex-node/raw/master/bin/cq_sync_client -O ${CYBEX_ROOT}/bin/cq_sync_client
# 下载genesis文件
wget https://raw.githubusercontent.com/CybexDEX/how-to-run-cybex-node/master/mainchain/genesis.json -O ${CYBEX_ROOT}/genesis.json
# 建立data目录并下载config.ini文件
mkdir -p ${CYBEX_ROOT}/data
wget https://raw.githubusercontent.com/CybexDEX/how-to-run-cybex-node/master/mainchain/config.ini -O ${CYBEX_ROOT}/data/config.ini
# 修改data/config.ini,将您提前注册好的witness-id和private-key配置到config.ini中
# 增加以下两行(去掉行首的#符号)
# witness-id = "1.6.X"
# private-key = ["your-signing-pubkey-in-base58-format", "your-signing-privkey-in-wif-format"]
# 建立每日数据目录(这个目录需要配置到后面的server.xml和client.xml文件中)
mkdir -p ${CYBEX_ROOT}/daily
# 建立CQ配置目录
mkdir -p ${CYBEX_ROOT}/config/cq
# 编辑${CYBEX_ROOT}/config/cq/server.xml文件
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<config>
<cq_path>full-path-to-your-daily-dir/${TODAY}/wn_in</cq_path>
<heartbeat_interval>1000</heartbeat_interval>
<connection name="name-of-local-endpoint" port="port-of-local-cq-server" passphrase="passphrase-of-local-cq-server"/>
</config>
# 编辑${CYBEX_ROOT}/config/cq/client.xml文件
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<config>
<cq_path>full-path-to-your-daily-dir/${TODAY}/wn_out</cq_path>
<heartbeat_interval>1000</heartbeat_interval>
<sleep_interval>5</sleep_interval>
<connection server="ip-of-rte-cq-server" port="port-of-rte-cq-server" passphrase="passphrase-of-rte-cq"/>
</config>
# 按UTC时间建立当日的CQ工作目录
export TODAY=`date -u +"%Y%m%d"`
mkdir -p ${CYBEX_ROOT}/daily/${TODAY}/wn_in
mkdir -p ${CYBEX_ROOT}/daily/${TODAY}/wn_out
mkdir -p ${CYBEX_ROOT}/daily/${TODAY}/wn_in_temp
mkdir -p ${CYBEX_ROOT}/daily/${TODAY}/logs
# 启动witness_node
${CYBEX_ROOT}/bin/witness_node --data-dir=${CYBEX_ROOT}/data --out-dir=${CYBEX_ROOT}/daily/${TODAY}/wn_out --in-dir=${CYBEX_ROOT}/daily/${TODAY}/wn_in --genesis-json=${CYBEX_ROOT}/genesis.json --plugins "witness"
# 启动cq_sync_server
${CYBEX_ROOT}/bin/cq_sync_server ${CYBEX_ROOT}/config/cq/server.xml
# 启动cq_sync_client
${CYBEX_ROOT}/bin/cq_sync_client ${CYBEX_ROOT}/config/cq/client.xml
每个交易日换日时,需要重启cq。推荐使用crontab系统定时任务来操作交易日换日。需要在utc时间每天00:00后执行,推荐每日00:01执行此脚本
换日脚本如下
#!/bin/bash
export CYBEX_ROOT='your path to root dir of witness node'
export YESTERDAY=`date -u -d "24 hours ago" +"%Y%m%d"`
export TODAY=`date -u +"%Y%m%d"`
mkdir -p ${CYBEX_ROOT}/daily/${TODAY}/wn_in
mkdir -p ${CYBEX_ROOT}/daily/${TODAY}/wn_out
mkdir -p ${CYBEX_ROOT}/daily/${TODAY}/wn_in_temp
mkdir -p ${CYBEX_ROOT}/daily/${TODAY}/logs
${CYBEX_ROOT}/bin/cq_append_sbe ${CYBEX_ROOT}/daily/${YESTERDAY}/wn_in \
script sod ${CYBEX_ROOT}/daily/${TODAY}/wn_in ${CYBEX_ROOT}/daily/${TODAY}/wn_out
sleep 3
ps auxwww | grep `whoami` | egrep "cq_sync_server" | grep -v grep | awk '{print "kill -9 "$2}' | sh
ps auxwww | grep `whoami` | egrep "cq_sync_client" | grep -v grep | awk '{print "kill -9 "$2}' | sh
sleep 10
nohup ${CYBEX_ROOT}/bin/cq_sync_server ${CYBEX_ROOT}/config/cq/server.xml \
>${CYBEX_ROOT}/daily/${TODAY}/logs/cq_sync_server.log 2>&1 &
nohup ${CYBEX_ROOT}/bin/cq_sync_client ${CYBEX_ROOT}/config/cq/client.xml \
>${CYBEX_ROOT}/daily/${TODAY}/logs/cq_sync_client.log 2>&1 &
在一些特定情况下(例如链上操作升级),运营方需要配合社区进行节点升级工作。
安装监控插件,监控节点出块和系统运行情况
- 下载zabbix_install.sh(接入时提供下载方式)
- 执行zabbix_install.sh
- 停止 cq和witnessnode (慎用kill -9)
- 替换程序
- 启动 cq和witnessnode
- 核对区块和其他数据及状态是否一致健康
- 开放5000端口给所有见证人节点(接入时提供见证人节点列表)
- 开放CQ端口给RTE服务器
- 封闭其他所有端口
- 中国大陆推荐使用阿里云
- 海外及港澳台推荐使用aws