5.Fabirc智能合约与链码
2019-06-13 本文已影响0人
区块文
智能合约
-区块链网络的核心
-在可执行代码中定义不同组织之间的规则
-生成交易记录并在账本上
-打包至链码中
链码
– 可以打包多个智能合约
– 当部署链代码后,应用程序可调用智能合约
智能合约如何与账本交互

链码生命周期

1.链码生命周期-打包
- 链码部署说明(CDS) 包含源代码,名字,链码版本
- 一个实例化的政策,背书政策
- 拥有链码实体的一套签名
示例,如图 peer chaincode package 打包链码, -p 后加路径, -v 后加版本, -i 后加政策
peer chaincode signpackage 签名链码

2.安装链码
- 在Peer节点上安装链码
- 一个Peer节点上可安装多个链码
- 通道的每个背书节点上必须安装链码
示例

3.实例化链码
- 在一个通道上创建并初始化链码
- 在实例化期间设置背书策略
示例

4.运行链码
- 应用程序/客户端提交交易
- 智能合约处理交易,更新账本并返回响应
- 应用程序/客户端接收响应
示例

5.升级链码
- 链码可以随时通过更改其版本进行升级
- 升级前,链码的新版本必须安装在所需的背书人
- 与实例化交易类似,一次只影响一个通道

系统链码
在Peer节点进程中运行,而不是像普通链代码那样在隔离容器中运行
实现一些系统行为
•LSCC(生命周期系统链码)
-处理应用程序链码的生命周期请求
•CSCC(配置系统链码)
处理Peer节点端上的通道配置
•QSCC(查询系统链码)
-提供分类查询api,如获取块和事务