链码的相关概念

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命令,用来停止和启动链码。


        链码成功安装和实例化后,处于活动状态(正在运行),时刻准备处理提交的交易提案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值