3. Nodejs SDK 使用说明

3.1. 基本概念定义

  1. 整体介绍

SDK是业务模块与长安链交互的桥梁,支持双向TLS认证,提供安全可靠的加密通信信道。

提供的接口,覆盖合约管理、链配置管理、证书管理、多签收集、各类查询操作、事件订阅、数据归档等场景,满足了不同的业务场景需要。

  1. 名词概念说明

  • Node(节点):代表一个链节点的基本信息,包括:节点地址、连接数、是否启用TLS认证等信息

  • ChainClient(链客户端):所有客户端对链节点的操作接口都来自ChainClient

  • 压缩证书:可以为ChainClient开启证书压缩功能,开启后可以减小交易包大小,提升处理性能

3.2. 环境准备

3.2.1. 软件依赖

nodejs

nodejs 14.0.0+

下载地址:https://nodejs.org/dist/

若已安装,请通过命令查看版本:

$ node --version
v14.0.0

3.2.2. 下载安装

$ git clone -b v2.0.0  --depth=1 https://git.chainmaker.org.cn/chainmaker/sdk-nodejs.git

3.3. 怎么使用SDK

3.3.1. 示例代码

3.3.1.1. 创建节点

更多内容请参看:sdkInit.js

// 创建节点
this.node = new Node(nodeConfigArray, timeout);

3.3.1.2. 参数形式创建ChainClient

更多内容请参看:sdkInit.js

// 创建ChainClient
const ChainClient = new Sdk(chainID, orgID, userKeyPathFile, userCertPathFile, nodeConfigArray, 30000, archiveConfig);

3.3.1.3. 以配置文件形式创建ChainClient

更多内容请参看:sdkinit.js

const ChainClient = new LoadFromYaml(path.join(__dirname, './sdk_config.yaml'));

3.3.1.4. 创建合约

更多内容请参看:testUserContractMgr.js

  const testCreateUserContract = async (sdk, contractName, contractVersion, contractFilePath) => {
		const response = await sdk.userContractMgr.createUserContract({
			contractName,
			contractVersion,
			contractFilePath,
			runtimeType: utils.common.RuntimeType.GASM,
			params: {
				key1: 'value1',
				key2: 'value2',
			},
		});
		return response;
	};

3.3.1.5. 调用合约

更多内容请参看:testUserContractMgr.js

  const testInvokeUserContract = async (sdk, contractName) => {
		const response = await sdk.callUserContract.invokeUserContract({
			contractName, method: 'save', params: {
				file_hash: '1234567890',
				file_name: 'test.txt',
			},
		});
		return response;
	};

3.3.2. 更多示例和用法

更多示例和用法,请参看单元测试用例

安装mocha:

$ npm install -g mocha

使用脚本搭建chainmaker运行环境(4组织4节点),将build文件中的cryptogen复制到当前项目的test/testFile文件中

运行测试命令:

$ npm test
功能 单测代码
基础配置 sdkInit.js
用户合约 userContract.js
系统合约 systemContract.js
链配置 chainConfig.js
证书管理 cert.js
消息订阅 subscribe.js

3.4. 接口说明

请参看:《chainmaker-nodejs-sdk》

3.4.1. 1 用户合约接口

3.4.1.1. 1.1 创建合约待签名payload生成

类名

  • userContractMgr

参数说明

类型:k-v Object对象

  • contractName: 合约名(string)

  • contractVersion: 版本号(string)

  • runtimeType: 合约运行环境(number)

  • contractFilePath: 合约二进制文件路径(string)

  • params: 合约初始化参数,(k-v Object对象)

	createContractCreatePayload({ contractName, contractVersion, runtimeType, contractFilePath, params })

3.4.1.2. 1.2 升级合约待签名payload生成

类名

  • userContractMgr

参数说明

类型:k-v Object对象

  • contractName: 合约名(string)

  • contractVersion: 版本号(string)

  • runtimeType: 合约运行环境(number)

  • contractFilePath: 合约二进制文件路径(string)

  • params: 合约升级参数,(k-v Object对象)

	createContractUpgradePayload({ contractName, contractVersion, runtimeType, contractFilePath, params })

