智能合约开发以go语言为例,ChaincodeStubInterface为其智能合约的核心接口,本文主要讲解此接口的所有常用方法,如需视频学习,可以参考视频教程
- stub.PutState(args[0],[]byte(args[1])) 用于将数据进行存储,采用K-V格式进行存储,
- stub.GetState(args[0]) 根据key获取value
- stub.DelState(key) 删除某一key的值
- stub.GetHistoryForKey(key) 根据某一key获取他所有的历史记录
- stub.GetQueryResult(query) 紧支持couchdb,通过富查询语句,对数据进行查询,当存储数据为json的时候,较为有用,如{“id”:"123","name":“liwei","age":"18"},可以根据name属性来查询这条记录。
- stub.GetQueryResultWithPagination(query string, pageSize int32, bookmark string) 分页查询根据query进行分页查询,pageSize是分页每页显示的个数,bookmark是输入你要查询开始的txId,一开始输入为空,会自动从头开始查询,会返回最后一条记录的txId,作为下次查询的输入参数。
- stub.GetStateByRangeWithPagination(startKey, endKey string, pageSize int32, bookmark string) 查询一定范围内的数据,参数依次为起始key,结束key,分页尺寸,txId,举个例子,比如查询key从a到z的数据,共有18条,分页尺寸为10,那么第一次查询txId为空,查询结果返回数据并返回下一次的txId,txId作为查询参数,在进行第二次查询。
私有数据的处理
- stub.PutPrivateData(collection string, key string, value []byte) collection为私有数据集的名称
- stub.GetPrivateData(collection, key string) 获取私有数据
- stub.GetPrivateDataByRange(collection, startKey, endKey string) 分局key范围查询不分页
- stub.GetPrivateDataQueryResult(collection, query string) 私有数据富查询
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。