文章目录
一、开发流程
1、结构体
用来存储链码的各种方法
2、Init()
初始化数据状态,实例化链码时被自动调用
3、Invoke()
对账本数据进行操作时(query, invoke)被自动调用,通过对应操作命令调用链码具体方法。通过shim.ChaincodeStubInterface.GetFunctionAndParameters()方法确定命令操作方法
4、功能函数
通过shim.ChaincodeStubInterface.PutState(key, value)方法,将键值对添加到账本数据中。
通过shim.ChaincodeStubInterface.GetState(key)方法,从账本数据中获取对应 key的值。
通过shim.ChaincodeStubInterface.DelState(key)方法,删除账本中的一对键值。
5、main()
在实例化期间启动容器中的链码
6、安装链码依赖
链码目录下执行:
go mod init
go mod vendor
二、相关的 API
shim 包提供了如下几种类型的接口:
① 参数解析 API:调用链码时需要给被调用的目标函数/方法传递参数,该 API 提供解析这些参数的方法;
② 账本状态数据操作 API:该 API 提供了对账本数据状态进行操作的方法,包括对状态数据的查询及事务处理等;
③ 交易信息获取 API:获取提交的交易信息的相关 API;
④ 对 PrivateData 操作的 API: Hyperledger Fabric 在 1.2.0 版本中新增的对私有数据操作的相关 API;
⑤ 其他 API:其他的 API,包括事件设置、调用其他链码操作。
1、参数解析 API
// 返回调用链码时指定提供的参数列表(以字符串数组形式返回)
GetStringArgs() []string
// 返回调用链码时在交易提案中指定提供的被调用的函数名称及函数的参数列表(以字符串数组形式返回)
GetFunctionAndParameters() (function string, params []string)
// 返回提交交易提案时提供的参数列表(以字节串数组形式返回)
GetArgsSlice() ([]byte, error)
// 返回调用链码时在交易提案中指定提供的被调用的函数名称及函数的参数列表(以字符串数组形式返回)
GetArgs() [][]byte
一般使用 GetFunctionAndParameters() 及 GetStringArgs() 。

本文档详细介绍了Hyperledger Fabric 1.4中链码的开发流程,包括结构体定义、Init()和Invoke()方法的使用、功能函数的操作以及main()的启动。同时,还阐述了相关的API,如参数解析、账本数据状态操作、PrivateData操作和其他辅助API,为开发者提供链码开发的全面指导。
最低0.47元/天 解锁文章
2293





