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

如何从Indy节点池中移除节点?Von-Network Docker部署场景

解决Indy节点池初始节点移除时的地址冲突错误

问题根源

你遇到的Node's nodestack addresses must be unique错误,是因为池启动时默认创建的4个初始节点,其IP/端口在账本中已被标记为唯一占用资源。当你尝试用相同IP/端口重新注册Node2并清空services时,账本的唯一性校验会触发错误。而新增的Node5无此问题,是因为它的地址在账本中没有被其他节点占用。

Indy账本不支持直接删除节点记录,只能通过修改节点信息将其标记为停用,同时要规避地址冲突。

正确的移除步骤

1. 确认Node2核心信息

通过indy-cli执行命令,获取Node2的验证密钥、BLS密钥等关键信息:

ledger node list

找到Node2对应的条目,记录下verkey(即<Node2-Verification-key>)、blskey和blskey_pop的值。

2. 执行修改节点交易(修正地址冲突)

使用Node2的Steward DID提交修改交易,将node_ip和client_ip改为无效的非冲突地址(比如0.0.0.0),同时清空services字段:

ledger node target=<Node2-Verification-key> alias=Node2 node_ip=0.0.0.0 node_port=9703 client_ip=0.0.0.0 client_port=9704 services= blskey=<node2-blskey> blskey_pop=<node2-blskey-pop> send=true

该操作会将Node2的地址标记为不可用,同时避开账本的地址唯一性校验。

3. 验证节点状态

再次执行ledger node list,确认Node2的node_ip和client_ip已更新为0.0.0.0,services为空,说明该节点已被标记为停用,其他节点会停止与它通信。

4. 清理Docker环境

最后在Docker中停止并移除Node2的容器,同时更新von-network的配置(若有自定义启动脚本),确保后续启动节点池时不再包含Node2:

# 停止Node2容器
docker stop indy_node2
# 删除Node2容器
docker rm indy_node2

注意事项

  • Indy账本中的节点记录无法彻底删除,只能通过标记为停用实现"移除"效果。
  • 初始节点的地址在池启动时就被账本锁定为唯一资源,修改时必须更换为无效地址,不能复用原IP/端口。
  • 操作前确保你拥有Trustee权限,且Node2的Steward DID已正确注册并拥有该节点的修改权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 11:16:23