3.4.1.3. 1.3 冻结合约payload生成

类名

  • userContractMgr

参数说明

类型:k-v Object对象

  • contractName: 合约名(string)

	createContractFreezePayload({ contractName })

3.4.1.4. 1.4 解冻合约payload生成

类名

  • userContractMgr

参数说明

类型:k-v Object对象

  • contractName: 合约名(string)

	createContractUnfreezePayload({ contractName })

3.4.1.5. 1.5 吊销合约payload生成

类名

  • userContractMgr

参数说明

类型:k-v Object对象

  • contractName: 合约名(string)

	createContractRevokePayload({ contractName })

3.4.1.6. 1.6 合约管理获取Payload签名

类名

  • userContractMgr

参数说明

  • payload: 待签名payload

  • userInfoList: 需要签名的用户列表(array[class UserInfo])

	signContractManagePayload(payload, userInfoList)

3.4.1.7. 1.7 合约管理Payload签名收集&合并

类名

  • userContractMgr

参数说明

  • signedPayloadBytesArray: 已签名payload列表(array[payloadBytes])

	mergeContractManageSignedPayload(signedPayloadBytesArray)

3.4.1.8. 1.8 发送合约管理请求(创建、更新、冻结、解冻、吊销)

类名

  • userContractMgr

参数说明

  • mergedPayload: 多签结果

  • withSyncResult: 是否同步获取结果(boolean)

	async sendContractManageRequest(mergedPayload, withSyncResult)

3.4.1.9. 1.9 合约调用

类名

  • callUserContract

参数说明

类型:k-v Object对象

  • contractName: 合约名称(string)

  • method: 合约方法(string)

  • params: 合约参数(k-v Object对象)

  • withSyncResult: 是否同步获取结果(boolean)

	async invokeUserContract({ contractName, method, params, withSyncResult })

3.4.1.10. 1.10 合约查询接口调用

类名

  • callUserContract

参数说明

类型:k-v Object对象

  • contractName: 合约名称(string)

  • method: 合约方法(string)

  • params: 合约参数(k-v Object对象)

	async queryContract({ contractName, method, params })

3.4.1.11. 1.11 构造待发送交易体

类名

  • callUserContract

参数说明

  • contractName: 合约名称(string)

  • method: 合约方法(string)

  • params: 合约参数(k-v Object对象)

	getTxRequest(contractName, method, params)

3.4.1.12. 1.12 发送已构造好的交易体

类名

  • callUserContract

参数说明

  • request: 已构造好的交易体

  • txId: getTxRequest方法的返回值

  • withSyncResult: 是否同步获取结果(boolean)

	async sendTxRequest(request, txId, withSyncResult)

3.4.2. 2 系统合约接口

3.4.2.1. 2.1 根据交易Id查询交易

类名

  • callSystemContract

参数说明

  • txId: 交易ID(string)

  async getTxByTxId(txId)

3.4.2.2. 2.2 根据区块高度查询区块

类名

  • callSystemContract

参数说明

  • blockHeight: 区块高度,若为-1,将返回最新区块(number)

  • withRWSet: 是否返回读写集(boolean)

  async getBlockByHeight(blockHeight, withRWSet)

3.4.2.3. 2.3 根据区块哈希查询区块

类名

  • callSystemContract

参数说明

  • blockHash: 区块哈希(string)

  • withRWSet: 是否返回读写集(boolean)

  async getBlockByHash(blockHash, withRWSet)

3.4.2.4. 2.4 根据交易Id查询区块

类名

  • callSystemContract

参数说明

  • txId: 交易ID(string)

  • withRWSet: 是否返回读写集(boolean)

  async getBlockByTxId(txId, withRWSet)

3.4.2.5. 2.5 查询最新的配置块

类名

  • callSystemContract

参数说明

  • withRWSet: 是否返回读写集(boolean)

  async getLastConfigBlock(withRWSet)

3.4.2.6. 2.6 查询节点加入的链信息

类名

  • callSystemContract

