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

Hyperledger Fabric商业票据链码更新报错求助

问题根源与解决方案

你遇到的这个错误,核心原因是你用了旧链码生命周期的upgrade命令,但你的通道已经切换到新的链码生命周期(Lifecycle)模式——新生命周期下,负责旧流程的LSCC(链码生命周期系统链码)会被设置为只读,不再处理upgrade这类旧命令的请求。

为什么不需要用peer chaincode upgrade?

在新链码生命周期中,根本没有upgrade这个命令!你已经完成的三步操作:

  • peer lifecycle chaincode install(安装新版本链码)
  • peer lifecycle chaincode approveformyorg(双方组织审批新版本)
  • peer lifecycle chaincode commit(提交新版本到通道)

这一套流程已经完成了链码版本的更新,相当于旧生命周期里的upgrade操作。你额外执行旧的upgrade命令,反而会触发LSCC的只读限制,导致报错。

正确的后续操作

  1. 验证链码版本是否提交成功
    执行以下命令查看通道上已提交的链码信息:

    peer lifecycle chaincode querycommitted -C mychannel -n papercontract
    

    如果输出里显示版本为0.4,说明你的链码已经成功更新到新版本了。

  2. 测试链码功能
    可以通过调用链码来验证新版本是否正常工作,比如执行查询或调用命令:

    # 示例查询命令
    peer chaincode query -C mychannel -n papercontract -c '{"Args":["queryAllCommercialPaper"]}'
    

关键提醒

新链码生命周期的流程逻辑和旧版本完全不同:

  • 旧流程:install -> instantiate -> upgrade
  • 新流程:install -> approveformyorg -> commit(每次更新版本都重复这三步,不需要单独的upgrade步骤)

以后更新链码时,直接走新生命周期的三步流程即可,不要再使用旧的instantiate或upgrade命令。

内容的提问来源于stack exchange,提问作者Петр

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 09:42:33