美文网首页Fabric
Hyperledger Fabric 链码的介绍

Hyperledger Fabric 链码的介绍

作者: xiaohao204 | 来源:发表于2018-04-01 23:49 被阅读22次

    什么是链码

    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
    

    相关文章

      网友评论

        本文标题:Hyperledger Fabric 链码的介绍

        本文链接:https://www.haomeiwen.com/subject/bavzcftx.html