参数说明

  • nodeAddr: 节点地址,如127.0.0.1(string)

  async getNodeChainList(nodeAddr)

3.4.2.7. 2.7 查询链信息

类名

  • callSystemContract

参数说明

  • 包括:当前链最新高度,链节点信息

  async getChainInfo()

3.4.2.8. 2.8 根据交易Id获取区块高度

类名

  • callSystemContract

参数说明

  • txId: 交易ID(string)

  async getBlockHeightByTxId(txId)

3.4.2.9. 2.9 根据区块Hash获取区块高度

类名

  • callSystemContract

参数说明

  • blockHash: 区块哈希(string)

  async getBlockHeightByHash(blockHash)

3.4.2.10. 2.10 查询当前最新区块高度

类名

  • callSystemContract

参数说明

  • 返回当前最新区块高度

  async getCurrentBlockHeight()

3.4.2.11. 2.11 根据区块高度查询区块头

类名

  • callSystemContract

参数说明

  • blockHeight: 区块高度(number)

  async getBlockHeaderByHeight(blockHeight)

3.4.2.12. 2.12 查询最新区块

类名

  • callSystemContract

参数说明

  • withRWSet: 是否返回读写集(boolean)

  async getLastBlock(withRWSet)

3.4.2.13. 2.13 根据区块高度查询完整区块

类名

  • callSystemContract

参数说明

  • blockHeight: 区块高度(number)

  async getFullBlockByHeight(blockHeight)

3.5. 3 链配置接口

3.5.1. 3.1 查询最新链配置

类名

  • chainConfig

  async getChainConfig()

3.5.2. 3.2 根据指定区块高度查询最近链配置

类名

  • chainConfig

参数说明

  • blockHeight: 区块高度(number)

  async getChainConfigByBlockHeight(blockHeight)

3.5.3. 3.3 查询最新链配置序号Sequence

类名

  • chainConfig

  async getChainConfigSequence()

3.5.4. 3.4 链配置更新获取Payload签名

类名

  • chainConfig

参数说明

类型:k-v Object对象

  • payload: 待签名payload

  • userInfo: 需要签名的用户(class UserInfo)

  signChainConfigPayload(payload, userInfo)

3.5.5. 3.5 链配置更新Payload签名收集&合并

类名

  • chainConfig

参数说明

  • signedPayloadBytesArray: 签名之后的payload bytes数组(Array[payloadBytes])

  mergeChainConfigSignedPayload(signedPayloadBytesArray)

3.5.6. 3.6 发送链配置更新请求

类名

  • chainConfig

参数说明

  • signPayloadBytes: 签名之后的payload bytes

  async sendChainConfigUpdateRequest(signPayloadBytes)

3.5.7. 3.7 更新Block模块待签名payload生成

类名

  • chainConfig

参数说明

类型:k-v Object对象

  • txTimestampVerify: 是否需要开启交易时间戳校验(boolean)

  • (以下参数,若无需修改,请置为-1)

  • txTimeout: 交易时间戳的过期时间(秒),其值范围为[600, +∞)(number)

  • blockTxCapacity: 区块中最大交易数,其值范围为(0, +∞](number)

  • blockSize: 区块最大限制,单位MB,其值范围为(0, +∞](number)

  • blockInterval: 出块间隔,单位:ms,其值范围为[10, +∞](number)

  async createChainConfigBlockUpdatePayload({txTimestampVerify, txTimeout = -1, blockTxCapacity = -1, blockSize = -1, blockInterval = -1, userInfoList})

3.5.8. 3.8 更新Core模块待签名payload生成

类名

  • chainConfig

参数说明

类型:k-v Object对象

  • txSchedulerTimeout: 交易调度器从交易池拿到交易后, 进行调度的时间,其值范围为[0, 60],若无需修改,请置为-1(number)

  • txSchedulerValidateTimeout: 交易调度器从区块中拿到交易后, 进行验证的超时时间,其值范围为[0, 60],若无需修改,请置为-1(number)

  async ceateChainConfigCoreUpdatePayload({txSchedulerTimeout = -1, txSchedulerValidateTimeout = -1,  userInfoList,})

