1. 概念
基于区块链的应用,一般都由部署在区块链上的智能合约以及调用这些智能合约的业务程序组成,智能合约又称为链码(Chaincode),是一段运行在容器中的程序。
Chaincode 是客户端程序和区块链网络之间沟通的桥梁,通过Chaincode客户端程序可以发起交易,查询交易。Chaincode 在 Fabric 节点上的 Docker 容器中运行通过 gRPC 协议来与各个节点通信。用来修改记录在链上的状态,状态一般记录着与业务相关的数据,通过调用智能合约,应用程序可以发起和记录交易,从而实现复杂的业务逻辑。
1.1 Chaincode包含两部分
Chaincode 代码
业务的承载体,负责具体的业务逻辑Chaincode 管理命令
负责 Chaincode的部署,安装,维护等工作
2. 链码的多个阶段
Chaincode管理命令可以对Chaincode进行安装、实例化、调用、打包和签名操作,对应命令为install、instantiate、invoke、package、upgrade。
Chaincode的运行分为:install,instantiate和invoke三步
transaction用于停止与开启chaincode,而不用去卸载chaincode。chaincode在成功install以及instantiate之后,chaincode则是运行状态,能够通过invoke transaction来处理交易。后续也能够对chaincode进行升级
3. 业务流程
用户
关注与业务逻辑相关的应用程序。CA 机构
根据标准 PKI 规范生成权限证书的机构,生成账号和颁发证书。智能合约
4. 框架流程
step1:. 客户端(App)使用 SDK 和区块链网络进行交互,客户端首先从 CA 机构获取证书加入通道。
step2. 将交易提案提交给 Endorser 节点进行背书;背书节点完成背书操作后回复App
step3. App获得一定量的 Endorser 支持后,生成交易请求,发送给 Orderer
step3. Orderer 节点进行排序操作,构造区块之后将交易区块发送至 Committer 节点
step4. commit监听网络事件,执行合法交易并将交易信息记录到账本中。
Committer 节点
在网络中维护区块链网络和账本数据;Orderer 节点
用于对交易请求排序,并将排序后的交易组合生成区块结构;