关于Corda网络替换Network Map及Notary集群的技术方案问询
Corda网络基础设施变更方案的可行性分析与关键技术要点
咱们先拆解下你这套Corda网络基础设施变更方案——整体来说是可行的,但有不少关键技术细节必须落实到位,不然容易出现网络中断或者数据不一致的问题。下面给你详细分析:
方案可行性概述
替换Network Map(NMS)和RAFT共识的Notary集群是Corda官方支持的操作,尤其是你选择**从零部署新服务(不复用旧数据)**的方式,虽然会带来短暂的全网停机,但只要步骤执行正确,不会影响已上链的交易账本数据(因为账本数据存储在各个节点本地,与NMS/Notary的服务数据相互独立)。
关键技术要点
1. 节点停机的顺序与状态确认
- 停止节点前,必须确保所有节点没有正在处理的交易(包括Notary的签名请求),避免出现半完成的交易导致账本不一致。
- 推荐停机顺序:先停止4个业务节点,再停止另外两个保留的Notary集群,最后停止旧NMS和notaryCluster one。
- 每个节点停止后,用
corda node status命令确认节点已完全下线,没有残留的活跃进程。
2. node.conf配置修改的准确性
所有节点的配置文件必须同步更新,核心修改点:
- Network Map地址:找到
networkMapService字段,替换为新NMS的完整URL(例如:"https://new-nms-server:8080") - Notary配置:如果notaryCluster one是默认Notary或业务流程依赖它,需更新
notary字段下的对应集群信息,替换为新Notary的服务地址和公钥;多Notary场景下,要移除旧notaryCluster one的配置条目,避免节点尝试连接下线服务。 - 配置修改后,用
corda node validate-config命令验证每个节点的配置文件语法正确,避免启动失败。
3. 新服务的初始化配置要求
- 新NMS的网络参数:必须与旧网络的
networkParameters完全一致,包括最小平台版本、最大交易大小、有效Notary列表(保留新notaryCluster one和另外两个原Notary)等。参数不一致会导致节点无法加入新网络。 - 新RAFT Notary集群:保持集群节点数为奇数(与原集群一致,比如3个),确保RAFT共识能正常达成;集群内所有节点的
notary配置需指定正确的raft参数(集群ID、成员节点列表)。 - 新服务启动后,先验证NMS能正常接收节点注册,用
corda notary status确认新Notary集群的共识状态正常。
4. 补全第4步:节点重启与注册验证
这是你方案中缺失的关键步骤:
- 重启顺序:先启动新NMS和新notaryCluster one,确认服务稳定后,再逐个启动另外两个原Notary集群,最后启动4个业务节点。
- 每个节点启动后,查看日志确认出现
Registered with network map service的成功日志,没有注册失败或连接错误。 - 验证原Notary集群能成功连接新NMS,在NMS的节点列表中能正常显示这些节点。
5. 账本一致性与业务验证
- 所有节点启动完成后,执行测试交易,验证新Notary能正常处理签名请求,业务节点之间能正常发起和确认交易。
- 用
corda node verify-ledger命令验证每个节点的账本完整性,确认停机前后的账本数据一致,没有损坏或丢失。
6. 回滚预案准备
- 备份所有节点的原始
node.conf文件,以及旧NMS和notaryCluster one的服务数据(即使计划不复用,备份能在紧急情况下快速恢复)。 - 提前制定回滚步骤:若新服务出现问题,立即切换回旧配置,重启旧NMS和notaryCluster one,再依次重启其他节点。
内容的提问来源于stack exchange,提问作者Javier Garcia Lozano
相关产品推荐
相关产品推荐

