JavaSDK 接口说明
合约管理接口
创建合约payload
参数说明
contractName: 合约名
version: 版本号
byteCodes: 合约字节数组
runtimeType: 合约运行环境
params: 合约初始化参数
Request.Payload createContractCreatePayload(
String contractName,
String version, byte[] byteCode,
ContractOuterClass.RuntimeType runtime,
Map<String, byte[]> params)
创建升级合约payload
参数说明
contractName: 合约名
version: 版本号
byteCodes: 合约字节数组
runtimeType: 合约运行环境
params: 合约初始化参数
Request.Payload createContractUpgradePayload(
String contractName,
String version, byte[] byteCode,
ContractOuterClass.RuntimeType runtime,
Map<String, byte[]> params)
创建冻结合约payload
参数说明
contractName: 合约名
Request.Payload createContractFreezePayload(String contractName)
创建解冻合约payload
参数说明 contractName: 合约名
Request.Payload createContractUnFreezePayload(String contractName)
创建吊销合约payload
参数说明 contractName: 合约名
Request.Payload createContractRevokePayload(String contractName)
发送合约操作请求(创建、更新、冻结、解冻、吊销)
参数说明
payload: 交易payload
endorsementEntries: 背书签名信息列表
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
syncResultTimeout: 同步获取执行结果超时时间,小于等于0代表不等待执行结果,直接返回(返回信息里包含交易ID),单位:毫秒
ResultOuterClass.TxResponse sendContractManageRequest(
Request.Payload payload,
Request.EndorsementEntry[] endorsementEntries,
long rpcCallTimeout, long syncResultTimeout)
合约调用
参数说明
contractName: 合约名
method: 方法名
txId: 交易id
格式要求: 长度为64字节,字符在a-z0-9,可为空,若为空字符串,将自动生成txId
params: 执行参数
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
syncResultTimeout: 同步获取执行结果超时时间,小于等于0代表不等待执行结果,直接返回(返回信息里包含交易ID),单位:毫秒
ResultOuterClass.TxResponse invokeContract(
String contractName, String method, String txId,
Map<String, byte[]> params,
long rpcCallTimeout, long syncResultTimeout)
合约查询
参数说明
contractName: 合约名
method: 方法名
txId: 交易id
格式要求: 长度为64字节,字符在a-z0-9,可为空,若为空字符串,将自动生成txId
params: 执行参数
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
ResultOuterClass.TxResponse queryContract(
String contractName,
String method,
String txId,
Map<String, byte[]> params,
long rpcCallTimeout)
合约调用的payload
参数说明
contractName: 合约名
method: 调用方法
txId: 交易id
格式要求: 长度为64字节,字符在a-z0-9,可为空,若为空字符串,将自动生成txId
params: 请求参数
Request.Payload invokeContractPayload(
String contractName,
String method,
String txId,
Map<String, byte[]> params)
合约查询(user)
参数说明
contractName: 合约名
method: 方法名
txId: 交易id
params: 执行参数
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
user: 用户
ResultOuterClass.TxResponse queryContract(
String contractName,
String method,
String txId,
Map<String, byte[]> params,
long rpcCallTimeout,
User user)
系统合约接口
根据交易Id查询交易
参数说明
txId: 交易ID
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
ChainmakerTransaction.TransactionInfo getTxByTxId(
String txId,
long rpcCallTimeout)
根据交易Id查询包含rwset的交易
参数说明
txId: 交易ID
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
ChainmakerTransaction.TransactionInfoWithRWSet getTxWithRWSetByTxId(
String txId,
long rpcCallTimeout)
根据区块高度查询区块
参数说明
blockHeight: 区块高度
withRWSet: 是否返回读写集
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
ChainmakerBlock.BlockInfo getBlockByHeight(
long blockHeight,
boolean withRWSet,
long rpcCallTimeout)
根据区块哈希查询区块
参数说明
blockHash: 区块hash
withRWSet: 是否返回读写集
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
ChainmakerBlock.BlockInfo getBlockByHash(
String blockHash,
boolean withRWSet,
long rpcCallTimeout)
根据交易Id查询区块
参数说明
txId: 交易Id
withRWSet: 是否返回读写集
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
ChainmakerBlock.BlockInfo getBlockByTxId(
String txId,
boolean withRWSet,
long rpcCallTimeout)
查询最后一个配置块
参数说明
withRWSet: 是否返回读写集
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
ChainmakerBlock.BlockInfo getLastConfigBlock(
boolean withRWSet,
long rpcCallTimeout)
查询节点加入的链信息
参数说明
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
Discovery.ChainList getNodeChainList(
long rpcCallTimeout)
查询链信息
参数说明
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
Discovery.ChainInfo getChainInfo(
long rpcCallTimeout)
根据txId查询区块高度
参数说明
txId: 交易id
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
long getBlockHeightByTxId(
String txId,
long rpcCallTimeout)
根据blockHash查询区块高度
参数说明
blockHash: 区块哈希
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
long getBlockHeightByBlockHash(
String blockHash,
long timeout)
根据区块高度查询完整区块
参数说明
blockHeight: 区块高度
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
Store.BlockWithRWSet getFullBlockByHeight(
long blockHeight,
long rpcCallTimeout)
查询最新区块信息
参数说明
withRWSet: 是否返回读写集
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
ChainmakerBlock.BlockInfo getLastBlock(
boolean withRWSet,
long rpcCallTimeout)
查询最新区块高度
参数说明
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
long getCurrentBlockHeight(
long rpcCallTimeout)
根据区块高度查询区块头
参数说明
blockHeight: 区块高度
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
ChainmakerBlock.BlockHeader getBlockHeaderByHeight(
long blockHeight,
long rpcCallTimeout)
系统合约调用
参数说明
contractName: 合约名
method: 方法名
txId: 交易id
params: 执行参数
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
syncResultTimeout: 同步获取执行结果超时时间,小于等于0代表不等待执行结果,直接返回(返回信息里包含交易ID),单位:毫秒
ResultOuterClass.TxResponse invokeSystemContract(
String contractName,
String method,
String txId,
Map<String, byte[]> params,
long rpcCallTimeout,
long syncResultTimeout)
合约查询接口
参数说明
contractName: 合约名
method: 方法名
txId: 交易id
params: 执行参数
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
ResultOuterClass.TxResponse querySystemContract(
String contractName,
String method,
String txId,
Map<String, byte[]> params,
long rpcCallTimeout)
根据交易Id获取Merkle路径
参数说明
txId: 交易ID
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
byte[] getMerklePathByTxId(
String txId,
long rpcCallTimeout)
开放系统合约
参数说明
grantContractList: 需要开放的系统合约字符串数组
Request.Payload createNativeContractAccessGrantPayload(
String[] grantContractList)
弃用系统合约
参数说明
revokeContractList: 需要弃用的系统合约字符串数组
Request.Payload createNativeContractAccessRevokePayload(
String[] revokeContractList)
查询弃用的系统合约名单
Request.Payload createGetDisabledNativeContractListPayload()
查询指定合约的信息,包括系统合约和用户合约
参数说明
contractName: 指定查询的合约名字,包括系统合约和用户合约
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
ContractOuterClass.Contract getContractInfo(
String contractName,
long rpcCallTimeout)
查询所有的合约名单,包括系统合约和用户合约
参数说明
rpcCallTimeout
ContractOuterClass.Contract[] getContractList(
long rpcCallTimeout)
查询已禁用的系统合约名单, 无禁用合约时返回null
参数说明
rpcCallTimeout
ContractOuterClass.Contract[] getDisabledNativeContractList(
long rpcCallTimeout)
链配置接口
查询最新链配置
参数说明
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
ChainConfigOuterClass.ChainConfig getChainConfig(
long rpcCallTimeout)
根据指定区块高度查询最近链配置
参数说明
blockHeight: 区块高度
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
ChainConfigOuterClass.ChainConfig getChainConfigByBlockHeight(
long blockHeight,
long rpcCallTimeout)
查询最新链配置序号Sequence
参数说明
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
long getChainConfigSequence(
long rpcCallTimeout)
生成更新Core模块待签名payload
参数说明
txSchedulerTimeout: 交易调度器从交易池拿到交易后, 进行调度的时间,其值范围为[0, 60],若无需修改,请置为-1
txSchedulerValidateTimeout: 交易调度器从区块中拿到交易后, 进行验证的超时时间,其值范围为[0, 60],若无需修改,请置为-1
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
Request.Payload createPayloadOfChainConfigCoreUpdate(
int txSchedulerTimeout,
int txSchedulerValidateTimeout,
long rpcCallTimeout)
生成更新Block模块待签名payload
参数说明
txTimestampVerify: 是否需要开启交易时间戳校验
(以下参数,若无需修改,请置为-1)
txTimeout: 交易时间戳的过期时间(秒),其值范围为[600, +∞)
blockTxCapacity: 区块中最大交易数,其值范围为(0, +∞]
blockSize: 区块最大限制,单位MB,其值范围为(0, +∞]
blockInterval: 出块间隔,单位:ms,其值范围为[10, +∞]
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
Request.Payload createPayloadOfChainConfigBlockUpdate(
boolean txTimestampVerify,
int txTimeout,
int blockTxCapacity,
int blockSize,
int blockInterval,
int txParameterSize,
long rpcCallTimeout)
生成添加信任组织根证书待签名payload
参数说明
trustRootOrgId: 组织Id
trustRootCrt: 根证书
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
Request.Payload createPayloadOfChainConfigTrustRootAdd(
String trustRootOrgId,
String[] trustRootCrt,
long rpcCallTimeout)
生成更新信任组织根证书待签名payload
参数说明
trustRootOrgId: 组织Id
trustRootCrt: 根证书
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
Request.Payload createPayloadOfChainConfigTrustRootUpdate(
String trustRootOrgId,
String[] trustRootCrt,
long rpcCallTimeout)
生成删除信任组织根证书待签名payload
参数说明
trustRootOrgId: 组织Id
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
Request.Payload createPayloadOfChainConfigTrustRootDelete(
String orgIdOrPKPubkeyPEM,
long rpcCallTimeout)
添加权限配置待签名payload生成
参数说明
permissionResourceName: 权限名
principle: 权限规则
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
Request.Payload createPayloadOfChainConfigPermissionAdd(
String permissionResourceName,
PolicyOuterClass.Policy principal,
long rpcCallTimeout)
更新权限配置待签名payload生成
参数说明
permissionResourceName: 权限名
principle: 权限规则
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
Request.Payload createPayloadOfChainConfigPermissionUpdate(
String permissionResourceName,
PolicyOuterClass.Policy principal,
long rpcCallTimeout)
删除权限配置待签名payload生成
参数说明
permissionResourceName: 权限名
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
Request.Payload createPayloadOfChainConfigPermissionDelete(
String permissionResourceName,
long rpcCallTimeout)
添加共识节点地址待签名payload生成
参数说明
nodeOrgId: 节点组织Id
nodeAddresses: 节点地址
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
Request.Payload createPayloadOfChainConfigConsensusNodeAddrAdd(
String nodeOrgId, String[] nodeAddresses,
long rpcCallTimeout)
更新共识节点地址待签名payload生成
参数说明
nodeOrgId: 节点组织Id
nodeOldAddress: 节点原地址
nodeNewAddress: 节点新地址
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
Request.Payload createPayloadOfChainConfigConsensusNodeAddrUpdate(
String nodeOrgId,
String nodeOldAddress,
String nodeNewAddress,
long rpcCallTimeout)
删除共识节点地址待签名payload生成
参数说明
nodeOrgId: 节点组织Id
nodeAddress: 节点地址
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
Request.Payload createPayloadOfChainConfigConsensusNodeAddrDelete(
String nodeOrgId,
String nodeAddress,
long rpcCallTimeout)
添加共识节点待签名payload生成
参数说明
nodeOrgId: 节点组织Id
nodeAddresses: 节点地址
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
Request.Payload createPayloadOfChainConfigConsensusNodeOrgAdd(
String nodeOrgId,
String[] nodeAddresses,
long rpcCallTimeout)
更新共识节点待签名payload生成
参数说明
nodeOrgId: 节点组织Id
nodeAddresses: 节点地址
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
Request.Payload createPayloadOfChainConfigConsensusNodeOrgUpdate(
String nodeOrgId,
String[] nodeAddresses,
long rpcCallTimeout)
删除共识节点待签名payload生成
参数说明
nodeOrgId: 节点组织Id
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
Request.Payload createPayloadOfChainConfigConsensusNodeOrgDelete(
String nodeOrgId,
long rpcCallTimeout)
添加共识扩展字段待签名payload生成
参数说明
params: Map<String, byte[]>
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
Request.Payload createPayloadOfChainConfigConsensusExtAdd(
Map<String, byte[]> params,
long rpcCallTimeout)
添加共识扩展字段待签名payload生成
参数说明
params: Map<String, byte[]>
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
Request.Payload createPayloadOfChainConfigConsensusExtUpdate(
Map<String, byte[]> params,
long rpcCallTimeout)
添加共识扩展字段待签名payload生成
参数说明
keys: 待删除字段
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
Request.Payload createPayloadOfChainConfigConsensusExtDelete(
String[] keys,
long rpcCallTimeout)
添加信任成员证书待签名payload生成
参数说明
trustMemberOrgId: 组织Id
trustMemberNodeId: 节点Id
trustMemberRole: 成员角色
trustMemberInfo: 成员信息内容
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
Request.Payload createChainConfigTrustMemberAddPayload(
String trustMemberOrgId,
String trustMemberNodeId,
String trustMemberRole,
String trustMemberInfo,
long rpcCallTimeout)
删除信任成员证书待签名payload生成
参数说明
trustMemberInfo: 成员信息内容
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
Request.Payload createChainConfigTrustMemberDeletePayload(
String trustMemberInfo,
long rpcCallTimeout)
发送链配置更新请求
参数说明
payload: 待签名payload
endorsementEntries: 背书实体数组
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
syncResultTimeout: 同步结果超时时间, 单位:毫秒
ResultOuterClass.TxResponse updateChainConfig(
Request.Payload payload,
Request.EndorsementEntry[] endorsementEntries,
long rpcCallTimeout,
long syncResultTimeout)
修改地址类型payload生成
参数说明
addrType: 地址类型,0-ChainMaker; 1-ZXL
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
Request.Payload createChainConfigAlterAddrTypePayload(
String addressType,
long rpcCallTimeout)
开启或关闭链配置的Gas优化payload生成
参数说明
enable: 是否开启
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
Request.Payload createChainConfigOptimizeChargeGasPayload(
Boolean enable,
long rpcCallTimeout)
查询最新权限配置列表
参数说明
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
List<ChainConfigOuterClass.ResourcePolicy> getChainConfigPermissionList(
long rpcCallTimeout)
证书管理接口
用户证书添加
参数说明rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
ResultOuterClass.TxResponse addCert(
long rpcCallTimeout)
用户证书删除
参数说明
payload: 合约内容
endorsementEntries: 带签名的合约内容
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
syncResultTimeout: 同步结果超时时间, 单位:毫秒
ResultOuterClass.TxResponse deleteCert(
Request.Payload payload,
Request.EndorsementEntry[] endorsementEntries,
long rpcCallTimeout, long syncResultTimeout)
用户证书查询
参数说明
certHashes: 证书Hash列表
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
ResultOuterClass.CertInfos queryCert(
String[] certHashes,
long rpcCallTimeout)
证书冻结
参数说明
payload: 证书冻结的payload
endorsementEntries: 带签名的合约内容
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
syncResultTimeout: 同步结果超时时间, 单位:毫秒
ResultOuterClass.TxResponse freezeCerts(
Request.Payload payload,
Request.EndorsementEntry[] endorsementEntries,
long rpcCallTimeout,
long syncResultTimeout)
证书解冻
参数说明
payload: 证书解冻的payload
endorsementEntries: 带签名的合约内容
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
syncResultTimeout: 同步结果超时时间, 单位:毫秒
ResultOuterClass.TxResponse unfreezeCerts(
Request.Payload payload,
Request.EndorsementEntry[] endorsementEntries,
long rpcCallTimeout,
long syncResultTimeout)
证书吊销
参数说明
payload: 证书注销的payload
endorsementEntries: 带签名的合约内容
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
syncResultTimeout: 同步结果超时时间, 单位:毫秒
ResultOuterClass.TxResponse revokeCerts(
Request.Payload payload,
Request.EndorsementEntry[] endorsementEntries,
long rpcCallTimeout,
long syncResultTimeout)
证书操作payload生成
参数说明
method: 证书操作方法
params: 参数
Request.Payload createCertManagePayload(
String method,
Map<String, byte[]> params)
证书删除payload生成
参数说明
certHashes: 证书Hash列表
Request.Payload createCertDeletePayload(
String[] certHashes)
证书冻结payload生成
参数说明
certs: 证书内容列表
Request.Payload createCertFreezePayload(
String[] certs)
证书解冻payload生成
参数说明
certs: 证书内容列表
Request.Payload createPayloadOfUnfreezeCerts(
String[] certs)
发送证书管理请求(证书冻结、解冻、吊销)
参数说明
payload: 交易payload
endorsers: 背书签名信息列表
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
syncResultTimeout: 同步结果超时时间, 单位:毫秒
ResultOuterClass.TxResponse sendCertManageRequest(
Request.Payload payload,
Request.EndorsementEntry[] endorsementEntries,
long rpcCallTimeout,
long syncResultTimeout)
创建用户证书吊销payload
参数说明
certCrl: 吊销的证书列表
Request.Payload createPayloadOfRevokeCerts(
String certCrl)
消息订阅接口
区块订阅
参数说明
startBlock: 订阅起始区块高度,表示订阅实时最新区块
endBlock: 订阅结束区块高度,若为-1,表示订阅实时最新区块
withRwSet: 是否返回读写集
onlyHeader: 是否只返回区块头
blockStreamObserver: 区块流观察者
void subscribeBlock(
long startBlock,
long endBlock,
boolean withRwSet,
boolean onlyHeader,
StreamObserver<ResultOuterClass.SubscribeResult> blockStreamObserver)
交易订阅
参数说明
startBlock: 订阅起始区块高度,表示订阅实时最新区块
endBlock: 订阅结束区块高度,若为-1,表示订阅实时最新区块
contractName: 订阅合约名
txIds: 订阅txId列表,若为空,表示订阅所有txId
txStreamObserver: 交易流观察者
void subscribeTx(
long startBlock,
long endBlock,
String contractName,
String[] txIds,
StreamObserver<ResultOuterClass.SubscribeResult> txStreamObserver)
通过别名前缀进行交易订阅
参数说明
startBlock: 订阅起始区块高度,表示订阅实时最新区块
endBlock: 订阅结束区块高度,若为-1,表示订阅实时最新区块
preAlias: 别名前缀
txStreamObserver: 交易流观察者
void subscribeTxByPreAlias(
long startBlock,
long endBlock,
String preAlias,
StreamObserver<ResultOuterClass.SubscribeResult> txStreamObserver)
通过交易ID前缀进行交易订阅
参数说明
startBlock: 订阅起始区块高度,表示订阅实时最新区块
endBlock: 订阅结束区块高度,若为-1,表示订阅实时最新区块
preTxId: 交易ID前缀
txStreamObserver: 交易流观察者
void subscribeTxByPreTxId(
long startBlock,
long endBlock,
String preTxId,
StreamObserver<ResultOuterClass.SubscribeResult> txStreamObserver)
通过组织ID前缀进行交易订阅
参数说明
startBlock: 订阅起始区块高度,表示订阅实时最新区块
endBlock: 订阅结束区块高度,若为-1,表示订阅实时最新区块
preOrgId: 组织ID前缀
txStreamObserver: 交易流观察者
void subscribeTxByPreOrgId(
long startBlock,
long endBlock,
String preOrgId,
StreamObserver<ResultOuterClass.SubscribeResult> txStreamObserver)
事件订阅
参数说明
startBlock: 订阅起始区块高度,表示订阅实时最新区块
endBlock: 订阅结束区块高度,若为-1,表示订阅实时最新区块
topic: 订阅话题
contractName: 订阅合约名
txStreamObserver: 交易流观察者
void subscribeContractEvent(
long startBlock,
long endBlock,
String topic,
String contractName,
StreamObserver<ResultOuterClass.SubscribeResult> contractEventStreamObserver)
数据归档接口
发送数据归档请求
参数说明
payload: 数据归档payload
timeout: 超时时间,单位:毫秒
ResultOuterClass.TxResponse sendArchiveBlockRequest(
Request.Payload payload,
long timeout)
发送归档恢复请求
参数说明
payload: 归档恢复payload
timeout: 超时时间,单位:毫秒
ResultOuterClass.TxResponse sendRestoreBlockRequest(
Request.Payload payload,
long timeout)
数据归档payload生成
参数说明
targetBlockHeight: 归档区块高度
Request.Payload createArchiveBlockPayload(
long targetBlockHeight)
归档恢复payload生成
参数说明
fullBlock: 归档恢复数据
Request.Payload createRestoreBlockPayload(
byte[] fullBlock)
获取归档数据
参数说明
blockHeight: 归档区块高度
Store.BlockWithRWSet getArchivedFullBlockByHeight(
long blockHeight)
获取归档区块信息
参数说明
blockHeight: 归档区块高度
withRWSet: 是否获取读写集
ChainmakerBlock.BlockInfo getArchivedBlockByHeight(
long blockHeight,
boolean withRWSet)
获取已归档区块高度
参数说明
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
long getArchivedBlockHeight(
long rpcCallTimeout)
公钥身份类接口
构造添加公钥身份请求payload
参数说明
pubkey: 公钥信息
orgId: 组织id
role: 角色,支持client,light,common
Request.Payload createPubkeyAddPayload(
String pubkey,
String orgId,
String role)
构造删除公钥身份请求payload
参数说明
pubkey: 公钥信息
orgId: 组织id
Request.Payload createPubkeyDelPayload(
String pubkey,
String orgId)
构造查询公钥身份请求payload
参数说明
pubkey: 公钥信息
Request.Payload createPubkeyQueryPayload(
String pubkey)
发送公钥身份管理请求(添加、删除)
参数说明
payload: 合约内容
endorsementEntries: 带签名的合约内容
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
syncResultTimeout: 同步获取执行结果超时时间,小于等于0代表不等待执行结果,直接返回(返回信息里包含交易ID),单位:毫秒
ResultOuterClass.TxResponse sendPubkeyManageRequest(
Request.Payload payload,
Request.EndorsementEntry[] endorsementEntries,
long rpcCallTimeout,
long syncResultTimeout)
多签类接口
发起多签请求
参数说明
payload: 多签payload
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
withSyncResult: 是否同步获取交易执行结果
ResultOuterClass.TxResponse multiSignContractReq(
Request.Payload payload,
long rpcCallTimeout,
boolean withSyncResult)
发起带有代付者的多签请求
参数说明
payload: 多签payload
endorsers: 签名者列表
payer: 代付者
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
withSyncResult: 是否同步获取交易执行结果
ResultOuterClass.TxResponse multiSignContractReqWithPayer(
Request.Payload payload,
Request.EndorsementEntry[] endorsers,
Request.EndorsementEntry payer,
long rpcCallTimeout,
boolean withSyncResult)
发起多签投票
参数说明
payload: 多签payload
endorsementEntry: 多签信息
isAgree: 投票人对多签请求是否同意,true为同意,false则反对
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
withSyncResult: 是否同步获取交易执行结果
ResultOuterClass.TxResponse multiSignContractVote(
Request.Payload payload,
Request.EndorsementEntry endorsementEntry,
boolean isAgree, long rpcCallTimeout,
boolean withSyncResult)
发起带有gas限制的多签投票
参数说明
payload: 多签payload
endorsementEntry: 多签信息
isAgree: 投票人对多签请求是否同意,true为同意,false则反对
gasLimit: gas限制
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
withSyncResult: 是否同步获取交易执行结果
ResultOuterClass.TxResponse multiSignContractVoteWithGasLimit(
Request.Payload payload,
Request.EndorsementEntry endorsementEntry,
boolean isAgree,
long gasLimit,
long rpcCallTimeout,
boolean withSyncResult)
发起带有gas限制和代付者的多签投票
参数说明
payload: 多签payload
endorsementEntry: 多签信息
payer: 代付者
isAgree: 投票人对多签请求是否同意,true为同意,false则反对
gasLimit: gas限制
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
withSyncResult: 是否同步获取交易执行结果
ResultOuterClass.TxResponse multiSignContractVoteWithGasLimitAndPayer(
Request.Payload payload,
Request.EndorsementEntry endorsementEntry,
Request.EndorsementEntry payer,
boolean isAgree,
long gasLimit,
long rpcCallTimeout,
boolean withSyncResult)
触发执行多签请求
参数说明
payload: 多签payload
limit: gas限制
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
withSyncResult: 是否同步获取交易执行结果
ResultOuterClass.TxResponse multiSignContractTrig(
Request.Payload payload,
Request.Limit limit,
long rpcCallTimeout,
boolean withSyncResult)
触发执行带有代付者的多签请求
参数说明
payload: 多签payload
payer: 代付者
limit: gas限制
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
withSyncResult: 是否同步获取交易执行结果
ResultOuterClass.TxResponse multiSignContractTrigWithPayer(
Request.Payload payload,
Request.EndorsementEntry payer,
Request.Limit limit,
long rpcCallTimeout,
boolean withSyncResult)
触发执行多签请求
参数说明
txId: 交易id
limit: gas限制
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
withSyncResult: 是否同步获取交易执行结果
ResultOuterClass.TxResponse multiSignContractTrig(
String txId,
Request.Limit limit,
long rpcCallTimeout,
boolean withSyncResult)
触发执行带有代付者的多签请求
参数说明
txId: 交易id
payer: 代付者
limit: gas限制
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
withSyncResult: 是否同步获取交易执行结果
ResultOuterClass.TxResponse multiSignContractTrigWithPayer(
String txId,
Request.EndorsementEntry payer,
Request.Limit limit,
long rpcCallTimeout,
boolean withSyncResult)
多签查询
参数说明
txId: 交易id
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
ResultOuterClass.TxResponse multiSignContractQuery(
String txId,
long rpcCallTimeout)
根据参数进行多签查询
参数说明
txId: 交易id
param: 多签参数
rpcCallTimeout: 调用rcp接口超时时间, 单位:毫秒
ResultOuterClass.TxResponse multiSignContractQueryWithParams(
String txId, Map<String, byte[]> params,
long rpcCallTimeout)
创建多签请求payload
参数说明
params: 多签参数
Request.Payload createMultiSignReqPayload(
Map<String, byte[]> params)
多签请求待签名payload生成
参数说明
params: 多签参数
gasLimit: gas限制
Request.Payload createMultiSignReqPayloadWithGasLimit(
Map<String, byte[]> params,
long gasLimit)
创建多签投票payload
参数说明
params: 多签参数
limit: gas限制
Request.Payload createMultiSignVotePayload(
Map<String, byte[]> params,
Request.Limit limit)
创建多签触发payload
参数说明
params: 多签参数
limit: gas限制
Request.Payload createMultiSignTrigPayload(
Map<String, byte[]> params,
Request.Limit limit)
创建多签查询payload
参数说明
params: 多签参数
Request.Payload createMultiSignQueryPayload(
Map<String, byte[]> params)
管理类接口
SDK停止接口:关闭连接池连接,释放资源
void stop()
获取链版本
参数说明 - timeout: 调用rcp接口超时时间, 单位:毫秒
String getChainMakerServerVersion(
long timeout)
更新链配置
参数说明 - nodeConfig: 节点配置信息 - timeout: 调用rcp接口超时时间, 单位:毫秒
LocalConfig.CheckNewBlockChainConfigResponse checkNewBlockChainConfig(
NodeConfig nodeConfig,
long timeout)
gas管理相关接口
构造设置gas管理员payload
参数说明
address: gas管理员的地址
Request.Payload createSetGasAdminPayload(
String address)
查询gas管理员
参数说明
rpcCallTimeout: 调用rpc接口超时时间, 单位:毫秒
String getGasAdmin(
long rpcCallTimeout)
构造充值gas账户payload
参数说明
rechargeGasList: 一个gas账户充值指定gas数量
Request.Payload createRechargeGasPayload(
AccountManager.RechargeGas[] rechargeGasList)
查询gas账户余额(根据公钥)
参数说明
address: 查询gas余额的账户地址
rpcCallTimeout: 调用rpc接口超时时间, 单位:毫秒
long getGasBalance(
String address,
long rpcCallTimeout)
构造退还gas的payload
参数说明
address: 退还gas的账户地址
amount: 退还gas的数量
Request.Payload createRefundGasPayload(
String address,
long amount)
构造冻结gas账户的payload
参数说明
address: 冻结指定gas账户的账户地址
Request.Payload createFrozenGasAccountPayload(
String address)
构造解冻指定gas账户的payload
参数说明
address: 解冻指定gas账户的账户地址
Request.Payload createUnfrozenGasAccountPayload(
String address)
查询gas账户的状态
参数说明
address: 指定gas账户的账户地址
rpcCallTimeout: 调用rpc接口超时时间, 单位:毫秒 返回值说明
boolean: true表示账号未被冻结,false表示账号已被冻结
boolean getGasAccountStatus(
String address,
long rpcCallTimeout)
发送gas管理类请求
参数说明
payload: 交易payload
endorsementEntries: 背书签名信息列表
rpcCallTimeout: 超时时间,单位:s,若传入-1,将使用默认超时时间:10s
syncResultTimeout: 是否同步获取交易执行结果
ResultOuterClass.TxResponse sendGasManageRequest(
Request.Payload payload,
Request.EndorsementEntry[] endorsementEntries,
long rpcCallTimeout,
long syncResultTimeout)
为payload添加gas limit
参数说明
payload: 交易payload
limit: gas limit
Request.Payload attachGasLimit(
Request.Payload payload,
Request.Limit limit)
启用或停用Gas计费开关payload生成
参数说明
rpcCallTimeout: 超时时间,单位:s,若传入-1,将使用默认超时时间:10s
Request.Payload createChainConfigEnableOrDisableGasPayload(
long rpcCallTimeout)
构造配置账户基础gas消耗数量payload
参数说明
amount: 基础gas消耗数量
rpcCallTimeout: 超时时间,单位:s,若传入-1,将使用默认超时时间:10s
Request.Payload createSetInvokeBaseGasPayload(
long amount,
long rpcCallTimeout)
构造设置调用gas price的payload
参数说明
gasPrice: gas价格
rpcCallTimeout: 超时时间,单位:s,若传入-1,将使用默认超时时间:10s
Request.Payload createSetInvokeGasPricePayload(
String gasPrice,
long rpcCallTimeout)
构造配置账户基础gas消耗数量的payload
参数说明
amount: 基础gas消耗数量
rpcCallTimeout: 超时时间,单位:s,若传入-1,将使用默认超时时间:10s
Request.Payload createSetInstallBaseGasPayload(
long amount,
long rpcCallTimeout)
构造配置调用gas price的payload
参数说明
gasPrice: gas价格
rpcCallTimeout: 超时时间,单位:s,若传入-1,将使用默认超时时间:10s
Request.Payload createSetInstallGasPricePayload(
String gasPrice,
long rpcCallTimeout)
估算交易的gas消耗量
参数说明
payload: 待估算gas消耗量的交易payload
long estimateGas(
Request.Payload payload,
long rpcCallTimeout)
别名相关接口
添加别名
参数说明
rpcCallTimeout: 超时时间,单位:s,若传入-1,将使用默认超时时间:10s
ResultOuterClass.TxResponse addAlias(
long rpcCallTimeout)
构造更新别名payload
参数说明
alias: 要更新的别名
certPEM: 对应的证书
Request.Payload createAliasUpdatePayload(
String alias,
String certPem)
发起更新别名交易
参数说明
payload: 待签名的payload
endorsementEntries: 背书签名信息列表
rpcCallTimeout: 超时时间,单位:s,若传入-1,将使用默认超时时间:10s
ResultOuterClass.TxResponse updateAlias(
Request.Payload payload,
Request.EndorsementEntry[] endorsementEntries,
long rpcCallTimeout)
查询别名详情交易
参数说明
aliasList: 要查询的别名列表
rpcCallTimeout: 超时时间,单位:s,若传入-1,将使用默认超时时间:10s
ResultOuterClass.AliasInfos queryAlias(
String[] aliasList,
long rpcCallTimeout)
生成删除别名payload
参数说明
aliasList: 要删除的别名列表
rpcCallTimeout: 超时时间,单位:s,若传入-1,将使用默认超时时间:10s
Request.Payload createAliasDeletePayload(
String[] aliasList)
发起删除别名交易
参数说明
payload: 待签名的payload
endorsementEntries: 背书签名信息列表
rpcCallTimeout: 超时时间,单位:s,若传入-1,将使用默认超时时间:10s
syncResultTimeout: 是否同步获取交易执行结果
ResultOuterClass.TxResponse deleteAlias(
Request.Payload payload,
Request.EndorsementEntry[] endorsementEntries,
long rpcCallTimeout,
long syncResultTimeout)
交易池相关接口
获取交易池状态
参数说明
rpcCallTimeout: 超时时间,单位:s,若传入-1,将使用默认超时时间:10s
TransactionPool.TxPoolStatus getPoolStatus(
long rpcCallTimeout)
获取不同交易类型和阶段中的交易Id列表。
参数说明
txType: 交易类型,在pb的txpool包中进行了定义
txStage: 交易阶段,在pb的txpool包中进行了定义
rpcCallTimeout: 超时时间,单位:s,若传入-1,将使用默认超时时间:10s
返回值说明
[]string: 交易Id列表
List<String> getTxIdsByTypeAndStage(
TransactionPool.TxType txType,
TransactionPool.TxStage txStage,
long rpcCallTimeout)
根据txIds获取交易池中存在的txs,并返回交易池缺失的tx的txIds
参数说明
txIds: 交易Id列表
rpcCallTimeout: 超时时间,单位:s,若传入-1,将使用默认超时时间:10s
返回值说明
[]*common.Transaction: 交易池中存在的txs
[]string: 交易池缺失的tx的txIds
List<ChainmakerTransaction.Transaction> getTxsInPoolByTxIds(
String[] txIds,
long rpcCallTimeout)
交易相关接口
创建交易请求
参数说明
payload: 交易payload
endorsementEntries: 背书签名信息列表
Request.TxRequest createTxRequest(Request.Payload payload, Request.EndorsementEntry[] endorsementEntries)
归档相关接口
根据交易ID获取归档区块
参数说明
txId: 交易ID
withRWSet: 是否包含读写集
timeout: 超时时间
ChainmakerBlock.BlockInfo getArchivedBlockByTxId(
String txId,
boolean withRWSet,
long timeout)
根据区块哈希获取归档区块
参数说明
blockHash: 区块哈希
withRWSet: 是否包含读写集
timeout: 超时时间
ChainmakerBlock.BlockInfo getArchivedBlockByHash(
String blockHash,
boolean withRWSet,
long timeout)
根据交易ID获取归档交易
参数说明
txId: 交易ID
timeout: 超时时间
ChainmakerTransaction.TransactionInfo getArchivedTxByTxId(
String txId,
long timeout)
根据区块高度进行归档
参数说明
archiveHeight: 区块高度(归档的高度为已经归档的高度到当前区块高度)
notice: 通知方法
rpcCallTimeout: 超时时间
void archiveBlocks(long archiveHeight, Notice notice, long rpcCallTimeout)
根据区块高度进行恢复
参数说明
restoreHeight: 区块高度(恢复高度为当前高度到已经归档的高度)
notice: 通知方法
rpcCallTimeout: 超时时间
void restoreBlocks(long restoreHeight, Notice notice, long rpcCallTimeout)