部署场景
- 适用于生产环境等,推荐4节点,其中一个节点可容错。
1. 环境需求
- 操作系统:CentOS 7.5 或 Ubuntu 20+
- 硬件配置:8核CPU、16GB内存、500GB硬盘
2. 准备工作
- 下载BubiChain安装包: 发送邮件到 support@bubi.cn 获取最新版本的 BubiChain 安装包。
- 申请节点证书
3. 开始部署
3.1. 解压安装包
$ tar xf bubichain-v4.tar.gz -C /usr/local
$ mv /usr/local/bubichain/ /usr/local/bubi/
3.2. 创建账户
分别在4个节点上执行以下命令来创建账户:
$ cd /usr/local/bubi/
$ ./bin/bubi --create-account ed25519
3.3. 配置文件修改
分别编辑4个节点的/usr/local/bubi/config/bubi.json
,更新对应生成的如下字段:
-
p2p.address
和p2p.node_private_key
为P2P账户的地址和私钥 -
ledger.validation_address
和ledger.validation_private_key
为验证账户的地址和私钥 -
genesis.account
为创世纪账户的地址 -
known_peers
列表为所有节点的IP和P2P端口-
配置文件示例,只显示修改部分:
// 省略内容...
"p2p": {
"network_id": 12345678,
"address": "adxSggi9WECzaaJNGtN1m6BAVP3P64DdCLCjs",
"node_private_key": "1724aa163b4660729eab040c989acff071ccefa2ab0c372d9518e5dbde5d026a4b933d4f9b7828e4920effe5a9393b7fdacbf7285db840ed0050001e77916e4f",
"ssl": {
"cert_type": "rsa",
"chain_file": "config/node_bubi.crt",
"private_key_file": "config/node_bubi.pem",
"private_password": "67e2a4fa7e39c55f9e7b1234ccba0827",
"dhparam_file": "config/dh2048.pem",
"verify_file": "config/ca.crt"
// 省略内容...
"known_peers":[
"192.168.1.1:9333",
"192.168.1.2:9333",
"192.168.1.3:9333",
"192.168.1.4:9333"
]
// 省略内容...
"ledger": {
"validation_address": "adxSBC9QWrTfZjxjnPjKEF5LHGHYCpZ9BDdDF",
"validation_private_key": "66e6ba7d7006d8f0eafa1a471da313fb1ba2798c9968f703f925777d2e4e5cf2c5c19cec25b6f9b4bc112ec137d1fdb0283d98c6b5b8c3756ecf4a2ba78f36e0",
// 省略内容...
"genesis": {
"chain_id": 0,
"account": "adxSp1X4V7hXDDRBKHL6U21CpbPhki7YqjuUd",
// 省略内容...
"validators":[
"111SBC9QWrTfZjxjnPjKEF5LHGHYCpZ9BDdDF",
"222SBC9QWrTfZjxjnPjKEF5LHGHYCpZ9BDdDF",
"333SBC9QWrTfZjxjnPjKEF5LHGHYCpZ9BDdDF",
"444SBC9QWrTfZjxjnPjKEF5LHGHYCpZ9BDdDF"
// 省略内容...
-
3.4. 配置证书
提示
重要提示:除了共享同一份ca根证书之外, 每个节点都应当使用各自独立生成的节点证书以及对应的证书签名请求(CSR)文件。这意味着,对于这四个节点,每个节点的node_bubi.crt
(节点证书)和node_bubi.csr
(证书申请文件)都是独一无二的,以确保各节点间的通信安全与认证独立。
# 分别在4个节点主机上执行:
$ cp -r ca.crt node_bubi.crt node_bubi.pem node_bubi.csr /usr/local/bubi/config
3.5. 启动服务
分别在4个节点上执行:
$ cd /usr/local/bubi/
$ ./scripts/bubi start
3.6. 验证状态
分别在4个节点上执行:
检查服务端口
$ netstat -tpnl | grep bubi
查询区块高度
$ curl localhost:19333/getLedger
# 如果 seq 值随时间(1分钟)递增,则表示部署成功。