美文网首页
系统链码(更新中...)

系统链码(更新中...)

作者: 天地一小儒 | 来源:发表于2019-06-05 10:02 被阅读0次

    1. 名词解释及源码路径

    Hyperledger Fabric v1.4提供了各种称为系统链码的特殊链码,用于执行某些特权任务。本文的目标是提供Fabric中各种系统链代码的实现,功能和用法的指示。与用户链码一样,系统链码也实现了InitInvoke函数。Fabric有五个系统链码,如下所示:

    • Configuration System Chaincode (CSCC) -- core/scc/cscc/configure.go Life
    • Cycle System Chaincode (LSCC) -- core/scc/lscc/lscc.go
    • Query System Chaincode (QSCC) -- core/scc/qscc/query.go
    • Endorser System Chaincode (ESCC) -- core/scc/escc/endorser_onevalidsignature.go
    • Validator System Chaincode (VSCC) -- core/scc/vscc/validator_onevalidsignature.go

    接下来,我们将介绍每个系统链码提供的功能以及用法。请注意,我们可能无法使用命令行(CLI)轻松调用/查询系统链码支持的所有函数,因为我们可能需要传递golang结构的某些序列化protobuf字节。因此,对于此类功能,建议使用SDK。在本文中,我们仅使用CLI对适用的函数执行invoke / query。

    2. Configuration System Chaincode Configer(CSCC) ——配置系统链码

    链码CSCC提供了在重新配置网络时管理配置事务的功能。 配置事务从订购服务到达提交者调用此链码。 链码还提供peer节点配置服务,例如加入链或获取配置数据。

    CSCC管理关于对等和进程信道配置事务的信道相关信息。它提供以下五个功能:(i)JoinChain,(ii)GetConfigBlock,(iii)GetChannels,(iv)GetConfigTree和(v)SimulateConfigTreeUpdate。接下来,我们将展示每个功能的用法。我们假设所有命令都是从我们的示例网络中指向peer0的客户端执行的(参见安装)。要运行CSCC相关命令,我们需要使用对等通道和对等链代码CLI命令。


    cscc.png

    2.1 JoinChain

    调用JoinChain功能以使peer加入通道。它期望一个参数是通道配置块的序列化protobuf字节,它是由执行peer channel create命令从orderer接收的(参见安装)。以下peer CLI命令使peer加入名为syschannel 的通道。peer channel join命令负责读取syschannel.block并在调用CSCC时将其作为字节传递。但是,如果我们需要使用peer链码调用,那么将syschannel.block的内容放在CLI查询本身并不容易。

    # peer channel create -c syschannel -f syschannel.tx -o orderer.rabbit.com:7050
    $ peer channel join -b syschannel.block
    

    2.2 GetConfigBlock

    调用GetConfigBlock以获取给定通道的当前配置块。它期望一个参数是通道名称的字节表示。可以使用以下两个对等CLI命令中的任何一个来获取通道syschannel的配置块。

    $ peer channel fetch -o orderer.rabbit.com:7050 config -c syschannel
    # Or
    $ peer chaincode query -C syschannel -n cscc -c '{"Args":["GetConfigBlock", "syschannel"]}'
    

    2.3 GetChannels

    相关文章

      网友评论

          本文标题:系统链码(更新中...)

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