3.5.9. 3.9 添加信任组织根证书待签名payload生成

类名

  • chainConfig

参数说明

类型:k-v Object对象

  • orgId: 组织Id(string)

  • roots: 根证书数组(string)

  async createChainConfigTrustRootAddPayload({ orgId, roots })

3.5.10. 3.10 更新信任组织根证书待签名payload生成

类名

  • chainConfig

参数说明

类型:k-v Object对象

  • orgId: 组织Id(string)

  • roots: 根证书数组(string)

  async createChainConfigTrustRootUpdatePayload({ orgId, roots })

3.5.11. 3.11 删除信任组织根证书待签名payload生成

类名

  • chainConfig

参数说明

类型:k-v Object对象

  • orgId: 组织Id(string)

  async createChainConfigTrustRootDeletePayload({ orgId })

3.5.12. 3.12 添加权限配置待签名payload生成

类名

  • chainConfig

参数说明

类型:k-v Object对象

  • permissionResourceName: 权限名(string)

  • rule: 权限内容(string)

  • orgList: 组织列表(Array[string])

  • roleList: 权限列表(Array[string])

  async createChainConfigPermissionAddPayload({ permissionResourceName, rule,  orgList = [], roleList = [] })

3.5.13. 3.13 更新权限配置待签名payload生成

类名

  • chainConfig

参数说明

类型:k-v Object对象

  • permissionResourceName: 权限名(string)

  • rule: 权限内容(string)

  • orgList: 组织列表(Array[string])

  • roleList: 权限列表(Array[string])

  async createChainConfigPermissionUpdatePayload({ permissionResourceName, rule,  orgList, roleList })

3.5.14. 3.14 删除权限配置待签名payload生成

类名

  • chainConfig

参数说明

类型:k-v Object对象

  • permissionResourceName: 权限名(string)

  async createChainConfigPermissionDeletePayload({ permissionResourceName })

3.5.15. 3.15 添加共识节点地址待签名payload生成

类名

  • chainConfig

参数说明

  • orgId: 节点组织Id(string)

  • nodeIds: 节点Id数组(Array[string])

  async createChainConfigConsensusNodeIdAddPayload(orgId, nodeIds)

3.5.16. 3.16 更新共识节点地址待签名payload生成

类名

  • chainConfig

参数说明

  • orgId: 节点组织Id(string)

  • nodeId: 旧节点Id(string)

  • newNodeId: 新节点Id(string)

  async createChainConfigConsensusNodeIdUpdatePayload(orgId, nodeId, newNodeId)

3.5.17. 3.17 删除共识节点地址待签名payload生成

类名

  • chainConfig

参数说明

  • orgId: 节点组织Id(string)

  • nodeId: 节点Id(string)

  async createChainConfigConsensusNodeIdDeletePayload(orgId, nodeId)

3.5.18. 3.18 添加共识节点待签名payload生成

类名

  • chainConfig

参数说明

  • orgId: 节点组织Id(string)

  • nodeIds: 节点Id数组(Array[string])

  async createChainConfigConsensusNodeOrgAddPayload(orgId, nodeIds)

3.5.19. 3.19 更新共识节点待签名payload生成

类名

  • chainConfig

参数说明

  • orgId: 节点组织Id(string)

  • nodeIds: 节点Id数组(Array[string])

  async createChainConfigConsensusNodeOrgUpdatePayload(orgId, nodeIds)

3.5.20. 3.20 删除共识节点待签名payload生成

类名

  • chainConfig

参数说明

  • orgId: 节点组织Id(string)

  async createChainConfigConsensusNodeOrgDeletePayload(orgId)

3.5.21. 3.21 添加共识扩展字段待签名payload生成

类名

  • chainConfig

参数说明

  • kvs: 字段key、value对(k-v Object对象)

  async createChainConfigConsensusExtAddPayload(kvs)

3.5.22. 3.22 添加共识扩展字段待签名payload生成

类名

  • chainConfig

