概述
在 Hyperledger Fabric 中,链码(Chaincode)又称为智能合约(下文中我们统一称为链码),是用Go,node.js或Java编写的程序,主要用于操作账本上的数据。用户的应用程序通过链码与 Fabric 账本数据进行交互,交互关系如下图:
一个完整的 Fabric 区块链应用包含用户的应用程序和用户编写的链码两部分。用户的应用程序通过区块链网络中部署的的 Peer 节点调用链码,用户链码通过区块链网络的 Peer 节点来操作账本数据。如下图所示:
Fabric 中的 Peer 节点提供了调用链码相关服务的接口。用户的应用程序可以通过调用相关接口和 Fabric Peer 进行交互, Peer 节点通过与链码容器进行交互,完成应用程序和链码之间的交互。
用户的应用程序可以通过以下两种方式与 Fabric Peer 进行交互:
利用 Fabric 提供的 SDK 与 Fabric Peer 进行交互,具体参看 Fabric SDK。
利用阿里云BaaS提供的 API 接口 与 Fabric Peer 进行交互。
生命周期
链码开发编写完成后,并不能直接使用,需要经过一系列的操作之后才能应用在 Hyperledger Fabric 网络中进而处理客户端提交的交易。这一系列的操作是由链码的生命周期来负责管理。
管理 Chaincode 的生命周期主要有如下几个命令:
package: 对指定的链码进行打包的操作。
install: 将已编写完成的链码安装在网络节点中。
instantiate: 对已安装的链码进行实例化。