当前位置: 代码网 > 服务器>服务器>Linux > Fabric链码安装成功却实例化失败,如何排查?

Fabric链码安装成功却实例化失败,如何排查?

2025年03月30日 Linux 我要评论
hyperledger fabric链码实例化失败:安装成功,但实例化报错在hyperledger fabric开发中,链码安装和实例化是两个关键步骤。本文分析一个链码安装成功但实例化失败的案例,错误

fabric链码安装成功却实例化失败,如何排查?

hyperledger fabric链码实例化失败:安装成功,但实例化报错

在hyperledger fabric开发中,链码安装和实例化是两个关键步骤。本文分析一个链码安装成功但实例化失败的案例,错误提示为“chaincode registration failed: container exited with 0”。

问题根源: 问题并非链码逻辑错误。示例链码的init方法故意返回错误shim.error("hello")。安装阶段仅部署链码,不会执行init方法,因此安装成功。但实例化阶段会执行init方法,错误返回导致实例化失败。用户日志显示链码安装成功,实例化失败并返回500错误码。

错误解决方案: 用户提供的解决方案——修改/lib/systemd/system/docker.service文件并添加--dns参数——是调整docker dns配置,解决docker容器网络访问问题,与链码init方法返回错误无关。此操作针对kubernetes集群环境下的docker网络配置,并非链码本身问题。

正确解决方案: 链码实例化失败的根本原因是init函数返回了错误shim.error("hello")。 解决方法是修改init函数,使其返回成功响应:

func (t *simplechaincode) init(stub shim.chaincodestubinterface) pb.response {
    return shim.success(nil) // 或返回其他成功信息
}
登录后复制

修改后,重新打包、安装和实例化链码即可解决问题。 用户修改docker dns的方案可能解决了其环境中的其他网络问题,但这与链码实例化失败是两个独立事件。

以上就是fabric链码安装成功却实例化失败,如何排查?的详细内容,更多请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com