怎么样操作账本数据:熟悉链码相关API

当前位置:首页 > 币圈百科 > 怎么样操作账本数据:熟悉链码相关API

怎么样操作账本数据:熟悉链码相关API

2022-11-07币圈百科214

目标

掌握与账簿交互的相关API的类型

熟悉与参数和账簿状态操作相关的API

任务实现

现在我们已经知道了编写链码的基本接口和所需结构,那么实际上应该如何以及在什么情况下调用账簿数据呢?

Shim包给链代码提供的对应接口如下:

参数解析API:调用链代码时,需要向被调用的目标函数/方法传递参数,与参数解析相关的API提供了获取这些参数的方法(包括被调用的目标函数/方法的名称)。

账簿状态数蓑衣网小编2022据操作API:这类API提供了操作账簿数据状态的方法,包括状态数据的查询和交易处理。

交易信息获取API:获取提交交易信息的相关API。

事件处理API:与事件处理相关的API。用于私有数据操作的

API:Hyperledger Fabric在1.2.0版本中新增的用于私有数据操作的API。

下面介绍一下每种类型对应的API的定义以及调用时需要的参数。

5.2.1与参数解析相关的API

getargs()[][byte:返回调用链代码

GetArgsSlice() ([]byte,Error)时在事务建议中指定的被调用函数和参数列表:返回参数列表

getfunctionandparameters()(函数字符串, Params []string):返回调用链代码

getstrinargs () [] string:返回调用链代码

时指定的参数列表实际开发中,获取被调用函数和参数列表常用的API有:GetFunctionAndParameters()和getstrinargs。

5.2.2账簿数据状态操作API

getstate(Key string)([]byte,error):根据指定的Key查询对应的数据状态。

put state (key string,value [] byte)错误:根据指定的key,在分类帐中保存相应的值。

DelState(key string)错误:根据指定的key删除对应的数据状态

getstatebyrange (start key,end key string)(状态查询迭代器接口,错误):根据指定的start和end key查询范围内的所有数据状态。注意:返回的结果集中不包括end键对应的数据状态。

getHistoryForkey(key 蓑衣网小编2022 string)(历史查询迭代器接口,错误):根据指定的键查询所有历史信息。

CreateCompositeKey(对象类型字符串,属性[]字符串)(字符串,错误):创建组合键。

SplitCompositeKey(组合键字符串)(string,[] string,error):拆分指定的组合键。

获取查询结果(查询字符串)(状态查询迭代器接口,错误):对状态数据库进行富查询(支持富查询功能)。目前只有CouchDB支持富查询。

5.2.3与交易信息相关的API

gett xid()String:返回交易建议中指定的交易id。

GetChannelID() string:返回在事务建议中指定的通道ID。

GetXTimestamp()(* timestamp . timestamp,error):返回事务创建的时间戳,即peer收到事务的具体时间。

getbinding () ([] byte,error):返回事务的绑定信息。如果一些临时信息,以避免重复攻击。

getSignedProposal()(* Pb . signedproposal,error):返回与交易提议相关的签名身份信息。

getcreator () ([] byte,error):返回事务提交者的身份信息。

get transient()(map[string][]byte,error):返回交易中一些不会写入账簿的临时信息。

5.2.4事件处理API

setevent (name string,payload [] byte)错误:设置事件,包括其名称和内容。

5 . 2 . 5 PrivateData操作的API

getprivatedata(集合,密钥字符串)([]字节,错误):根据指定的密钥,从指定的私有数据集中查询对应的私有数据。

putprivatedata(collection string,keystring,value [] byte)错误:将指定的键和值保存到私有数据集中。

DelPrivateData(collection,key string)错误:根据指定的键从私有数据集中删除相应的数据。

getPrivateDataByRange(collection,start key,end key string)(statequeryIteratorinterface,error):根据指定的start和end键查询范围内(不包括end键)的私有数据。

getprivatedatabatypartialcompositekey(Collection,Object Type String,Keys[]String)(statequeryeratorinterface,error):根据给定的一组部分键组合,查询给定的私有状态。

GetPrivateDataQueryResult(Collection,Query String)(StateQueryIteratorinterface,Error):根据指定的查询字符串执行富查询(仅支持支持富查询的CouchDB)。

FAQ

put写的数据状态能马上得到吗?

不能马上得到,因为put只是一个链码执行的模拟交易(防止重复提交攻击),并没有真正在账簿中保存状态。订货人达成共识后,数据状态必须保存在块中,然后保存在各个对等节点的账簿中。

怎么样操作账本数据:熟悉链码相关API

未经授权,禁止复制和改编。转载请注明出处!

本文地址:https://www.chaindesk.cn/witbook/11/122

chain desk 3354全球区块链科技生态超级社区


以区块链科技为入口打造全球区块链科技生态超级社区,社区将服务于集公链生态建设、DAPP项目研发、技术咨询、课程体系研发、区块链书籍编写、区块链课程制作、讲师培训、区块链职业教育、区块链在线教育、去中心化技术测评于一体的区块链科技超级社区。

免费、原创、专业、高效、系统

怎么样操作账本数据:熟悉链码相关API | 分享给朋友: