1、链码的概念
智能合约在Hyperledger Fabric中称为链码,也就是链上代码。
链码一般是由开发人员使用Golang语言(也支持Java等语言)编写的,提供分布式账本的状态处理逻辑。链码被部署在Hyperledger Fabric的网络节点中,能够独立运行在具有安全特性的受保护的Docker容器中,以gRPC协议与相应的Peer节点进行通信,并操作(初始化或管理)分布式账本中的数据。可以根据不同的需求开发出不同的复杂的应用。
在Hyperledger Fabric中,链码一般分为系统链码和用户链码。
(1)系统链码
系统链码负责Fabric节点自身的处理逻辑,包括系统配置、背书、校验等工作。
Hyperledger Fabric系统链码仅支持Golang语言,在Peer节点启动时会自动完成注册和部署。
系统链码共有如下5种类型。
1)配置系统链码(Configuration System Chaincode,CSCC):负责处理Peer端的通道配置。
2)生命周期系统链码(Lifecycle System Chaincode,LSCC):负责对用户链码的生命周期进行管理。
3)查询系统链码(Query System Chaincode,QSCC):提供账本查询API,如获取区块和交易等信息。
4)背书管理系统链码(Endorsement System Chaincode,ESCC):负责背书(签名)过程,并支持对背书策略进行管理。对提交的交易提案的模拟运行结果进行签名,之后创建响应消息返回给客户端。
5)验证系统链码(Validation System Chaincode,.VSCC):处理交易的验证,包括检查背书策略及多版本并发控制。
2、用户链码
链码编写完成后,并不能立刻使用,而是必须经过一系列的操作之后才能应用在Hyperledger Fabric网络中,进而处理客户端提交的交易。这一系列的操作由链码的生命周期来负责管理。
管理链码的生命周期共有5个命令。
install:将已编写完成的链码安装在指定的Peer节点中。
instantiate:对已安装的链码进行实例化。
upgrade:对已有链码进行升级。链代码可以在安装后根据具体需求的变化进行升级。
package:对指定的链码进行打包。
singnpackage:对已打包的文件进行签名。
安装、实例化、升级这3项操作不适用于系统链码。链码的生命周期管理在现阶段只
支持这5个命令,但未来还会支持stop命令和start命令,用来停止和启动链码。文章来源:https://www.toymoban.com/news/detail-526236.html
链码成功安装和实例化后,处于活动状态(正在运行),时刻准备处理提交的交易提案。文章来源地址https://www.toymoban.com/news/detail-526236.html
到了这里,关于链码的相关概念的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!