参数说明

  • kvs: 字段key、value对(k-v Object对象)

  async createChainConfigConsensusExtUpdatePayload(kvs)

3.5.23. 3.23 添加共识扩展字段待签名payload生成

类名

  • chainConfig

参数说明

  • keys: 字段key数组(Array[string])

  async createChainConfigConsensusExtDeletePayload(keys)

3.5.24. 3.24 添加信任成员证书待签名payload生成

类名

  • chainConfig

参数说明

类型:k-v Object对象

  • trustMemberOrgId: 组织Id

  • trustMemberNodeId: 节点Id

  • trustMemberRole: 成员角色

  • trustMemberInfo: 成员信息内容

  async createChainConfigTrustMemberAddPayload({
    trustMemberOrgId,
    trustMemberNodeId,
    trustMemberRole,
    trustMemberInfo,
  })

3.5.25. 3.25 删除信任成员证书待签名payload生成

类名

  • chainConfig

参数说明

  • trustMemberInfo: 成员信息内容

  async createChainConfigTrustMemberDeletePayload(trustMemberInfo)

3.5.26. 4 证书管理接口

3.5.26.1. 4.1 用户证书添加

类名

  • certMgr

参数说明

  • 在response.ContractResult.Result字段中返回成功添加的certHash

  async addCert()

3.5.26.2. 4.2 用户证书删除

类名

  • certMgr

参数说明

  • certHashes: 证书Hash列表(Array[string])

  async deleteCert(certHashes)

3.5.26.3. 4.3 用户证书查询

类名

  • certMgr

参数说明

  • certHashes: 证书Hash列表(Array[string])

  async queryCert(certHashes)

3.5.26.4. 4.4 获取用户证书哈希

类名

  • certMgr

参数说明

  async getCertHash()

3.5.26.5. 4.5 生成证书管理操作Payload(三合一接口)

类名

  • certMgr

参数说明

  • method: CERTS_FROZEN(证书冻结)/CERTS_UNFROZEN(证书解冻)/CERTS_REVOCATION(证书吊销)

  • params: 证书管理操作参数

  async createCertManagePayload(method, params)

3.5.26.6. 4.6 生成证书冻结操作Payload

类名

  • certMgr

参数说明

  • certs: 证书列表(Array[string])

  async createCertManageFrozenPayload(certs)

3.5.26.7. 4.7 生成证书解冻操作Payload

类名

  • certMgr

参数说明

  • certs: 证书列表(Array[string])

  async createCertManageUnfrozenPayload(certs)

3.5.26.8. 4.8 生成证书吊销操作Payload

类名

  • certMgr

参数说明

  • certCrl: 吊销证书的crl(string)

  async createCertManageRevocationPayload(certCrl)

3.5.26.9. 4.9 待签payload签名

类名

  • certMgr

参数说明

  • payload: 待签名payload

  signCertManagePayload(payload)

3.5.26.10. 4.10 证书管理Payload签名收集&合并

类名

  • certMgr

参数说明

  • signedPayloadBytesArray: 签名之后的payload bytes数组(Array[payloadBytes])

  mergeCertManageSignedPayload(signedPayloadBytesArray)

3.5.26.11. 4.11 发送证书管理请求(证书冻结、解冻、吊销)

类名

  • certMgr

参数说明

  • payloadBytes: 签名之后的payload bytes

  • withSyncResult: 是否同步获取结果

  async sendCertManageRequest(payloadBytes, withSyncResult)

3.5.27. 5 消息订阅接口

3.5.27.1. 5.1 区块订阅

类名

  • subscribe

参数说明

  • startBlock: 订阅起始区块高度,若为-1,表示订阅实时最新区块(number)

  • endBlock: 订阅结束区块高度,若为-1,表示订阅实时最新区块(number)

  • withRwSet: 是否返回读写集(boolean)

  • callBack: 回调函数,第一个参数是监听到的的block区块,第二个参数是错误信息

  subscribeBlock(startBlock, endBlock, withRwSet, callBack)

3.5.27.2. 5.2 交易订阅

类名

  • subscribe

