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)