Fabric 2.0 之系统链码

  在Hyperledger Fabric中,链码分为两种类型:系统链码和普通链码。其中系统链码是系统内置的链码,用来完成一些系统功能等;普通链码是实现应用业务逻辑的链码。

系统链码vs普通链码

  系统链码和普通链码的几个不同点,如下表所示:

对比项系统链码普通链码
链码源码无main函数有main函数
运行空间背书节点进程Docker
调用方式网络+进程内部网络
启动参数内置动态输入
通信方式Golang的通道机制网络
数据存取Golang的通道+本地文件网络
升级方式和背书节点一起升级单独升级
背书策略

2.0版本中的系统链码

_lifecycle

  在所有 Peer 节点上运行,它负责管理节点上的链码安装、批准组织的链码定义、将链码定义提交到通道上。

生命周期系统链码(LSCC)

  负责为1.x版本的 Fabric 管理链码生命周期。该版本的生命周期要求在通道上实例化或升级链码

配置系统链码(CSCC)

  在所有 Peer 节点上运行,以处理通道配置的变化,比如策略更新。
  通过CSCC可以查询以下几个接口的信息:

查询接口查询内容说明
GetConfigBlock查询链的配置区块每次有配置更新的时候会更新记账节点本地维护的最新配置区块,配置区块是从本地缓存里获取的
GetChannels获取加入链列表记账节点加入的链列表也是从本地缓存获取的

查询系统链码(QSCC)

  在所有 Peer 节点上运行,以提供账本 API(应用程序编码接口),其中包括区块查询、交易查询等。

查询接口查询内容说明
GetTransactionByID根据交易号获取交易从索引数据库获取
GetBlockByNumber根据区块号获取区块从索引数据库获取
GetBlockByHash根据区块哈希获取区块从索引数据库获取
GetBlockByTxID根据交易号获取区块从索引数据库获取
GetChainInfo根据通道名称获取最新的区块链信息从本地缓存中获取

  从索引数据库查询通用的过程是根据查询项从索引数据库查询出FLP(File Location Pointer),再根据FLP在区块中定位获取所需内容。

背书系统链码(ESCC)

  在背书节点上运行,对交易结果进行结构转换和签名背书

验证系统链码(VSCC)

  主要功能是记账前对区块和交易进行验证,包括检查背书策略和读写集版本。

参考资料:1. Smart Contracts and Chaincode
     2.《深度探索区块链-Hyperledger技术与应用》

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值