参数说明

  • startBlock: 订阅起始区块高度,若为-1,表示订阅实时最新区块(number)

  • endBlock: 订阅结束区块高度,若为-1,表示订阅实时最新区块(number)

  • txType: 订阅交易类型,若为common.TxType(-1),表示订阅所有交易类型(number)

  • txIds: 订阅txId列表,若为空(null),表示订阅所有txId(Array[string])

  • callBack: 回调函数,第一个参数是监听到的交易,第二个参数是错误信息

  subscribeTx(startBlock, endBlock, txType, txIds, callBack)

3.5.27.3. 5.3 合约事件订阅

类名

  • subscribe

参数说明

  • topic: 订阅的主题(string)

  • contractName: 智能合约名称(string)

  • callBack: 回调函数,第一个参数是监听到的合约事件,第二个参数是错误信息

  subscribeContractEvent(topic, contractName, callBack)

3.5.27.4. 5.4 多合一订阅

类名

  • subscribe

参数说明

  • txType: 订阅交易类型,目前已支持:区块消息订阅(common.TxType_SUBSCRIBE_BLOCK_INFO)、交易消息订阅(common.TxType_SUBSCRIBE_TX_INFO)、合约事件订阅(common.TxType.CONTRACT_EVENT_INFO)

  • payloadBytes: 消息订阅参数payload

  • callBack: 回调函数,第一个参数是监听到的事件返回,第二个参数是错误信息

  subscribe(payloadBytes, txType, callBack)

3.5.28. 6 证书压缩

开启证书压缩可以减小交易包大小,提升处理性能

3.5.28.1. 6.1 启用压缩证书功能

类名

  • certCompression

参数说明

  async enableCertHash()

3.5.28.2. 6.2 停用压缩证书功能

类名

  • certCompression

参数说明

  async disableCertHash()

3.5.29. 7 工具类

3.5.29.1. 7.1 将EasyCodec编码解码成map

类名

  • easyCodec

	easyCodecItemToParamsMap(easyCodecObj)

3.5.30. 8 数据归档

3.5.30.1. 8.1 获取已归档区块高度

类名

  • callSystemContract

参数说明

  async getArchivedBlockHeight()

3.5.30.2. 8.2 构造数据归档区块Payload

类名

  • archive

参数说明

  • targetBlockHeight: 目标区块高度(number)

  createArchiveBlockPayload(targetBlockHeight)

3.5.30.3. 8.3 构造归档归档数据恢复Payload

类名

  • archive

参数说明

  • fullBlock: 完整区块的bytes

  createRestoreBlockPayload(fullBlock)

3.5.30.4. 8.4 获取归档操作Payload签名

类名

  • archive

参数说明

  • payloadBytes: 待签名payloadBytes

  signArchivePayload(payloadBytes)

3.5.30.5. 8.5 发送归档请求

类名

  • archive

参数说明

  • mergeSignedPayloadBytes: 签名之后的payloadBytes

  async sendArchiveBlockRequest(mergeSignedPayloadBytes)

3.5.30.6. 8.6 归档数据恢复

类名

  • archive

参数说明

  • fullBlock: 完整区块的bytes

  async restoreBlock(fullBlock)

3.5.30.7. 8.7 根据交易Id查询已归档交易

类名

  • archive

参数说明

  • txId: 交易Id(string)

  async getArchivedTxByTxId(txId)

3.5.30.8. 8.8 根据区块高度查询已归档区块

类名

  • archive

参数说明

  • blockHeight: 区块高度(number)

  • withRWSet: 是否返回读写集(boolean)

  async getArchivedBlockByHeight(blockHeight, withRWSet)

3.5.30.9. 8.9 根据区块高度查询已归档完整区块(包含:区块数据、读写集、合约事件日志)

类名

  • archive

参数说明

  • blockHeight: 区块高度(number)

  async getArchivedFullBlockByHeight(blockHeight)

3.5.30.10. 8.10 根据区块哈希查询已归档区块

类名

  • archive

参数说明

  • hash: 区块哈希(string)

  • withRWSet: 是否返回读写集(boolean)

  async getArchivedBlockByHash(hash, withRWSet)

