Hyperledger Fabric 链码的介绍

什么是链码

chaincode 简称 链码,一般是用户使用go语言编写的应用代码。

链码被部署在 Fabric 网络节点上,运行在 Docker 容器中,并通过 gRPC 协议与相应的Peer节点进行交互,以操作分布式账本中的数据。

链码生命周期

Fabric提供了 package,install,instantiate, 和 upgrade 4个命令管理链码的生命周期。

通过 install 安装链码,通过 instantiate 实例化链码,然后可以通过 invoke 、query 调用链码和查询链码。

如果需要升级链码,则需要先 install 安装新版本的链码,通过 upgrade 升级链码。

在 install 安装链码前,可以通过 package 打包并签名生成打包文件,然后在通过 install 安装。

安装链码

peer chaincode install -n sacc -v 1.0 -p sacc

实例化链码

peer chaincode instantiate -n sacc -v 1.0 -c '{"Args":["john","0"]}' -P "OR ('Org1.member','Org2.member')"

调用链码

peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA -C mychannel -n mycc -c '{"Args":["invoke","a","b","10"]}'

查询链码

peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'

升级链码

# 安装新版本的链码
peer chaincode install -n mycc -v 1 -p path/to/my/chaincode/v1

# upgrade 升级链码
peer chaincode upgrade -n mycc -v 1 -c '{"Args":["d", "e", "f"]}' -C mychannel

打包链码和签名

# 打包链码
peer chaincode package -n mycc -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -v 0 -s -S -i "AND('OrgA.admin')" ccpack.out

# 对打包文件进行签名
peer chaincode signpackage ccpack.out signedccpack.out
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容