You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在运行中的Hyperledger Fabric网络中新增orderer节点?

向运行中的Solo共识Hyperledger Fabric生产网络新增Orderer节点操作指南

注意:Solo本身是单节点测试用途共识,原生不支持多Orderer集群,新增节点前必须先将共识算法从Solo迁移为EtcdRaft,整个操作过程无需停机,可在线完成。

1. 前置准备

  • 所有操作建议先在和生产环境配置一致的测试环境完整执行一遍,验证无误后再操作生产网络
  • 提前使用现有Fabric CA签发新Orderer节点的证书材料,保证证书根信任链和现有Orderer组织证书完全一致
  • 备份现有Orderer节点的账本数据、配置区块、私钥证书,避免操作失误导致数据丢失
  • 确认所有Peer节点和现有Orderer节点运行状态正常,无堆积未完成的交易

2. 迁移系统通道共识为EtcdRaft

首先提取当前系统通道的最新配置区块,修改共识配置和Orderer节点列表:

  • 切换到操作客户端环境,配置好Orderer访问的环境变量,执行以下命令提取系统通道配置:
# 获取最新系统通道配置区块
peer channel fetch config config_block.pb -o <现有Orderer地址> -c <系统通道名称> --tls --cafile <Orderer根CA证书路径>
# 解码配置区块为JSON格式
configtxlator proto_decode --input config_block.pb --type common.Block --output config_block.json
jq .data.data[0].payload.data.config config_block.json > config.json
  • 修改config.json配置:将Orderer > ConsensusType > Type字段值从Solo改为etcdraft,同时在Consenters数组中补充现有Orderer和待新增Orderer的节点信息,包含服务地址、监听端口、TLS证书内容
  • 计算配置变更差值,生成配置更新交易并收集对应组织的管理员签名,提交到系统通道生效

配置生效后现有网络会自动切换为单节点EtcdRaft共识,原有交易处理逻辑不受影响

3. 启动新Orderer节点

  • 编写新Orderer节点的orderer.yaml配置文件,指定系统通道名称、现有Orderer集群地址、本地证书路径,将General > Bootstrapping Method设置为none,允许节点从现有集群同步区块数据
  • 启动新Orderer节点进程,启动后节点会自动从现有Orderer集群同步全量账本数据
  • 执行以下命令验证新节点运行状态,确认节点区块高度和现有Orderer节点一致:
    osnadmin channel list -o <新Orderer管理地址>:<管理端口> --ca-file <CA根证书路径> --client-cert <管理员客户端证书路径> --client-key <管理员客户端密钥路径>

4. 更新所有应用通道配置

  • 针对网络中已经创建的所有应用通道,重复步骤2的配置提取、修改、提交流程,将新Orderer节点的服务地址和TLS证书添加到应用通道的OrdererAddresses和Consenters列表中
  • 逐一验证所有应用通道在新Orderer节点上的区块高度和现有节点完全一致,执行几笔测试交易确认读写集生成、共识出块、账本同步逻辑正常

5. 生产环境校验

  • 临时关闭原有旧Orderer节点1-2分钟,测试网络是否可以正常提交交易、查询区块,确认EtcdRaft集群自动选主逻辑正常
  • 所有节点运行稳定24小时无异常后,清理临时生成的配置文件、签名交易文件

内容的提问来源于stack exchange,提问作者Aya Elhawary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 19:36:04