3.5.30.11. 8.11 根据交易Id查询已归档区块

类名

  • archive

参数说明

  • txId: 交易Id(string)

  • withRWSet: 是否返回读写集(boolean)

  async getArchivedBlockByTxId(txId, withRWSet)

3.5.31. 9 系统类接口

3.5.31.1. 9.1 SDK停止接口

关闭连接池连接,释放资源

	stop()

3.5.32. 10 类构造函数

3.5.32.1. 10.1 UserContract

参数说明

  • chainID: chainId(string)

  • userInfo: 用户类(calss UserInfo)

  • node: 节点类(class node)

	constructor(chainID, userInfo, node)

3.5.32.2. 10.2 CallUserContract

参数说明

  • chainID: chainId(string)

  • userInfo: 用户类(calss UserInfo)

  • node: 节点类(class node)

	constructor(chainID, userInfo, node)

3.5.32.3. 10.3 CallSystemContract

参数说明

  • chainID: chainId(string)

  • userInfo: 用户类(calss UserInfo)

  • node: 节点类(class node)

	constructor(chainID, userInfo, node)

3.5.32.4. 10.4 ChainConfig

参数说明

  • chainID: chainId(string)

  • userInfo: 用户类(calss UserInfo)

  • node: 节点类(class node)

	constructor(chainID, userInfo, node)

3.5.32.5. 10.5 CertMgr

参数说明

  • chainConfig: ChainConfig类(class ChainConfig)

  • chainID: chainId(string)

  • userInfo: 用户类(calss UserInfo)

  • node: 节点类(class node)

	constructor(chainConfig, chainID, userInfo, node)

3.5.32.6. 10.6 Subscribe

参数说明

  • chainID: chainId(string)

  • userInfo: 用户类(calss UserInfo)

  • node: 节点类(class node)

	constructor(chainID, userInfo, node)

3.5.32.7. 10.7 EasyCodec

	constructor()

3.5.32.8. 10.8 Archive

参数说明

  • chainID: chainId(string)

  • userInfo: 用户类(calss UserInfo)

  • node: 节点类(class node)

  • callSystemContract: 系统合约调用类(class callSystemContract)

数据库参数,类型:k-v Object对象

  • type: 数据库类型,目前只支持mysql,默认为mysql,无需设置

  • dbHost: 数据库地址

  • dbPort: 数据库端口

  • dbUsername: 数据库用户名

  • dbPassword: 数据库密码

	constructor(chainID, userInfo, node, callSystemContract, { type = 'mysql', dbHost, dbPort, dbUsername, dbPassword })

3.5.32.9. 10.9 UserInfo

参数说明

  • orgID: 组织ID

  • userSignKeyPath: 用户私钥路径

  • userSignCertPath: 用户证书路径

	constructor(orgID, userSignKeyPath, userSignCertPath)

3.5.32.10. 10.10 Node

参数说明

  • requestTimeout: 延时,单位ms,默认3000

节点配置参数nodeConfigArray,类型:k-v Object数组(Array[Object])

  • nodeAddr: 节点地址,ip+端口(string)

  • tlsEnable: 是否开启tls(boolean)

  • options: 类型k-v Object(pem: 根ca证书Buffer, clientKey: 客户端私钥Buffer, clientCert: 客户端证书Buffer, hostName: 节点域名,对应证书中的sans字段)

	constructor(nodeConfigArray, requestTimeout)

3.5.32.11. 10.11 Sdk

参数说明

  • chainID: chainId(string)

  • orgID: 组织ID

  • userSignKeyPath: 用户私钥路径

  • userSignCertPath: 用户证书路径

  • nodeConfigArray: 参考10.6nodeConfigArray

  • timeout: 延时,单位ms

  • archiveConfig: 参考10.8数据库参数

	constructor(chainID, orgID, userSignKeyPath, userSignCertPath, nodeConfigArray, timeout, archiveConfig = {})

3.5.32.12. 10.12 LoadFromYaml

参数说明

  • configPath: 配置文件路径(string)

	constructor(configPath)