Fabric 1.4 实战 — 3 链码开发

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


一、开发流程

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() 。

2、账本数据状态操作 API

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值