系统链码

天地一小儒 · · 1215 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:天地一小儒

查看原文:系统链码

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1215 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传