全部产品

智能合约Java API

更新时间:2019-10-15 19:19:22

链码API接口

Hyperledger Fabric JAVA 语言版本链码有丰富的 API 接口,用户链码通过这些接口直接完成与分布式账本的交互。代码实现详情可以参考 API 接口代码实现

从功能方面划分,可将 ChaincodeStubImpl 的 API 划分为以下类型:

辅助功能类

方法名称 说明
public List getArgs() 获取链码调用请求中调用参数
public List getStringArgs() 获取链码调用请求中调用参数
public String getFunction() 获取链码调用的函数名, 默认第一个参数为函数名
public List getParameters() 获取链码调用请求中调用参数
public void setEvent(String name, byte[] payload) 设置发送的事件
public ChaincodeEvent getEvent() 获取发送的事件
public CompositeKey createCompositeKey(String objectType, String… attributes) 组合属性,形成复合键
public CompositeKey splitCompositeKey(String compositeKey) 将复合键拆分成一系列属性
public Response invokeChaincode(final String chaincodeName, final List args, final String channel) 调用其它链码的 Invoke 方法

交易信息获取

方法名称 说明
public String getChannelId() 获取当前的通道名称
public String getTxId() 获取交易的交易 ID
public SignedProposal getSignedProposal() 获取交易提案所有相关数据
public Instant getTxTimestamp() 获取交易时间戳
public byte[] getCreator() 获取交易提交者信息
public Map getTransient() 获取交易的临时信息,这类信息主要用于应用在程序级,并不写入账本数据
public byte[] getBinding() 返回交易的绑定信息,这类绑定主要用于强制应用程序数据与临时信息的链接

账本数据操作

方法名称 说明
public byte[] getState(String key) 获取指定键对应的值
public void putState(String key, byte[] value) 在账本中添加或者更新一对键值
public void delState(String key) 在账本中删除一对键值
public byte[] getStateValidationParameter(String key) 获取特定键值的背书策略
public void setStateValidationParameter(String key, byte[] value) 设置特定键值的背书策略
public QueryResultsIterator getStateByRange(String startKey, String endKey) 查询指定范围内的键值
public QueryResultsIteratorWithMetadata getStateByRangeWithPagination(String startKey, String endKey, int pageSize, String bookmark) 分页查询指定范围内的键值
public QueryResultsIterator getStateByPartialCompositeKey(String compositeKey) 查询匹配局部复合键的所有键值
public QueryResultsIterator getStateByPartialCompositeKey(String objectType, String… attributes) 查询匹配局部复合键的所有键值
public QueryResultsIterator getStateByPartialCompositeKey(CompositeKey compositeKey) 查询匹配局部复合键的所有键值
public QueryResultsIteratorWithMetadata getStateByPartialCompositeKeyWithPagination(CompositeKey compositeKey, int pageSize, String bookmark) 分页查询匹配局部复合键的所有键值
public QueryResultsIterator getQueryResult(String query) 使用富查询方式查询状态数据库,状态数据库需要能够支持富查询功能
public QueryResultsIteratorWithMetadata getQueryResultWithPagination(String query, int pageSize, String bookmark){ 使用富查询方式分页查询状态数据库,状态数据库需要能够支持富查询功能
public QueryResultsIterator getHistoryForKey(String key) 返回对应键的所有历史值
public byte[] getPrivateData(String collection, String key) 获取指定私有数据集中的键的值
public byte[] getPrivateDataHash(String collection, String key) 获取指定私有数据集中的键的值的 hash
public byte[] getPrivateDataValidationParameter(String collection, String key) 获取私有数据集中指定键的背书策略
public void putPrivateData(String collection, String key, byte[] value) 设置指定私有数据集中键的值
public void delPrivateData(String collection, String key) 删除指定私有数据集中指定的键
public void setPrivateDataValidationParameter(String collection, String key, byte[] value) 设置私有数据集中指定键的背书策略
public QueryResultsIterator getPrivateDataByRange(String collection, String startKey, String endKey) 获取指定私有数据集中特定范围键的键值
public QueryResultsIterator getPrivateDataByPartialCompositeKey(String collection, String compositeKey) 获取指定私有数据集中匹配局部复合键的键值
public QueryResultsIterator getPrivateDataByPartialCompositeKey(String collection, CompositeKey compositeKey) 获取指定私有数据集中匹配局部复合键的键值
public QueryResultsIterator getPrivateDataByPartialCompositeKey(String collection, String objectType, String… attributes) 获取指定私有数据集中匹配局部复合键的键值
public QueryResultsIterator getPrivateDataQueryResult(String collection, String query) 通过富查询方式查询私有数据集,状态数据库需要能够支持富查询功能